diff mbox series

drm/i915/bios: Update new entries in VBT BDB block definations

Message ID 20240812134047.4042341-1-dnyaneshwar.bhadane@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/bios: Update new entries in VBT BDB block definations | expand

Commit Message

Bhadane, Dnyaneshwar Aug. 12, 2024, 1:40 p.m. UTC
New entries updated in BDB defination from VBT v257- v260.

Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
---
 drivers/gpu/drm/i915/display/intel_vbt_defs.h | 35 ++++++++++++++++---
 1 file changed, 30 insertions(+), 5 deletions(-)

Comments

Jani Nikula Aug. 12, 2024, 2:27 p.m. UTC | #1
On Mon, 12 Aug 2024, Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com> wrote:
> New entries updated in BDB defination from VBT v257- v260.

*definition

Please explain what you're adding.

Also, the spec never ceases to amaze me. Like here, adding stuff for a
few revisions, obsoleting and starting over. Ugh.

> Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_vbt_defs.h | 35 ++++++++++++++++---
>  1 file changed, 30 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> index e613288937e4..65342f347bba 100644
> --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> @@ -1080,6 +1080,8 @@ struct bdb_edp {
>  	u16 edp_fast_link_training_rate[16];			/* 224+ */
>  	u16 edp_max_port_link_rate[16];				/* 244+ */
>  	u16 edp_dsc_disable;					/* 251+ */
> +	u16 t16_delay;						/* 260+ */

Please let's follow the spec in member naming where feasible.

This would be t6_delay_support.

> +	u16 t16_link_idle_time;					/* 260+ */

And this would be u16 link_idle_time[16]. The size is 32 bytes, not 2.

(Where does t16 come from?)

>  } __packed;
>  
>  /*
> @@ -1330,12 +1332,27 @@ struct aggressiveness_profile2_entry {
>  	u8 elp_aggressiveness : 4;
>  } __packed;
>  
> +struct aggressiveness_profile3_entry {
> +	u8 adp_aggressiveness:4;

apd_aggressiveness

> +	u8 po_aggressiveness:4;

pixoptix_aggressiveness

> +} __packed;
> +
> +struct aggressiveness_profile4_entry {
> +	u8 xpst_aggressiveness:4;
> +	u8 tcon_aggressiveness:4;
> +} __packed;
> +
> +struct panel_identification {
> +	u8 panel_type:4;

panel_type is a loaded word in VBT. Let's avoid it. Maybe
panel_technology or something.

> +	u8 reserved:4;
> +} __packed;
> +
>  struct bdb_lfp_power {
>  	struct lfp_power_features features;				/* ???-227 */
>  	struct als_data_entry als[5];
>  	u8 lace_aggressiveness_profile:3;				/* 210-227 */
>  	u8 reserved1:5;
> -	u16 dpst;							/* 228+ */
> +	u16 dpst;							/* 228-256 */
>  	u16 psr;							/* 228+ */
>  	u16 drrs;							/* 228+ */
>  	u16 lace_support;						/* 228+ */
> @@ -1343,12 +1360,20 @@ struct bdb_lfp_power {
>  	u16 dmrrs;							/* 228+ */
>  	u16 adb;							/* 228+ */
>  	u16 lace_enabled_status;					/* 228+ */
> -	struct aggressiveness_profile_entry aggressiveness[16];		/* 228+ */
> +	struct aggressiveness_profile_entry aggressiveness[16];		/* 228-256 */

The LACE agressiveness is still valid. Please add the comment to struct
aggressiveness_profile dpst_aggressiveness member.

>  	u16 hobl;							/* 232+ */
>  	u16 vrr_feature_enabled;					/* 233+ */
> -	u16 elp;							/* 247+ */
> -	u16 opst;							/* 247+ */
> -	struct aggressiveness_profile2_entry aggressiveness2[16];	/* 247+ */
> +	u16 elp;							/* 247-256 */
> +	u16 opst;							/* 247-256 */
> +	struct aggressiveness_profile2_entry aggressiveness2[16];	/* 247-256 */
> +	u16 adp;							/* 253-256 */

apd

> +	u16 po;								/* 253-256 */

pixoptix

> +	struct aggressiveness_profile3_entry aggressiveness3[16];	/* 253-256 */
> +	struct panel_identification panel_identity[16];			/* 257+ */

panel_identification

> +	u16 xpst;							/* 257+ */

xpst_support

> +	u16 tcon;							/* 257+ */

tcon_based_backlight_optimization

> +	struct aggressiveness_profile4_entry aggressiveness4[16];	/* 257+ */
> +	u16 tcon_coexist_xpst;						/* 257+ */

Hrmh, this is where the member naming in spec is not feasible. Maybe
tcon_xpst_coexistence.

>  } __packed;
>  
>  /*
Bhadane, Dnyaneshwar Aug. 13, 2024, 5:27 a.m. UTC | #2
> -----Original Message-----
> From: Jani Nikula <jani.nikula@linux.intel.com>
> Sent: Monday, August 12, 2024 7:58 PM
> To: Bhadane, Dnyaneshwar <dnyaneshwar.bhadane@intel.com>; intel-
> gfx@lists.freedesktop.org
> Cc: Bhadane, Dnyaneshwar <dnyaneshwar.bhadane@intel.com>
> Subject: Re: [PATCH] drm/i915/bios: Update new entries in VBT BDB block
> definations
> 
> On Mon, 12 Aug 2024, Dnyaneshwar Bhadane
> <dnyaneshwar.bhadane@intel.com> wrote:
> > New entries updated in BDB defination from VBT v257- v260.
> 
> *definition
> 
> Please explain what you're adding.

Thank you, Jani for the feedback, 

I will address all the suggestion above and below in the next revision.
> 
> Also, the spec never ceases to amaze me. Like here, adding stuff for a few
> revisions, obsoleting and starting over. Ugh.
> 
> > Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_vbt_defs.h | 35
> > ++++++++++++++++---
> >  1 file changed, 30 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> > b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> > index e613288937e4..65342f347bba 100644
> > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> > @@ -1080,6 +1080,8 @@ struct bdb_edp {
> >  	u16 edp_fast_link_training_rate[16];			/* 224+ */
> >  	u16 edp_max_port_link_rate[16];				/*
> 244+ */
> >  	u16 edp_dsc_disable;					/* 251+ */
> > +	u16 t16_delay;						/* 260+ */
> 
> Please let's follow the spec in member naming where feasible.
Noted, Thanks.
> 
> This would be t6_delay_support.
> 
> > +	u16 t16_link_idle_time;					/* 260+ */
> 
> And this would be u16 link_idle_time[16]. The size is 32 bytes, not 2.

