Re: [PATCH v2] Input: atmel_mxt_ts - Add maxtouch to I2C table for module autoload

From: Javier Martinez Canillas
Date: Wed Dec 02 2015 - 15:15:23 EST


Hello Dmitry,

On 11/20/2015 04:46 PM, Javier Martinez Canillas wrote:
> On 11/20/2015 04:32 PM, Javier Martinez Canillas wrote:
>
> [snip]
>
>>
>> But is not complete because the .driver_data in i2c_device_id is an
>> kernel_ulong_t while the .data in of_device_id is a const void * so
>> some casting will be needed to add an OF table in some drivers that
>
> Some casting in the tables *and* some logic to get the .data from the
> OF table entries, so something like the following will be needed:
>
> static int foo_i2c_probe(struct i2c_client *i2c,
> const struct i2c_device_id *id)
> {
> struct of_device_id *match;
> kernel_ulong_t data;
>
> if (i2c->dev.of_node) {
> match = of_match_node(of_match, i2c->dev.of_node);
> if (!match)
> return -EINVAL;
>
> data = (kernel_ulong_t)match->data;
> } else {
> data = id->driver_data;
> }
> ...
> }
>
> while currently I2C drivers just rely on the model part of the compatible
> string to match with the entry in the I2C device ID table and the core
> always passing the correct .driver_data to the probe function.
>
> So as you can see, converting all the drivers to not rely on the I2C table
> requires some refactoring before proper OF modalias reporting can be used.
>

Any comments about this? I'm planning to address all this at some point but
for now I think we would need $SUBJECT to have module autoloading working
on this driver when the device is registered via OF.

> Best regards,
>

Best regards,
--
Javier Martinez Canillas
Open Source Group
Samsung Research America
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/