Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915/dsi: Use devm_gpiod_get() for all GPIOs

soc_gpio_set_value() already uses devm_gpiod_get(), lets be consistent
and use devm_gpiod_get() for all GPIOs.

This allows removing the intel_dsi_vbt_gpio_cleanup() function,
which only function was to put the GPIO-descriptors.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231201161130.23976-1-hdegoede@redhat.com

+3 -25
+2 -15
drivers/gpu/drm/i915/display/intel_dsi_vbt.c
··· 922 922 gpiod_add_lookup_table(gpiod_lookup_table); 923 923 924 924 if (want_panel_gpio) { 925 - intel_dsi->gpio_panel = gpiod_get(dev->dev, "panel", flags); 925 + intel_dsi->gpio_panel = devm_gpiod_get(dev->dev, "panel", flags); 926 926 if (IS_ERR(intel_dsi->gpio_panel)) { 927 927 drm_err(&dev_priv->drm, 928 928 "Failed to own gpio for panel control\n"); ··· 932 932 933 933 if (want_backlight_gpio) { 934 934 intel_dsi->gpio_backlight = 935 - gpiod_get(dev->dev, "backlight", flags); 935 + devm_gpiod_get(dev->dev, "backlight", flags); 936 936 if (IS_ERR(intel_dsi->gpio_backlight)) { 937 937 drm_err(&dev_priv->drm, 938 938 "Failed to own gpio for backlight control\n"); ··· 942 942 943 943 if (gpiod_lookup_table) 944 944 gpiod_remove_lookup_table(gpiod_lookup_table); 945 - } 946 - 947 - void intel_dsi_vbt_gpio_cleanup(struct intel_dsi *intel_dsi) 948 - { 949 - if (intel_dsi->gpio_panel) { 950 - gpiod_put(intel_dsi->gpio_panel); 951 - intel_dsi->gpio_panel = NULL; 952 - } 953 - 954 - if (intel_dsi->gpio_backlight) { 955 - gpiod_put(intel_dsi->gpio_backlight); 956 - intel_dsi->gpio_backlight = NULL; 957 - } 958 945 }
-1
drivers/gpu/drm/i915/display/intel_dsi_vbt.h
··· 13 13 14 14 bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id); 15 15 void intel_dsi_vbt_gpio_init(struct intel_dsi *intel_dsi, bool panel_is_on); 16 - void intel_dsi_vbt_gpio_cleanup(struct intel_dsi *intel_dsi); 17 16 void intel_dsi_vbt_exec_sequence(struct intel_dsi *intel_dsi, 18 17 enum mipi_seq seq_id); 19 18 void intel_dsi_log_params(struct intel_dsi *intel_dsi);
+1 -9
drivers/gpu/drm/i915/display/vlv_dsi.c
··· 1532 1532 } 1533 1533 } 1534 1534 1535 - static void intel_dsi_encoder_destroy(struct drm_encoder *encoder) 1536 - { 1537 - struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder)); 1538 - 1539 - intel_dsi_vbt_gpio_cleanup(intel_dsi); 1540 - intel_encoder_destroy(encoder); 1541 - } 1542 - 1543 1535 static const struct drm_encoder_funcs intel_dsi_funcs = { 1544 - .destroy = intel_dsi_encoder_destroy, 1536 + .destroy = intel_encoder_destroy, 1545 1537 }; 1546 1538 1547 1539 static enum drm_mode_status vlv_dsi_mode_valid(struct drm_connector *connector,