]> www.infradead.org Git - users/willy/xarray.git/commitdiff
power: supply: ds2782: Switch to simpler IDA interface
authorAndrew Davis <afd@ti.com>
Mon, 2 Dec 2024 21:15:15 +0000 (15:15 -0600)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Wed, 4 Dec 2024 21:31:31 +0000 (22:31 +0100)
We don't need to specify any ranges when allocating IDs so we can switch
to ida_alloc() and ida_free() instead of idr_*.

Signed-off-by: Andrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/20241202211519.199635-1-afd@ti.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/ds2782_battery.c

index 85aa9c465aa4e18536e9e7bfdd2ad2f353d442b3..10428d781c18bd0df7fc636c29afd9c6e33d0c0f 100644 (file)
@@ -63,8 +63,7 @@ struct ds278x_info {
        int                     status;         /* State Of Charge */
 };
 
-static DEFINE_IDR(battery_id);
-static DEFINE_MUTEX(battery_lock);
+static DEFINE_IDA(battery_id);
 
 static inline int ds278x_read_reg(struct ds278x_info *info, int reg, u8 *val)
 {
@@ -322,9 +321,7 @@ static void ds278x_battery_remove(struct i2c_client *client)
        kfree(info->battery_desc.name);
        kfree(info);
 
-       mutex_lock(&battery_lock);
-       idr_remove(&battery_id, id);
-       mutex_unlock(&battery_lock);
+       ida_free(&battery_id, id);
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -387,12 +384,9 @@ static int ds278x_battery_probe(struct i2c_client *client)
        }
 
        /* Get an ID for this battery */
-       mutex_lock(&battery_lock);
-       ret = idr_alloc(&battery_id, client, 0, 0, GFP_KERNEL);
-       mutex_unlock(&battery_lock);
-       if (ret < 0)
-               goto fail_id;
-       num = ret;
+       num = ida_alloc(&battery_id, GFP_KERNEL);
+       if (num < 0)
+               return num;
 
        info = kzalloc(sizeof(*info), GFP_KERNEL);
        if (!info) {
@@ -439,10 +433,7 @@ fail_register:
 fail_name:
        kfree(info);
 fail_info:
-       mutex_lock(&battery_lock);
-       idr_remove(&battery_id, num);
-       mutex_unlock(&battery_lock);
-fail_id:
+       ida_free(&battery_id, num);
        return ret;
 }