]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/bridge: ti-sn65dsi86: use the auxiliary device
authorJerome Brunet <jbrunet@baylibre.com>
Tue, 18 Feb 2025 19:29:48 +0000 (20:29 +0100)
committerDouglas Anderson <dianders@chromium.org>
Tue, 17 Jun 2025 00:09:26 +0000 (17:09 -0700)
The auxiliary device creation of this driver is simple enough to
use the available auxiliary device creation helper.

Use it and remove some boilerplate code.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20250218-aux-device-create-helper-v4-3-c3d7dfdea2e6@baylibre.com
drivers/gpu/drm/bridge/ti-sn65dsi86.c

index 60224f476e1d048c693ab36a0a79b6897c6101a8..986f23454344a83eff34e64192266589055c1f6a 100644 (file)
@@ -447,23 +447,6 @@ DEFINE_SHOW_ATTRIBUTE(status);
  * Auxiliary Devices (*not* AUX)
  */
 
-static void ti_sn65dsi86_uninit_aux(void *data)
-{
-       auxiliary_device_uninit(data);
-}
-
-static void ti_sn65dsi86_delete_aux(void *data)
-{
-       auxiliary_device_delete(data);
-}
-
-static void ti_sn65dsi86_aux_device_release(struct device *dev)
-{
-       struct auxiliary_device *aux = container_of(dev, struct auxiliary_device, dev);
-
-       kfree(aux);
-}
-
 static int ti_sn65dsi86_add_aux_device(struct ti_sn65dsi86 *pdata,
                                       struct auxiliary_device **aux_out,
                                       const char *name)
@@ -471,34 +454,16 @@ static int ti_sn65dsi86_add_aux_device(struct ti_sn65dsi86 *pdata,
        struct device *dev = pdata->dev;
        const struct i2c_client *client = to_i2c_client(dev);
        struct auxiliary_device *aux;
-       int ret;
+       int id;
 
-       aux = kzalloc(sizeof(*aux), GFP_KERNEL);
+       id = (client->adapter->nr << 10) | client->addr;
+       aux = __devm_auxiliary_device_create(dev, KBUILD_MODNAME, name,
+                                            NULL, id);
        if (!aux)
-               return -ENOMEM;
-
-       aux->name = name;
-       aux->id = (client->adapter->nr << 10) | client->addr;
-       aux->dev.parent = dev;
-       aux->dev.release = ti_sn65dsi86_aux_device_release;
-       device_set_of_node_from_dev(&aux->dev, dev);
-       ret = auxiliary_device_init(aux);
-       if (ret) {
-               kfree(aux);
-               return ret;
-       }
-       ret = devm_add_action_or_reset(dev, ti_sn65dsi86_uninit_aux, aux);
-       if (ret)
-               return ret;
-
-       ret = auxiliary_device_add(aux);
-       if (ret)
-               return ret;
-       ret = devm_add_action_or_reset(dev, ti_sn65dsi86_delete_aux, aux);
-       if (!ret)
-               *aux_out = aux;
+               return -ENODEV;
 
-       return ret;
+       *aux_out = aux;
+       return 0;
 }
 
 /* -----------------------------------------------------------------------------