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

Commit 73f8be29 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull mfd fixes from Samuel Ortiz:
 "This is the remaining MFD fixes for 3.6, with 5 pending fixes:

   - A tps65217 build error fix.
   - A lcp_ich regression fix caused by the MFD driver failing to
     initialize the watchdog sub device due to ACPI conflicts.
   - 2 MAX77693 interrupt handling bug fixes.
   - An MFD core fix, adding an IRQ domain argument to the MFD device
     addition API in order to prevent silent and potentially harmful
     remapping behaviour changes for drivers supporting non-DT
     platforms."

* tag 'mfd-for-linus-3.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
  mfd: MAX77693: Fix NULL pointer error when initializing irqs
  mfd: MAX77693: Fix interrupt handling bug
  mfd: core: Push irqdomain mapping out into devices
  mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver
  mfd: Move tps65217 regulator plat data handling to regulator
parents c500ce38 b186b124
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -669,7 +669,11 @@ static int __devinit max77693_muic_probe(struct platform_device *pdev)
	}
	info->dev = &pdev->dev;
	info->max77693 = max77693;
	info->max77693->regmap_muic = regmap_init_i2c(info->max77693->muic,
	if (info->max77693->regmap_muic)
		dev_dbg(&pdev->dev, "allocate register map\n");
	else {
		info->max77693->regmap_muic = devm_regmap_init_i2c(
						info->max77693->muic,
						&max77693_muic_regmap_config);
		if (IS_ERR(info->max77693->regmap_muic)) {
			ret = PTR_ERR(info->max77693->regmap_muic);
@@ -677,6 +681,7 @@ static int __devinit max77693_muic_probe(struct platform_device *pdev)
				"failed to allocate register map: %d\n", ret);
			goto err_regmap;
		}
	}
	platform_set_drvdata(pdev, info);
	mutex_init(&info->mutex);

