public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH] FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT
@ 2016-12-07 14:09 Vidya Srinivas
  2016-12-07 14:58 ` Vidya Srinivas
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Vidya Srinivas @ 2016-12-07 14:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Vidya Srinivas

Currently the backlight controller is taken as 0. It needs to derive
value from the VBT. Adding the necessary changes.

Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h    | 1 +
 drivers/gpu/drm/i915/intel_bios.c  | 5 +++++
 drivers/gpu/drm/i915/intel_panel.c | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 8daa4fb..6a85fdf 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1633,6 +1633,7 @@ struct intel_vbt_data {
 		bool present;
 		bool active_low_pwm;
 		u8 min_brightness;	/* min_brightness/255 of max */
+		u8 controller;		/* brightness controller number */
 		enum intel_backlight_type type;
 	} backlight;
 
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index eaade27..130db0f 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -330,6 +330,8 @@ static u32 get_blocksize(const void *block_data)
 
 		method = &backlight_data->backlight_control[panel_type];
 		dev_priv->vbt.backlight.type = method->type;
+		dev_priv->vbt.backlight.controller = 0;
+		dev_priv->vbt.backlight.controller = method->controller;
 	}
 
 	dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
@@ -341,6 +343,9 @@ static u32 get_blocksize(const void *block_data)
 		      dev_priv->vbt.backlight.active_low_pwm ? "low" : "high",
 		      dev_priv->vbt.backlight.min_brightness,
 		      backlight_data->level[panel_type]);
+
+	DRM_DEBUG_KMS("VBT BL controller %u\n",
+			dev_priv->vbt.backlight.controller);
 }
 
 /* Try to find sdvo panel data */
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 3578b40..6a7d4c3 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1612,7 +1612,7 @@ static int vlv_setup_backlight(struct intel_connector *connector, enum pipe pipe
 	 * For BXT hard coding the Backlight controller to 0.
 	 * TODO : Read the controller value from VBT and generalize
 	 */
-	panel->backlight.controller = 0;
+	panel->backlight.controller = dev_priv->vbt.backlight.controller;
 
 	pwm_ctl = I915_READ(BXT_BLC_PWM_CTL(panel->backlight.controller));
 
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH] FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT
  2016-12-07 14:09 [PATCH] FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT Vidya Srinivas
@ 2016-12-07 14:58 ` Vidya Srinivas
  2016-12-07 15:02 ` [PATCH] " Vidya Srinivas
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Vidya Srinivas @ 2016-12-07 14:58 UTC (permalink / raw)
  To: intel-gfx; +Cc: Vidya Srinivas

Currently the backlight controller is taken as 0. It needs to derive
value from the VBT. Adding the necessary changes.

Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h    | 1 +
 drivers/gpu/drm/i915/intel_bios.c  | 5 +++++
 drivers/gpu/drm/i915/intel_panel.c | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 8daa4fb..6a85fdf 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1633,6 +1633,7 @@ struct intel_vbt_data {
 		bool present;
 		bool active_low_pwm;
 		u8 min_brightness;	/* min_brightness/255 of max */
+		u8 controller;		/* brightness controller number */
 		enum intel_backlight_type type;
 	} backlight;
 
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index eaade27..130db0f 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -330,6 +330,8 @@ static u32 get_blocksize(const void *block_data)
 
 		method = &backlight_data->backlight_control[panel_type];
 		dev_priv->vbt.backlight.type = method->type;
+		dev_priv->vbt.backlight.controller = 0;
+		dev_priv->vbt.backlight.controller = method->controller;
 	}
 
 	dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
@@ -341,6 +343,9 @@ static u32 get_blocksize(const void *block_data)
 		      dev_priv->vbt.backlight.active_low_pwm ? "low" : "high",
 		      dev_priv->vbt.backlight.min_brightness,
 		      backlight_data->level[panel_type]);
+
+	DRM_DEBUG_KMS("VBT BL controller %u\n",
+			dev_priv->vbt.backlight.controller);
 }
 
 /* Try to find sdvo panel data */
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 3578b40..6a7d4c3 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1612,7 +1612,7 @@ static int vlv_setup_backlight(struct intel_connector *connector, enum pipe pipe
 	 * For BXT hard coding the Backlight controller to 0.
 	 * TODO : Read the controller value from VBT and generalize
 	 */
-	panel->backlight.controller = 0;
+	panel->backlight.controller = dev_priv->vbt.backlight.controller;
 
 	pwm_ctl = I915_READ(BXT_BLC_PWM_CTL(panel->backlight.controller));
 
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH] drm/i915: Parse panel BL controller from VBT
  2016-12-07 14:09 [PATCH] FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT Vidya Srinivas
  2016-12-07 14:58 ` Vidya Srinivas
