iio: Export OF module alias information in missing drivers
authorJavier Martinez Canillas <javier@osg.samsung.com>
Thu, 30 Jul 2015 16:18:42 +0000 (18:18 +0200)
committerJonathan Cameron <jic23@kernel.org>
Sun, 2 Aug 2015 15:36:00 +0000 (16:36 +0100)
The I2C core always reports the MODALIAS uevent as "i2c:<client name"
regardless if the driver was matched using the I2C id_table or the
of_match_table. So technically there's no need for a driver to export
the OF table since currently it's not used.

In fact, the I2C device ID table is mandatory for I2C drivers since
a i2c_device_id is passed to the driver's probe function even if the
I2C core used the OF table to match the driver.

And since the I2C core uses different tables, OF-only drivers needs to
have duplicated data that has to be kept in sync and also the dev node
compatible manufacturer prefix is stripped when reporting the MODALIAS.

To avoid the above, the I2C core behavior may be changed in the future
to not require an I2C device table for OF-only drivers and report the
OF module alias. So, it's better to also export the OF table to prevent
breaking module autoloading if that happens.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/accel/mma8452.c
drivers/iio/light/cm32181.c
drivers/iio/light/cm3232.c
drivers/iio/light/cm36651.c
drivers/iio/light/gp2ap020a00f.c

index e8e2077c7244b5623efc8cd07521a9105dfbe192..3c4ad1563ca44ecc13f0f06c6b13c0f2796873df 100644 (file)
@@ -968,6 +968,7 @@ static const struct of_device_id mma8452_dt_ids[] = {
        { .compatible = "fsl,mma8452" },
        { }
 };
+MODULE_DEVICE_TABLE(of, mma8452_dt_ids);
 
 static struct i2c_driver mma8452_driver = {
        .driver = {
index 1c0de2f8885db046c319382185a629668d8e99e2..d6fd0dace74f24bf853c2e45d7171c1c115c8ba7 100644 (file)
@@ -353,6 +353,7 @@ static const struct of_device_id cm32181_of_match[] = {
        { .compatible = "capella,cm32181" },
        { }
 };
+MODULE_DEVICE_TABLE(of, cm32181_of_match);
 
 static struct i2c_driver cm32181_driver = {
        .driver = {
index 1b508c65877c0603f784c15f807029a61d6e128a..fe89b6823217bf940ef58bed2b629ac84d98e9c2 100644 (file)
@@ -417,6 +417,7 @@ static const struct of_device_id cm3232_of_match[] = {
        {.compatible = "capella,cm3232"},
        {}
 };
+MODULE_DEVICE_TABLE(of, cm3232_of_match);
 
 static struct i2c_driver cm3232_driver = {
        .driver = {
index 2a39e141e90c0895e4104a8d9bccd8facc000610..c8d7b5ea7e78c880b7bfc1cc1ff829c8c4c4b8aa 100644 (file)
@@ -731,6 +731,7 @@ static const struct of_device_id cm36651_of_match[] = {
        { .compatible = "capella,cm36651" },
        { }
 };
+MODULE_DEVICE_TABLE(of, cm36651_of_match);
 
 static struct i2c_driver cm36651_driver = {
        .driver = {
index 0334a814b5eb5956034a61108c2693375ac06e49..6d41086f7c6462108ebcce2dd2dc7dc76ea8d519 100644 (file)
@@ -1634,6 +1634,7 @@ static const struct of_device_id gp2ap020a00f_of_match[] = {
        { .compatible = "sharp,gp2ap020a00f" },
        { }
 };
+MODULE_DEVICE_TABLE(of, gp2ap020a00f_of_match);
 #endif
 
 static struct i2c_driver gp2ap020a00f_driver = {