Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca5f73a0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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
parents 97dbf37d b93cef55
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -135,7 +135,7 @@ static int __devinit rdc321x_gpio_probe(struct platform_device *pdev)
	struct rdc321x_gpio *rdc321x_gpio_dev;
	struct rdc321x_gpio *rdc321x_gpio_dev;
	struct rdc321x_gpio_pdata *pdata;
	struct rdc321x_gpio_pdata *pdata;


	pdata = pdev->dev.platform_data;
	pdata = platform_get_drvdata(pdev);
	if (!pdata) {
	if (!pdata) {
		dev_err(&pdev->dev, "no platform data supplied\n");
		dev_err(&pdev->dev, "no platform data supplied\n");
		return -ENODEV;
		return -ENODEV;
+1 −1
Original line number Original line Diff line number Diff line
@@ -303,7 +303,7 @@ static irqreturn_t ab8500_irq(int irq, void *dev)
			continue;
			continue;


		do {
		do {
			int bit = __ffs(status);
			int bit = __ffs(value);
			int line = i * 8 + bit;
			int line = i * 8 + bit;


			handle_nested_irq(ab8500->irq_base + line);
			handle_nested_irq(ab8500->irq_base + line);
+6 −2
Original line number Original line Diff line number Diff 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);
		dev_err(wm831x->dev, "Failed to read parent ID: %d\n", ret);
		goto err;
		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);
		dev_err(wm831x->dev, "Device is not a WM831x: ID %x\n", ret);
		ret = -EINVAL;
		ret = -EINVAL;
		goto err;
		goto err;
@@ -1620,7 +1624,7 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
	case WM8325:
	case WM8325:
		ret = mfd_add_devices(wm831x->dev, -1,
		ret = mfd_add_devices(wm831x->dev, -1,
				      wm8320_devs, ARRAY_SIZE(wm8320_devs),
				      wm8320_devs, ARRAY_SIZE(wm8320_devs),
				      NULL, 0);
				      NULL, wm831x->irq_base);
		break;
		break;


	default:
	default:
+1 −1
Original line number Original line Diff line number Diff line
@@ -231,7 +231,7 @@ static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
	struct resource *r;
	struct resource *r;
	struct rdc321x_wdt_pdata *pdata;
	struct rdc321x_wdt_pdata *pdata;


	pdata = pdev->dev.platform_data;
	pdata = platform_get_drvdata(pdev);
	if (!pdata) {
	if (!pdata) {
		dev_err(&pdev->dev, "no platform data supplied\n");
		dev_err(&pdev->dev, "no platform data supplied\n");
		return -ENODEV;
		return -ENODEV;