@ 2016-12-07 15:02 ` Vidya Srinivas
  2016-12-07 17:44   ` Bob Paauwe
  2016-12-08  6:14   ` Mika Kahola
  2016-12-07 19:19 ` ✓ Fi.CI.BAT: success for FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev3) Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 9+ messages in thread
From: Vidya Srinivas @ 2016-12-07 15:02 UTC (permalink / raw)
  To: intel-gfx; +Cc: Vidya Srinivas

Currently the backlight controller is taken as 0. It needs to derive
value from the VBT. Adding the necessary changes.

v2: Updated the commit header

Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h    | 1 +
 drivers/gpu/drm/i915/intel_bios.c  | 5 +++++
 drivers/gpu/drm/i915/intel_panel.c | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 8daa4fb..6a85fdf 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1633,6 +1633,7 @@ struct intel_vbt_data {
 		bool present;
 		bool active_low_pwm;
 		u8 min_brightness;	/* min_brightness/255 of max */
+		u8 controller;		/* brightness controller number */
 		enum intel_backlight_type type;
 	} backlight;
 
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index eaade27..130db0f 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -330,6 +330,8 @@ static u32 get_blocksize(const void *block_data)
 
 		method = &backlight_data->backlight_control[panel_type];
 		dev_priv->vbt.backlight.type = method->type;
+		dev_priv->vbt.backlight.controller = 0;
+		dev_priv->vbt.backlight.controller = method->controller;
 	}
 
 	dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
@@ -341,6 +343,9 @@ static u32 get_blocksize(const void *block_data)
 		      dev_priv->vbt.backlight.active_low_pwm ? "low" : "high",
 		      dev_priv->vbt.backlight.min_brightness,
 		      backlight_data->level[panel_type]);
