Re: [PATCH] Input: atmel_mxt_ts: Add of node type to the i2c table

From: Sjoerd Simons
Date: Thu Sep 11 2014 - 04:00:41 EST


Hey Lee,

On Wed, 2014-09-10 at 10:28 +0100, Lee Jones wrote:
> On Tue, 09 Sep 2014, Javier Martinez Canillas wrote:
>
> > [adding Lee Jones to cc list since I'm referring on a series he posted]
> >
> > Hello Sjoerd,
> >
> > On 09/09/2014 09:52 AM, Sjoerd Simons wrote:
> > > For i2c devices in OF the modalias exposed to userspace is i2c:<node
> > > type>, for the Maxtouch driver this is i2c:maxtouch.
> > >
> > > Add maxtouch to the i2c id table such that userspace can correctly
> > > load the module for the device and drop the OF table as it's not
> > > needed for i2c devices.
> > >
> > > Signed-off-by: Sjoerd Simons <sjoerd.simons@xxxxxxxxxxxxxxx>
> > > ---
> > > drivers/input/touchscreen/atmel_mxt_ts.c | 8 +-------
> > > 1 file changed, 1 insertion(+), 7 deletions(-)
> > >
> > > diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
> > > index db178ed..57ff26d 100644
> > > --- a/drivers/input/touchscreen/atmel_mxt_ts.c
> > > +++ b/drivers/input/touchscreen/atmel_mxt_ts.c
> > > @@ -2267,16 +2267,11 @@ static int mxt_resume(struct device *dev)
> > >
> > > static SIMPLE_DEV_PM_OPS(mxt_pm_ops, mxt_suspend, mxt_resume);
> > >
> > > -static const struct of_device_id mxt_of_match[] = {
> > > - { .compatible = "atmel,maxtouch", },
> > > - {},
> > > -};
> > > -MODULE_DEVICE_TABLE(of, mxt_of_match);
> > > -
> > > static const struct i2c_device_id mxt_id[] = {
> > > { "qt602240_ts", 0 },
> > > { "atmel_mxt_ts", 0 },
> > > { "atmel_mxt_tp", 0 },
> > > + { "maxtouch", 0 },
> > > { "mXT224", 0 },
> > > { }
> > > };
> > > @@ -2286,7 +2281,6 @@ static struct i2c_driver mxt_driver = {
> > > .driver = {
> > > .name = "atmel_mxt_ts",
> > > .owner = THIS_MODULE,
> > > - .of_match_table = of_match_ptr(mxt_of_match),
> > > .pm = &mxt_pm_ops,
> > > },
> > > .probe = mxt_probe,
> > >
> >
> > I see that Lee is working to allow the I2C subsystem to not need an I2C ID
> > table to match [0]. I'll let Lee to comment what the future plans are and if
> > his series are going to solve your issue since I'm not that familiar with the
> > I2C core.
>
> It's wrong to expect DT to probe these devices without a compatible
> string. It does so at the moment, but this is a bi-product and not
> the correct method.

Ok, which means removing the mxt_of_match table in this patch is wrong..
I'll fix that for for a V2.

However that makes adding the "maxtouch" string to the i2c device table
somewhat cumbersome as it only gets added in this case to ensure
module-autoloading can happen as the modalias presented to userspace is
going still going to be i2c:maxtouch.

Tbh, the bigger problem this is pointing out is that for I2C devices
with only an OF compability tring module auto-loading is broken...

--
Sjoerd Simons <sjoerd.simons@xxxxxxxxxxxxxxx>
Collabora Ltd.

Attachment: smime.p7s
Description: S/MIME cryptographic signature