summaryrefslogtreecommitdiff
path: root/target/linux/generic/backport-5.10/844-v5.15-leds-pca955x-switch-to-i2c-probe-new.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/backport-5.10/844-v5.15-leds-pca955x-switch-to-i2c-probe-new.patch')
-rw-r--r--target/linux/generic/backport-5.10/844-v5.15-leds-pca955x-switch-to-i2c-probe-new.patch63
1 files changed, 0 insertions, 63 deletions
diff --git a/target/linux/generic/backport-5.10/844-v5.15-leds-pca955x-switch-to-i2c-probe-new.patch b/target/linux/generic/backport-5.10/844-v5.15-leds-pca955x-switch-to-i2c-probe-new.patch
deleted file mode 100644
index 8154cd66f1..0000000000
--- a/target/linux/generic/backport-5.10/844-v5.15-leds-pca955x-switch-to-i2c-probe-new.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 239f32b4f161c1584cd4b386d6ab8766432a6ede Mon Sep 17 00:00:00 2001
-From: Eddie James <eajames@linux.ibm.com>
-Date: Fri, 16 Jul 2021 17:03:31 -0500
-Subject: [PATCH] leds: pca955x: Switch to i2c probe_new
-
-The deprecated i2c probe functionality doesn't work with OF
-compatible strings, as it only checks for the i2c device id. Switch
-to the new way of probing and grab the match data to select the
-chip type.
-
-Signed-off-by: Eddie James <eajames@linux.ibm.com>
-Signed-off-by: Pavel Machek <pavel@ucw.cz>
----
- drivers/leds/leds-pca955x.c | 23 +++++++++++++++++++----
- 1 file changed, 19 insertions(+), 4 deletions(-)
-
---- a/drivers/leds/leds-pca955x.c
-+++ b/drivers/leds/leds-pca955x.c
-@@ -479,8 +479,7 @@ static const struct of_device_id of_pca9
- };
- MODULE_DEVICE_TABLE(of, of_pca955x_match);
-
--static int pca955x_probe(struct i2c_client *client,
-- const struct i2c_device_id *id)
-+static int pca955x_probe(struct i2c_client *client)
- {
- struct pca955x *pca955x;
- struct pca955x_led *pca955x_led;
-@@ -494,8 +493,24 @@ static int pca955x_probe(struct i2c_clie
- bool set_default_label = false;
- bool keep_pwm = false;
- char default_label[8];
-+ enum pca955x_type chip_type;
-+ const void *md = device_get_match_data(&client->dev);
-
-- chip = &pca955x_chipdefs[id->driver_data];
-+ if (md) {
-+ chip_type = (enum pca955x_type)md;
-+ } else {
-+ const struct i2c_device_id *id = i2c_match_id(pca955x_id,
-+ client);
-+
-+ if (id) {
-+ chip_type = (enum pca955x_type)id->driver_data;
-+ } else {
-+ dev_err(&client->dev, "unknown chip\n");
-+ return -ENODEV;
-+ }
-+ }
-+
-+ chip = &pca955x_chipdefs[chip_type];
- adapter = client->adapter;
- pdata = dev_get_platdata(&client->dev);
- if (!pdata) {
-@@ -670,7 +685,7 @@ static struct i2c_driver pca955x_driver
- .name = "leds-pca955x",
- .of_match_table = of_pca955x_match,
- },
-- .probe = pca955x_probe,
-+ .probe_new = pca955x_probe,
- .id_table = pca955x_id,
- };
-