]> www.infradead.org Git - users/willy/xarray.git/commitdiff
power: Convert bq2415x_charger to IDA
authorMatthew Wilcox <willy@infradead.org>
Mon, 18 Feb 2019 21:13:37 +0000 (16:13 -0500)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 9 Aug 2019 01:38:17 +0000 (21:38 -0400)
Signed-off-by: Matthew Wilcox <willy@infradead.org>
drivers/power/supply/bq2415x_charger.c

index 532f6e4fcafbfa10e1220a4618c473e10b0c8fed..83a72eab0f7ad3a0955c94445f53463faa9b7733 100644 (file)
@@ -175,9 +175,8 @@ struct bq2415x_device {
 };
 
 /* each registered chip must have unique id */
-static DEFINE_IDR(bq2415x_id);
+static DEFINE_IDA(bq2415x_ids);
 
-static DEFINE_MUTEX(bq2415x_id_mutex);
 static DEFINE_MUTEX(bq2415x_timer_mutex);
 static DEFINE_MUTEX(bq2415x_i2c_mutex);
 
@@ -1539,9 +1538,7 @@ static int bq2415x_probe(struct i2c_client *client,
        }
 
        /* Get new ID for the new device */
-       mutex_lock(&bq2415x_id_mutex);
-       num = idr_alloc(&bq2415x_id, client, 0, 0, GFP_KERNEL);
-       mutex_unlock(&bq2415x_id_mutex);
+       num = ida_alloc(&bq2415x_ids, GFP_KERNEL);
        if (num < 0)
                return num;
 
@@ -1687,9 +1684,7 @@ error_2:
                of_node_put(bq->notify_node);
        kfree(name);
 error_1:
-       mutex_lock(&bq2415x_id_mutex);
-       idr_remove(&bq2415x_id, num);
-       mutex_unlock(&bq2415x_id_mutex);
+       ida_free(&bq2415x_ids, num);
 
        return ret;
 }
@@ -1708,9 +1703,7 @@ static int bq2415x_remove(struct i2c_client *client)
 
        bq2415x_reset_chip(bq);
 
-       mutex_lock(&bq2415x_id_mutex);
-       idr_remove(&bq2415x_id, bq->id);
-       mutex_unlock(&bq2415x_id_mutex);
+       ida_free(&bq2415x_ids, bq->id);
 
        dev_info(bq->dev, "driver unregistered\n");