All of lore.kernel.org
 help / color / mirror / Atom feed
From: grinberg@compulab.co.il (Igor Grinberg)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: pxa: fix dm9000 platform data regression
Date: Wed, 15 Jul 2015 11:23:15 +0300	[thread overview]
Message-ID: <55A61873.7090209@compulab.co.il> (raw)
In-Reply-To: <1436657520-16972-1-git-send-email-robert.jarzmik@free.fr>

Hi Robert,

On 07/12/15 02:32, Robert Jarzmik wrote:
> Since dm9000 driver added support for a vcc regulator, platform data
> based platforms have their ethernet broken, as the regulator claiming
> returns -EPROBE_DEFER and prevents dm9000 loading.
> 
> This patch fixes this for all pxa boards using dm9000, by using the
> specific regulator_has_full_constraints() function.
> 
> This was discovered and tested on the cm-x300 board.
> 
> Fixes: 7994fe55a4a2 ("dm9000: Add regulator and reset support to dm9000")
> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>

Thanks for the patch!
Acked-by: Igor Grinberg <grinberg@compulab.co.il>

> ---
>  arch/arm/mach-pxa/capc7117.c       | 3 +++
>  arch/arm/mach-pxa/cm-x2xx.c        | 3 +++
>  arch/arm/mach-pxa/cm-x300.c        | 2 ++
>  arch/arm/mach-pxa/colibri-pxa270.c | 3 +++
>  arch/arm/mach-pxa/em-x270.c        | 2 ++
>  arch/arm/mach-pxa/icontrol.c       | 3 +++
>  arch/arm/mach-pxa/trizeps4.c       | 3 +++
>  arch/arm/mach-pxa/vpac270.c        | 3 +++
>  arch/arm/mach-pxa/zeus.c           | 2 ++
>  9 files changed, 24 insertions(+)
> 
> diff --git a/arch/arm/mach-pxa/capc7117.c b/arch/arm/mach-pxa/capc7117.c
> index c092730749b9..bf366b39fa61 100644
> --- a/arch/arm/mach-pxa/capc7117.c
> +++ b/arch/arm/mach-pxa/capc7117.c
> @@ -24,6 +24,7 @@
>  #include <linux/ata_platform.h>
>  #include <linux/serial_8250.h>
>  #include <linux/gpio.h>
> +#include <linux/regulator/machine.h>
>  
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
> @@ -144,6 +145,8 @@ static void __init capc7117_init(void)
>  
>  	capc7117_uarts_init();
>  	capc7117_ide_init();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  MACHINE_START(CAPC7117,
> diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c
> index bb99f59a36d8..a17a91eb8e9a 100644
> --- a/arch/arm/mach-pxa/cm-x2xx.c
> +++ b/arch/arm/mach-pxa/cm-x2xx.c
> @@ -13,6 +13,7 @@
>  #include <linux/syscore_ops.h>
>  #include <linux/irq.h>
>  #include <linux/gpio.h>
> +#include <linux/regulator/machine.h>
>  
>  #include <linux/dm9000.h>
>  #include <linux/leds.h>
> @@ -466,6 +467,8 @@ static void __init cmx2xx_init(void)
>  	cmx2xx_init_ac97();
>  	cmx2xx_init_touchscreen();
>  	cmx2xx_init_leds();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  static void __init cmx2xx_init_irq(void)
> diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
> index 4d3588d26c2a..5851f4c254c1 100644
> --- a/arch/arm/mach-pxa/cm-x300.c
> +++ b/arch/arm/mach-pxa/cm-x300.c
> @@ -835,6 +835,8 @@ static void __init cm_x300_init(void)
>  	cm_x300_init_ac97();
>  	cm_x300_init_wi2wi();
>  	cm_x300_init_bl();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  static void __init cm_x300_fixup(struct tag *tags, char **cmdline)
> diff --git a/arch/arm/mach-pxa/colibri-pxa270.c b/arch/arm/mach-pxa/colibri-pxa270.c
> index 5f9d9303b346..3503826333c7 100644
> --- a/arch/arm/mach-pxa/colibri-pxa270.c
> +++ b/arch/arm/mach-pxa/colibri-pxa270.c
> @@ -18,6 +18,7 @@
>  #include <linux/mtd/partitions.h>
>  #include <linux/mtd/physmap.h>
>  #include <linux/platform_device.h>
> +#include <linux/regulator/machine.h>
>  #include <linux/ucb1400.h>
>  
>  #include <asm/mach/arch.h>
> @@ -294,6 +295,8 @@ static void __init colibri_pxa270_init(void)
>  		printk(KERN_ERR "Illegal colibri_pxa270_baseboard type %d\n",
>  				colibri_pxa270_baseboard);
>  	}
> +
> +	regulator_has_full_constraints();
>  }
>  
>  /* The "Income s.r.o. SH-Dmaster PXA270 SBC" board can be booted either
> diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
> index 51531ecffca8..9d7072b04045 100644
> --- a/arch/arm/mach-pxa/em-x270.c
> +++ b/arch/arm/mach-pxa/em-x270.c
> @@ -1306,6 +1306,8 @@ static void __init em_x270_init(void)
>  	em_x270_init_i2c();
>  	em_x270_init_camera();
>  	em_x270_userspace_consumers_init();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  MACHINE_START(EM_X270, "Compulab EM-X270")
> diff --git a/arch/arm/mach-pxa/icontrol.c b/arch/arm/mach-pxa/icontrol.c
> index c98511c5abd1..9b0eb0252af6 100644
> --- a/arch/arm/mach-pxa/icontrol.c
> +++ b/arch/arm/mach-pxa/icontrol.c
> @@ -26,6 +26,7 @@
>  #include <linux/spi/spi.h>
>  #include <linux/spi/pxa2xx_spi.h>
>  #include <linux/can/platform/mcp251x.h>
> +#include <linux/regulator/machine.h>
>  
>  #include "generic.h"
>  
> @@ -185,6 +186,8 @@ static void __init icontrol_init(void)
>  	mxm_8x10_mmc_init();
>  
>  	icontrol_can_init();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM")
> diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c
> index 872dcb20e757..066e3a250ee0 100644
> --- a/arch/arm/mach-pxa/trizeps4.c
> +++ b/arch/arm/mach-pxa/trizeps4.c
> @@ -26,6 +26,7 @@
>  #include <linux/dm9000.h>
>  #include <linux/mtd/physmap.h>
>  #include <linux/mtd/partitions.h>
> +#include <linux/regulator/machine.h>
>  #include <linux/i2c/pxa-i2c.h>
>  
>  #include <asm/types.h>
> @@ -534,6 +535,8 @@ static void __init trizeps4_init(void)
>  
>  	BCR_writew(trizeps_conxs_bcr);
>  	board_backlight_power(1);
> +
> +	regulator_has_full_constraints();
>  }
>  
>  static void __init trizeps4_map_io(void)
> diff --git a/arch/arm/mach-pxa/vpac270.c b/arch/arm/mach-pxa/vpac270.c
> index aa89488f961e..54122a983ae3 100644
> --- a/arch/arm/mach-pxa/vpac270.c
> +++ b/arch/arm/mach-pxa/vpac270.c
> @@ -24,6 +24,7 @@
>  #include <linux/dm9000.h>
>  #include <linux/ucb1400.h>
>  #include <linux/ata_platform.h>
> +#include <linux/regulator/machine.h>
>  #include <linux/regulator/max1586.h>
>  #include <linux/i2c/pxa-i2c.h>
>  
> @@ -711,6 +712,8 @@ static void __init vpac270_init(void)
>  	vpac270_ts_init();
>  	vpac270_rtc_init();
>  	vpac270_ide_init();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  MACHINE_START(VPAC270, "Voipac PXA270")
> diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c
> index ac2ae5c71ab4..6158566fa0f7 100644
> --- a/arch/arm/mach-pxa/zeus.c
> +++ b/arch/arm/mach-pxa/zeus.c
> @@ -868,6 +868,8 @@ static void __init zeus_init(void)
>  	i2c_register_board_info(0, ARRAY_AND_SIZE(zeus_i2c_devices));
>  	pxa2xx_set_spi_info(3, &pxa2xx_spi_ssp3_master_info);
>  	spi_register_board_info(zeus_spi_board_info, ARRAY_SIZE(zeus_spi_board_info));
> +
> +	regulator_has_full_constraints();
>  }
>  
>  static struct map_desc zeus_io_desc[] __initdata = {
> 

-- 
Regards,
Igor.

WARNING: multiple messages have this Message-ID (diff)
From: Igor Grinberg <grinberg@compulab.co.il>
To: Robert Jarzmik <robert.jarzmik@free.fr>,
	Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ARM: pxa: fix dm9000 platform data regression
Date: Wed, 15 Jul 2015 11:23:15 +0300	[thread overview]
Message-ID: <55A61873.7090209@compulab.co.il> (raw)
In-Reply-To: <1436657520-16972-1-git-send-email-robert.jarzmik@free.fr>

Hi Robert,

On 07/12/15 02:32, Robert Jarzmik wrote:
> Since dm9000 driver added support for a vcc regulator, platform data
> based platforms have their ethernet broken, as the regulator claiming
> returns -EPROBE_DEFER and prevents dm9000 loading.
> 
> This patch fixes this for all pxa boards using dm9000, by using the
> specific regulator_has_full_constraints() function.
> 
> This was discovered and tested on the cm-x300 board.
> 
> Fixes: 7994fe55a4a2 ("dm9000: Add regulator and reset support to dm9000")
> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>

Thanks for the patch!
Acked-by: Igor Grinberg <grinberg@compulab.co.il>

> ---
>  arch/arm/mach-pxa/capc7117.c       | 3 +++
>  arch/arm/mach-pxa/cm-x2xx.c        | 3 +++
>  arch/arm/mach-pxa/cm-x300.c        | 2 ++
>  arch/arm/mach-pxa/colibri-pxa270.c | 3 +++
>  arch/arm/mach-pxa/em-x270.c        | 2 ++
>  arch/arm/mach-pxa/icontrol.c       | 3 +++
>  arch/arm/mach-pxa/trizeps4.c       | 3 +++
>  arch/arm/mach-pxa/vpac270.c        | 3 +++
>  arch/arm/mach-pxa/zeus.c           | 2 ++
>  9 files changed, 24 insertions(+)
> 
> diff --git a/arch/arm/mach-pxa/capc7117.c b/arch/arm/mach-pxa/capc7117.c
> index c092730749b9..bf366b39fa61 100644
> --- a/arch/arm/mach-pxa/capc7117.c
> +++ b/arch/arm/mach-pxa/capc7117.c
> @@ -24,6 +24,7 @@
>  #include <linux/ata_platform.h>
>  #include <linux/serial_8250.h>
>  #include <linux/gpio.h>
> +#include <linux/regulator/machine.h>
>  
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
> @@ -144,6 +145,8 @@ static void __init capc7117_init(void)
>  
>  	capc7117_uarts_init();
>  	capc7117_ide_init();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  MACHINE_START(CAPC7117,
> diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c
> index bb99f59a36d8..a17a91eb8e9a 100644
> --- a/arch/arm/mach-pxa/cm-x2xx.c
> +++ b/arch/arm/mach-pxa/cm-x2xx.c
> @@ -13,6 +13,7 @@
>  #include <linux/syscore_ops.h>
>  #include <linux/irq.h>
>  #include <linux/gpio.h>
> +#include <linux/regulator/machine.h>
>  
>  #include <linux/dm9000.h>
>  #include <linux/leds.h>
> @@ -466,6 +467,8 @@ static void __init cmx2xx_init(void)
>  	cmx2xx_init_ac97();
>  	cmx2xx_init_touchscreen();
>  	cmx2xx_init_leds();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  static void __init cmx2xx_init_irq(void)
> diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
> index 4d3588d26c2a..5851f4c254c1 100644
> --- a/arch/arm/mach-pxa/cm-x300.c
> +++ b/arch/arm/mach-pxa/cm-x300.c
> @@ -835,6 +835,8 @@ static void __init cm_x300_init(void)
>  	cm_x300_init_ac97();
>  	cm_x300_init_wi2wi();
>  	cm_x300_init_bl();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  static void __init cm_x300_fixup(struct tag *tags, char **cmdline)
> diff --git a/arch/arm/mach-pxa/colibri-pxa270.c b/arch/arm/mach-pxa/colibri-pxa270.c
> index 5f9d9303b346..3503826333c7 100644
> --- a/arch/arm/mach-pxa/colibri-pxa270.c
> +++ b/arch/arm/mach-pxa/colibri-pxa270.c
> @@ -18,6 +18,7 @@
>  #include <linux/mtd/partitions.h>
>  #include <linux/mtd/physmap.h>
>  #include <linux/platform_device.h>
> +#include <linux/regulator/machine.h>
>  #include <linux/ucb1400.h>
>  
>  #include <asm/mach/arch.h>
> @@ -294,6 +295,8 @@ static void __init colibri_pxa270_init(void)
>  		printk(KERN_ERR "Illegal colibri_pxa270_baseboard type %d\n",
>  				colibri_pxa270_baseboard);
>  	}
> +
> +	regulator_has_full_constraints();
>  }
>  
>  /* The "Income s.r.o. SH-Dmaster PXA270 SBC" board can be booted either
> diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
> index 51531ecffca8..9d7072b04045 100644
> --- a/arch/arm/mach-pxa/em-x270.c
> +++ b/arch/arm/mach-pxa/em-x270.c
> @@ -1306,6 +1306,8 @@ static void __init em_x270_init(void)
>  	em_x270_init_i2c();
>  	em_x270_init_camera();
>  	em_x270_userspace_consumers_init();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  MACHINE_START(EM_X270, "Compulab EM-X270")
> diff --git a/arch/arm/mach-pxa/icontrol.c b/arch/arm/mach-pxa/icontrol.c
> index c98511c5abd1..9b0eb0252af6 100644
> --- a/arch/arm/mach-pxa/icontrol.c
> +++ b/arch/arm/mach-pxa/icontrol.c
> @@ -26,6 +26,7 @@
>  #include <linux/spi/spi.h>
>  #include <linux/spi/pxa2xx_spi.h>
>  #include <linux/can/platform/mcp251x.h>
> +#include <linux/regulator/machine.h>
>  
>  #include "generic.h"
>  
> @@ -185,6 +186,8 @@ static void __init icontrol_init(void)
>  	mxm_8x10_mmc_init();
>  
>  	icontrol_can_init();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM")
> diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c
> index 872dcb20e757..066e3a250ee0 100644
> --- a/arch/arm/mach-pxa/trizeps4.c
> +++ b/arch/arm/mach-pxa/trizeps4.c
> @@ -26,6 +26,7 @@
>  #include <linux/dm9000.h>
>  #include <linux/mtd/physmap.h>
>  #include <linux/mtd/partitions.h>
> +#include <linux/regulator/machine.h>
>  #include <linux/i2c/pxa-i2c.h>
>  
>  #include <asm/types.h>
> @@ -534,6 +535,8 @@ static void __init trizeps4_init(void)
>  
>  	BCR_writew(trizeps_conxs_bcr);
>  	board_backlight_power(1);
> +
> +	regulator_has_full_constraints();
>  }
>  
>  static void __init trizeps4_map_io(void)
> diff --git a/arch/arm/mach-pxa/vpac270.c b/arch/arm/mach-pxa/vpac270.c
> index aa89488f961e..54122a983ae3 100644
> --- a/arch/arm/mach-pxa/vpac270.c
> +++ b/arch/arm/mach-pxa/vpac270.c
> @@ -24,6 +24,7 @@
>  #include <linux/dm9000.h>
>  #include <linux/ucb1400.h>
>  #include <linux/ata_platform.h>
> +#include <linux/regulator/machine.h>
>  #include <linux/regulator/max1586.h>
>  #include <linux/i2c/pxa-i2c.h>
>  
> @@ -711,6 +712,8 @@ static void __init vpac270_init(void)
>  	vpac270_ts_init();
>  	vpac270_rtc_init();
>  	vpac270_ide_init();
> +
> +	regulator_has_full_constraints();
>  }
>  
>  MACHINE_START(VPAC270, "Voipac PXA270")
> diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c
> index ac2ae5c71ab4..6158566fa0f7 100644
> --- a/arch/arm/mach-pxa/zeus.c
> +++ b/arch/arm/mach-pxa/zeus.c
> @@ -868,6 +868,8 @@ static void __init zeus_init(void)
>  	i2c_register_board_info(0, ARRAY_AND_SIZE(zeus_i2c_devices));
>  	pxa2xx_set_spi_info(3, &pxa2xx_spi_ssp3_master_info);
>  	spi_register_board_info(zeus_spi_board_info, ARRAY_SIZE(zeus_spi_board_info));
> +
> +	regulator_has_full_constraints();
>  }
>  
>  static struct map_desc zeus_io_desc[] __initdata = {
> 

-- 
Regards,
Igor.

  reply	other threads:[~2015-07-15  8:23 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-11 23:32 [PATCH] ARM: pxa: fix dm9000 platform data regression Robert Jarzmik
2015-07-11 23:32 ` Robert Jarzmik
2015-07-15  8:23 ` Igor Grinberg [this message]
2015-07-15  8:23   ` Igor Grinberg
2015-07-16 20:44   ` Robert Jarzmik
2015-07-16 20:44     ` Robert Jarzmik

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=55A61873.7090209@compulab.co.il \
    --to=grinberg@compulab.co.il \
    --cc=linux-arm-kernel@lists.infradead.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.