On Tue, 26 Apr 2016, Jani Nikula <[email protected]> wrote:
> From: Deepak M <[email protected]>
>
> These fields in VBT indicates the PWM source which
> is used and also the controller number.
>
> v2 by Jani: check for out of bounds access, some renames, change default
> type, etc.
>
> v3 by Jani: s/INTEL_BACKLIGHT_CABC/INTEL_BACKLIGHT_DSI_DCS/
>
> Signed-off-by: Deepak M <[email protected]>
> Signed-off-by: Jani Nikula <[email protected]>

Pushed this one to drm-intel-next-queued.

BR,
Jani.

> ---
>  drivers/gpu/drm/i915/i915_drv.h       | 1 +
>  drivers/gpu/drm/i915/intel_bios.c     | 9 +++++++++
>  drivers/gpu/drm/i915/intel_bios.h     | 8 ++++++++
>  drivers/gpu/drm/i915/intel_vbt_defs.h | 6 ++++++
>  4 files changed, 24 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 32f05979ade7..f86dd10dabfe 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1488,6 +1488,7 @@ struct intel_vbt_data {
>               bool present;
>               bool active_low_pwm;
>               u8 min_brightness;      /* min_brightness/255 of max */
> +             enum intel_backlight_type type;
>       } backlight;
>  
>       /* MIPI DSI */
> diff --git a/drivers/gpu/drm/i915/intel_bios.c 
> b/drivers/gpu/drm/i915/intel_bios.c
> index dbbd59171722..81518116e00d 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -318,6 +318,15 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv,
>               return;
>       }
>  
> +     dev_priv->vbt.backlight.type = INTEL_BACKLIGHT_DISPLAY_DDI;
> +     if (bdb->version >= 191 &&
> +         get_blocksize(backlight_data) >= sizeof(*backlight_data)) {
> +             const struct bdb_lfp_backlight_control_method *method;
> +
> +             method = &backlight_data->backlight_control[panel_type];
> +             dev_priv->vbt.backlight.type = method->type;
> +     }
> +
>       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;
> diff --git a/drivers/gpu/drm/i915/intel_bios.h 
> b/drivers/gpu/drm/i915/intel_bios.h
> index 149c3226e895..8405b5a367d7 100644
> --- a/drivers/gpu/drm/i915/intel_bios.h
> +++ b/drivers/gpu/drm/i915/intel_bios.h
> @@ -30,6 +30,14 @@
>  #ifndef _INTEL_BIOS_H_
>  #define _INTEL_BIOS_H_
>  
> +enum intel_backlight_type {
> +     INTEL_BACKLIGHT_PMIC,
> +     INTEL_BACKLIGHT_LPSS,
> +     INTEL_BACKLIGHT_DISPLAY_DDI,
> +     INTEL_BACKLIGHT_DSI_DCS,
> +     INTEL_BACKLIGHT_PANEL_DRIVER_INTERFACE,
> +};
> +
>  struct edp_power_seq {
>       u16 t1_t3;
>       u16 t8;
> diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h 
> b/drivers/gpu/drm/i915/intel_vbt_defs.h
> index 9ff1e960d617..a4a42f254c35 100644
> --- a/drivers/gpu/drm/i915/intel_vbt_defs.h
> +++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
> @@ -446,10 +446,16 @@ struct bdb_lfp_backlight_data_entry {
>       u8 obsolete3;
>  } __packed;
>  
> +struct bdb_lfp_backlight_control_method {
> +     u8 type:4;
> +     u8 controller: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_method backlight_control[16];
>  } __packed;
>  
>  struct aimdb_header {

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

Reply via email to