diff mbox

Clear control bits in drivers/spi/spi_bfin5xx.c as necessary

Message ID DA80C3E6C10BE94E8FCACEB239C2FEE46645317E77@EXVS01.olin.edu (mailing list archive)
State Rejected
Headers show

Commit Message

James Getzendanner Dec. 18, 2009, 7:29 a.m. UTC
None
diff mbox

Patch

--- linux-2.6.32.1/drivers/spi/spi_bfin5xx.c.orig	2009-12-14 12:47:25.000000000 -0500
+++ linux-2.6.32.1/drivers/spi/spi_bfin5xx.c	2009-12-18 00:27:10.000000000 -0500
@@ -1051,10 +1051,16 @@  static int bfin_spi_setup(struct spi_dev
 	/* translate common spi framework into our register */
 	if (spi->mode & SPI_CPOL)
 		chip->ctl_reg |= CPOL;
+	else
+		chip->ctl_reg &= ~CPOL;
 	if (spi->mode & SPI_CPHA)
 		chip->ctl_reg |= CPHA;
+	else
+		chip->ctl_reg &= ~CPHA;
 	if (spi->mode & SPI_LSB_FIRST)
 		chip->ctl_reg |= LSBF;
+	else
+		chip->ctl_reg &= ~LSBF;
 	/* we dont support running in slave mode (yet?) */
 	chip->ctl_reg |= MSTR;
 
@@ -1106,6 +1112,7 @@  static int bfin_spi_setup(struct spi_dev
 			bfin_spi_u8_cs_chg_writer : bfin_spi_u8_writer;
 		chip->duplex = chip->cs_change_per_word ?
 			bfin_spi_u8_cs_chg_duplex : bfin_spi_u8_duplex;
+		chip->ctl_reg &= ~SIZE;
 		break;
 
 	case 16:
@@ -1117,6 +1124,7 @@  static int bfin_spi_setup(struct spi_dev
 			bfin_spi_u16_cs_chg_writer : bfin_spi_u16_writer;
 		chip->duplex = chip->cs_change_per_word ?
 			bfin_spi_u16_cs_chg_duplex : bfin_spi_u16_duplex;
+		chip->ctl_reg |= SIZE;
 		break;
 
 	default: