Commit fda9ee98 authored by Chris Wilson's avatar Chris Wilson

drm/i915: Move panel's backlight setup next to panel init

Currently setting up the backlight for a panel is sometimes done
together with initialising the panel, and sometimes after the connector
is registered. The backlight setup does not depend upon connector
registration (i.e. access to sysfs/debugfs and the kobject hierachy) so
perform it consistently just after panel initialisation.

Note the discrepancy here as destroying the panel is done during
connector unregistration...
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1466773227-7994-1-git-send-email-chris@chris-wilson.co.uk
parent a19d6ff2
...@@ -1496,7 +1496,8 @@ void intel_gmch_panel_fitting(struct intel_crtc *crtc, ...@@ -1496,7 +1496,8 @@ void intel_gmch_panel_fitting(struct intel_crtc *crtc,
int fitting_mode); int fitting_mode);
void intel_panel_set_backlight_acpi(struct intel_connector *connector, void intel_panel_set_backlight_acpi(struct intel_connector *connector,
u32 level, u32 max); u32 level, u32 max);
int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe); int intel_panel_setup_backlight(struct drm_connector *connector,
enum pipe pipe);
void intel_panel_enable_backlight(struct intel_connector *connector); void intel_panel_enable_backlight(struct intel_connector *connector);
void intel_panel_disable_backlight(struct intel_connector *connector); void intel_panel_disable_backlight(struct intel_connector *connector);
void intel_panel_destroy_backlight(struct drm_connector *connector); void intel_panel_destroy_backlight(struct drm_connector *connector);
......
...@@ -1587,13 +1587,12 @@ void intel_dsi_init(struct drm_device *dev) ...@@ -1587,13 +1587,12 @@ void intel_dsi_init(struct drm_device *dev)
connector->display_info.height_mm = fixed_mode->height_mm; connector->display_info.height_mm = fixed_mode->height_mm;
intel_panel_init(&intel_connector->panel, fixed_mode, NULL); intel_panel_init(&intel_connector->panel, fixed_mode, NULL);
intel_panel_setup_backlight(connector, INVALID_PIPE);
intel_dsi_add_properties(intel_connector); intel_dsi_add_properties(intel_connector);
drm_connector_register(connector); drm_connector_register(connector);
intel_panel_setup_backlight(connector, INVALID_PIPE);
return; return;
err: err:
......
...@@ -1120,6 +1120,7 @@ void intel_lvds_init(struct drm_device *dev) ...@@ -1120,6 +1120,7 @@ void intel_lvds_init(struct drm_device *dev)
mutex_unlock(&dev->mode_config.mutex); mutex_unlock(&dev->mode_config.mutex);
intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode); intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode);
intel_panel_setup_backlight(connector, INVALID_PIPE);
lvds_encoder->is_dual_link = compute_is_dual_link_lvds(lvds_encoder); lvds_encoder->is_dual_link = compute_is_dual_link_lvds(lvds_encoder);
DRM_DEBUG_KMS("detected %s-link lvds configuration\n", DRM_DEBUG_KMS("detected %s-link lvds configuration\n",
...@@ -1134,8 +1135,6 @@ void intel_lvds_init(struct drm_device *dev) ...@@ -1134,8 +1135,6 @@ void intel_lvds_init(struct drm_device *dev)
} }
drm_connector_register(connector); drm_connector_register(connector);
intel_panel_setup_backlight(connector, INVALID_PIPE);
return; return;
failed: failed:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment