ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
Subsystems (5)
PATCH 1/1 ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
commit e4b0b2cbbb (ARM: OMAP2+: gpmc-smsc911x: add required smsc911x regulators) added regulators which are registered during gpmc_smsc911x_init(). However, some platforms (OMAP3/Overo) have more than one instance of the SMSC911x and result in attempting to register the same regulator more than once which causes a panic().
Fix this by only registering the regulator when the platform_data id field is zero, indicating its the first instance.
---
Fix needed for v3.3.
Applies on top of Tony's fixes branch.
arch/arm/mach-omap2/gpmc-smsc911x.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/gpmc-smsc911x.c +7 -4
@@ -101,10 +101,13 @@ void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data) gpmc_cfg = board_data; - ret =platform_device_register (&gpmc_smsc911x_regulator); -if (ret <0 ) { -pr_err ("Unable to register smsc911x regulators: %d\n" , ret); -return ; +if (!gpmc_cfg) { + ret =platform_device_register (&gpmc_smsc911x_regulator); +if (ret <0 ) { +pr_err ("Unable to register smsc911x regulators: %d\n" , + ret); +return ; + } }if (gpmc_cs_request (gpmc_cfg->cs,SZ_16M , &cs_mem_base) <0 ) {
Signature · 1 line
1.7.9.2
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
Quoted 23 lines · Kevin Hilman
commit
e4b0b2cbbb(ARM: OMAP2+: gpmc-smsc911x: add required smsc911x regulators) added regulators which are registered duringgpmc_smsc911x_init(). However, some platforms (OMAP3/Overo) have more than one instance of the SMSC911x and result in attempting to register the same regulator more than once which causes apanic().Fix this by only registering the regulator when the
platform_dataid field is zero, indicating its the first instance.Cc Matt Porter <[email protected]>Signed-off-by Kevin Hilman <[email protected]>---
Fix needed for v3.3.
Applies on top of Tony's fixes branch.arch/arm/mach-omap2/gpmc-smsc911x.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)arch/arm/mach-omap2/gpmc-smsc911x.c +0
-0
arch/arm/mach-omap2/gpmc-smsc911x.c void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data) · line 104
Quoted 8 lines
arch/arm/mach-omap2/gpmc-smsc911x.c +1
-4@@ -101,10 +101,13 @@ void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data) gpmc_cfg = board_data; - ret =platform_device_register (&gpmc_smsc911x_regulator); -if (ret <0 ) { -pr_err ("Unable to register smsc911x regulators: %d\n" , ret); -return ; +if (!gpmc_cfg) {
Shouldn't this be !gpmc_cfg->id instead..
arch/arm/mach-omap2/gpmc-smsc911x.c void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data) · line 113
Quoted 9 lines
arch/arm/mach-omap2/gpmc-smsc911x.c +6
-0+ ret =platform_device_register (&gpmc_smsc911x_regulator); +if (ret <0 ) { +pr_err ("Unable to register smsc911x regulators: %d\n" , + ret); +return ; + } }if (gpmc_cs_request (gpmc_cfg->cs,SZ_16M , &cs_mem_base) <0 ) {
..because we have gpmc_cfg always passed to gpmc_smsc911x_init().
Regards,
Tony
PATCH 1/1 ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
Quoted 27 lines · Tony Lindgren
Quoted 26 lines · Kevin Hilman
commit
e4b0b2cbbb(ARM: OMAP2+: gpmc-smsc911x: add required smsc911x regulators) added regulators which are registered duringgpmc_smsc911x_init(). However, some platforms (OMAP3/Overo) have more than one instance of the SMSC911x and result in attempting to register the same regulator more than once which causes apanic().Fix this by only registering the regulator when the
platform_dataid field is zero, indicating its the first instance.Cc Matt Porter <[email protected]>Signed-off-by Kevin Hilman <[email protected]>---
Fix needed for v3.3.
Applies on top of Tony's fixes branch.arch/arm/mach-omap2/gpmc-smsc911x.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)arch/arm/mach-omap2/gpmc-smsc911x.c +0
-0@@ -101,10 +101,13 @@ void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data) gpmc_cfg = board_data;
Quoted 7 lines
arch/arm/mach-omap2/gpmc-smsc911x.c void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data) · line 104
Quoted 5 lines
arch/arm/mach-omap2/gpmc-smsc911x.c +1
-4- ret =platform_device_register (&gpmc_smsc911x_regulator); -if (ret <0 ) { -pr_err ("Unable to register smsc911x regulators: %d\n" , ret); -return ; +if (!gpmc_cfg) {Shouldn't this be !gpmc_cfg->id instead..
doh, of course. Updated patch below.
Kevin
Quoted 1 line
From
3c17a6fe6fdcc5e4e33f174c2b0982d71e759cf1Mon Sep 17 00:00:00 2001
From: Kevin Hilman <[email protected]>
Date: Thu, 1 Mar 2012 12:30:42 -0800
Subject: [PATCH] ARM: OMAP2+: gpmc-smsc911x: only register regulator for
first instance
commit e4b0b2cbbb (ARM: OMAP2+: gpmc-smsc911x: add required smsc911x regulators) added regulators which are registered during gpmc_smsc911x_init(). However, some platforms (OMAP3/Overo) have more than one instance of the SMSC911x and result in attempting to register the same regulator more than once which causes a panic().
Fix this by only registering the regulator when the platform_data id field is zero, indicating its the first instance.
--- arch/arm/mach-omap2/gpmc-smsc911x.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/gpmc-smsc911x.c +7 -4
@@ -101,10 +101,13 @@ void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data) gpmc_cfg = board_data; - ret =platform_device_register (&gpmc_smsc911x_regulator); -if (ret <0 ) { -pr_err ("Unable to register smsc911x regulators: %d\n" , ret); -return ; +if (!gpmc_cfg->id) { + ret =platform_device_register (&gpmc_smsc911x_regulator); +if (ret <0 ) { +pr_err ("Unable to register smsc911x regulators: %d\n" , + ret); +return ; + } }if (gpmc_cs_request (gpmc_cfg->cs,SZ_16M , &cs_mem_base) <0 ) {
Signature · 1 line
1.7.9.2
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
Quoted 37 lines · Kevin Hilman
Quoted 27 lines · Tony Lindgren
Quoted 26 lines · Kevin Hilman
commit
e4b0b2cbbb(ARM: OMAP2+: gpmc-smsc911x: add required smsc911x regulators) added regulators which are registered duringgpmc_smsc911x_init(). However, some platforms (OMAP3/Overo) have more than one instance of the SMSC911x and result in attempting to register the same regulator more than once which causes apanic().Fix this by only registering the regulator when the
platform_dataid field is zero, indicating its the first instance.Cc Matt Porter <[email protected]>Signed-off-by Kevin Hilman <[email protected]>---
Fix needed for v3.3.
Applies on top of Tony's fixes branch.arch/arm/mach-omap2/gpmc-smsc911x.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)arch/arm/mach-omap2/gpmc-smsc911x.c +0
-0@@ -101,10 +101,13 @@ void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data) gpmc_cfg = board_data;Quoted 7 lines
arch/arm/mach-omap2/gpmc-smsc911x.c void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data)
Quoted 5 lines
arch/arm/mach-omap2/gpmc-smsc911x.c +1
-4- ret =platform_device_register (&gpmc_smsc911x_regulator); -if (ret <0 ) { -pr_err ("Unable to register smsc911x regulators: %d\n" , ret); -return ; +if (!gpmc_cfg) {Shouldn't this be !gpmc_cfg->id instead..
Quoted 1 line
doh, of course. Updated patch below.
Thanks, applying into fixes.
Regards,
Tony
PATCH 1/1 ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
In reply to Kevin HilmanQuoted 11 lines · Kevin Hilman
commit
e4b0b2cbbb(ARM: OMAP2+: gpmc-smsc911x: add required smsc911x regulators) added regulators which are registered duringgpmc_smsc911x_init(). However, some platforms (OMAP3/Overo) have more than one instance of the SMSC911x and result in attempting to register the same regulator more than once which causes apanic().Fix this by only registering the regulator when the
platform_dataid field is zero, indicating its the first instance.Cc Matt Porter <[email protected]>Signed-off-by Kevin Hilman <[email protected]>
It seems that both Olof and I forgot to forward this one to Linus.
If it's ok for you, I'll add it to the fixes branch for v3.4 now and mark it for backporting to v3.3-stable.
Sorry for the inconvenience.
Arnd
PATCH 1/1 ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
Hi Arnd,
Quoted 10 lines · Arnd Bergmann
Quoted 9 lines · Kevin Hilman
commit
e4b0b2cbbb(ARM: OMAP2+: gpmc-smsc911x: add required smsc911x regulators) added regulators which are registered duringgpmc_smsc911x_init(). However, some platforms (OMAP3/Overo) have more than one instance of the SMSC911x and result in attempting to register the same regulator more than once which causes apanic().Fix this by only registering the regulator when the
platform_dataid field is zero, indicating its the first instance.
Quoted 7 lines
Quoted 2 lines
Cc Matt Porter <[email protected]>Signed-off-by Kevin Hilman <[email protected]>It seems that both Olof and I forgot to forward this one to Linus.
If it's ok for you, I'll add it to the fixes branch for v3.4 now and mark it for backporting to v3.3-stable.
A slightly different version of this is already in linux-next as commit bb60424af517d6e6148505fb5ef256caa91b5b43.
It was in your 'fixes' branch, and was merged by Olaf from Tony on 3/13:
Merge branch 'fix-smsc911x-regulator' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
Kevin
PATCH 1/1 ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
Quoted 15 lines · Kevin Hilman
Quoted 15 lines · Kevin Hilman
Quoted 11 lines
commit
e4b0b2cbbb(ARM: OMAP2+: gpmc-smsc911x: add required smsc911x regulators) added regulators which are registered duringgpmc_smsc911x_init(). However, some platforms (OMAP3/Overo) have more than one instance of the SMSC911x and result in attempting to register the same regulator more than once which causes apanic().Fix this by only registering the regulator when the
platform_dataid field is zero, indicating its the first instance.Cc Matt Porter <[email protected]>Signed-off-by Kevin Hilman <[email protected]>It seems that both Olof and I forgot to forward this one to Linus.
Quoted 9 lines
Quoted 2 lines
If it's ok for you, I'll add it to the fixes branch for v3.4 now and mark it for backporting to v3.3-stable.
A slightly different version of this is already in linux-next as commit
bb60424af517d6e6148505fb5ef256caa91b5b43.It was in your 'fixes' branch, and was merged by Olaf from Tony on 3/13:
Merge branch 'fix-smsc911x-regulator' ofgit://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omapinto fixes
Yes, I know it's in linux-next because I found it in the fixes branch. That is the branch with stuff that should have gone into v3.3 :(
Is the bb60424af version ok? If I add a stable at vger.kernel.org tag in there, it will obviously get a new changeset ID but I was not planning on changing the contents to the version from the mailing list in case that is different.
Arnd
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
Quoted 26 lines · Arnd Bergmann
Quoted 15 lines · Kevin Hilman
Quoted 15 lines · Kevin Hilman
Quoted 11 lines
commit
e4b0b2cbbb(ARM: OMAP2+: gpmc-smsc911x: add required smsc911x regulators) added regulators which are registered duringgpmc_smsc911x_init(). However, some platforms (OMAP3/Overo) have more than one instance of the SMSC911x and result in attempting to register the same regulator more than once which causes apanic().Fix this by only registering the regulator when the
platform_dataid field is zero, indicating its the first instance.Cc Matt Porter <[email protected]>Signed-off-by Kevin Hilman <[email protected]>It seems that both Olof and I forgot to forward this one to Linus.
Quoted 9 lines
Quoted 2 lines
If it's ok for you, I'll add it to the fixes branch for v3.4 now and mark it for backporting to v3.3-stable.
A slightly different version of this is already in linux-next as commit
bb60424af517d6e6148505fb5ef256caa91b5b43.It was in your 'fixes' branch, and was merged by Olaf from Tony on 3/13:
Merge branch 'fix-smsc911x-regulator' ofgit://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omapinto fixes
Quoted 7 lines
Yes, I know it's in linux-next because I found it in the fixes branch. That is the branch with stuff that should have gone into v3.3 :(
Is the
bb60424afversion ok? If I add a stable at vger.kernel.org tag in there, it will obviously get a new changeset ID but I was not planning on changing the contents to the version from the mailing list in case that is different.
Let's just keep bb60424af. There are more patches needed to make multiple smsc91x instances work, but we need to hear from people with such boards first. Then those can be tagged for stable.
Regards,
Tony
PATCH 1/1 ARM: OMAP2+: gpmc-smsc911x: only register regulator for first instance
Quoted 4 lines · Tony Lindgren
Let's just keep
bb60424af. There are more patches needed to make multiple smsc91x instances work, but we need to hear from people with such boards first. Then those can be tagged for stable.
Ok, I'm just putting that into the fixes branch for 3.4 then.
Thanks,
Arnd