summaryrefslogtreecommitdiffstats
path: root/of-i2c-fix-module-aliases.patch
diff options
context:
space:
mode:
Diffstat (limited to 'of-i2c-fix-module-aliases.patch')
-rw-r--r--of-i2c-fix-module-aliases.patch69
1 files changed, 0 insertions, 69 deletions
diff --git a/of-i2c-fix-module-aliases.patch b/of-i2c-fix-module-aliases.patch
deleted file mode 100644
index 3c737f6e8..000000000
--- a/of-i2c-fix-module-aliases.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From af503716ac1444db61d80cb6d17cfe62929c21df Mon Sep 17 00:00:00 2001
-From: Javier Martinez Canillas <javierm@redhat.com>
-Date: Sun, 3 Dec 2017 22:40:50 +0100
-Subject: i2c: core: report OF style module alias for devices registered via OF
-
-The buses should honor the firmware interface used to register the device,
-but the I2C core reports a MODALIAS of the form i2c:<device> even for I2C
-devices registered via OF.
-
-This means that user-space will never get an OF stype uevent MODALIAS even
-when the drivers modules contain aliases exported from both the I2C and OF
-device ID tables. For example, an Atmel maXTouch Touchscreen registered by
-a DT node with compatible "atmel,maxtouch" has the following module alias:
-
-$ cat /sys/class/i2c-adapter/i2c-8/8-004b/modalias
-i2c:maxtouch
-
-So udev won't be able to auto-load a module for an OF-only device driver.
-Many OF-only drivers duplicate the OF device ID table entries in an I2C ID
-table only has a workaround for how the I2C core reports the module alias.
-
-This patch changes the I2C core to report an OF related MODALIAS uevent if
-the device was registered via OF. So for the previous example, after this
-patch, the reported MODALIAS for the Atmel maXTouch will be the following:
-
-$ cat /sys/class/i2c-adapter/i2c-8/8-004b/modalias
-of:NtrackpadT<NULL>Catmel,maxtouch
-
-NOTE: This patch may break out-of-tree drivers that were relying on this
- behavior, and only had an I2C device ID table even when the device
- was registered via OF. There are no remaining drivers in mainline
- that do this, but out-of-tree drivers have to be fixed and define
- a proper OF device ID table to have module auto-loading working.
-
-Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
-Tested-by: Dmitry Mastykin <mastichi@gmail.com>
-Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
----
- drivers/i2c/i2c-core-base.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
-index 5a00bf4..edfc23e4 100644
---- a/drivers/i2c/i2c-core-base.c
-+++ b/drivers/i2c/i2c-core-base.c
-@@ -124,6 +124,10 @@ static int i2c_device_uevent(struct device *dev, struct kobj_uevent_env *env)
- struct i2c_client *client = to_i2c_client(dev);
- int rc;
-
-+ rc = of_device_uevent_modalias(dev, env);
-+ if (rc != -ENODEV)
-+ return rc;
-+
- rc = acpi_device_uevent_modalias(dev, env);
- if (rc != -ENODEV)
- return rc;
-@@ -439,6 +443,10 @@ show_modalias(struct device *dev, struct device_attribute *attr, char *buf)
- struct i2c_client *client = to_i2c_client(dev);
- int len;
-
-+ len = of_device_modalias(dev, buf, PAGE_SIZE);
-+ if (len != -ENODEV)
-+ return len;
-+
- len = acpi_device_modalias(dev, buf, PAGE_SIZE -1);
- if (len != -ENODEV)
- return len;
---
-cgit v1.1