+3 −2
Original line number Diff line number Diff line
@@ -470,7 +470,8 @@ static int __devinit device_800_init(struct pm80x_chip *chip,

	ret =
	    mfd_add_devices(chip->dev, 0, &onkey_devs[0],
			    ARRAY_SIZE(onkey_devs), &onkey_resources[0], 0);
			    ARRAY_SIZE(onkey_devs), &onkey_resources[0], 0,
			    NULL);
	if (ret < 0) {
		dev_err(chip->dev, "Failed to add onkey subdev\n");
		goto out_dev;
@@ -481,7 +482,7 @@ static int __devinit device_800_init(struct pm80x_chip *chip,
		rtc_devs[0].platform_data = pdata->rtc;
		rtc_devs[0].pdata_size = sizeof(struct pm80x_rtc_pdata);
		ret = mfd_add_devices(chip->dev, 0, &rtc_devs[0],
				      ARRAY_SIZE(rtc_devs), NULL, 0);
				      ARRAY_SIZE(rtc_devs), NULL, 0, NULL);
		if (ret < 0) {
			dev_err(chip->dev, "Failed to add rtc subdev\n");
			goto out_dev;
+2 −1
Original line number Diff line number Diff line
@@ -216,7 +216,8 @@ static int __devinit device_805_init(struct pm80x_chip *chip)
	}

	ret = mfd_add_devices(chip->dev, 0, &codec_devs[0],
			      ARRAY_SIZE(codec_devs), &codec_resources[0], 0);
			      ARRAY_SIZE(codec_devs), &codec_resources[0], 0,
			      NULL);
	if (ret < 0) {
		dev_err(chip->dev, "Failed to add codec subdev\n");
		goto out_codec;
+11 −10
Original line number Diff line number Diff line
@@ -637,7 +637,7 @@ static void __devinit device_bk_init(struct pm860x_chip *chip,
			bk_devs[i].resources = &bk_resources[j];
			ret = mfd_add_devices(chip->dev, 0,
					      &bk_devs[i], 1,
					      &bk_resources[j], 0);
					      &bk_resources[j], 0, NULL);
			if (ret < 0) {
				dev_err(chip->dev, "Failed to add "
					"backlight subdev\n");
@@ -672,7 +672,7 @@ static void __devinit device_led_init(struct pm860x_chip *chip,
			led_devs[i].resources = &led_resources[j],
			ret = mfd_add_devices(chip->dev, 0,
					      &led_devs[i], 1,
					      &led_resources[j], 0);
					      &led_resources[j], 0, NULL);
			if (ret < 0) {
				dev_err(chip->dev, "Failed to add "
					"led subdev\n");
@@ -709,7 +709,7 @@ static void __devinit device_regulator_init(struct pm860x_chip *chip,
		regulator_devs[i].resources = &regulator_resources[seq];

		ret = mfd_add_devices(chip->dev, 0, &regulator_devs[i], 1,
				      &regulator_resources[seq], 0);
				      &regulator_resources[seq], 0, NULL);
		if (ret < 0) {
			dev_err(chip->dev, "Failed to add regulator subdev\n");
			goto out;
@@ -733,7 +733,7 @@ static void __devinit device_rtc_init(struct pm860x_chip *chip,
	rtc_devs[0].resources = &rtc_resources[0];
	ret = mfd_add_devices(chip->dev, 0, &rtc_devs[0],
			      ARRAY_SIZE(rtc_devs), &rtc_resources[0],
			      chip->irq_base);
			      chip->irq_base, NULL);
	if (ret < 0)
		dev_err(chip->dev, "Failed to add rtc subdev\n");
}
@@ -752,7 +752,7 @@ static void __devinit device_touch_init(struct pm860x_chip *chip,
	touch_devs[0].resources = &touch_resources[0];
	ret = mfd_add_devices(chip->dev, 0, &touch_devs[0],
			      ARRAY_SIZE(touch_devs), &touch_resources[0],
			      chip->irq_base);
			      chip->irq_base, NULL);
	if (ret < 0)
		dev_err(chip->dev, "Failed to add touch subdev\n");
}
@@ -770,7 +770,7 @@ static void __devinit device_power_init(struct pm860x_chip *chip,
	power_devs[0].num_resources = ARRAY_SIZE(battery_resources);
	power_devs[0].resources = &battery_resources[0],
	ret = mfd_add_devices(chip->dev, 0, &power_devs[0], 1,
			      &battery_resources[0], chip->irq_base);
			      &battery_resources[0], chip->irq_base, NULL);
	if (ret < 0)
		dev_err(chip->dev, "Failed to add battery subdev\n");

@@ -779,7 +779,7 @@ static void __devinit device_power_init(struct pm860x_chip *chip,
	power_devs[1].num_resources = ARRAY_SIZE(charger_resources);
	power_devs[1].resources = &charger_resources[0],
	ret = mfd_add_devices(chip->dev, 0, &power_devs[1], 1,
			      &charger_resources[0], chip->irq_base);
			      &charger_resources[0], chip->irq_base, NULL);
	if (ret < 0)
		dev_err(chip->dev, "Failed to add charger subdev\n");

@@ -788,7 +788,7 @@ static void __devinit device_power_init(struct pm860x_chip *chip,
	power_devs[2].num_resources = ARRAY_SIZE(preg_resources);
	power_devs[2].resources = &preg_resources[0],
	ret = mfd_add_devices(chip->dev, 0, &power_devs[2], 1,
			      &preg_resources[0], chip->irq_base);
			      &preg_resources[0], chip->irq_base, NULL);
	if (ret < 0)
		dev_err(chip->dev, "Failed to add preg subdev\n");
}
@@ -802,7 +802,7 @@ static void __devinit device_onkey_init(struct pm860x_chip *chip,
	onkey_devs[0].resources = &onkey_resources[0],
	ret = mfd_add_devices(chip->dev, 0, &onkey_devs[0],
			      ARRAY_SIZE(onkey_devs), &onkey_resources[0],
			      chip->irq_base);
			      chip->irq_base, NULL);
	if (ret < 0)
		dev_err(chip->dev, "Failed to add onkey subdev\n");
}
@@ -815,7 +815,8 @@ static void __devinit device_codec_init(struct pm860x_chip *chip,
	codec_devs[0].num_resources = ARRAY_SIZE(codec_resources);
	codec_devs[0].resources = &codec_resources[0],
	ret = mfd_add_devices(chip->dev, 0, &codec_devs[0],
			      ARRAY_SIZE(codec_devs), &codec_resources[0], 0);
			      ARRAY_SIZE(codec_devs), &codec_resources[0], 0,
			      NULL);
	if (ret < 0)
		dev_err(chip->dev, "Failed to add codec subdev\n");
}
+1 −1
Original line number Diff line number Diff line
@@ -424,7 +424,7 @@ static int aat2870_i2c_probe(struct i2c_client *client,
	}

	ret = mfd_add_devices(aat2870->dev, 0, aat2870_devs,
			      ARRAY_SIZE(aat2870_devs), NULL, 0);
			      ARRAY_SIZE(aat2870_devs), NULL, 0, NULL);
	if (ret != 0) {
		dev_err(aat2870->dev, "Failed to add subdev: %d\n", ret);
		goto out_disable;
Loading