+
+	DRM_DEBUG_KMS("VBT BL controller %u\n",
+			dev_priv->vbt.backlight.controller);
 }
 
 /* Try to find sdvo panel data */
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 3578b40..6a7d4c3 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1612,7 +1612,7 @@ static int vlv_setup_backlight(struct intel_connector *connector, enum pipe pipe
 	 * For BXT hard coding the Backlight controller to 0.
 	 * TODO : Read the controller value from VBT and generalize
 	 */
-	panel->backlight.controller = 0;
+	panel->backlight.controller = dev_priv->vbt.backlight.controller;
 
 	pwm_ctl = I915_READ(BXT_BLC_PWM_CTL(panel->backlight.controller));
 
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] drm/i915: Parse panel BL controller from VBT
  2016-12-07 15:02 ` [PATCH] " Vidya Srinivas
@ 2016-12-07 17:44   ` Bob Paauwe
  2016-12-08  6:14   ` Mika Kahola
  1 sibling, 0 replies; 9+ messages in thread
From: Bob Paauwe @ 2016-12-07 17:44 UTC (permalink / raw)
  To: Vidya Srinivas; +Cc: intel-gfx


I currently have this same patch in my tree (well with the two changes
below) and have been testing it so with the changes.

Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com>
Tested-by: Bob Paauwe <bob.j.paauwe@intel.com>

On Wed, 7 Dec 2016 20:32:18 +0530 Vidya Srinivas
<vidya.srinivas@intel.com> wrote:

> Currently the backlight controller is taken as 0. It needs to derive
> value from the VBT. Adding the necessary changes.
> 
> v2: Updated the commit header
> 
> Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.h    | 1 +
>  drivers/gpu/drm/i915/intel_bios.c  | 5 +++++
>  drivers/gpu/drm/i915/intel_panel.c | 2 +-
>  3 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 8daa4fb..6a85fdf 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1633,6 +1633,7 @@ struct intel_vbt_data {
>  		bool present;
>  		bool active_low_pwm;
>  		u8 min_brightness;	/* min_brightness/255 of max */
> +		u8 controller;		/* brightness controller number */
>  		enum intel_backlight_type type;
>  	} backlight;
>  
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index eaade27..130db0f 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -330,6 +330,8 @@ static u32 get_blocksize(const void *block_data)
>  
>  		method = &backlight_data->backlight_control[panel_type];
>  		dev_priv->vbt.backlight.type = method->type;
> +		dev_priv->vbt.backlight.controller = 0;

Setting it to zero first seems redundant.  Is there a reason you do
this?

> +		dev_priv->vbt.backlight.controller = method->controller;
>  	}
>  
>  	dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
> @@ -341,6 +343,9 @@ static u32 get_blocksize(const void *block_data)
>  		      dev_priv->vbt.backlight.active_low_pwm ? "low" : "high",
>  		      dev_priv->vbt.backlight.min_brightness,
>  		      backlight_data->level[panel_type]);
> +
> +	DRM_DEBUG_KMS("VBT BL controller %u\n",
> +			dev_priv->vbt.backlight.controller);
>  }
>  
>  /* Try to find sdvo panel data */
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index 3578b40..6a7d4c3 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -1612,7 +1612,7 @@ static int vlv_setup_backlight(struct intel_connector *connector, enum pipe pipe
>  	 * For BXT hard coding the Backlight controller to 0.
>  	 * TODO : Read the controller value from VBT and generalize
>  	 */
> -	panel->backlight.controller = 0;
> +	panel->backlight.controller = dev_priv->vbt.backlight.controller;

You should remove the comment above now that it's not hard coded.

>  
>  	pwm_ctl = I915_READ(BXT_BLC_PWM_CTL(panel->backlight.controller));
>  



-- 
--
Bob Paauwe                  
Bob.J.Paauwe@intel.com
IOTG / PED Software Organization
Intel Corp.  Folsom, CA
(916) 356-6193    

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* ✓ Fi.CI.BAT: success for FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev3)
  2016-12-07 14:09 [PATCH] FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT Vidya Srinivas
  2016-12-07 14:58 ` Vidya Srinivas
  2016-12-07 15:02 ` [PATCH] " Vidya Srinivas
@ 2016-12-07 19:19 ` Patchwork
  2016-12-08  9:26 ` [PATCH v2] drm/i915: Parse panel backlight controller from VBT Jani Nikula
  2016-12-08 10:24 ` ✓ Fi.CI.BAT: success for FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev4) Patchwork
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2016-12-07 19:19 UTC (permalink / raw)
  To: Vidya Srinivas; +Cc: intel-gfx

== Series Details ==

Series: FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev3)
URL   : https://patchwork.freedesktop.org/series/16489/
State : success

== Summary ==

Series 16489v3 FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT
https://patchwork.freedesktop.org/api/1.0/series/16489/revisions/3/mbox/


fi-bdw-5557u     total:247  pass:219  dwarn:0   dfail:0   fail:0   skip:28 
fi-bsw-n3050     total:247  pass:195  dwarn:0   dfail:0   fail:0   skip:52 
fi-byt-j1900     total:247  pass:206  dwarn:0   dfail:0   fail:0   skip:41 
fi-byt-n2820     total:247  pass:202  dwarn:0   dfail:0   fail:0   skip:45 
fi-hsw-4770      total:247  pass:214  dwarn:0   dfail:0   fail:0   skip:33 
fi-hsw-4770r     total:247  pass:214  dwarn:0   dfail:0   fail:0   skip:33 
fi-ilk-650       total:247  pass:181  dwarn:0   dfail:0   fail:0   skip:66 
fi-ivb-3520m     total:247  pass:213  dwarn:0   dfail:0   fail:0   skip:34 
fi-ivb-3770      total:247  pass:212  dwarn:0   dfail:0   fail:0   skip:35 
fi-kbl-7500u     total:247  pass:212  dwarn:0   dfail:0   fail:0   skip:35 
fi-skl-6260u     total:247  pass:220  dwarn:0   dfail:0   fail:0   skip:27 
fi-skl-6700hq    total:247  pass:214  dwarn:0   dfail:0   fail:0   skip:33 
fi-skl-6700k     total:247  pass:210  dwarn:3   dfail:0   fail:0   skip:34 
fi-skl-6770hq    total:247  pass:220  dwarn:0   dfail:0   fail:0   skip:27 
fi-snb-2520m     total:247  pass:202  dwarn:0   dfail:0   fail:0   skip:45 
fi-snb-2600      total:247  pass:201  dwarn:0   dfail:0   fail:0   skip:46 

