summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlek Du <alek.du@intel.com>2011-03-30 17:09:53 +0200
committerGrant Likely <grant.likely@secretlab.ca>2011-03-31 05:31:48 +0200
commit8a33a373e5ffb6040c58ff41ea48ba21d5f8b5e9 (patch)
tree367a5267512482dc65d0a883156a8dcf0f2e596b
parentspi/dw_spi: unify the low level read/write routines (diff)
downloadlinux-8a33a373e5ffb6040c58ff41ea48ba21d5f8b5e9.tar.xz
linux-8a33a373e5ffb6040c58ff41ea48ba21d5f8b5e9.zip
spi/dw_spi: remove the un-necessary flush()
The flush() is used to drain all the left data in rx fifo, currently is is always called together with disabling hw. But from spec, disabling hw will also reset all the fifo, so flush() is not needed. Signed-off-by: Alek Du <alek.du@intel.com> Signed-off-by: Feng Tang <feng.tang@intel.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
-rw-r--r--drivers/spi/dw_spi.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/drivers/spi/dw_spi.c b/drivers/spi/dw_spi.c
index c4fca3d9d45f..d3aaf8db86cc 100644
--- a/drivers/spi/dw_spi.c
+++ b/drivers/spi/dw_spi.c
@@ -173,17 +173,6 @@ static void wait_till_not_busy(struct dw_spi *dws)
"DW SPI: Status keeps busy for 5000us after a read/write!\n");
}
-static void flush(struct dw_spi *dws)
-{
- while (dw_readw(dws, sr) & SR_RF_NOT_EMPT) {
- dw_readw(dws, dr);
- cpu_relax();
- }
-
- wait_till_not_busy(dws);
-}
-
-
static int dw_writer(struct dw_spi *dws)
{
u16 txw = 0;
@@ -297,8 +286,7 @@ static void giveback(struct dw_spi *dws)
static void int_error_stop(struct dw_spi *dws, const char *msg)
{
- /* Stop and reset hw */
- flush(dws);
+ /* Stop the hw */
spi_enable_chip(dws, 0);
dev_err(&dws->master->dev, "%s\n", msg);
@@ -800,7 +788,6 @@ static void spi_hw_init(struct dw_spi *dws)
spi_enable_chip(dws, 0);
spi_mask_intr(dws, 0xff);
spi_enable_chip(dws, 1);
- flush(dws);
/*
* Try to detect the FIFO depth if not set by interface driver,