[Intel-gfx] [PATCH] drm/i915: Backlight control via VESA eDP aux interface

Jani Nikula jani.nikula at intel.com
Mon Jun 10 09:51:58 UTC 2019


On Mon, 10 Jun 2019, Jani Nikula <jani.nikula at intel.com> wrote:
> On Mon, 10 Jun 2019, "Lee, Shawn C" <shawn.c.lee at intel.com> wrote:
>> The latest VBT support backlight control via aux. We have to
>> check VBT's setting before doing backlight initialization.
>> Then Driver will assign correct callback function for eDP
>> backlight control.
>>
>> Cc: Jani Nikula <jani.nikula at intel.com>
>> Cc: Jose Roberto de Souza <jose.souza at intel.com>
>> Cc: Cooper Chiou <cooper.chiou at intel.com>
>>
>> Signed-off-by: Lee, Shawn C <shawn.c.lee at intel.com>
>> ---
>>  drivers/gpu/drm/i915/intel_bios.c     | 3 ++-
>>  drivers/gpu/drm/i915/intel_vbt_defs.h | 6 ++++--
>>  2 files changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
>> index 1c037dfa83f5..27bda45520ec 100644
>> --- a/drivers/gpu/drm/i915/intel_bios.c
>> +++ b/drivers/gpu/drm/i915/intel_bios.c
>> @@ -317,7 +317,8 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
>>  
>>  	entry = &backlight_data->data[panel_type];
>>  
>> -	dev_priv->vbt.backlight.present = entry->type == BDB_BACKLIGHT_TYPE_PWM;
>> +	dev_priv->vbt.backlight.present = (entry->type == BDB_BACKLIGHT_TYPE_PWM_SOC ||
>> +					   entry->type == BDB_BACKLIGHT_TYPE_PWM_VESA_EDP_AUX);
>>  	if (!dev_priv->vbt.backlight.present) {
>>  		DRM_DEBUG_KMS("PWM backlight not present in VBT (type %u)\n",
>>  			      entry->type);
>> diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
>> index 89ef14cafb6b..710f539f17de 100644
>> --- a/drivers/gpu/drm/i915/intel_vbt_defs.h
>> +++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
>> @@ -760,8 +760,10 @@ struct bdb_lvds_lfp_data {
>>   * Block 43 - LFP Backlight Control Data Block
>>   */
>>  
>> -#define BDB_BACKLIGHT_TYPE_NONE	0
>> -#define BDB_BACKLIGHT_TYPE_PWM	2
>> +#define BDB_BACKLIGHT_TYPE_NONE				0
>> +#define BDB_BACKLIGHT_TYPE_PWM_SOC			2
>> +#define BDB_BACKLIGHT_TYPE_PWM_PANEL_DRIVER_OLED	4
>> +#define BDB_BACKLIGHT_TYPE_PWM_VESA_EDP_AUX		5
>
> entry->type is two bits, 0-1 in the Features byte of the Backlight Data
> Structure in the spec. BDB_BACKLIGHT_TYPE_PWM_VESA_EDP_AUX will never
> match, so this was also never tested. There are no updates to the VBT
> spec to reflect the above change (and if I saw one, I'd reject it as
> backward incompatible).
>
> Please don't tell me you have some product specific spec and VBT there,
> because it's not flying upstream.
>
> The brightness control method structure does have a more detailed way of
> describing the method, and it probably already covers what you need.

Indeed you probably want to look at dev_priv->vbt.backlight.type and how
it's assigned, as well as update enum intel_backlight_type.

BR,
Jani.


>
> BR,
> Jani.
>
>
>>  
>>  struct lfp_backlight_data_entry {
>>  	u8 type:2;

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list