* [PATCH 2/7] mfd: max8925: fix mfd device register failure @ 2012-11-06 7:38 Qing Xu 2012-11-23 7:14 ` Qing Xu 2012-11-23 8:41 ` Haojian Zhuang 0 siblings, 2 replies; 4+ messages in thread From: Qing Xu @ 2012-11-06 7:38 UTC (permalink / raw) To: qingx, sameo, grant.likely, rob.herring, haojian.zhuang, cxie4, linux-kernel, devicetree-discuss From: Qing Xu <qingx@marvell.com> 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 Signed-off-by: Qing Xu <qingx@marvell.com> --- 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 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/7] mfd: max8925: fix mfd device register failure 2012-11-06 7:38 [PATCH 2/7] mfd: max8925: fix mfd device register failure Qing Xu @ 2012-11-23 7:14 ` Qing Xu 2012-11-23 8:41 ` Haojian Zhuang 1 sibling, 0 replies; 4+ messages in thread From: Qing Xu @ 2012-11-23 7:14 UTC (permalink / raw) To: Qing Xu Cc: sameo@linux.intel.com, grant.likely@secretlab.ca, rob.herring@calxeda.com, haojian.zhuang@gmail.com, Chao Xie, linux-kernel@vger.kernel.org, devicetree-discuss@lists.ozlabs.org On 11/06/2012 03:38 PM, Qing Xu wrote: > From: Qing Xu <qingx@marvell.com> > > 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 > > Signed-off-by: Qing Xu <qingx@marvell.com> > --- > drivers/mfd/max8925-core.c | 22 ++++++++++------------ > 1 files changed, 10 insertions(+), 12 deletions(-) Hi Haojian, Sameo, Could you help to review my patches? Can it be merged? Thanks a lot! -Qing ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/7] mfd: max8925: fix mfd device register failure 2012-11-06 7:38 [PATCH 2/7] mfd: max8925: fix mfd device register failure Qing Xu 2012-11-23 7:14 ` Qing Xu @ 2012-11-23 8:41 ` Haojian Zhuang 2012-11-27 10:02 ` Qing Xu 1 sibling, 1 reply; 4+ messages in thread From: Haojian Zhuang @ 2012-11-23 8:41 UTC (permalink / raw) To: Qing Xu Cc: Samuel Ortiz, Grant Likely, Rob Herring, cxie4, linux-kernel@vger.kernel.org, devicetree-discuss On Tue, Nov 6, 2012 at 3:38 PM, Qing Xu <qingx@marvell.com> wrote: > From: Qing Xu <qingx@marvell.com> > > 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. > Signed-off-by: Qing Xu <qingx@marvell.com> > --- > 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 > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/7] mfd: max8925: fix mfd device register failure 2012-11-23 8:41 ` Haojian Zhuang @ 2012-11-27 10:02 ` Qing Xu 0 siblings, 0 replies; 4+ messages in thread From: Qing Xu @ 2012-11-27 10:02 UTC (permalink / raw) To: Haojian Zhuang Cc: Samuel Ortiz, Grant Likely, Rob Herring, Chao Xie, linux-kernel@vger.kernel.org, devicetree-discuss@lists.ozlabs.org On 11/23/2012 04:41 PM, Haojian Zhuang wrote: > On Tue, Nov 6, 2012 at 3:38 PM, Qing Xu <qingx@marvell.com> wrote: >> From: Qing Xu <qingx@marvell.com> >> >> 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. > oh, we can not remove those resources, it is include in mfd_cell, such as : static struct resource rtc_resources[] = { { ... }, }; static struct mfd_cell rtc_devs[] = { { .name = "max8925-rtc", ... .resources = &rtc_resources[0], ... }, }; In the struct, the resources is for rtc dev itself's resource, but in: ret = mfd_add_devices(chip->dev, 0, &rtc_devs[0], ARRAY_SIZE(rtc_devs), &rtc_resources[0], chip->irq_base, NULL); the 5th parameter, it is for rtc's child, not rtc itself, we should remove it to NULL, otherwise, device register will find conflict on child's and parent's resource. >> Signed-off-by: Qing Xu <qingx@marvell.com> >> --- >> 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 >> ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-11-27 10:02 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-11-06 7:38 [PATCH 2/7] mfd: max8925: fix mfd device register failure Qing Xu 2012-11-23 7:14 ` Qing Xu 2012-11-23 8:41 ` Haojian Zhuang 2012-11-27 10:02 ` Qing Xu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).