drm/i915: Remove most INVALID_PIPE checks from the backlight code
Now that the backlight device no longer gets registered too early we should be able to drop most of the INVALID_PIPE checks from the backlight code. The only exceptio is the opregion stuff where we may (in theory at least) get a request from the BIOS already during driver init as soon as the backlight setup has been done. In which case we can still get the INVALID_PIPE from intel_get_pipe_from_connector(). So leave that check in place, and add a comment explaining why. For the rest, if we still manage to get here with INVALID_PIPE on VLV/CHV we will now get a WARN from the lower level functions and can then actually investigate further. v2: Leave the check in the BIOS related code (Jani) Cc: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Родитель
0962c3c9c7
Коммит
260d8f98ef
|
@ -634,10 +634,9 @@ static void intel_panel_set_backlight(struct intel_connector *connector,
|
|||
struct drm_device *dev = connector->base.dev;
|
||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||
struct intel_panel *panel = &connector->panel;
|
||||
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
||||
u32 hw_level;
|
||||
|
||||
if (!panel->backlight.present || pipe == INVALID_PIPE)
|
||||
if (!panel->backlight.present)
|
||||
return;
|
||||
|
||||
mutex_lock(&dev_priv->backlight_lock);
|
||||
|
@ -665,6 +664,12 @@ void intel_panel_set_backlight_acpi(struct intel_connector *connector,
|
|||
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
||||
u32 hw_level;
|
||||
|
||||
/*
|
||||
* INVALID_PIPE may occur during driver init because
|
||||
* connection_mutex isn't held across the entire backlight
|
||||
* setup + modeset readout, and the BIOS can issue the
|
||||
* requests at any time.
|
||||
*/
|
||||
if (!panel->backlight.present || pipe == INVALID_PIPE)
|
||||
return;
|
||||
|
||||
|
@ -740,9 +745,8 @@ void intel_panel_disable_backlight(struct intel_connector *connector)
|
|||
struct drm_device *dev = connector->base.dev;
|
||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||
struct intel_panel *panel = &connector->panel;
|
||||
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
||||
|
||||
if (!panel->backlight.present || pipe == INVALID_PIPE)
|
||||
if (!panel->backlight.present)
|
||||
return;
|
||||
|
||||
/*
|
||||
|
@ -949,7 +953,7 @@ void intel_panel_enable_backlight(struct intel_connector *connector)
|
|||
struct intel_panel *panel = &connector->panel;
|
||||
enum pipe pipe = intel_get_pipe_from_connector(connector);
|
||||
|
||||
if (!panel->backlight.present || pipe == INVALID_PIPE)
|
||||
if (!panel->backlight.present)
|
||||
return;
|
||||
|
||||
DRM_DEBUG_KMS("pipe %c\n", pipe_name(pipe));
|
||||
|
|
Загрузка…
Ссылка в новой задаче