Message ID | 1399557141-1346645-5-git-send-email-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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.
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
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 --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>
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(-)