Re: [PATCH 2/7] mfd: max8925: fix mfd device register failure
From: Haojian Zhuang <haojian.zhuang@gmail.com>
Date: 2012-11-23 08:41:58
Also in:
lkml
On Tue, Nov 6, 2012 at 3:38 PM, Qing Xu [off-list ref] wrote:
From: Qing Xu <redacted> we encounter rtc/power/touch driver registry failure, root cause it is resources confilict in insert_resouce, solved by changing mfd_add_devices 5th parameter to NULL
Since resources are not used in power/rtc driver and touch driver isn't implemented, it's OK to avoid use resources. Please remove those resources in max8925-core.c also.
quoted hunk ↗ jump to hunk
Signed-off-by: Qing Xu <redacted> --- drivers/mfd/max8925-core.c | 22 ++++++++++------------ 1 files changed, 10 insertions(+), 12 deletions(-)diff --git a/drivers/mfd/max8925-core.c b/drivers/mfd/max8925-core.c index dcc218a..b1eacae 100644 --- a/drivers/mfd/max8925-core.c +++ b/drivers/mfd/max8925-core.c@@ -873,7 +873,7 @@ int __devinit max8925_device_init(struct max8925_chip *chip, ret = mfd_add_devices(chip->dev, 0, &rtc_devs[0], ARRAY_SIZE(rtc_devs), - &rtc_resources[0], chip->irq_base, NULL); + NULL, chip->irq_base, NULL); if (ret < 0) { dev_err(chip->dev, "Failed to add rtc subdev\n"); goto out;@@ -881,7 +881,7 @@ int __devinit max8925_device_init(struct max8925_chip *chip, ret = mfd_add_devices(chip->dev, 0, &onkey_devs[0], ARRAY_SIZE(onkey_devs), - &onkey_resources[0], 0, NULL); + NULL, 0, NULL); if (ret < 0) { dev_err(chip->dev, "Failed to add onkey subdev\n"); goto out_dev;@@ -900,21 +900,19 @@ int __devinit max8925_device_init(struct max8925_chip *chip, goto out_dev; } - if (pdata && pdata->power) { - ret = mfd_add_devices(chip->dev, 0, &power_devs[0], - ARRAY_SIZE(power_devs), - &power_supply_resources[0], 0, NULL); - if (ret < 0) { - dev_err(chip->dev, "Failed to add power supply " - "subdev\n"); - goto out_dev; - } + ret = mfd_add_devices(chip->dev, 0, &power_devs[0], + ARRAY_SIZE(power_devs), + NULL, 0, NULL); + if (ret < 0) { + dev_err(chip->dev, "Failed to add power supply " + "subdev, err = %d\n", ret); + goto out_dev; } if (pdata && pdata->touch) { ret = mfd_add_devices(chip->dev, 0, &touch_devs[0], ARRAY_SIZE(touch_devs), - &touch_resources[0], 0, NULL); + NULL, chip->tsc_irq_base, NULL); if (ret < 0) { dev_err(chip->dev, "Failed to add touch subdev\n"); goto out_dev; --1.7.0.4