diff mbox

[4/8] usb: phy: fix isp1301-omap dependency on tps65010

Message ID 1399557141-1346645-5-git-send-email-arnd@arndb.de (mailing list archive)
State New, archived
Headers show

Commit Message

Arnd Bergmann May 8, 2014, 1:52 p.m. UTC
The isp1301-omap driver cannot be built-in if the tps65010 driver
is a module, otherwise we get a link error from the reference to
the tps65010_set_vbus_draw function.

There is already a hack in the driver to work around the problem
of tps65010 being not available at all. This patch extends that
hack to ensure that the real tps65010_set_vbus_draw() function
is only called when it's avaiable.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: linux-omap@vger.kernel.org
---
 drivers/usb/phy/phy-isp1301-omap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Felipe Balbi May 13, 2014, 3:26 p.m. UTC | #1
On Thu, May 08, 2014 at 03:52:17PM +0200, Arnd Bergmann wrote:
> The isp1301-omap driver cannot be built-in if the tps65010 driver
> is a module, otherwise we get a link error from the reference to
> the tps65010_set_vbus_draw function.
> 
> There is already a hack in the driver to work around the problem
> of tps65010 being not available at all. This patch extends that
> hack to ensure that the real tps65010_set_vbus_draw() function
> is only called when it's avaiable.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: linux-omap@vger.kernel.org
> ---
>  drivers/usb/phy/phy-isp1301-omap.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/phy/phy-isp1301-omap.c b/drivers/usb/phy/phy-isp1301-omap.c
> index 6e146d7..35a0dd2 100644
> --- a/drivers/usb/phy/phy-isp1301-omap.c
> +++ b/drivers/usb/phy/phy-isp1301-omap.c
> @@ -94,7 +94,7 @@ struct isp1301 {
>  
>  #if defined(CONFIG_MACH_OMAP_H2) || defined(CONFIG_MACH_OMAP_H3)
>  
> -#if	defined(CONFIG_TPS65010) || defined(CONFIG_TPS65010_MODULE)
> +#if	defined(CONFIG_TPS65010) || (defined(CONFIG_TPS65010_MODULE) && defined(MODULE))

nack, I would rather see a real fix, possibly also fixing the original
hack.
Arnd Bergmann May 13, 2014, 7:48 p.m. UTC | #2
On Tuesday 13 May 2014 10:26:31 Felipe Balbi wrote:
> On Thu, May 08, 2014 at 03:52:17PM +0200, Arnd Bergmann wrote:
> > The isp1301-omap driver cannot be built-in if the tps65010 driver
> > is a module, otherwise we get a link error from the reference to
> > the tps65010_set_vbus_draw function.
> > 
> > There is already a hack in the driver to work around the problem
> > of tps65010 being not available at all. This patch extends that
> > hack to ensure that the real tps65010_set_vbus_draw() function
> > is only called when it's avaiable.
> > 
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > Cc: linux-omap@vger.kernel.org
> > ---
> >  drivers/usb/phy/phy-isp1301-omap.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/usb/phy/phy-isp1301-omap.c b/drivers/usb/phy/phy-isp1301-omap.c
> > index 6e146d7..35a0dd2 100644
> > --- a/drivers/usb/phy/phy-isp1301-omap.c
> > +++ b/drivers/usb/phy/phy-isp1301-omap.c
> > @@ -94,7 +94,7 @@ struct isp1301 {
> >  
> >  #if defined(CONFIG_MACH_OMAP_H2) || defined(CONFIG_MACH_OMAP_H3)
> >  
> > -#if  defined(CONFIG_TPS65010) || defined(CONFIG_TPS65010_MODULE)
> > +#if  defined(CONFIG_TPS65010) || (defined(CONFIG_TPS65010_MODULE) && defined(MODULE))
> 
> nack, I would rather see a real fix, possibly also fixing the original
> hack.

Any suggestion how?

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi May 13, 2014, 7:52 p.m. UTC | #3
Hi,

On Tue, May 13, 2014 at 09:48:27PM +0200, Arnd Bergmann wrote:
> On Tuesday 13 May 2014 10:26:31 Felipe Balbi wrote:
> > On Thu, May 08, 2014 at 03:52:17PM +0200, Arnd Bergmann wrote:
> > > The isp1301-omap driver cannot be built-in if the tps65010 driver
> > > is a module, otherwise we get a link error from the reference to
> > > the tps65010_set_vbus_draw function.
> > > 
> > > There is already a hack in the driver to work around the problem
> > > of tps65010 being not available at all. This patch extends that
> > > hack to ensure that the real tps65010_set_vbus_draw() function
> > > is only called when it's avaiable.
> > > 
> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > > Cc: linux-omap@vger.kernel.org
> > > ---
> > >  drivers/usb/phy/phy-isp1301-omap.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/usb/phy/phy-isp1301-omap.c b/drivers/usb/phy/phy-isp1301-omap.c
> > > index 6e146d7..35a0dd2 100644
> > > --- a/drivers/usb/phy/phy-isp1301-omap.c
> > > +++ b/drivers/usb/phy/phy-isp1301-omap.c
> > > @@ -94,7 +94,7 @@ struct isp1301 {
> > >  
> > >  #if defined(CONFIG_MACH_OMAP_H2) || defined(CONFIG_MACH_OMAP_H3)
> > >  
> > > -#if  defined(CONFIG_TPS65010) || defined(CONFIG_TPS65010_MODULE)
> > > +#if  defined(CONFIG_TPS65010) || (defined(CONFIG_TPS65010_MODULE) && defined(MODULE))
> > 
> > nack, I would rather see a real fix, possibly also fixing the original
> > hack.
> 
> Any suggestion how?

well, that driver shouldn't depend on a particular PMIC. It should use
regulator framework to enable and disable vbus regulator, to start with.

In fact, isp1301-omap.c shouldn't even exist. isp1301 is a generic
device and not OMAP-specific.

cheers
diff mbox

Patch

diff --git a/drivers/usb/phy/phy-isp1301-omap.c b/drivers/usb/phy/phy-isp1301-omap.c
index 6e146d7..35a0dd2 100644
--- a/drivers/usb/phy/phy-isp1301-omap.c
+++ b/drivers/usb/phy/phy-isp1301-omap.c
@@ -94,7 +94,7 @@  struct isp1301 {
 
 #if defined(CONFIG_MACH_OMAP_H2) || defined(CONFIG_MACH_OMAP_H3)
 
-#if	defined(CONFIG_TPS65010) || defined(CONFIG_TPS65010_MODULE)
+#if	defined(CONFIG_TPS65010) || (defined(CONFIG_TPS65010_MODULE) && defined(MODULE))
 
 #include <linux/i2c/tps65010.h>