Noted, I missed to add as an array of [16]. Thank you.

> 
> (Where does t16 come from?)
Noted,  Renaming needed. 
> 
> >  } __packed;
> >
> >  /*
> > @@ -1330,12 +1332,27 @@ struct aggressiveness_profile2_entry {
> >  	u8 elp_aggressiveness : 4;
> >  } __packed;
> >
> > +struct aggressiveness_profile3_entry {
> > +	u8 adp_aggressiveness:4;
> 
> apd_aggressiveness
> 
> > +	u8 po_aggressiveness:4;
> 
> pixoptix_aggressiveness
Noted. Thank you.
> 
> > +} __packed;
> > +
> > +struct aggressiveness_profile4_entry {
> > +	u8 xpst_aggressiveness:4;
> > +	u8 tcon_aggressiveness:4;
> > +} __packed;
> > +
> > +struct panel_identification {
> > +	u8 panel_type:4;
> 
> panel_type is a loaded word in VBT. Let's avoid it. Maybe panel_technology or
> something.
Noted. Thank you.
> 
> > +	u8 reserved:4;
> > +} __packed;
> > +
> >  struct bdb_lfp_power {
> >  	struct lfp_power_features features;				/*
> ???-227 */
> >  	struct als_data_entry als[5];
> >  	u8 lace_aggressiveness_profile:3;				/*
> 210-227 */
> >  	u8 reserved1:5;
> > -	u16 dpst;							/*
> 228+ */
> > +	u16 dpst;							/*
> 228-256 */
> >  	u16 psr;							/* 228+ */
> >  	u16 drrs;							/*
> 228+ */
> >  	u16 lace_support;						/*
> 228+ */
> > @@ -1343,12 +1360,20 @@ struct bdb_lfp_power {
> >  	u16 dmrrs;							/*
> 228+ */
> >  	u16 adb;							/*
> 228+ */
> >  	u16 lace_enabled_status;					/*
> 228+ */
> > -	struct aggressiveness_profile_entry aggressiveness[16];		/*
> 228+ */
> > +	struct aggressiveness_profile_entry aggressiveness[16];		/*
> 228-256 */
> 
> The LACE agressiveness is still valid. Please add the comment to struct
> aggressiveness_profile dpst_aggressiveness member.
Noted. Thank you.
> 
> >  	u16 hobl;							/*
> 232+ */
> >  	u16 vrr_feature_enabled;					/*
> 233+ */
> > -	u16 elp;							/* 247+ */
> > -	u16 opst;							/*
> 247+ */
> > -	struct aggressiveness_profile2_entry aggressiveness2[16];	/*
> 247+ */
> > +	u16 elp;							/* 247-256 */
> > +	u16 opst;							/*
> 247-256 */
> > +	struct aggressiveness_profile2_entry aggressiveness2[16];	/*
> 247-256 */
> > +	u16 adp;							/*
> 253-256 */
> 
> apd
> 
> > +	u16 po;								/*
> 253-256 */
> 
> pixoptix
> 
> > +	struct aggressiveness_profile3_entry aggressiveness3[16];	/*
> 253-256 */
> > +	struct panel_identification panel_identity[16];			/*
> 257+ */
> 
> panel_identification
Noted. Thank you.
> 
> > +	u16 xpst;							/*
> 257+ */
> 
> xpst_support
> 
> > +	u16 tcon;							/*
> 257+ */
> 
> tcon_based_backlight_optimization
> 
> > +	struct aggressiveness_profile4_entry aggressiveness4[16];	/*
> 257+ */
> > +	u16 tcon_coexist_xpst;						/*
> 257+ */
> 
> Hrmh, this is where the member naming in spec is not feasible. Maybe
> tcon_xpst_coexistence.
Renaming needed. Noted. Thank you.

Dnyaneshwar

> 
> >  } __packed;
> >
> >  /*
> 
> --
> Jani Nikula, Intel
Bhadane, Dnyaneshwar Aug. 14, 2024, 3:23 p.m. UTC | #3
> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of
> Bhadane, Dnyaneshwar
> Sent: Tuesday, August 13, 2024 10:58 AM
> To: Jani Nikula <jani.nikula@linux.intel.com>; intel-gfx@lists.freedesktop.org
> Subject: RE: [PATCH] drm/i915/bios: Update new entries in VBT BDB block
> definations
> 
> 
> 
> > -----Original Message-----
> > From: Jani Nikula <jani.nikula@linux.intel.com>
> > Sent: Monday, August 12, 2024 7:58 PM
> > To: Bhadane, Dnyaneshwar <dnyaneshwar.bhadane@intel.com>; intel-
> > gfx@lists.freedesktop.org
> > Cc: Bhadane, Dnyaneshwar <dnyaneshwar.bhadane@intel.com>
> > Subject: Re: [PATCH] drm/i915/bios: Update new entries in VBT BDB
> > block definitions

Please find the rev v2  here: https://patchwork.freedesktop.org/patch/608267/.

> >
> > On Mon, 12 Aug 2024, Dnyaneshwar Bhadane
> > <dnyaneshwar.bhadane@intel.com> wrote:
> > > New entries updated in BDB defination from VBT v257- v260.
> >
> > *definition
> >
> > Please explain what you're adding.
> 
> Thank you, Jani for the feedback,
> 
> I will address all the suggestion above and below in the next revision.
> >
> > Also, the spec never ceases to amaze me. Like here, adding stuff for a
> > few revisions, obsoleting and starting over. Ugh.
> >
> > > Signed-off-by: Dnyaneshwar Bhadane
> <dnyaneshwar.bhadane@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_vbt_defs.h | 35
> > > ++++++++++++++++---
> > >  1 file changed, 30 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> > > b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> > > index e613288937e4..65342f347bba 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> > > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> > > @@ -1080,6 +1080,8 @@ struct bdb_edp {
> > >  	u16 edp_fast_link_training_rate[16];			/* 224+ */
> > >  	u16 edp_max_port_link_rate[16];				/*
> > 244+ */
> > >  	u16 edp_dsc_disable;					/* 251+ */
> > > +	u16 t16_delay;						/* 260+ */
> >
> > Please let's follow the spec in member naming where feasible.
> Noted, Thanks.
> >
> > This would be t6_delay_support.
> >
> > > +	u16 t16_link_idle_time;					/* 260+ */
> >
> > And this would be u16 link_idle_time[16]. The size is 32 bytes, not 2.
> 
> Noted, I missed to add as an array of [16]. Thank you.
> 
> >
> > (Where does t16 come from?)
> Noted,  Renaming needed.
> >
> > >  } __packed;
> > >
> > >  /*
> > > @@ -1330,12 +1332,27 @@ struct aggressiveness_profile2_entry {
> > >  	u8 elp_aggressiveness : 4;
> > >  } __packed;
> > >
> > > +struct aggressiveness_profile3_entry {
> > > +	u8 adp_aggressiveness:4;
> >
> > apd_aggressiveness
> >
> > > +	u8 po_aggressiveness:4;
> >
> > pixoptix_aggressiveness
> Noted. Thank you.
> >
> > > +} __packed;
> > > +
> > > +struct aggressiveness_profile4_entry {
> > > +	u8 xpst_aggressiveness:4;
> > > +	u8 tcon_aggressiveness:4;
> > > +} __packed;
> > > +
> > > +struct panel_identification {
> > > +	u8 panel_type:4;
> >
> > panel_type is a loaded word in VBT. Let's avoid it. Maybe
> > panel_technology or something.
> Noted. Thank you.
> >
> > > +	u8 reserved:4;
> > > +} __packed;
> > > +
> > >  struct bdb_lfp_power {
> > >  	struct lfp_power_features features;				/*
> > ???-227 */
> > >  	struct als_data_entry als[5];
> > >  	u8 lace_aggressiveness_profile:3;				/*
> > 210-227 */
> > >  	u8 reserved1:5;
> > > -	u16 dpst;							/*
> > 228+ */
> > > +	u16 dpst;							/*
> > 228-256 */
> > >  	u16 psr;							/*
> 228+ */
> > >  	u16 drrs;							/*
> > 228+ */
> > >  	u16 lace_support;						/*
> > 228+ */
> > > @@ -1343,12 +1360,20 @@ struct bdb_lfp_power {
> > >  	u16 dmrrs;							/*
> > 228+ */
> > >  	u16 adb;							/*
> > 228+ */
> > >  	u16 lace_enabled_status;					/*
> > 228+ */
> > > -	struct aggressiveness_profile_entry aggressiveness[16];		/*
> > 228+ */
> > > +	struct aggressiveness_profile_entry aggressiveness[16];		/*
> > 228-256 */
> >
> > The LACE agressiveness is still valid. Please add the comment to
> > struct aggressiveness_profile dpst_aggressiveness member.
> Noted. Thank you.
> >
> > >  	u16 hobl;							/*
> > 232+ */
> > >  	u16 vrr_feature_enabled;					/*
> > 233+ */
> > > -	u16 elp;							/*
> 247+ */
> > > -	u16 opst;							/*
> > 247+ */
> > > -	struct aggressiveness_profile2_entry aggressiveness2[16];	/*
> > 247+ */
> > > +	u16 elp;							/*
> 247-256 */
> > > +	u16 opst;							/*
> > 247-256 */
> > > +	struct aggressiveness_profile2_entry aggressiveness2[16];	/*
> > 247-256 */
> > > +	u16 adp;							/*
> > 253-256 */
> >
> > apd
> >
> > > +	u16 po;								/*
> > 253-256 */
> >
> > pixoptix
> >
> > > +	struct aggressiveness_profile3_entry aggressiveness3[16];	/*
> > 253-256 */
> > > +	struct panel_identification panel_identity[16];			/*
> > 257+ */
> >
> > panel_identification
> Noted. Thank you.
> >
> > > +	u16 xpst;							/*
> > 257+ */
> >
> > xpst_support
> >
> > > +	u16 tcon;							/*
> > 257+ */
> >
> > tcon_based_backlight_optimization
> >
> > > +	struct aggressiveness_profile4_entry aggressiveness4[16];	/*
> > 257+ */
> > > +	u16 tcon_coexist_xpst;						/*
> > 257+ */
> >
> > Hrmh, this is where the member naming in spec is not feasible. Maybe
> > tcon_xpst_coexistence.
> Renaming needed. Noted. Thank you.
> 
> Dnyaneshwar
> 
> >
> > >  } __packed;
> > >
> > >  /*
> >
> > --
> > Jani Nikula, Intel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
index e613288937e4..65342f347bba 100644
--- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
@@ -1080,6 +1080,8 @@  struct bdb_edp {
 	u16 edp_fast_link_training_rate[16];			/* 224+ */
 	u16 edp_max_port_link_rate[16];				/* 244+ */
 	u16 edp_dsc_disable;					/* 251+ */
