diff mbox

[v2] drm/i915: hsw backlight registers need transcoder instead of pipe

Message ID 1366897765-24865-1-git-send-email-jani.nikula@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jani Nikula April 25, 2013, 1:49 p.m. UTC
v2: Make TRANSCODER_EDP handling more explicit. (Imre)

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_reg.h    |    4 ++++
 drivers/gpu/drm/i915/intel_panel.c |    7 ++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

Comments

Imre Deak April 25, 2013, 2:07 p.m. UTC | #1
On Thu, 2013-04-25 at 16:49 +0300, Jani Nikula wrote:
> v2: Make TRANSCODER_EDP handling more explicit. (Imre)
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Looks ok, so still applies my r-b.

> --
>  drivers/gpu/drm/i915/i915_reg.h    |    4 ++++
>  drivers/gpu/drm/i915/intel_panel.c |    7 ++++++-
>  2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 60e0e19..e79669f 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2087,6 +2087,10 @@
>  #define   BLM_PIPE_A			(0 << 29)
>  #define   BLM_PIPE_B			(1 << 29)
>  #define   BLM_PIPE_C			(2 << 29) /* ivb + */
> +#define   BLM_TRANSCODER_A		BLM_PIPE_A /* hsw */
> +#define   BLM_TRANSCODER_B		BLM_PIPE_B
> +#define   BLM_TRANSCODER_C		BLM_PIPE_C
> +#define   BLM_TRANSCODER_EDP		(3 << 29)
>  #define   BLM_PIPE(pipe)		((pipe) << 29)
>  #define   BLM_POLARITY_I965		(1 << 28) /* gen4 only */
>  #define   BLM_PHASE_IN_INTERUPT_STATUS	(1 << 26)
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index 5d3e9d7..7f6141d 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -344,6 +344,8 @@ void intel_panel_enable_backlight(struct drm_device *dev,
>  				  enum pipe pipe)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> +	enum transcoder cpu_transcoder =
> +		intel_pipe_to_cpu_transcoder(dev_priv, pipe);
>  	unsigned long flags;
>  
>  	spin_lock_irqsave(&dev_priv->backlight.lock, flags);
> @@ -374,7 +376,10 @@ void intel_panel_enable_backlight(struct drm_device *dev,
>  		else
>  			tmp &= ~BLM_PIPE_SELECT;
>  
> -		tmp |= BLM_PIPE(pipe);
> +		if (cpu_transcoder == TRANSCODER_EDP)
> +			tmp |= BLM_TRANSCODER_EDP;
> +		else
> +			tmp |= BLM_PIPE(cpu_transcoder);
>  		tmp &= ~BLM_PWM_ENABLE;
>  
>  		I915_WRITE(reg, tmp);
Daniel Vetter April 25, 2013, 2:13 p.m. UTC | #2
On Thu, Apr 25, 2013 at 05:07:55PM +0300, Imre Deak wrote:
> On Thu, 2013-04-25 at 16:49 +0300, Jani Nikula wrote:
> > v2: Make TRANSCODER_EDP handling more explicit. (Imre)
> > 
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> Looks ok, so still applies my r-b.

Queued for -next, thanks for the patch.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 60e0e19..e79669f 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2087,6 +2087,10 @@ 
 #define   BLM_PIPE_A			(0 << 29)
 #define   BLM_PIPE_B			(1 << 29)
 #define   BLM_PIPE_C			(2 << 29) /* ivb + */
+#define   BLM_TRANSCODER_A		BLM_PIPE_A /* hsw */
+#define   BLM_TRANSCODER_B		BLM_PIPE_B
+#define   BLM_TRANSCODER_C		BLM_PIPE_C
+#define   BLM_TRANSCODER_EDP		(3 << 29)
 #define   BLM_PIPE(pipe)		((pipe) << 29)
 #define   BLM_POLARITY_I965		(1 << 28) /* gen4 only */
 #define   BLM_PHASE_IN_INTERUPT_STATUS	(1 << 26)
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 5d3e9d7..7f6141d 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -344,6 +344,8 @@  void intel_panel_enable_backlight(struct drm_device *dev,
 				  enum pipe pipe)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
+	enum transcoder cpu_transcoder =
+		intel_pipe_to_cpu_transcoder(dev_priv, pipe);
 	unsigned long flags;
 
 	spin_lock_irqsave(&dev_priv->backlight.lock, flags);
@@ -374,7 +376,10 @@  void intel_panel_enable_backlight(struct drm_device *dev,
 		else
 			tmp &= ~BLM_PIPE_SELECT;
 
-		tmp |= BLM_PIPE(pipe);
+		if (cpu_transcoder == TRANSCODER_EDP)
+			tmp |= BLM_TRANSCODER_EDP;
+		else
+			tmp |= BLM_PIPE(cpu_transcoder);
 		tmp &= ~BLM_PWM_ENABLE;
 
 		I915_WRITE(reg, tmp);