aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarkko Nikula <jarkko.nikula@linux.intel.com>2014-12-18 08:04:20 -0500
committerMark Brown <broonie@kernel.org>2014-12-22 15:17:23 -0500
commit7566bcc76b15186172c4db0414cf30c8a61e4a73 (patch)
tree2bfd10720184cd1c6a1f9d9bbce978f0b214cca5
parent2db73d4482da9bd979edee345e95bb3a88441b30 (diff)
spi: pxa2xx: Move is_lpss_ssp() tests to caller
Move is_lpss_ssp() tests from functions to caller. Although this aims to improve readability it also saves a few code bytes on x86. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/spi/spi-pxa2xx.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index e1dc861857f2..cc08500242c4 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -251,9 +251,6 @@ static void lpss_ssp_setup(struct driver_data *drv_data)
251 unsigned offset = 0x400; 251 unsigned offset = 0x400;
252 u32 value, orig; 252 u32 value, orig;
253 253
254 if (!is_lpss_ssp(drv_data))
255 return;
256
257 /* 254 /*
258 * Perform auto-detection of the LPSS SSP private registers. They 255 * Perform auto-detection of the LPSS SSP private registers. They
259 * can be either at 1k or 2k offset from the base address. 256 * can be either at 1k or 2k offset from the base address.
@@ -302,9 +299,6 @@ static void lpss_ssp_cs_control(struct driver_data *drv_data, bool enable)
302{ 299{
303 u32 value; 300 u32 value;
304 301
305 if (!is_lpss_ssp(drv_data))
306 return;
307
308 value = __lpss_ssp_read_priv(drv_data, SPI_CS_CONTROL); 302 value = __lpss_ssp_read_priv(drv_data, SPI_CS_CONTROL);
309 if (enable) 303 if (enable)
310 value &= ~SPI_CS_CONTROL_CS_HIGH; 304 value &= ~SPI_CS_CONTROL_CS_HIGH;
@@ -332,7 +326,8 @@ static void cs_assert(struct driver_data *drv_data)
332 return; 326 return;
333 } 327 }
334 328
335 lpss_ssp_cs_control(drv_data, true); 329 if (is_lpss_ssp(drv_data))
330 lpss_ssp_cs_control(drv_data, true);
336} 331}
337 332
338static void cs_deassert(struct driver_data *drv_data) 333static void cs_deassert(struct driver_data *drv_data)
@@ -352,7 +347,8 @@ static void cs_deassert(struct driver_data *drv_data)
352 return; 347 return;
353 } 348 }
354 349
355 lpss_ssp_cs_control(drv_data, false); 350 if (is_lpss_ssp(drv_data))
351 lpss_ssp_cs_control(drv_data, false);
356} 352}
357 353
358int pxa2xx_spi_flush(struct driver_data *drv_data) 354int pxa2xx_spi_flush(struct driver_data *drv_data)
@@ -1415,7 +1411,8 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
1415 if (!is_quark_x1000_ssp(drv_data)) 1411 if (!is_quark_x1000_ssp(drv_data))
1416 write_SSPSP(0, drv_data->ioaddr); 1412 write_SSPSP(0, drv_data->ioaddr);
1417 1413
1418 lpss_ssp_setup(drv_data); 1414 if (is_lpss_ssp(drv_data))
1415 lpss_ssp_setup(drv_data);
1419 1416
1420 tasklet_init(&drv_data->pump_transfers, pump_transfers, 1417 tasklet_init(&drv_data->pump_transfers, pump_transfers,
1421 (unsigned long)drv_data); 1418 (unsigned long)drv_data);