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