Title: [9138] trunk/drivers/spi/bfin_sport_spi.c: bfin_sport_spi: setback default speed after every changed-speed transfer.
Revision
9138
Author
lliubbo
Date
2010-09-14 22:31:45 -0400 (Tue, 14 Sep 2010)

Log Message

bfin_sport_spi: setback default speed after every changed-speed transfer.

As mike pointed out, the SPORT/SPI needs to use the per-transfer speed *only
if it has been specified*, but it needs to do it for that transfer only.
then it must use the default speed set up by the bfin_sport_spi_setup
function for everything else.

This problem was introduced by my last commit #9137, this commit fix it.

Modified Paths

Diff

Modified: trunk/drivers/spi/bfin_sport_spi.c (9137 => 9138)


--- trunk/drivers/spi/bfin_sport_spi.c	2010-09-14 10:29:03 UTC (rev 9137)
+++ trunk/drivers/spi/bfin_sport_spi.c	2010-09-15 02:31:45 UTC (rev 9138)
@@ -342,6 +342,7 @@
 	unsigned int bits_per_word;
 	u32 tranf_success = 1;
 	u8 full_duplex = 0;
+	u16 old_baud = 0;
 
 	/* Get current state information */
 	message = drv_data->cur_msg;
@@ -349,6 +350,7 @@
 	chip = drv_data->cur_chip;
 
 	if (transfer->speed_hz) {
+		old_baud = chip->baud;
 		chip->baud = hz_to_spi_baud(transfer->speed_hz);
 		drv_data->regs->tclkdiv = chip->baud;
 		SSYNC();
@@ -463,6 +465,10 @@
 			bfin_sport_spi_cs_deactive(chip);
 	}
 
+	if (transfer->speed_hz) {
+		drv_data->regs->tclkdiv = old_baud;
+		SSYNC();
+	}
 	/* Schedule next transfer tasklet */
 	tasklet_schedule(&drv_data->pump_transfers);
 }
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to