On Tue, 26 Apr 2016, Jani Nikula <jani.nikula@xxxxxxxxx> wrote: > From: Deepak M <m.deepak@xxxxxxxxx> > > 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 <m.deepak@xxxxxxxxx> > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> 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 Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx