treewide: remove files for building 5.10 kernel
[openwrt/openwrt.git] / target / linux / generic / backport-5.10 / 844-v5.15-leds-pca955x-switch-to-i2c-probe-new.patch
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 (file)
index 8154cd6..0000000
+++ /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,
- };