e46c97f4cfb63328f5bbbc0fb85c3f53703792f2 drm-tip: 2016y-12m-07d-17h-47m-18s UTC integration manifest
452ecd0 drm/i915: Parse panel BL controller from VBT

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3221/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] drm/i915: Parse panel BL controller from VBT
  2016-12-07 15:02 ` [PATCH] " Vidya Srinivas
  2016-12-07 17:44   ` Bob Paauwe
@ 2016-12-08  6:14   ` Mika Kahola
  1 sibling, 0 replies; 9+ messages in thread
From: Mika Kahola @ 2016-12-08  6:14 UTC (permalink / raw)
  To: Vidya Srinivas, intel-gfx

Tested-by: Mika Kahola <mika.kahola@intel.com>

On Wed, 2016-12-07 at 20:32 +0530, Vidya Srinivas wrote:
> Currently the backlight controller is taken as 0. It needs to derive
> value from the VBT. Adding the necessary changes.
> 
> v2: Updated the commit header
> 
> Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.h    | 1 +
>  drivers/gpu/drm/i915/intel_bios.c  | 5 +++++
>  drivers/gpu/drm/i915/intel_panel.c | 2 +-
>  3 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h
> b/drivers/gpu/drm/i915/i915_drv.h
> index 8daa4fb..6a85fdf 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1633,6 +1633,7 @@ struct intel_vbt_data {
>  		bool present;
>  		bool active_low_pwm;
>  		u8 min_brightness;	/* min_brightness/255 of
> max */
> +		u8 controller;		/* brightness
> controller number */
>  		enum intel_backlight_type type;
>  	} backlight;
>  
> diff --git a/drivers/gpu/drm/i915/intel_bios.c
> b/drivers/gpu/drm/i915/intel_bios.c
> index eaade27..130db0f 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -330,6 +330,8 @@ static u32 get_blocksize(const void *block_data)
>  
>  		method = &backlight_data-
> >backlight_control[panel_type];
>  		dev_priv->vbt.backlight.type = method->type;
> +		dev_priv->vbt.backlight.controller = 0;
> +		dev_priv->vbt.backlight.controller = method-
> >controller;
>  	}
>  
>  	dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
> @@ -341,6 +343,9 @@ static u32 get_blocksize(const void *block_data)
>  		      dev_priv->vbt.backlight.active_low_pwm ? "low"
> : "high",
>  		      dev_priv->vbt.backlight.min_brightness,
>  		      backlight_data->level[panel_type]);
> +
> +	DRM_DEBUG_KMS("VBT BL controller %u\n",
> +			dev_priv->vbt.backlight.controller);
>  }
>  
>  /* Try to find sdvo panel data */
> diff --git a/drivers/gpu/drm/i915/intel_panel.c
> b/drivers/gpu/drm/i915/intel_panel.c
> index 3578b40..6a7d4c3 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -1612,7 +1612,7 @@ static int vlv_setup_backlight(struct
> intel_connector *connector, enum pipe pipe
>  	 * For BXT hard coding the Backlight controller to 0.
>  	 * TODO : Read the controller value from VBT and generalize
>  	 */
> -	panel->backlight.controller = 0;
> +	panel->backlight.controller = dev_priv-
> >vbt.backlight.controller;
>  
>  	pwm_ctl = I915_READ(BXT_BLC_PWM_CTL(panel-
> >backlight.controller));
>  
-- 
Mika Kahola - Intel OTC

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2] drm/i915: Parse panel backlight controller from VBT
  2016-12-07 14:09 [PATCH] FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT Vidya Srinivas
                   ` (2 preceding siblings ...)
  2016-12-07 19:19 ` ✓ Fi.CI.BAT: success for FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev3) Patchwork
@ 2016-12-08  9:26 ` Jani Nikula
  2016-12-12 15:25   ` Jani Nikula
  2016-12-08 10:24 ` ✓ Fi.CI.BAT: success for FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev4) Patchwork
  4 siblings, 1 reply; 9+ messages in thread
