diff options
author | Addy Ke <addy.ke@rockchip.com> | 2014-07-10 22:07:56 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-07-11 08:59:57 -0400 |
commit | 5dcc44ed911cadc7eb3db46e874a447848f3b340 (patch) | |
tree | 2143a44ddbbe14d62f765d812447662608817922 /drivers/spi | |
parent | c15369087ae5c7db7f3e3604822eac6ab87429bd (diff) |
spi/rockchip: cleanup some coding issues and uncessary output
Suggested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Addy Ke <addy.ke@rockchip.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-rockchip.c | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c index 72fb287556d5..8c247086e520 100644 --- a/drivers/spi/spi-rockchip.c +++ b/drivers/spi/spi-rockchip.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2014, Fuzhou Rockchip Electronics Co., Ltd | 2 | * Copyright (c) 2014, Fuzhou Rockchip Electronics Co., Ltd |
3 | * Author: addy ke <addy.ke@rock-chips.com> | 3 | * Author: Addy Ke <addy.ke@rock-chips.com> |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or modify it | 5 | * This program is free software; you can redistribute it and/or modify it |
6 | * under the terms and conditions of the GNU General Public License, | 6 | * under the terms and conditions of the GNU General Public License, |
@@ -186,7 +186,7 @@ struct rockchip_spi { | |||
186 | void *rx_end; | 186 | void *rx_end; |
187 | 187 | ||
188 | u32 state; | 188 | u32 state; |
189 | 189 | /* protect state */ | |
190 | spinlock_t lock; | 190 | spinlock_t lock; |
191 | 191 | ||
192 | struct completion xfer_completion; | 192 | struct completion xfer_completion; |
@@ -278,7 +278,7 @@ static void rockchip_spi_set_cs(struct spi_device *spi, bool enable) | |||
278 | } | 278 | } |
279 | 279 | ||
280 | static int rockchip_spi_prepare_message(struct spi_master *master, | 280 | static int rockchip_spi_prepare_message(struct spi_master *master, |
281 | struct spi_message *msg) | 281 | struct spi_message *msg) |
282 | { | 282 | { |
283 | struct rockchip_spi *rs = spi_master_get_devdata(master); | 283 | struct rockchip_spi *rs = spi_master_get_devdata(master); |
284 | struct spi_device *spi = msg->spi; | 284 | struct spi_device *spi = msg->spi; |
@@ -294,13 +294,19 @@ static int rockchip_spi_prepare_message(struct spi_master *master, | |||
294 | } | 294 | } |
295 | 295 | ||
296 | static int rockchip_spi_unprepare_message(struct spi_master *master, | 296 | static int rockchip_spi_unprepare_message(struct spi_master *master, |
297 | struct spi_message *msg) | 297 | struct spi_message *msg) |
298 | { | 298 | { |
299 | unsigned long flags; | 299 | unsigned long flags; |
300 | struct rockchip_spi *rs = spi_master_get_devdata(master); | 300 | struct rockchip_spi *rs = spi_master_get_devdata(master); |
301 | 301 | ||
302 | spin_lock_irqsave(&rs->lock, flags); | 302 | spin_lock_irqsave(&rs->lock, flags); |
303 | 303 | ||
304 | /* | ||
305 | * For DMA mode, we need terminate DMA channel and flush | ||
306 | * fifo for the next transfer if DMA thansfer timeout. | ||
307 | * unprepare_message() was called by core if transfer complete | ||
308 | * or timeout. Maybe it is reasonable for error handling here. | ||
309 | */ | ||
304 | if (rs->use_dma) { | 310 | if (rs->use_dma) { |
305 | if (rs->state & RXBUSY) { | 311 | if (rs->state & RXBUSY) { |
306 | dmaengine_terminate_all(rs->dma_rx.ch); | 312 | dmaengine_terminate_all(rs->dma_rx.ch); |
@@ -344,7 +350,7 @@ static void rockchip_spi_pio_reader(struct rockchip_spi *rs) | |||
344 | else | 350 | else |
345 | *(u16 *)(rs->rx) = (u16)rxw; | 351 | *(u16 *)(rs->rx) = (u16)rxw; |
346 | rs->rx += rs->n_bytes; | 352 | rs->rx += rs->n_bytes; |
347 | }; | 353 | } |
348 | } | 354 | } |
349 | 355 | ||
350 | static int rockchip_spi_pio_transfer(struct rockchip_spi *rs) | 356 | static int rockchip_spi_pio_transfer(struct rockchip_spi *rs) |
@@ -414,7 +420,8 @@ static int rockchip_spi_dma_transfer(struct rockchip_spi *rs) | |||
414 | rxconf.src_maxburst = rs->n_bytes; | 420 | rxconf.src_maxburst = rs->n_bytes; |
415 | dmaengine_slave_config(rs->dma_rx.ch, &rxconf); | 421 | dmaengine_slave_config(rs->dma_rx.ch, &rxconf); |
416 | 422 | ||
417 | rxdesc = dmaengine_prep_slave_sg(rs->dma_rx.ch, | 423 | rxdesc = dmaengine_prep_slave_sg( |
424 | rs->dma_rx.ch, | ||
418 | rs->rx_sg.sgl, rs->rx_sg.nents, | 425 | rs->rx_sg.sgl, rs->rx_sg.nents, |
419 | rs->dma_rx.direction, DMA_PREP_INTERRUPT); | 426 | rs->dma_rx.direction, DMA_PREP_INTERRUPT); |
420 | 427 | ||
@@ -429,7 +436,8 @@ static int rockchip_spi_dma_transfer(struct rockchip_spi *rs) | |||
429 | txconf.dst_maxburst = rs->n_bytes; | 436 | txconf.dst_maxburst = rs->n_bytes; |
430 | dmaengine_slave_config(rs->dma_tx.ch, &txconf); | 437 | dmaengine_slave_config(rs->dma_tx.ch, &txconf); |
431 | 438 | ||
432 | txdesc = dmaengine_prep_slave_sg(rs->dma_tx.ch, | 439 | txdesc = dmaengine_prep_slave_sg( |
440 | rs->dma_tx.ch, | ||
433 | rs->tx_sg.sgl, rs->tx_sg.nents, | 441 | rs->tx_sg.sgl, rs->tx_sg.nents, |
434 | rs->dma_tx.direction, DMA_PREP_INTERRUPT); | 442 | rs->dma_tx.direction, DMA_PREP_INTERRUPT); |
435 | 443 | ||
@@ -495,13 +503,13 @@ static void rockchip_spi_config(struct rockchip_spi *rs) | |||
495 | 503 | ||
496 | spi_set_clk(rs, div); | 504 | spi_set_clk(rs, div); |
497 | 505 | ||
498 | dev_dbg(rs->dev, "cr0 0x%x, div %d\n", | 506 | dev_dbg(rs->dev, "cr0 0x%x, div %d\n", cr0, div); |
499 | cr0, div); | ||
500 | 507 | ||
501 | spi_enable_chip(rs, 1); | 508 | spi_enable_chip(rs, 1); |
502 | } | 509 | } |
503 | 510 | ||
504 | static int rockchip_spi_transfer_one(struct spi_master *master, | 511 | static int rockchip_spi_transfer_one( |
512 | struct spi_master *master, | ||
505 | struct spi_device *spi, | 513 | struct spi_device *spi, |
506 | struct spi_transfer *xfer) | 514 | struct spi_transfer *xfer) |
507 | { | 515 | { |
@@ -556,8 +564,8 @@ static int rockchip_spi_transfer_one(struct spi_master *master, | |||
556 | } | 564 | } |
557 | 565 | ||
558 | static bool rockchip_spi_can_dma(struct spi_master *master, | 566 | static bool rockchip_spi_can_dma(struct spi_master *master, |
559 | struct spi_device *spi, | 567 | struct spi_device *spi, |
560 | struct spi_transfer *xfer) | 568 | struct spi_transfer *xfer) |
561 | { | 569 | { |
562 | struct rockchip_spi *rs = spi_master_get_devdata(master); | 570 | struct rockchip_spi *rs = spi_master_get_devdata(master); |
563 | 571 | ||
@@ -572,10 +580,9 @@ static int rockchip_spi_probe(struct platform_device *pdev) | |||
572 | struct resource *mem; | 580 | struct resource *mem; |
573 | 581 | ||
574 | master = spi_alloc_master(&pdev->dev, sizeof(struct rockchip_spi)); | 582 | master = spi_alloc_master(&pdev->dev, sizeof(struct rockchip_spi)); |
575 | if (!master) { | 583 | if (!master) |
576 | dev_err(&pdev->dev, "No memory for spi_master\n"); | ||
577 | return -ENOMEM; | 584 | return -ENOMEM; |
578 | } | 585 | |
579 | platform_set_drvdata(pdev, master); | 586 | platform_set_drvdata(pdev, master); |
580 | 587 | ||
581 | rs = spi_master_get_devdata(master); | 588 | rs = spi_master_get_devdata(master); |
@@ -676,8 +683,6 @@ static int rockchip_spi_probe(struct platform_device *pdev) | |||
676 | goto err_register_master; | 683 | goto err_register_master; |
677 | } | 684 | } |
678 | 685 | ||
679 | dev_info(&pdev->dev, "Rockchip SPI controller initialized\n"); | ||
680 | |||
681 | return 0; | 686 | return 0; |
682 | 687 | ||
683 | err_register_master: | 688 | err_register_master: |
@@ -817,6 +822,6 @@ static struct platform_driver rockchip_spi_driver = { | |||
817 | 822 | ||
818 | module_platform_driver(rockchip_spi_driver); | 823 | module_platform_driver(rockchip_spi_driver); |
819 | 824 | ||
820 | MODULE_AUTHOR("addy ke <addy.ke@rock-chips.com>"); | 825 | MODULE_AUTHOR("Addy Ke <addy.ke@rock-chips.com>"); |
821 | MODULE_DESCRIPTION("ROCKCHIP SPI Controller Driver"); | 826 | MODULE_DESCRIPTION("ROCKCHIP SPI Controller Driver"); |
822 | MODULE_LICENSE("GPL v2"); | 827 | MODULE_LICENSE("GPL v2"); |