git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix console change race exposed by CFS
[pandora-kernel.git]
/
drivers
/
spi
/
pxa2xx_spi.c
diff --git
a/drivers/spi/pxa2xx_spi.c
b/drivers/spi/pxa2xx_spi.c
index
8b41f9c
..
e51311b
100644
(file)
--- a/
drivers/spi/pxa2xx_spi.c
+++ b/
drivers/spi/pxa2xx_spi.c
@@
-1067,6
+1067,9
@@
static int transfer(struct spi_device *spi, struct spi_message *msg)
return 0;
}
return 0;
}
+/* the spi->mode bits understood by this driver: */
+#define MODEBITS (SPI_CPOL | SPI_CPHA)
+
static int setup(struct spi_device *spi)
{
struct pxa2xx_spi_chip *chip_info = NULL;
static int setup(struct spi_device *spi)
{
struct pxa2xx_spi_chip *chip_info = NULL;
@@
-1093,6
+1096,12
@@
static int setup(struct spi_device *spi)
return -EINVAL;
}
return -EINVAL;
}
+ if (spi->mode & ~MODEBITS) {
+ dev_dbg(&spi->dev, "setup: unsupported mode bits %x\n",
+ spi->mode & ~MODEBITS);
+ return -EINVAL;
+ }
+
/* Only alloc on first setup */
chip = spi_get_ctldata(spi);
if (!chip) {
/* Only alloc on first setup */
chip = spi_get_ctldata(spi);
if (!chip) {
@@
-1214,9
+1223,9
@@
static int setup(struct spi_device *spi)
return 0;
}
return 0;
}
-static void cleanup(
const
struct spi_device *spi)
+static void cleanup(struct spi_device *spi)
{
{
- struct chip_data *chip = spi_get_ctldata(
(struct spi_device *)
spi);
+ struct chip_data *chip = spi_get_ctldata(spi);
kfree(chip);
}
kfree(chip);
}