mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-11 14:13:51 -04:00
drm/i915/panel: add panel register/unregister
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@intel.com> Tested-by: Lee Shawn C <shawn.c.lee@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@gmail.com> Reviewed-by: Maxime Ripard <mripard@kernel.org> Link: https://lore.kernel.org/r/b737d4bc8b91df630cd4db4648f3a3571989cfd8.1749199013.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user