[Intel-gfx] [PATCH] Revert "drm/i915: Parsing LFP brightness control from VBT"

Jani Nikula jani.nikula at linux.intel.com
Wed Jan 7 00:30:46 PST 2015


On Wed, 07 Jan 2015, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Tue, Jan 06, 2015 at 02:48:15PM -0500, Rodrigo Vivi wrote:
>> This reverts commit 371abae844ede392066bfc21202b2e40f4a654d1.
>> 
>> This data seems unreliable and causing many issues and blocking other
>> teams and feature implementation. Safest way is to revert that for now.
>> 
>> Reference: https://bugs.freedesktop.org/show_bug.cgi?id=88081
>> Reference: https://bugs.freedesktop.org/show_bug.cgi?id=88039

IMO s/Reference/Bugzilla/

Also

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87671

>> Cc: Ben Widawsky <ben at bwidawsk.net>
>> Cc: Kristian Høgsberg <hoegsberg at gmail.com>
>> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
>
> Cc: Vandana Kannan <vandana.kannan at intel.com>
> Cc: Deepak M <m.deepak at intel.com>
> Cc: Jani Nikula <jani.nikula at intel.com>
>
> When submitting a revert please include the cc/submitter/reviewers from
> the original patch too. I've done that now.

The code agrees with the spec, but the VBT on these machines quite
obviously does not agree with the spec.

Vandana, I think you're in a better position than us to figure out
what's going on with VBT vs. the spec.

Daniel, please just pick this up now.

Reviewed-by: Jani Nikula <jani.nikula at intel.com>

> -Daniel
>
>> ---
>>  drivers/gpu/drm/i915/i915_drv.h   |  1 -
>>  drivers/gpu/drm/i915/intel_bios.c | 20 --------------------
>>  drivers/gpu/drm/i915/intel_bios.h | 11 -----------
>>  3 files changed, 32 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 701a694..99ed307 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -1411,7 +1411,6 @@ struct intel_vbt_data {
>>  		bool present;
>>  		bool active_low_pwm;
>>  		u8 min_brightness;	/* min_brightness/255 of max */
>> -		u8 controller;		/* brightness controller number */
>>  	} backlight;
>>  
>>  	/* MIPI DSI */
>> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
>> index 65b1fbc..3f17825 100644
>> --- a/drivers/gpu/drm/i915/intel_bios.c
>> +++ b/drivers/gpu/drm/i915/intel_bios.c
>> @@ -314,7 +314,6 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
>>  {
>>  	const struct bdb_lfp_backlight_data *backlight_data;
>>  	const struct bdb_lfp_backlight_data_entry *entry;
>> -	const struct bdb_lfp_backlight_control_data *bl_ctrl_data;
>>  
>>  	backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT);
>>  	if (!backlight_data)
>> @@ -327,7 +326,6 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
>>  	}
>>  
>>  	entry = &backlight_data->data[panel_type];
>> -	bl_ctrl_data = &backlight_data->blc_ctl[panel_type];
>>  
>>  	dev_priv->vbt.backlight.present = entry->type == BDB_BACKLIGHT_TYPE_PWM;
>>  	if (!dev_priv->vbt.backlight.present) {
>> @@ -339,30 +337,12 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, struct bdb_header *bdb)
>>  	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;
>> -
>> -	dev_priv->vbt.backlight.controller = 0;
>> -	if (bdb->version >= 191) {
>> -		dev_priv->vbt.backlight.present =
>> -				bl_ctrl_data->pin == BLC_CONTROL_PIN_DDI;
>> -		if (!dev_priv->vbt.backlight.present) {
>> -			DRM_DEBUG_KMS("BL control pin is not DDI (pin %u)\n",
>> -					bl_ctrl_data->pin);
>> -			return;
>> -		}
>> -		if (bl_ctrl_data->controller == 1)
>> -			dev_priv->vbt.backlight.controller =
>> -				bl_ctrl_data->controller;
>> -	}
>> -
>>  	DRM_DEBUG_KMS("VBT backlight PWM modulation frequency %u Hz, "
>>  		      "active %s, min brightness %u, level %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]);
>> -
>> -	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_bios.h b/drivers/gpu/drm/i915/intel_bios.h
>> index 9a7202e..a6a8710 100644
>> --- a/drivers/gpu/drm/i915/intel_bios.h
>> +++ b/drivers/gpu/drm/i915/intel_bios.h
>> @@ -402,21 +402,10 @@ struct bdb_lfp_backlight_data_entry {
>>  	u8 obsolete3;
>>  } __packed;
>>  
>> -#define BLC_CONTROL_PIN_PMIC		0
>> -#define BLC_CONTROL_PIN_LPSS_PWM	1
>> -#define BLC_CONTROL_PIN_DDI		2
>> -#define BLC_CONTROL_PIN_CABC		3
>> -
>> -struct bdb_lfp_backlight_control_data {
>> -	u8 controller:4;
>> -	u8 pin:4;
>> -} __packed;
>> -
>>  struct bdb_lfp_backlight_data {
>>  	u8 entry_size;
>>  	struct bdb_lfp_backlight_data_entry data[16];
>>  	u8 level[16];
>> -	struct bdb_lfp_backlight_control_data blc_ctl[16];
>>  } __packed;
>>  
>>  struct aimdb_header {
>> -- 
>> 1.9.3
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list