diff options
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.patch | 63 |
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, - }; - |