]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/panel: visionox-vtdr6130: switch to devm_regulator_bulk_get_const
authorNeil Armstrong <neil.armstrong@linaro.org>
Wed, 28 Aug 2024 16:03:40 +0000 (18:03 +0200)
committerNeil Armstrong <neil.armstrong@linaro.org>
Thu, 29 Aug 2024 11:00:37 +0000 (13:00 +0200)
Switch to devm_regulator_bulk_get_const() to stop setting the supplies
list in probe(), and move the regulator_bulk_data struct in static const.

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20240828-topic-sm8x50-upstream-vtdr6130-multi-v1-2-0cae20d4c55d@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240828-topic-sm8x50-upstream-vtdr6130-multi-v1-2-0cae20d4c55d@linaro.org
drivers/gpu/drm/panel/panel-visionox-vtdr6130.c

index ebe92871dbb63c9ae8f635f80d3f5791a7317e1a..17b8defe79c10ffdbe643f1b3e07318c655eeb89 100644 (file)
@@ -19,7 +19,13 @@ struct visionox_vtdr6130 {
        struct drm_panel panel;
        struct mipi_dsi_device *dsi;
        struct gpio_desc *reset_gpio;
-       struct regulator_bulk_data supplies[3];
+       struct regulator_bulk_data *supplies;
+};
+
+static const struct regulator_bulk_data visionox_vtdr6130_supplies[] = {
+       { .supply = "vddio" },
+       { .supply = "vci" },
+       { .supply = "vdd" },
 };
 
 static inline struct visionox_vtdr6130 *to_visionox_vtdr6130(struct drm_panel *panel)
@@ -139,7 +145,7 @@ static int visionox_vtdr6130_prepare(struct drm_panel *panel)
        struct visionox_vtdr6130 *ctx = to_visionox_vtdr6130(panel);
        int ret;
 
-       ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies),
+       ret = regulator_bulk_enable(ARRAY_SIZE(visionox_vtdr6130_supplies),
                                    ctx->supplies);
        if (ret < 0)
                return ret;
@@ -149,7 +155,8 @@ static int visionox_vtdr6130_prepare(struct drm_panel *panel)
        ret = visionox_vtdr6130_on(ctx);
        if (ret < 0) {
                gpiod_set_value_cansleep(ctx->reset_gpio, 1);
-               regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
+               regulator_bulk_disable(ARRAY_SIZE(visionox_vtdr6130_supplies),
+                                      ctx->supplies);
                return ret;
        }
 
@@ -164,7 +171,8 @@ static int visionox_vtdr6130_unprepare(struct drm_panel *panel)
 
        gpiod_set_value_cansleep(ctx->reset_gpio, 1);
 
-       regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
+       regulator_bulk_disable(ARRAY_SIZE(visionox_vtdr6130_supplies),
+                              ctx->supplies);
 
        return 0;
 }
@@ -244,12 +252,10 @@ static int visionox_vtdr6130_probe(struct mipi_dsi_device *dsi)
        if (!ctx)
                return -ENOMEM;
 
-       ctx->supplies[0].supply = "vddio";
-       ctx->supplies[1].supply = "vci";
-       ctx->supplies[2].supply = "vdd";
-
-       ret = devm_regulator_bulk_get(&dsi->dev, ARRAY_SIZE(ctx->supplies),
-                                     ctx->supplies);
+       ret = devm_regulator_bulk_get_const(&dsi->dev,
+                                           ARRAY_SIZE(visionox_vtdr6130_supplies),
+                                           visionox_vtdr6130_supplies,
+                                           &ctx->supplies);
        if (ret < 0)
                return ret;