Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6c50ff8 authored by Paulo Zanoni's avatar Paulo Zanoni Committed by Daniel Vetter
Browse files

drm/i915: set/unset the DDI eDP backlight

parent b8fc2f6a
Loading
Loading
Loading
Loading
+13 −2
Original line number Original line Diff line number Diff line
@@ -1231,12 +1231,23 @@ void intel_enable_ddi(struct intel_encoder *intel_encoder)
		 * enabling the port.
		 * enabling the port.
		 */
		 */
		I915_WRITE(DDI_BUF_CTL(port), DDI_BUF_CTL_ENABLE);
		I915_WRITE(DDI_BUF_CTL(port), DDI_BUF_CTL_ENABLE);
	} else if (type == INTEL_OUTPUT_EDP) {
		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);

		ironlake_edp_backlight_on(intel_dp);
	}
	}
}
}


void intel_disable_ddi(struct intel_encoder *encoder)
void intel_disable_ddi(struct intel_encoder *intel_encoder)
{
{
	/* This will be needed in the future, so leave it here for now */
	struct drm_encoder *encoder = &intel_encoder->base;
	int type = intel_encoder->type;

	if (type == INTEL_OUTPUT_EDP) {
		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);

		ironlake_edp_backlight_off(intel_dp);
	}
}
}


int intel_ddi_get_cdclk_freq(struct drm_i915_private *dev_priv)
int intel_ddi_get_cdclk_freq(struct drm_i915_private *dev_priv)
+2 −2
Original line number Original line Diff line number Diff line
@@ -1164,7 +1164,7 @@ static void ironlake_edp_panel_off(struct intel_dp *intel_dp)
	ironlake_wait_panel_off(intel_dp);
	ironlake_wait_panel_off(intel_dp);
}
}


static void ironlake_edp_backlight_on(struct intel_dp *intel_dp)
void ironlake_edp_backlight_on(struct intel_dp *intel_dp)
{
{
	struct drm_device *dev = intel_dp->base.base.dev;
	struct drm_device *dev = intel_dp->base.base.dev;
	struct drm_i915_private *dev_priv = dev->dev_private;
	struct drm_i915_private *dev_priv = dev->dev_private;
@@ -1190,7 +1190,7 @@ static void ironlake_edp_backlight_on(struct intel_dp *intel_dp)
	intel_panel_enable_backlight(dev, pipe);
	intel_panel_enable_backlight(dev, pipe);
}
}


static void ironlake_edp_backlight_off(struct intel_dp *intel_dp)
void ironlake_edp_backlight_off(struct intel_dp *intel_dp)
{
{
	struct drm_device *dev = intel_dp->base.base.dev;
	struct drm_device *dev = intel_dp->base.base.dev;
	struct drm_i915_private *dev_priv = dev->dev_private;
	struct drm_i915_private *dev_priv = dev->dev_private;
+4 −2
Original line number Original line Diff line number Diff line
@@ -438,6 +438,8 @@ extern void intel_dp_start_link_train(struct intel_dp *intel_dp);
extern void intel_dp_complete_link_train(struct intel_dp *intel_dp);
extern void intel_dp_complete_link_train(struct intel_dp *intel_dp);
extern void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode);
extern void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode);
extern bool intel_dpd_is_edp(struct drm_device *dev);
extern bool intel_dpd_is_edp(struct drm_device *dev);
extern void ironlake_edp_backlight_on(struct intel_dp *intel_dp);
extern void ironlake_edp_backlight_off(struct intel_dp *intel_dp);
extern void intel_edp_link_config(struct intel_encoder *, int *, int *);
extern void intel_edp_link_config(struct intel_encoder *, int *, int *);
extern int intel_edp_target_clock(struct intel_encoder *,
extern int intel_edp_target_clock(struct intel_encoder *,
				  struct drm_display_mode *mode);
				  struct drm_display_mode *mode);
@@ -601,8 +603,8 @@ extern void intel_disable_gt_powersave(struct drm_device *dev);
extern void gen6_gt_check_fifodbg(struct drm_i915_private *dev_priv);
extern void gen6_gt_check_fifodbg(struct drm_i915_private *dev_priv);
extern void ironlake_teardown_rc6(struct drm_device *dev);
extern void ironlake_teardown_rc6(struct drm_device *dev);


extern void intel_enable_ddi(struct intel_encoder *encoder);
extern void intel_enable_ddi(struct intel_encoder *intel_encoder);
extern void intel_disable_ddi(struct intel_encoder *encoder);
extern void intel_disable_ddi(struct intel_encoder *intel_encoder);
extern bool intel_ddi_get_hw_state(struct intel_encoder *encoder,
extern bool intel_ddi_get_hw_state(struct intel_encoder *encoder,
				   enum pipe *pipe);
				   enum pipe *pipe);
extern void intel_ddi_mode_set(struct drm_encoder *encoder,
extern void intel_ddi_mode_set(struct drm_encoder *encoder,