From: Jani Nikula @ 2016-12-08  9:26 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula, Vidya Srinivas

From: Vidya Srinivas <vidya.srinivas@intel.com>

Currently the backlight controller is taken as 0. It needs to derive
value from the VBT. Adding the necessary changes.

v2 by Jani:
 - drop obsolete comments, drop redundant initialization (Bob)
 - merge debug logging into one

Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com>
Tested-by: Bob Paauwe <bob.j.paauwe@intel.com>
Tested-by: Mika Kahola <mika.kahola@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h    |  1 +
 drivers/gpu/drm/i915/intel_bios.c  |  6 ++++--
 drivers/gpu/drm/i915/intel_panel.c | 17 +++--------------
 3 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 1480e733312a..786e3bb8eecf 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1716,6 +1716,7 @@ struct intel_vbt_data {
 		bool present;
 		bool active_low_pwm;
 		u8 min_brightness;	/* min_brightness/255 of max */
+		u8 controller;		/* brightness controller number */
 		enum intel_backlight_type type;
 	} backlight;
 
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index eaade27af386..1cf2fa6ec28f 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -330,17 +330,19 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
 
 		method = &backlight_data->backlight_control[panel_type];
 		dev_priv->vbt.backlight.type = method->type;
+		dev_priv->vbt.backlight.controller = method->controller;
 	}
 
 	dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
 	dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm;
 	dev_priv->vbt.backlight.min_brightness = entry->min_brightness;
 	DRM_DEBUG_KMS("VBT backlight PWM modulation frequency %u Hz, "
-		      "active %s, min brightness %u, level %u\n",
+		      "active %s, min brightness %u, level %u, controller %u\n",
 		      dev_priv->vbt.backlight.pwm_freq_hz,
 		      dev_priv->vbt.backlight.active_low_pwm ? "low" : "high",
 		      dev_priv->vbt.backlight.min_brightness,
-		      backlight_data->level[panel_type]);
+		      backlight_data->level[panel_type],
+		      dev_priv->vbt.backlight.controller);
 }
 
 /* Try to find sdvo panel data */
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index 3578b402d412..b01edceac650 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1039,10 +1039,7 @@ static void bxt_enable_backlight(struct intel_connector *connector)
 	enum pipe pipe = intel_get_pipe_from_connector(connector);
 	u32 pwm_ctl, val;
 
