Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: mfd: Support additional parent IDs for wm831x mfd: Fix ab8500-core interrupt ffs bit bug mfd: Supply IRQ base for WM832x devices watchdog: Fix null pointer dereference while accessing rdc321x platform_data gpio: Fix null pointer dereference while accessing rdc321x platform_data
This commit is contained in:
commit
ca5f73a05e
|
@ -135,7 +135,7 @@ static int __devinit rdc321x_gpio_probe(struct platform_device *pdev)
|
|||
struct rdc321x_gpio *rdc321x_gpio_dev;
|
||||
struct rdc321x_gpio_pdata *pdata;
|
||||
|
||||
pdata = pdev->dev.platform_data;
|
||||
pdata = platform_get_drvdata(pdev);
|
||||
if (!pdata) {
|
||||
dev_err(&pdev->dev, "no platform data supplied\n");
|
||||
return -ENODEV;
|
||||
|
|
|
@ -303,7 +303,7 @@ static irqreturn_t ab8500_irq(int irq, void *dev)
|
|||
continue;
|
||||
|
||||
do {
|
||||
int bit = __ffs(status);
|
||||
int bit = __ffs(value);
|
||||
int line = i * 8 + bit;
|
||||
|
||||
handle_nested_irq(ab8500->irq_base + line);
|
||||
|
|
|
@ -1455,7 +1455,11 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
|
|||
dev_err(wm831x->dev, "Failed to read parent ID: %d\n", ret);
|
||||
goto err;
|
||||
}
|
||||
if (ret != 0x6204) {
|
||||
switch (ret) {
|
||||
case 0x6204:
|
||||
case 0x6246:
|
||||
break;
|
||||
default:
|
||||
dev_err(wm831x->dev, "Device is not a WM831x: ID %x\n", ret);
|
||||
ret = -EINVAL;
|
||||
goto err;
|
||||
|
@ -1620,7 +1624,7 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
|
|||
case WM8325:
|
||||
ret = mfd_add_devices(wm831x->dev, -1,
|
||||
wm8320_devs, ARRAY_SIZE(wm8320_devs),
|
||||
NULL, 0);
|
||||
NULL, wm831x->irq_base);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -231,7 +231,7 @@ static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
|
|||
struct resource *r;
|
||||
struct rdc321x_wdt_pdata *pdata;
|
||||
|
||||
pdata = pdev->dev.platform_data;
|
||||
pdata = platform_get_drvdata(pdev);
|
||||
if (!pdata) {
|
||||
dev_err(&pdev->dev, "no platform data supplied\n");
|
||||
return -ENODEV;
|
||||
|
|
Loading…
Reference in New Issue