From: David Daney <david.daney-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
To: Karol Lewandowski <k.lewandowsk-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
Cc: "w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org"
<w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
"hskinnemoen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org"
<hskinnemoen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org"
<linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
Rade Bozic <rade.bozic.ext-OYasijW0DpE@public.gmane.org>,
"ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org"
<ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>,
"khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org"
<khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>,
"linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org"
<dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org"
<bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
"m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org"
<m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
"grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org"
<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>,
"kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org"
<kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
"Daney,
David"
<David.Daney-M3mlKVOIwJVv6pq1l3V1OdBPR1lH4CV8@public.gmane.org>
Subject: Re: [PATCH 2/2] i2c: Dynamically assign adapter id if it wasn't explictly specified
Date: Thu, 22 Mar 2012 09:58:10 -0700 [thread overview]
Message-ID: <4F6B5A22.1090204@cavium.com> (raw)
In-Reply-To: <4F6B4532.7090806-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
On 03/22/2012 08:28 AM, Karol Lewandowski wrote:
> On 16.03.2012 13:19, Karol Lewandowski wrote:
>
>>> Commit 488bf314b ("i2c: Allow i2c_add_numbered_adapter() to assign a
>>> bus id") reworked i2c_add_numbered_adapter() to call i2c_add_adapter()
>>> if requested bus was -1.
>
>>> This allows to simplify driver's initialization procedure as it allows
>
>>> static and dynamic adapter id registration using one function.
>>>
>>> This patch updates few more drivers (missed out in original patch) to
>>> use this functionality.
>>
>
>> [ I must have lost actual problem description while rewording
>> message itself... ]
>>
>> Problem arises when multiple drivers (or multiple instances
>> of one driver) try to assume the same fixed bus number (0).
>>
>> This simply causes i2c_add_numbered_bus() to fail.
>> Leaving -1 works perfectly, as registration function switches
>> to dynamic id registration.
>
>>> Signed-off-by: Karol Lewandowski<k.lewandowsk-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
>>> Signed-off-by: Kyungmin Park<kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
>>> ---
>>> drivers/i2c/busses/i2c-gpio.c | 7 +------
>>> drivers/i2c/busses/i2c-octeon.c | 2 +-
>>> drivers/i2c/busses/i2c-pca-platform.c | 2 +-
>>> drivers/i2c/busses/i2c-versatile.c | 9 ++-------
>>> 4 files changed, 5 insertions(+), 15 deletions(-)
>
>
> Dear Haavard, Rade, Wolfram and Russel
>
> Could you review following changes for gpio, octeon, pca-platform
> and versatile i2c controller drivers (for which you are, or were,
> maintainers)?
>
> Grant requested explicit Ack to get this merged.
>
> Thanks!
>
>>
>> diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c
>> index a651779..50a2a94 100644
>> --- a/drivers/i2c/busses/i2c-gpio.c
>> +++ b/drivers/i2c/busses/i2c-gpio.c
>> @@ -144,12 +144,7 @@ static int __devinit i2c_gpio_probe(struct platform_device *pdev)
>> adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
>> adap->dev.parent =&pdev->dev;
>>
>> - /*
>> - * If "dev->id" is negative we consider it as zero.
>> - * The reason to do so is to avoid sysfs names that only make
>> - * sense when there are multiple adapters.
>> - */
>> - adap->nr = (pdev->id != -1) ? pdev->id : 0;
>> + adap->nr = pdev->id;
>> ret = i2c_bit_add_numbered_bus(adap);
>> if (ret)
>> goto err_add_bus;
>> diff --git a/drivers/i2c/busses/i2c-octeon.c b/drivers/i2c/busses/i2c-octeon.c
>> index ee139a5..8470232 100644
>> --- a/drivers/i2c/busses/i2c-octeon.c
>> +++ b/drivers/i2c/busses/i2c-octeon.c
>> @@ -581,7 +581,7 @@ static int __devinit octeon_i2c_probe(struct platform_device *pdev)
>>
>> i2c->adap = octeon_i2c_ops;
>> i2c->adap.dev.parent =&pdev->dev;
>> - i2c->adap.nr = pdev->id>= 0 ? pdev->id : 0;
>> + i2c->adap.nr = pdev->id;
I guess the OCTEON bit seems sane enough. I don't fully understand why
this needs changing, because OCTEON platform code always passes a
non-negative pdev->id. But since you asked for it:
Acked-by: David Daney <david.daney-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
>> i2c_set_adapdata(&i2c->adap, i2c);
>> platform_set_drvdata(pdev, i2c);
>>
>> diff --git a/drivers/i2c/busses/i2c-pca-platform.c b/drivers/i2c/busses/i2c-pca-platform.c
>> index 2adbf1a..675878f 100644
>> --- a/drivers/i2c/busses/i2c-pca-platform.c
>> +++ b/drivers/i2c/busses/i2c-pca-platform.c
>> @@ -171,7 +171,7 @@ static int __devinit i2c_pca_pf_probe(struct platform_device *pdev)
>> i2c->io_size = resource_size(res);
>> i2c->irq = irq;
>>
>> - i2c->adap.nr = pdev->id>= 0 ? pdev->id : 0;
>> + i2c->adap.nr = pdev->id;
>> i2c->adap.owner = THIS_MODULE;
>> snprintf(i2c->adap.name, sizeof(i2c->adap.name),
>> "PCA9564/PCA9665 at 0x%08lx",
>> diff --git a/drivers/i2c/busses/i2c-versatile.c b/drivers/i2c/busses/i2c-versatile.c
>> index 6055601..9458568 100644
>> --- a/drivers/i2c/busses/i2c-versatile.c
>> +++ b/drivers/i2c/busses/i2c-versatile.c
>> @@ -102,13 +102,8 @@ static int i2c_versatile_probe(struct platform_device *dev)
>> i2c->algo = i2c_versatile_algo;
>> i2c->algo.data = i2c;
>>
>> - if (dev->id>= 0) {
>> - /* static bus numbering */
>> - i2c->adap.nr = dev->id;
>> - ret = i2c_bit_add_numbered_bus(&i2c->adap);
>> - } else
>> - /* dynamic bus numbering */
>> - ret = i2c_bit_add_bus(&i2c->adap);
>> + i2c->adap.nr = dev->id;
>> + ret = i2c_bit_add_numbered_bus(&i2c->adap);
>> if (ret>= 0) {
>> platform_set_drvdata(dev, i2c);
>> return 0;
>
>
>
WARNING: multiple messages have this Message-ID (diff)
From: David Daney <david.daney@cavium.com>
To: Karol Lewandowski <k.lewandowsk@samsung.com>
Cc: "w.sang@pengutronix.de" <w.sang@pengutronix.de>,
"hskinnemoen@gmail.com" <hskinnemoen@gmail.com>,
"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
Rade Bozic <rade.bozic.ext@nsn.com>,
"ben-linux@fluff.org" <ben-linux@fluff.org>,
"khali@linux-fr.org" <khali@linux-fr.org>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"dirk.brandewie@gmail.com" <dirk.brandewie@gmail.com>,
"bigeasy@linutronix.de" <bigeasy@linutronix.de>,
"m.szyprowski@samsung.com" <m.szyprowski@samsung.com>,
"grant.likely@secretlab.ca" <grant.likely@secretlab.ca>,
"kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
"Daney, David" <David.Daney@caviumnetworks.com>
Subject: Re: [PATCH 2/2] i2c: Dynamically assign adapter id if it wasn't explictly specified
Date: Thu, 22 Mar 2012 09:58:10 -0700 [thread overview]
Message-ID: <4F6B5A22.1090204@cavium.com> (raw)
In-Reply-To: <4F6B4532.7090806@samsung.com>
On 03/22/2012 08:28 AM, Karol Lewandowski wrote:
> On 16.03.2012 13:19, Karol Lewandowski wrote:
>
>>> Commit 488bf314b ("i2c: Allow i2c_add_numbered_adapter() to assign a
>>> bus id") reworked i2c_add_numbered_adapter() to call i2c_add_adapter()
>>> if requested bus was -1.
>
>>> This allows to simplify driver's initialization procedure as it allows
>
>>> static and dynamic adapter id registration using one function.
>>>
>>> This patch updates few more drivers (missed out in original patch) to
>>> use this functionality.
>>
>
>> [ I must have lost actual problem description while rewording
>> message itself... ]
>>
>> Problem arises when multiple drivers (or multiple instances
>> of one driver) try to assume the same fixed bus number (0).
>>
>> This simply causes i2c_add_numbered_bus() to fail.
>> Leaving -1 works perfectly, as registration function switches
>> to dynamic id registration.
>
>>> Signed-off-by: Karol Lewandowski<k.lewandowsk@samsung.com>
>>> Signed-off-by: Kyungmin Park<kyungmin.park@samsung.com>
>>> ---
>>> drivers/i2c/busses/i2c-gpio.c | 7 +------
>>> drivers/i2c/busses/i2c-octeon.c | 2 +-
>>> drivers/i2c/busses/i2c-pca-platform.c | 2 +-
>>> drivers/i2c/busses/i2c-versatile.c | 9 ++-------
>>> 4 files changed, 5 insertions(+), 15 deletions(-)
>
>
> Dear Haavard, Rade, Wolfram and Russel
>
> Could you review following changes for gpio, octeon, pca-platform
> and versatile i2c controller drivers (for which you are, or were,
> maintainers)?
>
> Grant requested explicit Ack to get this merged.
>
> Thanks!
>
>>
>> diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c
>> index a651779..50a2a94 100644
>> --- a/drivers/i2c/busses/i2c-gpio.c
>> +++ b/drivers/i2c/busses/i2c-gpio.c
>> @@ -144,12 +144,7 @@ static int __devinit i2c_gpio_probe(struct platform_device *pdev)
>> adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
>> adap->dev.parent =&pdev->dev;
>>
>> - /*
>> - * If "dev->id" is negative we consider it as zero.
>> - * The reason to do so is to avoid sysfs names that only make
>> - * sense when there are multiple adapters.
>> - */
>> - adap->nr = (pdev->id != -1) ? pdev->id : 0;
>> + adap->nr = pdev->id;
>> ret = i2c_bit_add_numbered_bus(adap);
>> if (ret)
>> goto err_add_bus;
>> diff --git a/drivers/i2c/busses/i2c-octeon.c b/drivers/i2c/busses/i2c-octeon.c
>> index ee139a5..8470232 100644
>> --- a/drivers/i2c/busses/i2c-octeon.c
>> +++ b/drivers/i2c/busses/i2c-octeon.c
>> @@ -581,7 +581,7 @@ static int __devinit octeon_i2c_probe(struct platform_device *pdev)
>>
>> i2c->adap = octeon_i2c_ops;
>> i2c->adap.dev.parent =&pdev->dev;
>> - i2c->adap.nr = pdev->id>= 0 ? pdev->id : 0;
>> + i2c->adap.nr = pdev->id;
I guess the OCTEON bit seems sane enough. I don't fully understand why
this needs changing, because OCTEON platform code always passes a
non-negative pdev->id. But since you asked for it:
Acked-by: David Daney <david.daney@cavium.com>
>> i2c_set_adapdata(&i2c->adap, i2c);
>> platform_set_drvdata(pdev, i2c);
>>
>> diff --git a/drivers/i2c/busses/i2c-pca-platform.c b/drivers/i2c/busses/i2c-pca-platform.c
>> index 2adbf1a..675878f 100644
>> --- a/drivers/i2c/busses/i2c-pca-platform.c
>> +++ b/drivers/i2c/busses/i2c-pca-platform.c
>> @@ -171,7 +171,7 @@ static int __devinit i2c_pca_pf_probe(struct platform_device *pdev)
>> i2c->io_size = resource_size(res);
>> i2c->irq = irq;
>>
>> - i2c->adap.nr = pdev->id>= 0 ? pdev->id : 0;
>> + i2c->adap.nr = pdev->id;
>> i2c->adap.owner = THIS_MODULE;
>> snprintf(i2c->adap.name, sizeof(i2c->adap.name),
>> "PCA9564/PCA9665 at 0x%08lx",
>> diff --git a/drivers/i2c/busses/i2c-versatile.c b/drivers/i2c/busses/i2c-versatile.c
>> index 6055601..9458568 100644
>> --- a/drivers/i2c/busses/i2c-versatile.c
>> +++ b/drivers/i2c/busses/i2c-versatile.c
>> @@ -102,13 +102,8 @@ static int i2c_versatile_probe(struct platform_device *dev)
>> i2c->algo = i2c_versatile_algo;
>> i2c->algo.data = i2c;
>>
>> - if (dev->id>= 0) {
>> - /* static bus numbering */
>> - i2c->adap.nr = dev->id;
>> - ret = i2c_bit_add_numbered_bus(&i2c->adap);
>> - } else
>> - /* dynamic bus numbering */
>> - ret = i2c_bit_add_bus(&i2c->adap);
>> + i2c->adap.nr = dev->id;
>> + ret = i2c_bit_add_numbered_bus(&i2c->adap);
>> if (ret>= 0) {
>> platform_set_drvdata(dev, i2c);
>> return 0;
>
>
>
next prev parent reply other threads:[~2012-03-22 16:58 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-16 12:19 [PATCH 0/2] i2c: Don't assume bus nr 0 if none was specified Karol Lewandowski
[not found] ` <1331900343-6743-1-git-send-email-k.lewandowsk-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2012-03-16 12:19 ` [PATCH 1/2] i2c-pxa: Drop leftover comment Karol Lewandowski
2012-03-16 12:19 ` Karol Lewandowski
2012-03-16 12:19 ` [PATCH 2/2] i2c: Dynamically assign adapter id if it wasn't explictly specified Karol Lewandowski
2012-03-16 12:19 ` Karol Lewandowski
2012-03-22 15:28 ` Karol Lewandowski
[not found] ` <4F6B4532.7090806-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2012-03-22 16:11 ` Russell King - ARM Linux
2012-03-22 16:11 ` Russell King - ARM Linux
2012-03-22 17:03 ` Karol Lewandowski
2012-03-22 16:58 ` David Daney [this message]
2012-03-22 16:58 ` David Daney
[not found] ` <4F6B5A22.1090204-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
2012-03-22 17:48 ` Karol Lewandowski
2012-03-22 17:48 ` Karol Lewandowski
[not found] ` <4F6B65D0.1030506-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2012-03-22 18:07 ` David Daney
2012-03-22 18:07 ` David Daney
2012-03-22 21:47 ` Wolfram Sang
2012-03-22 21:47 ` Wolfram Sang
[not found] ` <20120322214714.GA24684-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-03-26 9:14 ` Karol Lewandowski
2012-03-26 9:14 ` Karol Lewandowski
2012-03-16 12:27 ` [PATCH 0/2] i2c: Don't assume bus nr 0 if none was specified Karol Lewandowski
2012-03-16 12:27 ` Karol Lewandowski
[not found] ` <4F6331AF.3010007-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2012-03-17 10:50 ` Grant Likely
2012-03-17 10:50 ` Grant Likely
-- strict thread matches above, loose matches on Subject: below --
2012-03-27 9:10 [PATCH v2 " Karol Lewandowski
2012-03-27 9:10 ` [PATCH 2/2] i2c: Dynamically assign adapter id if it wasn't explictly specified Karol Lewandowski
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=4F6B5A22.1090204@cavium.com \
--to=david.daney-ygcgfspz5w/qt0dzr+alfa@public.gmane.org \
--cc=David.Daney-M3mlKVOIwJVv6pq1l3V1OdBPR1lH4CV8@public.gmane.org \
--cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
--cc=bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
--cc=dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
--cc=hskinnemoen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=k.lewandowsk-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org \
--cc=kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=rade.bozic.ext-OYasijW0DpE@public.gmane.org \
--cc=w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
/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.