aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-tegra20-sflash.c
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2013-01-04 13:47:15 -0500
committerGrant Likely <grant.likely@secretlab.ca>2013-02-05 08:11:53 -0500
commitbeb96c2ad4cd5012e39587b960aa7e41661c78ca (patch)
treeb4ca8fb93b305e5454fea912df0104e7a748876e /drivers/spi/spi-tegra20-sflash.c
parent059b8ffeee5b427949872bb6ed5db5ae0788054e (diff)
spi/tegra: remove checks for valid speed
SPI core make sure that all transfer has proper speed set before calling low level spi transfer. Hence, it is not require to have check in spi driver. Remove the check for speed validity from transfer and use it directly. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'drivers/spi/spi-tegra20-sflash.c')
-rw-r--r--drivers/spi/spi-tegra20-sflash.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/spi/spi-tegra20-sflash.c b/drivers/spi/spi-tegra20-sflash.c
index 448a8cc71df3..9a42c158e245 100644
--- a/drivers/spi/spi-tegra20-sflash.c
+++ b/drivers/spi/spi-tegra20-sflash.c
@@ -269,9 +269,7 @@ static int tegra_sflash_start_transfer_one(struct spi_device *spi,
269 u32 speed; 269 u32 speed;
270 unsigned long command; 270 unsigned long command;
271 271
272 speed = t->speed_hz ? t->speed_hz : spi->max_speed_hz; 272 speed = t->speed_hz;
273 if (!speed)
274 speed = tsd->spi_max_frequency;
275 if (speed != tsd->cur_speed) { 273 if (speed != tsd->cur_speed) {
276 clk_set_rate(tsd->clk, speed); 274 clk_set_rate(tsd->clk, speed);
277 tsd->cur_speed = speed; 275 tsd->cur_speed = speed;
@@ -319,6 +317,15 @@ static int tegra_sflash_start_transfer_one(struct spi_device *spi,
319 return tegra_sflash_start_cpu_based_transfer(tsd, t); 317 return tegra_sflash_start_cpu_based_transfer(tsd, t);
320} 318}
321 319
320static int tegra_sflash_setup(struct spi_device *spi)
321{
322 struct tegra_sflash_data *tsd = spi_master_get_devdata(spi->master);
323
324 /* Set speed to the spi max fequency if spi device has not set */
325 spi->max_speed_hz = spi->max_speed_hz ? : tsd->spi_max_frequency;
326 return 0;
327}
328
322static int tegra_sflash_transfer_one_message(struct spi_master *master, 329static int tegra_sflash_transfer_one_message(struct spi_master *master,
323 struct spi_message *msg) 330 struct spi_message *msg)
324{ 331{
@@ -492,6 +499,7 @@ static int tegra_sflash_probe(struct platform_device *pdev)
492 499
493 /* the spi->mode bits understood by this driver: */ 500 /* the spi->mode bits understood by this driver: */
494 master->mode_bits = SPI_CPOL | SPI_CPHA; 501 master->mode_bits = SPI_CPOL | SPI_CPHA;
502 master->setup = tegra_sflash_setup;
495 master->transfer_one_message = tegra_sflash_transfer_one_message; 503 master->transfer_one_message = tegra_sflash_transfer_one_message;
496 master->num_chipselect = MAX_CHIP_SELECT; 504 master->num_chipselect = MAX_CHIP_SELECT;
497 master->bus_num = -1; 505 master->bus_num = -1;