summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRosen Penev2024-10-07 00:08:24 +0000
committerHauke Mehrtens2024-12-23 23:23:35 +0000
commit4c8bb0a20f8a42b598941fec8b02db6599e3c325 (patch)
tree03ad56038bf394440fdc0d52ff81a0882f77083d
parent8a1c48301f4b37b5d00d1d825be841063aa39b5b (diff)
downloadopenwrt-4c8bb0a20f8a42b598941fec8b02db6599e3c325.tar.gz
kernel: leds-gca230718: remove _remove
Not needed. Everything can be replaced with devm. Signed-off-by: Rosen Penev <rosenp@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16869 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--package/kernel/leds-gca230718/src/leds-gca230718.c27
1 files changed, 7 insertions, 20 deletions
diff --git a/package/kernel/leds-gca230718/src/leds-gca230718.c b/package/kernel/leds-gca230718/src/leds-gca230718.c
index 7467e35ac6..4cfa205203 100644
--- a/package/kernel/leds-gca230718/src/leds-gca230718.c
+++ b/package/kernel/leds-gca230718/src/leds-gca230718.c
@@ -39,14 +39,6 @@ struct gca230718_private {
struct gca230718_led leds[GCA230718_MAX_LEDS];
};
-static void gca230718_init_private_led_data(struct gca230718_private *data)
-{
- u8 ledIndex;
- for (ledIndex = 0; ledIndex < GCA230718_MAX_LEDS; ledIndex++) {
- data->leds[ledIndex].client = NULL;
- }
-}
-
static void gca230718_send_sequence(struct i2c_client *client, u8 byte0,
struct gca230718_private *priv)
{
@@ -114,6 +106,7 @@ static int gca230718_set_brightness(struct led_classdev *led_cdev,
static int gca230718_probe(struct i2c_client *client)
{
struct gca230718_private *priv;
+ int err;
pr_info("Enter gca230718_probe for device address %u\n", client->addr);
priv = devm_kzalloc(&client->dev, sizeof(struct gca230718_private),
@@ -122,11 +115,14 @@ static int gca230718_probe(struct i2c_client *client)
pr_info("Error during allocating memory for private data\n");
return -ENOMEM;
}
- struct device_node *ledNode;
- mutex_init(&priv->lock);
- gca230718_init_private_led_data(priv);
+
+ err = devm_mutex_init(&client->dev, &priv->lock);
+ if (err)
+ return err;
+
i2c_set_clientdata(client, priv);
+ struct device_node *ledNode;
for_each_child_of_node(client->dev.of_node, ledNode) {
u32 regValue = 0;
if (of_property_read_u32(ledNode, "reg", &regValue))
@@ -173,14 +169,6 @@ static int gca230718_probe(struct i2c_client *client)
return 0;
}
-static void gca230718_remove(struct i2c_client *client)
-{
- struct gca230718_private *priv;
- priv = i2c_get_clientdata(client);
- mutex_destroy(&priv->lock);
- gca230718_init_private_led_data(priv);
-}
-
static const struct i2c_device_id gca230718_i2c_ids[] = {
{ "gca230718", 0 },
{},
@@ -195,7 +183,6 @@ MODULE_DEVICE_TABLE(of, gca230718_dt_ids);
static struct i2c_driver gca230718_driver = {
.probe = gca230718_probe,
- .remove = gca230718_remove,
.id_table = gca230718_i2c_ids,
.driver = {
.name = KBUILD_MODNAME,