Message ID | 20080919180339.GA13899@oksana.dev.rtsoft.ru (mailing list archive) |
---|---|
State | Rejected, archived |
Headers | show |
On Fri, 19 Sep 2008 22:03:39 +0400, Anton Vorontsov wrote: > It was discussed[1] that we should match on the first (most specific) > entry in the device tree. > > The most lengthy I2C compatible entry for the MPC8349E-mITX MCU > devices is "mc9s08qg8-mpc8349emitx" (w/o vendor name). This means > that we have to allow longer IDs to be used in the I2C subsystem. > > [1] http://www.mail-archive.com/linuxppc-dev@ozlabs.org/msg21196.html Nack. Just come up with shorter names. "mc9s08qg8-mpc8349emitx" is simply too long to start with. Looking at the mcu_mpc8349emitx driver you just submitted, you are clearly abusing the i2c client name to pass platform-specific information, and that's bad. I'm not even sure why you do that, given that all the names are then handled the same as far as I can see. > > Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> > --- > include/linux/mod_devicetable.h | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h > index c4db582..9d9d1f5 100644 > --- a/include/linux/mod_devicetable.h > +++ b/include/linux/mod_devicetable.h > @@ -379,7 +379,7 @@ struct virtio_device_id { > > /* i2c */ > > -#define I2C_NAME_SIZE 20 > +#define I2C_NAME_SIZE 23 > #define I2C_MODULE_PREFIX "i2c:" > > struct i2c_device_id {
On Fri, Sep 19, 2008 at 10:03:08PM +0200, Jean Delvare wrote: > On Fri, 19 Sep 2008 22:03:39 +0400, Anton Vorontsov wrote: > > It was discussed[1] that we should match on the first (most specific) > > entry in the device tree. > > > > The most lengthy I2C compatible entry for the MPC8349E-mITX MCU > > devices is "mc9s08qg8-mpc8349emitx" (w/o vendor name). This means > > that we have to allow longer IDs to be used in the I2C subsystem. > > > > [1] http://www.mail-archive.com/linuxppc-dev@ozlabs.org/msg21196.html > > Nack. Just come up with shorter names. "mc9s08qg8-mpc8349emitx" is > simply too long to start with. Looking at the mcu_mpc8349emitx driver > you just submitted, you are clearly abusing the i2c client name to pass > platform-specific information, and that's bad. I'm not even sure why > you do that, given that all the names are then handled the same as far > as I can see. The whole "matching on the first entry" thing is just a Linux-internal heuristic. If the heuristic breaks down (like it does here), then there is a mechanism to override it in of_base.c which has a compatible-->modalias translation table. g.
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index c4db582..9d9d1f5 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -379,7 +379,7 @@ struct virtio_device_id { /* i2c */ -#define I2C_NAME_SIZE 20 +#define I2C_NAME_SIZE 23 #define I2C_MODULE_PREFIX "i2c:" struct i2c_device_id {
It was discussed[1] that we should match on the first (most specific) entry in the device tree. The most lengthy I2C compatible entry for the MPC8349E-mITX MCU devices is "mc9s08qg8-mpc8349emitx" (w/o vendor name). This means that we have to allow longer IDs to be used in the I2C subsystem. [1] http://www.mail-archive.com/linuxppc-dev@ozlabs.org/msg21196.html Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>