[PATCH 1/2] i2c: Add support for device alias names
Jean Delvare
khali at linux-fr.org
Tue Apr 29 01:42:20 EST 2008
Hi Jon,
On Mon, 28 Apr 2008 10:43:35 -0400, Jon Smirl wrote:
> On 4/28/08, Jean Delvare <khali at linux-fr.org> wrote:
> > One thing I am still not happy with is that the aliases created have a
> > trailing "*":
> >
> > $ /sbin/modinfo lm90
> > filename: /lib/modules/2.6.25-git11/kernel/drivers/hwmon/lm90.ko
> > author: Jean Delvare <khali at linux-fr.org>
> > description: LM90/ADM1032 driver
> > license: GPL
> > vermagic: 2.6.25-git11 mod_unload
> > depends: hwmon
> > alias: i2c:lm90*
> > alias: i2c:adm1032*
> > alias: i2c:lm99*
> > alias: i2c:lm86*
> > alias: i2c:max6657*
> > alias: i2c:adt7461*
> > alias: i2c:max6680*
> > $
> >
> > This would cause trouble if one I2C chip name matches the beginning of
> > another I2C chip name and both chips are supported by different
> > drivers. This has yet to be seen, but still, I'd like to see this
> > problem fixed quickly.
>
>
> Trailing wildcard is always added by file2alias.c:
>
> if (do_entry(mod->name, symval+i, alias)) {
> /* Always end in a wildcard, for future extension */
> if (alias[strlen(alias)-1] != '*')
> strcat(alias, "*");
>
>
> Can't the match order be controlled in the makefile? For example if
> you had lm905* and lm90*, put lm905* into into the makefile first
> which will cause it to appear in the alias file first. But that would
> still cause problems if only lm90 was built and you had a lm905
> device.
That's too trickly and fragile - I'd rather make sure that wrong
matches just can't happen.
>
> Alternatively you could change the code to append something like a
> period to the name string.
>
> sprintf(alias, I2C_MODULE_PREFIX "%s.", id->name);
Similar to what Kay proposed. It works and we'll do that if we have to,
but if we can just get rid of the "*" I'd rather do that.
>
> I was using macros to alter the name strings to move the PowerPC names
> into their own namespace.
>
--
Jean Delvare
More information about the Linuxppc-dev
mailing list