spi: dw-mid: clear BUSY flag fist and test other one
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 6 Mar 2015 12:42:01 +0000 (14:42 +0200)
committerMark Brown <broonie@kernel.org>
Sat, 7 Mar 2015 11:22:02 +0000 (11:22 +0000)
commit854d2f241d71f6ca08ccde30e6c7c2e403363e52
tree28b2c40697eb3e3e316021541793ed646d177f69
parentc9dafb27c84412fe4b17c3b94cc4ffeef5df1833
spi: dw-mid: clear BUSY flag fist and test other one

The logic of DMA completion is broken now since test_and_clear_bit() never
returns the other bit is set. It means condition are always false and we have
spi_finalize_current_transfer() called per each DMA completion which is wrong.

The patch fixes logic by clearing BUSY bit first and then check for the other
one.

Fixes: 30c8eb52cc4a (spi: dw-mid: split rx and tx callbacks when DMA)
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
drivers/spi/spi-dw-mid.c