[PATCH] spi/mpc52xx: check for invalid PSC usage
Wolfram Sang
w.sang at pengutronix.de
Fri Oct 23 22:25:57 EST 2009
Add checks to allow only PSCs capable of SPI.
Also turn printk to dev_err while we are here.
Signed-off-by: Wolfram Sang <w.sang at pengutronix.de>
Cc: Grant Likely <grant.likely at secretlab.ca>
Cc: David Brownell <dbrownell at users.sourceforge.net>
---
Grant, if the patch is OK, maybe it can also go via your tree?
drivers/spi/mpc52xx_psc_spi.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c
index 1b74d5c..1d11a6d 100644
--- a/drivers/spi/mpc52xx_psc_spi.c
+++ b/drivers/spi/mpc52xx_psc_spi.c
@@ -467,19 +467,18 @@ static int __init mpc52xx_psc_spi_of_probe(struct of_device *op,
regaddr_p = of_get_address(op->node, 0, &size64, NULL);
if (!regaddr_p) {
- printk(KERN_ERR "Invalid PSC address\n");
+ dev_err(&op->dev, "Invalid PSC address\n");
return -EINVAL;
}
regaddr64 = of_translate_address(op->node, regaddr_p);
- /* get PSC id (1..6, used by port_config) */
+ /* get PSC id (only 1,2,3,6 can do SPI) */
if (op->dev.platform_data == NULL) {
const u32 *psc_nump;
psc_nump = of_get_property(op->node, "cell-index", NULL);
- if (!psc_nump || *psc_nump > 5) {
- printk(KERN_ERR "mpc52xx_psc_spi: Device node %s has invalid "
- "cell-index property\n", op->node->full_name);
+ if (!psc_nump || (*psc_nump > 2 && *psc_nump != 5)) {
+ dev_err(&op->dev, "PSC can't do SPI\n");
return -EINVAL;
}
id = *psc_nump + 1;
--
1.6.3.3
More information about the Linuxppc-dev
mailing list