Re: [PATCH] power_supply: change the way how wm97xx-bat driver is registered

Anton Vorontsov
2008-11-03T19:35:12Z

On Mon, Nov 03, 2008 at 09:29:55PM +0300, Dmitry Baryshkov wrote:
> On Mon, Nov 03, 2008 at 06:11:51PM +0300, Anton Vorontsov wrote:
> > On Wed, Oct 29, 2008 at 12:04:10PM +0300, Dmitry Baryshkov wrote:
> > > #ifdef CONFIG_BATTERY_WM97XX
> > > -void __init wm97xx_bat_set_pdata(struct wm97xx_batt_info *data);
> > > +int wm97xx_bat_set_pdata(struct wm97xx_batt_info *data);
> > > #else
> > > -static inline void wm97xx_bat_set_pdata(struct wm97xx_batt_info *data) {}
> > > +static inline int wm97xx_bat_set_pdata(struct wm97xx_batt_info *data)
> > > +{
> > > + return -ENODEV;
> > > +}
> > > #endif
> >
> > How that supposed to work when BATTERY_WM97XX is a module?
> > #ifdef CONFIG_BATTERY_WM97XX will evaluate to false, and you'll have
> > dummy wm97xx_bat_set_pdata() that returns -ENODEV...
>
> This won't of course fix the wm97xx driver model, but the module issue
> should be fixed. What about this patch?
[...]
> -#ifdef CONFIG_BATTERY_WM97XX
> -void __init wm97xx_bat_set_pdata(struct wm97xx_batt_info *data);
> +#if defined(CONFIG_BATTERY_WM97XX) || defined(CONFIG_BATTERY_WM97XX_MODULE)
> +int wm97xx_bat_set_pdata(struct wm97xx_batt_info *data);

In case of CONFIG_BATTERY_WM97XX_MODULE, the build will break at link
time, since wm97xx_bat_set_pdata() might be called from the built-in
code (i.e. arch/arm/mach-pxa/palmtx.c).

> #else
> -static inline void wm97xx_bat_set_pdata(struct wm97xx_batt_info *data) {}
> +static inline int wm97xx_bat_set_pdata(struct wm97xx_batt_info *data)
> +{
> + return -ENODEV;
> +}
> #endif
>
> #endif
> --
> 1.5.6.5

--
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2