usb: core: hub: disable autosuspend for TI TUSB8041
[platform/kernel/linux-starfive.git] / drivers / spi / spidev.c
index b2775d8..6313e7d 100644 (file)
@@ -377,12 +377,23 @@ spidev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
        switch (cmd) {
        /* read requests */
        case SPI_IOC_RD_MODE:
-               retval = put_user(spi->mode & SPI_MODE_MASK,
-                                       (__u8 __user *)arg);
-               break;
        case SPI_IOC_RD_MODE32:
-               retval = put_user(spi->mode & SPI_MODE_MASK,
-                                       (__u32 __user *)arg);
+               tmp = spi->mode;
+
+               {
+                       struct spi_controller *ctlr = spi->controller;
+
+                       if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods &&
+                           ctlr->cs_gpiods[spi->chip_select])
+                               tmp &= ~SPI_CS_HIGH;
+               }
+
+               if (cmd == SPI_IOC_RD_MODE)
+                       retval = put_user(tmp & SPI_MODE_MASK,
+                                         (__u8 __user *)arg);
+               else
+                       retval = put_user(tmp & SPI_MODE_MASK,
+                                         (__u32 __user *)arg);
                break;
        case SPI_IOC_RD_LSB_FIRST:
                retval = put_user((spi->mode & SPI_LSB_FIRST) ?  1 : 0,