| .. | .. |
|---|
| 376 | 376 | switch (cmd) { |
|---|
| 377 | 377 | /* read requests */ |
|---|
| 378 | 378 | case SPI_IOC_RD_MODE: |
|---|
| 379 | | - retval = put_user(spi->mode & SPI_MODE_MASK, |
|---|
| 380 | | - (__u8 __user *)arg); |
|---|
| 381 | | - break; |
|---|
| 382 | 379 | case SPI_IOC_RD_MODE32: |
|---|
| 383 | | - retval = put_user(spi->mode & SPI_MODE_MASK, |
|---|
| 384 | | - (__u32 __user *)arg); |
|---|
| 380 | + tmp = spi->mode; |
|---|
| 381 | + |
|---|
| 382 | + { |
|---|
| 383 | + struct spi_controller *ctlr = spi->controller; |
|---|
| 384 | + |
|---|
| 385 | + if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods && |
|---|
| 386 | + ctlr->cs_gpiods[spi->chip_select]) |
|---|
| 387 | + tmp &= ~SPI_CS_HIGH; |
|---|
| 388 | + } |
|---|
| 389 | + |
|---|
| 390 | + if (cmd == SPI_IOC_RD_MODE) |
|---|
| 391 | + retval = put_user(tmp & SPI_MODE_MASK, |
|---|
| 392 | + (__u8 __user *)arg); |
|---|
| 393 | + else |
|---|
| 394 | + retval = put_user(tmp & SPI_MODE_MASK, |
|---|
| 395 | + (__u32 __user *)arg); |
|---|
| 385 | 396 | break; |
|---|
| 386 | 397 | case SPI_IOC_RD_LSB_FIRST: |
|---|
| 387 | 398 | retval = put_user((spi->mode & SPI_LSB_FIRST) ? 1 : 0, |
|---|
| .. | .. |
|---|
| 581 | 592 | if (!spidev->tx_buffer) { |
|---|
| 582 | 593 | spidev->tx_buffer = kmalloc(bufsiz, GFP_KERNEL); |
|---|
| 583 | 594 | if (!spidev->tx_buffer) { |
|---|
| 584 | | - dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); |
|---|
| 585 | 595 | status = -ENOMEM; |
|---|
| 586 | 596 | goto err_find_dev; |
|---|
| 587 | 597 | } |
|---|
| .. | .. |
|---|
| 590 | 600 | if (!spidev->rx_buffer) { |
|---|
| 591 | 601 | spidev->rx_buffer = kmalloc(bufsiz, GFP_KERNEL); |
|---|
| 592 | 602 | if (!spidev->rx_buffer) { |
|---|
| 593 | | - dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); |
|---|
| 594 | 603 | status = -ENOMEM; |
|---|
| 595 | 604 | goto err_alloc_rx_buf; |
|---|
| 596 | 605 | } |
|---|