+	u16 t16_delay;						/* 260+ */
+	u16 t16_link_idle_time;					/* 260+ */
 } __packed;
 
 /*
@@ -1330,12 +1332,27 @@  struct aggressiveness_profile2_entry {
 	u8 elp_aggressiveness : 4;
 } __packed;
 
+struct aggressiveness_profile3_entry {
+	u8 adp_aggressiveness:4;
+	u8 po_aggressiveness:4;
+} __packed;
+
+struct aggressiveness_profile4_entry {
+	u8 xpst_aggressiveness:4;
+	u8 tcon_aggressiveness:4;
+} __packed;
+
+struct panel_identification {
+	u8 panel_type:4;
+	u8 reserved:4;
+} __packed;
+
 struct bdb_lfp_power {
 	struct lfp_power_features features;				/* ???-227 */
 	struct als_data_entry als[5];
 	u8 lace_aggressiveness_profile:3;				/* 210-227 */
 	u8 reserved1:5;
-	u16 dpst;							/* 228+ */
+	u16 dpst;							/* 228-256 */
 	u16 psr;							/* 228+ */
 	u16 drrs;							/* 228+ */
 	u16 lace_support;						/* 228+ */
@@ -1343,12 +1360,20 @@  struct bdb_lfp_power {
 	u16 dmrrs;							/* 228+ */
 	u16 adb;							/* 228+ */
 	u16 lace_enabled_status;					/* 228+ */
-	struct aggressiveness_profile_entry aggressiveness[16];		/* 228+ */
+	struct aggressiveness_profile_entry aggressiveness[16];		/* 228-256 */
 	u16 hobl;							/* 232+ */
 	u16 vrr_feature_enabled;					/* 233+ */
-	u16 elp;							/* 247+ */
-	u16 opst;							/* 247+ */
-	struct aggressiveness_profile2_entry aggressiveness2[16];	/* 247+ */
+	u16 elp;							/* 247-256 */
+	u16 opst;							/* 247-256 */
+	struct aggressiveness_profile2_entry aggressiveness2[16];	/* 247-256 */
+	u16 adp;							/* 253-256 */
+	u16 po;								/* 253-256 */
+	struct aggressiveness_profile3_entry aggressiveness3[16];	/* 253-256 */
+	struct panel_identification panel_identity[16];			/* 257+ */
+	u16 xpst;							/* 257+ */
+	u16 tcon;							/* 257+ */
+	struct aggressiveness_profile4_entry aggressiveness4[16];	/* 257+ */
+	u16 tcon_coexist_xpst;						/* 257+ */
 } __packed;
 
 /*