The patch titled spi_bfin: wait for tx to complete on full duplex paths has been removed from the -mm tree. Its filename was spi_bfin-wait-for-tx-to-complete-on-full-duplex-paths.patch This patch was dropped because it was merged into mainline or a subsystem tree The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: spi_bfin: wait for tx to complete on full duplex paths From: Bryan Wu <bryan.wu@xxxxxxxxxx> Full duplex SPI operation should not read a dummy byte at the first transfer. Bug and fix by Jean-Christian de Rivaz <jc@xxxxxxxx>: http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=3678 Signed-off-by: Jean-Christian de Rivaz <jc@xxxxxxxx> Signed-off-by: Bryan Wu <bryan.wu@xxxxxxxxxx> Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/spi/spi_bfin5xx.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff -puN drivers/spi/spi_bfin5xx.c~spi_bfin-wait-for-tx-to-complete-on-full-duplex-paths drivers/spi/spi_bfin5xx.c --- a/drivers/spi/spi_bfin5xx.c~spi_bfin-wait-for-tx-to-complete-on-full-duplex-paths +++ a/drivers/spi/spi_bfin5xx.c @@ -358,14 +358,10 @@ static void u8_cs_chg_reader(struct driv static void u8_duplex(struct driver_data *drv_data) { - /* poll for SPI completion before start */ - while (!(read_STAT(drv_data) & BIT_STAT_SPIF)) - cpu_relax(); - /* in duplex mode, clk is triggered by writing of TDBR */ while (drv_data->rx < drv_data->rx_end) { write_TDBR(drv_data, (*(u8 *) (drv_data->tx))); - while (read_STAT(drv_data) & BIT_STAT_TXS) + while (!(read_STAT(drv_data) & BIT_STAT_SPIF)) cpu_relax(); while (!(read_STAT(drv_data) & BIT_STAT_RXS)) cpu_relax(); @@ -495,14 +491,10 @@ static void u16_cs_chg_reader(struct dri static void u16_duplex(struct driver_data *drv_data) { - /* poll for SPI completion before start */ - while (!(read_STAT(drv_data) & BIT_STAT_SPIF)) - cpu_relax(); - /* in duplex mode, clk is triggered by writing of TDBR */ while (drv_data->tx < drv_data->tx_end) { write_TDBR(drv_data, (*(u16 *) (drv_data->tx))); - while (read_STAT(drv_data) & BIT_STAT_TXS) + while (!(read_STAT(drv_data) & BIT_STAT_SPIF)) cpu_relax(); while (!(read_STAT(drv_data) & BIT_STAT_RXS)) cpu_relax(); @@ -516,15 +508,11 @@ static void u16_cs_chg_duplex(struct dri { struct chip_data *chip = drv_data->cur_chip; - /* poll for SPI completion before start */ - while (!(read_STAT(drv_data) & BIT_STAT_SPIF)) - cpu_relax(); - while (drv_data->tx < drv_data->tx_end) { cs_active(drv_data, chip); write_TDBR(drv_data, (*(u16 *) (drv_data->tx))); - while (read_STAT(drv_data) & BIT_STAT_TXS) + while (!(read_STAT(drv_data) & BIT_STAT_SPIF)) cpu_relax(); while (!(read_STAT(drv_data) & BIT_STAT_RXS)) cpu_relax(); _ Patches currently in -mm which might be from bryan.wu@xxxxxxxxxx are origin.patch git-mtd.patch blackfin-serial-driver-this-driver-enable-sports-on-blackfin-emulate-uart.patch git-watchdog.patch sanitize-the-type-of-struct-useru_ar0.patch add-cmpxchg_local-to-blackfin-replace-__cmpxchg-by-generic-cmpxchg.patch d_path-make-d_path-use-a-struct-path.patch d_path-make-d_path-use-a-struct-path-fix.patch procfs-constify-function-pointer-tables.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html