From: Qing Xu <qingx@marvell.com>
To: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>,
Grant Likely <grant.likely@secretlab.ca>,
Rob Herring <rob.herring@calxeda.com>,
Chao Xie <cxie4@marvell.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devicetree-discuss@lists.ozlabs.org"
<devicetree-discuss@lists.ozlabs.org>
Subject: Re: [PATCH 2/7] mfd: max8925: fix mfd device register failure
Date: Tue, 27 Nov 2012 18:02:57 +0800 [thread overview]
Message-ID: <50B48FD1.4020104@marvell.com> (raw)
In-Reply-To: <CAN1soZyGVaASo2zakxr9EgMdSqVvQyVt0bLDOmFNmN9+NhXWUg@mail.gmail.com>
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
>>
prev parent reply other threads:[~2012-11-27 10:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
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 message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50B48FD1.4020104@marvell.com \
--to=qingx@marvell.com \
--cc=cxie4@marvell.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=haojian.zhuang@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rob.herring@calxeda.com \
--cc=sameo@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.