aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-pxa2xx.c
diff options
context:
space:
mode:
authorJarkko Nikula <jarkko.nikula@linux.intel.com>2016-01-26 08:33:21 -0500
committerMark Brown <broonie@kernel.org>2016-01-27 06:29:25 -0500
commitee03672d961bdac2ac1e593e9c29b0d3b7320409 (patch)
tree69b275e221e05cbee56be39e583cea560012fc4e /drivers/spi/spi-pxa2xx.c
parent22a33632fb607a18148815548478265a672d5295 (diff)
spi: pxa2xx: Print actual DMA/PIO transfer mode in debug messages
Transfer debug messages don't actually show is the transfer really using DMA. Driver may fall back to PIO in case transfer size is not within the certain limits or fails to map DMA buffers but debug messages don't reveal that. Move these debug messages further in pump_transfers() where the actual transfer mode is known and use drv_data->dma_mapped flag instead of chip->enable_dma for printing the mode. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-pxa2xx.c')
-rw-r--r--drivers/spi/spi-pxa2xx.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index ab9914ad8365..227e8bad19e6 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1001,19 +1001,6 @@ static void pump_transfers(unsigned long data)
1001 "pump_transfers: DMA burst size reduced to match bits_per_word\n"); 1001 "pump_transfers: DMA burst size reduced to match bits_per_word\n");
1002 } 1002 }
1003 1003
1004 /* NOTE: PXA25x_SSP _could_ use external clocking ... */
1005 cr0 = pxa2xx_configure_sscr0(drv_data, clk_div, bits);
1006 if (!pxa25x_ssp_comp(drv_data))
1007 dev_dbg(&message->spi->dev, "%u Hz actual, %s\n",
1008 drv_data->master->max_speed_hz
1009 / (1 + ((cr0 & SSCR0_SCR(0xfff)) >> 8)),
1010 chip->enable_dma ? "DMA" : "PIO");
1011 else
1012 dev_dbg(&message->spi->dev, "%u Hz actual, %s\n",
1013 drv_data->master->max_speed_hz / 2
1014 / (1 + ((cr0 & SSCR0_SCR(0x0ff)) >> 8)),
1015 chip->enable_dma ? "DMA" : "PIO");
1016
1017 message->state = RUNNING_STATE; 1004 message->state = RUNNING_STATE;
1018 1005
1019 drv_data->dma_mapped = 0; 1006 drv_data->dma_mapped = 0;
@@ -1040,6 +1027,19 @@ static void pump_transfers(unsigned long data)
1040 write_SSSR_CS(drv_data, drv_data->clear_sr); 1027 write_SSSR_CS(drv_data, drv_data->clear_sr);
1041 } 1028 }
1042 1029
1030 /* NOTE: PXA25x_SSP _could_ use external clocking ... */
1031 cr0 = pxa2xx_configure_sscr0(drv_data, clk_div, bits);
1032 if (!pxa25x_ssp_comp(drv_data))
1033 dev_dbg(&message->spi->dev, "%u Hz actual, %s\n",
1034 drv_data->master->max_speed_hz
1035 / (1 + ((cr0 & SSCR0_SCR(0xfff)) >> 8)),
1036 drv_data->dma_mapped ? "DMA" : "PIO");
1037 else
1038 dev_dbg(&message->spi->dev, "%u Hz actual, %s\n",
1039 drv_data->master->max_speed_hz / 2
1040 / (1 + ((cr0 & SSCR0_SCR(0x0ff)) >> 8)),
1041 drv_data->dma_mapped ? "DMA" : "PIO");
1042
1043 if (is_lpss_ssp(drv_data)) { 1043 if (is_lpss_ssp(drv_data)) {
1044 if ((pxa2xx_spi_read(drv_data, SSIRF) & 0xff) 1044 if ((pxa2xx_spi_read(drv_data, SSIRF) & 0xff)
1045 != chip->lpss_rx_threshold) 1045 != chip->lpss_rx_threshold)