[PATCH 2/4] drm/i915/panel: add panel register/unregister

Lee, Shawn C shawn.c.lee at intel.com
Fri Jun 6 15:48:31 UTC 2025


On June 6, 2025, 9:05, Jani Nikula <jani.nikula at intel.com> wrote:
>Add panel register/unregister functions, and handle backlight register/unregister from there. This is in preparation for adding more panel specific register/unregister functionality.
>
>Cc: Lee Shawn C <shawn.c.lee at intel.com>
>Signed-off-by: Jani Nikula <jani.nikula at intel.com>
>---

This patch series was tested on my local device. And panel follower works well.

Tested-by: Lee Shawn C <shawn.c.lee at intel.com>

> .../gpu/drm/i915/display/intel_connector.c    | 23 +++++++++----------
> drivers/gpu/drm/i915/display/intel_panel.c    | 10 ++++++++
> drivers/gpu/drm/i915/display/intel_panel.h    |  2 ++
> 3 files changed, 23 insertions(+), 12 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
>index 9a61c972dce9..2867d76d1a5e 100644
>--- a/drivers/gpu/drm/i915/display/intel_connector.c
>+++ b/drivers/gpu/drm/i915/display/intel_connector.c
>@@ -32,7 +32,6 @@
> 
> #include "i915_drv.h"
> #include "i915_utils.h"
>-#include "intel_backlight.h"
> #include "intel_connector.h"
> #include "intel_display_core.h"
> #include "intel_display_debugfs.h"
>@@ -153,36 +152,36 @@ void intel_connector_destroy(struct drm_connector *connector)
> 	kfree(connector);
> }
> 
>-int intel_connector_register(struct drm_connector *connector)
>+int intel_connector_register(struct drm_connector *_connector)
> {
>-	struct intel_connector *intel_connector = to_intel_connector(connector);
>-	struct drm_i915_private *i915 = to_i915(connector->dev);
>+	struct intel_connector *connector = to_intel_connector(_connector);
>+	struct drm_i915_private *i915 = to_i915(_connector->dev);
> 	int ret;
> 
>-	ret = intel_backlight_device_register(intel_connector);
>+	ret = intel_panel_register(connector);
> 	if (ret)
> 		goto err;
> 
> 	if (i915_inject_probe_failure(i915)) {
> 		ret = -EFAULT;
>-		goto err_backlight;
>+		goto err_panel;
> 	}
> 
>-	intel_connector_debugfs_add(intel_connector);
>+	intel_connector_debugfs_add(connector);
> 
> 	return 0;
> 
>-err_backlight:
>-	intel_backlight_device_unregister(intel_connector);
>+err_panel:
>+	intel_panel_unregister(connector);
> err:
> 	return ret;
> }
> 
>-void intel_connector_unregister(struct drm_connector *connector)
>+void intel_connector_unregister(struct drm_connector *_connector)
> {
>-	struct intel_connector *intel_connector = to_intel_connector(connector);
>+	struct intel_connector *connector = to_intel_connector(_connector);
> 
>-	intel_backlight_device_unregister(intel_connector);
>+	intel_panel_unregister(connector);
> }
> 
> void intel_connector_attach_encoder(struct intel_connector *connector, diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
>index f5c972880391..5ae302bee191 100644
>--- a/drivers/gpu/drm/i915/display/intel_panel.c
>+++ b/drivers/gpu/drm/i915/display/intel_panel.c
>@@ -462,3 +462,13 @@ void intel_panel_fini(struct intel_connector *connector)
> 		drm_mode_destroy(connector->base.dev, fixed_mode);
> 	}
> }
>+
>+int intel_panel_register(struct intel_connector *connector) {
>+	return intel_backlight_device_register(connector);
>+}
>+
>+void intel_panel_unregister(struct intel_connector *connector) {
>+	intel_backlight_device_unregister(connector);
>+}
>diff --git a/drivers/gpu/drm/i915/display/intel_panel.h b/drivers/gpu/drm/i915/display/intel_panel.h
>index b60d12322e5d..3d592a4404f3 100644
>--- a/drivers/gpu/drm/i915/display/intel_panel.h
>+++ b/drivers/gpu/drm/i915/display/intel_panel.h
>@@ -23,6 +23,8 @@ void intel_panel_init_alloc(struct intel_connector *connector);  int intel_panel_init(struct intel_connector *connector,
> 		     const struct drm_edid *fixed_edid);  void intel_panel_fini(struct intel_connector *connector);
>+int intel_panel_register(struct intel_connector *connector); void 
>+intel_panel_unregister(struct intel_connector *connector);
> enum drm_connector_status
> intel_panel_detect(struct drm_connector *connector, bool force);  bool intel_panel_use_ssc(struct intel_display *display);
>--
>2.39.5
>


More information about the Intel-xe mailing list