Re: [PATCH 5/8] power: bq27x00_battery: Renaming for consistency

Pali Rohár
2015-07-24T07:44:16Z

On Thursday 23 July 2015 23:36:24 Belisko Marek wrote:
> On Thu, Jul 23, 2015 at 11:15 PM, Pali Rohár <pali.rohar@gmail.com> wrote:
> > On Thursday 23 July 2015 22:56:26 Belisko Marek wrote:
> >> Hi Pali,
> >>
> >> On Thu, Jul 23, 2015 at 10:15 PM, Pali Rohár <pali.rohar@gmail.com>
> >> wrote:
> >> > On Thursday 23 July 2015 19:03:08 Andrew F. Davis wrote:
> >> >> >> -#ifdef CONFIG_BATTERY_BQ27X00_I2C
> >> >> >> -MODULE_ALIAS("i2c:bq27000-battery");
> >> >> >> +#ifdef CONFIG_BATTERY_BQ27XXX_I2C
> >> >> >> +MODULE_ALIAS("i2c:bq27xxx-battery");
> >> >> >>
> >> >> >> #endif
> >> >> >
> >> >> > Why is this MODULE_ALIAS needed? Some lines upper there is
> >> >> >
> >> >> > MODULE_DEVICE_TABLE(i2c, bq27xxx_id);
> >> >> >
> >> >> > which add proper i2c: module alias...
> >> >>
> >> >> Not sure, looks like it was added in commit
> >> >> 8ebb7e9c1a502cfc300618c19c3c6f06fc76d237 which claims that the
> >> >> "module won't get loaded automatically" without it, but I have not
> >> >> had this problem, so I'm not sure why it's there.
> >> >
> >> > git grep bq27000-battery show me that only one driver uses that
> >> > name: drivers/w1/slaves/w1_bq27000.c
> >> >
> >> > And more over, it is platform device, not i2c device. So that
> >> > commit 8ebb7e9c1a502cfc300618c19c3c6f06fc76d237 is wrong! CCing
> >> > Marek.
> >>
> >> If you look to power/bq27x00 driver then there is I2C part and
> >> platform part only
> >> both selectable by config. In
> >> 8ebb7e9c1a502cfc300618c19c3c6f06fc76d237 was added MODULE_ALIAS to
> >> have this driver working as module for both buses. Even if I2C isn't
> >> used anywhere
> >> I add MODULE_ALIAS also for that.
> >>
> >> > MODULE_ALIAS("platform:bq27000-battery") is really needed for
> >> > w1_bq27000.c but MODULE_ALIAS("i2c:bq27000-battery") should be
> >> > removed. It is not used by any board platform code or DT.
> >>
> >> Not sure if it's good idea to remove it. Somebody outside can use it.
> >>
> >> > Marek, correct me if I'm wrong.
> >> >
> >> > --
> >> > Pali Rohár
> >> > pali.rohar@gmail.com
> >>
> >> BR,
> >>
> >> marek
> >
> > Who, where any why is using alias i2c:bq27000-battery??
> >
> > It is obviously wrong to add that alias. MODULE_DEVICE_TABLE(i2c, ...
> > macro automatically adds all MODULE_ALIASes for all i2c devices.
> Hmm are you sure? I think it's not true if you look to include/linux/module.h
> Those 2 macros have completely other purposes.

This is some magic which is generated to autogenerated c file when
compiling driver as module. Look at output from modinfo bq27x00_battery

Anyway, alias i2c:bq27000-battery is wrong and not only because it is
added by MODULE_ALIAS but also because bq27000 chip is HDQ and not i2c.

> >
> > If there is such device with needs i2c:bq27000-battery is should be
> > fixed to use i2c:bq27??? identifier exported by MODULE_DEVICE_TABLE.
> Look if you don't like it remove i2c part from driver and post patch.

I'm for removing i2c part and it can be done as part of Andrew's cleanup
patch.

> But as I said
> somebody can use it (not talking about vanilla tree).

Then they should fix their code.

> >
> > git grep on kernel tree did not return anything, so there is no usage.
> >
> > Of course alias for platform:bq27000-battery is needed.
> >
> > --
> > Pali Rohár
> > pali.rohar@gmail.com
>
> BR,
>
> marek
>
>
>

--
Pali Rohár
pali.rohar@gmail.com