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-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html