-	/* To use 2nd set of backlight registers, utility pin has to be
-	 * enabled with PWM mode.
-	 * The field should only be changed when the utility pin is disabled
-	 */
+	/* Controller 1 uses the utility pin. */
 	if (panel->backlight.controller == 1) {
 		val = I915_READ(UTIL_PIN_CTL);
 		if (val & UTIL_PIN_ENABLE) {
@@ -1608,19 +1605,11 @@ bxt_setup_backlight(struct intel_connector *connector, enum pipe unused)
 	struct intel_panel *panel = &connector->panel;
 	u32 pwm_ctl, val;
 
-	/*
-	 * For BXT hard coding the Backlight controller to 0.
-	 * TODO : Read the controller value from VBT and generalize
-	 */
-	panel->backlight.controller = 0;
+	panel->backlight.controller = dev_priv->vbt.backlight.controller;
 
 	pwm_ctl = I915_READ(BXT_BLC_PWM_CTL(panel->backlight.controller));
 
-	/* Keeping the check if controller 1 is to be programmed.
-	 * This will come into affect once the VBT parsing
-	 * is fixed for controller selection, and controller 1 is used
-	 * for a prticular display configuration.
-	 */
+	/* Controller 1 uses the utility pin. */
 	if (panel->backlight.controller == 1) {
 		val = I915_READ(UTIL_PIN_CTL);
 		panel->backlight.util_pin_active_low =
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* ✓ Fi.CI.BAT: success for FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev4)
  2016-12-07 14:09 [PATCH] FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT Vidya Srinivas
                   ` (3 preceding siblings ...)
  2016-12-08  9:26 ` [PATCH v2] drm/i915: Parse panel backlight controller from VBT Jani Nikula
@ 2016-12-08 10:24 ` Patchwork
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2016-12-08 10:24 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev4)
URL   : https://patchwork.freedesktop.org/series/16489/
State : success

== Summary ==

Series 16489v4 FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT
https://patchwork.freedesktop.org/api/1.0/series/16489/revisions/4/mbox/

Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-a:
                pass       -> FAIL       (fi-ctg-l9400) UNSTABLE
        Subgroup read-crc-pipe-a-frame-sequence:
                fail       -> PASS       (fi-ctg-l9400) UNSTABLE

fi-bdw-5557u     total:247  pass:233  dwarn:0   dfail:0   fail:0   skip:14 
fi-bsw-n3050     total:247  pass:208  dwarn:0   dfail:0   fail:0   skip:39 
fi-bxt-t5700     total:247  pass:220  dwarn:0   dfail:0   fail:0   skip:27 
fi-byt-j1900     total:247  pass:220  dwarn:0   dfail:0   fail:0   skip:27 
fi-byt-n2820     total:247  pass:216  dwarn:0   dfail:0   fail:0   skip:31 
fi-ctg-l9400     total:210  pass:165  dwarn:0   dfail:0   fail:1   skip:43 
fi-hsw-4770      total:247  pass:228  dwarn:0   dfail:0   fail:0   skip:19 
fi-hsw-4770r     total:247  pass:228  dwarn:0   dfail:0   fail:0   skip:19 
fi-ilk-650       total:247  pass:195  dwarn:0   dfail:0   fail:0   skip:52 
fi-ivb-3520m     total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21 
fi-ivb-3770      total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21 
fi-kbl-7500u     total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21 
fi-skl-6260u     total:247  pass:234  dwarn:0   dfail:0   fail:0   skip:13 
fi-skl-6700hq    total:247  pass:227  dwarn:0   dfail:0   fail:0   skip:20 
fi-skl-6700k     total:247  pass:224  dwarn:3   dfail:0   fail:0   skip:20 
fi-skl-6770hq    total:247  pass:234  dwarn:0   dfail:0   fail:0   skip:13 
fi-snb-2520m     total:247  pass:216  dwarn:0   dfail:0   fail:0   skip:31 
fi-snb-2600      total:247  pass:215  dwarn:0   dfail:0   fail:0   skip:32 

e705da1e357d4db0db0b21bc6a2ea96df4453e05 drm-tip: 2016y-12m-08d-09h-02m-15s UTC integration manifest
1a6fcb9 drm/i915: Parse panel backlight controller from VBT

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3232/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] drm/i915: Parse panel backlight controller from VBT
  2016-12-08  9:26 ` [PATCH v2] drm/i915: Parse panel backlight controller from VBT Jani Nikula
@ 2016-12-12 15:25   ` Jani Nikula
  0 siblings, 0 replies; 9+ messages in thread
From: Jani Nikula @ 2016-12-12 15:25 UTC (permalink / raw)
  To: intel-gfx; +Cc: Vidya Srinivas

On Thu, 08 Dec 2016, Jani Nikula <jani.nikula@intel.com> wrote:
> From: Vidya Srinivas <vidya.srinivas@intel.com>
>
> Currently the backlight controller is taken as 0. It needs to derive
> value from the VBT. Adding the necessary changes.
>
> v2 by Jani:
>  - drop obsolete comments, drop redundant initialization (Bob)
>  - merge debug logging into one
>
> Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com>
> Reviewed-by: Bob Paauwe <bob.j.paauwe@intel.com>
> Tested-by: Bob Paauwe <bob.j.paauwe@intel.com>
> Tested-by: Mika Kahola <mika.kahola@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed to dinq, thanks for the patch.

BR,
Jani.

> ---
>  drivers/gpu/drm/i915/i915_drv.h    |  1 +
>  drivers/gpu/drm/i915/intel_bios.c  |  6 ++++--
>  drivers/gpu/drm/i915/intel_panel.c | 17 +++--------------
>  3 files changed, 8 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 1480e733312a..786e3bb8eecf 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1716,6 +1716,7 @@ struct intel_vbt_data {
>  		bool present;
>  		bool active_low_pwm;
>  		u8 min_brightness;	/* min_brightness/255 of max */
> +		u8 controller;		/* brightness controller number */
>  		enum intel_backlight_type type;
>  	} backlight;
>  
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index eaade27af386..1cf2fa6ec28f 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -330,17 +330,19 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
>  
>  		method = &backlight_data->backlight_control[panel_type];
>  		dev_priv->vbt.backlight.type = method->type;
> +		dev_priv->vbt.backlight.controller = method->controller;
>  	}
>  
>  	dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
>  	dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm;
>  	dev_priv->vbt.backlight.min_brightness = entry->min_brightness;
>  	DRM_DEBUG_KMS("VBT backlight PWM modulation frequency %u Hz, "
> -		      "active %s, min brightness %u, level %u\n",
> +		      "active %s, min brightness %u, level %u, controller %u\n",
>  		      dev_priv->vbt.backlight.pwm_freq_hz,
>  		      dev_priv->vbt.backlight.active_low_pwm ? "low" : "high",
>  		      dev_priv->vbt.backlight.min_brightness,
> -		      backlight_data->level[panel_type]);
> +		      backlight_data->level[panel_type],
> +		      dev_priv->vbt.backlight.controller);
>  }
>  
>  /* Try to find sdvo panel data */
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index 3578b402d412..b01edceac650 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -1039,10 +1039,7 @@ static void bxt_enable_backlight(struct intel_connector *connector)
>  	enum pipe pipe = intel_get_pipe_from_connector(connector);
>  	u32 pwm_ctl, val;
>  
> -	/* To use 2nd set of backlight registers, utility pin has to be
> -	 * enabled with PWM mode.
> -	 * The field should only be changed when the utility pin is disabled
> -	 */
> +	/* Controller 1 uses the utility pin. */
>  	if (panel->backlight.controller == 1) {
>  		val = I915_READ(UTIL_PIN_CTL);
>  		if (val & UTIL_PIN_ENABLE) {
> @@ -1608,19 +1605,11 @@ bxt_setup_backlight(struct intel_connector *connector, enum pipe unused)
>  	struct intel_panel *panel = &connector->panel;
>  	u32 pwm_ctl, val;
>  
> -	/*
> -	 * For BXT hard coding the Backlight controller to 0.
> -	 * TODO : Read the controller value from VBT and generalize
> -	 */
> -	panel->backlight.controller = 0;
> +	panel->backlight.controller = dev_priv->vbt.backlight.controller;
>  
>  	pwm_ctl = I915_READ(BXT_BLC_PWM_CTL(panel->backlight.controller));
>  
> -	/* Keeping the check if controller 1 is to be programmed.
> -	 * This will come into affect once the VBT parsing
> -	 * is fixed for controller selection, and controller 1 is used
> -	 * for a prticular display configuration.
> -	 */
> +	/* Controller 1 uses the utility pin. */
>  	if (panel->backlight.controller == 1) {
>  		val = I915_READ(UTIL_PIN_CTL);
>  		panel->backlight.util_pin_active_low =

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-12-12 15:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-07 14:09 [PATCH] FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT Vidya Srinivas
2016-12-07 14:58 ` Vidya Srinivas
2016-12-07 15:02 ` [PATCH] " Vidya Srinivas
2016-12-07 17:44   ` Bob Paauwe
2016-12-08  6:14   ` Mika Kahola
2016-12-07 19:19 ` ✓ Fi.CI.BAT: success for FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev3) Patchwork
2016-12-08  9:26 ` [PATCH v2] drm/i915: Parse panel backlight controller from VBT Jani Nikula
2016-12-12 15:25   ` Jani Nikula
2016-12-08 10:24 ` ✓ Fi.CI.BAT: success for FOR_UPSTREAM [VPG]: drm/i915: Parse panel BL controller from VBT (rev4) Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox