Skip to contentSkip to conversation

drm/i915/bios: additional vbt definition cleanups

PATCH In review Jani Nikula 3 participants 10 messages Aug 25, 2017 – Aug 28, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover drm/i915/bios: additional vbt definition cleanups

Follow-up to [1].

BR,
Jani.

[1] http://mid.mail-archive.com/[email protected]

Jani Nikula (4):
drm/i915/bios: split up iboost to hdmi and dp bitfields drm/i915/bios: amend bdb_general_features drm/i915/bios: amend child device flags based on intel_vbt_decode drm/i915/bios: amend edp block based on intel_vbt_decode

 drivers/gpu/drm/i915/intel_bios.c     |  8 +++---
 drivers/gpu/drm/i915/intel_vbt_defs.h | 53 ++++++++++++++++++++++++++---------
 2 files changed, 43 insertions(+), 18 deletions(-)
Signature · 6 lines
2.11.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#1 lore raw

PATCH 1/4 drm/i915/bios: split up iboost to hdmi and dp bitfields

This is according to the style all over the place. No functional changes.

---
 drivers/gpu/drm/i915/intel_bios.c     | 4 ++--
 drivers/gpu/drm/i915/intel_vbt_defs.h | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)
drivers/gpu/drm/i915/intel_bios.c +2 -2
index 991e2ab98749..92e484e78ea0 100644
@@ -1218,10 +1218,10 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
 
 	/* Parse the I_boost config for SKL and above */
 	if (bdb->version >= 196 && child->iboost) {
-		info->dp_boost_level = translate_iboost(child->iboost_level & 0xF);
+		info->dp_boost_level = translate_iboost(child->dp_iboost_level);
 		DRM_DEBUG_KMS("VBT (e)DP boost level for port %c: %d\n",
 			      port_name(port), info->dp_boost_level);
-		info->hdmi_boost_level = translate_iboost(child->iboost_level >> 4);
+		info->hdmi_boost_level = translate_iboost(child->hdmi_iboost_level);
 		DRM_DEBUG_KMS("VBT HDMI boost level for port %c: %d\n",
 			      port_name(port), info->hdmi_boost_level);
 	}
drivers/gpu/drm/i915/intel_vbt_defs.h +2 -1
index f6cb4825c57c..fd1484113811 100644
@@ -389,7 +389,8 @@ struct child_device_config {
 	u8 flags2;						/* 195 */
 	u8 dp_gpio_index;					/* 195 */
 	u16 dp_gpio_pin_num;					/* 195 */
-	u8 iboost_level;
+	u8 dp_iboost_level:4;					/* 196 */
+	u8 hdmi_iboost_level:4;					/* 196 */
 } __packed;
 
 struct bdb_general_definitions {
Signature · 6 lines
2.11.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#2 lore raw

PATCH 2/4 drm/i915/bios: amend bdb_general_features

In reply to Jani Nikula

Copy over some fields defined in the intel_vbt_tool. No functional changes.

Cc Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/intel_vbt_defs.h | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)
drivers/gpu/drm/i915/intel_vbt_defs.h +10 -6
index fd1484113811..14623748b388 100644
@@ -149,16 +149,19 @@ struct bdb_general_features {
 	u8 ssc_freq:1;
 	u8 enable_lfp_on_override:1;
 	u8 disable_ssc_ddt:1;
-	u8 rsvd7:1;
+	u8 underscan_vga_timings:1;
 	u8 display_clock_mode:1;
-	u8 rsvd8:1; /* finish byte */
+	u8 vbios_hotplug_support:1;
 
         /* bits 3 */
 	u8 disable_smooth_vision:1;
 	u8 single_dvi:1;
-	u8 rsvd9:1;
+	u8 rotate_180:1;					/* 181 */
 	u8 fdi_rx_polarity_inverted:1;
-	u8 rsvd10:4; /* finish byte */
+	u8 vbios_extended_mode:1;				/* 160 */
+	u8 copy_ilfp_dtd_to_sdvo_lvds_dtd:1;			/* 160 */
+	u8 panel_best_fit_timing:1;				/* 160 */
+	u8 ignore_strap_state:1;				/* 160 */
 
         /* bits 4 */
 	u8 legacy_monitor_detect;
@@ -167,9 +170,10 @@ struct bdb_general_features {
 	u8 int_crt_support:1;
 	u8 int_tv_support:1;
 	u8 int_efp_support:1;
-	u8 dp_ssc_enb:1;	/* PCH attached eDP supports SSC */
+	u8 dp_ssc_enable:1;	/* PCH attached eDP supports SSC */
 	u8 dp_ssc_freq:1;	/* SSC freq for PCH attached eDP */
-	u8 rsvd11:3; /* finish byte */
+	u8 dp_ssc_dongle_supported:1;
+	u8 rsvd11:2; /* finish byte */
 } __packed;
 
 /* pre-915 */
Signature · 6 lines
2.11.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#3 lore raw

PATCH 3/4 drm/i915/bios: amend child device flags based on intel_vbt_decode

In reply to Jani Nikula

Copy over some fields defined in the intel_vbt_decode tool. No functional changes.

Cc Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/intel_vbt_defs.h | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
drivers/gpu/drm/i915/intel_vbt_defs.h +7 -2
index 14623748b388..ea508ecc74b3 100644
@@ -380,7 +380,11 @@ struct child_device_config {
 		} __packed;
 	} __packed;
 
-	u8 capabilities;
+	u8 pipe_cap:2;
+	u8 sdvo_stall:1;
+	u8 hpd_status:2;
+	u8 integrated_encoder:1;
+	u8 capabilities_reserved:2;
 	u8 dvo_wiring; /* See DEVICE_WIRE_* above */
 
 	union {
@@ -390,7 +394,8 @@ struct child_device_config {
 
 	u16 extended_type;
 	u8 dvo_function;
-	u8 flags2;						/* 195 */
+	u8 dp_usb_type_c:1;					/* 195 */
+	u8 flags2_reserved:7;					/* 195 */
 	u8 dp_gpio_index;					/* 195 */
 	u16 dp_gpio_pin_num;					/* 195 */
 	u8 dp_iboost_level:4;					/* 196 */
Signature · 6 lines
2.11.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Reviewed-by on v1 3/4
#4 lore raw

Re: [PATCH 3/4] drm/i915/bios: amend child device flags based on intel_vbt_decode

Quoted 14 lines · Jani Nikula

Copy over some fields defined in the intel_vbt_decode tool. No functional changes.

Cc Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/intel_vbt_defs.h | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
drivers/gpu/drm/i915/intel_vbt_defs.h +0 -0
index 14623748b388..ea508ecc74b3 100644

drivers/gpu/drm/i915/intel_vbt_defs.h struct child_device_config { · line 384

Quoted 6 lines
drivers/gpu/drm/i915/intel_vbt_defs.h +2 -1
@@ -380,7 +380,11 @@ struct child_device_config {
 		} __packed;
 	} __packed;
 
-	u8 capabilities;
+	u8 pipe_cap:2;
+	u8 sdvo_stall:1;

igt has a /* 158 */ comment here.

Otherwise it all looks to match. For the series

Quoted 18 lines
drivers/gpu/drm/i915/intel_vbt_defs.h +5 -1
+	u8 hpd_status:2;
+	u8 integrated_encoder:1;
+	u8 capabilities_reserved:2;
 	u8 dvo_wiring; /* See DEVICE_WIRE_* above */
 
 	union {
@@ -390,7 +394,8 @@ struct child_device_config {
 
 	u16 extended_type;
 	u8 dvo_function;
-	u8 flags2;						/* 195 */
+	u8 dp_usb_type_c:1;					/* 195 */
+	u8 flags2_reserved:7;					/* 195 */
 	u8 dp_gpio_index;					/* 195 */
 	u16 dp_gpio_pin_num;					/* 195 */
 	u8 dp_iboost_level:4;					/* 196 */
Signature · 1 line
2.11.0
Signature · 6 lines
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#5 lore raw

Re: [PATCH 3/4] drm/i915/bios: amend child device flags based on intel_vbt_decode

Quoted 18 lines · Ville Syrjälä
Quoted 17 lines · Jani Nikula

Copy over some fields defined in the intel_vbt_decode tool. No functional changes.

Cc Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/intel_vbt_defs.h | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
drivers/gpu/drm/i915/intel_vbt_defs.h +0 -0
index 14623748b388..ea508ecc74b3 100644
@@ -380,7 +380,11 @@ struct child_device_config {
 		} __packed;
 	} __packed;
 
Quoted 8 lines

drivers/gpu/drm/i915/intel_vbt_defs.h struct child_device_config { · line 384

Quoted 3 lines
drivers/gpu/drm/i915/intel_vbt_defs.h +2 -1
-	u8 capabilities;
+	u8 pipe_cap:2;
+	u8 sdvo_stall:1;

igt has a /* 158 */ comment here.

Otherwise it all looks to match. For the series

Pushed the lot, thanks for the review. I took the liberty of adding the comment while applying.

BR,
Jani.

Quoted 19 lines
Quoted 19 lines
drivers/gpu/drm/i915/intel_vbt_defs.h +5 -1
+	u8 hpd_status:2;
+	u8 integrated_encoder:1;
+	u8 capabilities_reserved:2;
 	u8 dvo_wiring; /* See DEVICE_WIRE_* above */
 
 	union {
@@ -390,7 +394,8 @@ struct child_device_config {
 
 	u16 extended_type;
 	u8 dvo_function;
-	u8 flags2;						/* 195 */
+	u8 dp_usb_type_c:1;					/* 195 */
+	u8 flags2_reserved:7;					/* 195 */
 	u8 dp_gpio_index;					/* 195 */
 	u16 dp_gpio_pin_num;					/* 195 */
 	u8 dp_iboost_level:4;					/* 196 */
Signature · 1 line
2.11.0
Signature · 5 lines
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#6 lore raw

PATCH 4/4 drm/i915/bios: amend edp block based on intel_vbt_decode

In reply to Jani Nikula

Copy over some fields defined in the intel_vbt_decode tool. No functional changes.

Cc Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/intel_bios.c     |  4 ++--
 drivers/gpu/drm/i915/intel_vbt_defs.h | 25 ++++++++++++++++++++-----
 2 files changed, 22 insertions(+), 7 deletions(-)
drivers/gpu/drm/i915/intel_bios.c +2 -2
index 92e484e78ea0..5949750a35ee 100644
@@ -576,7 +576,7 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
 {
 	const struct bdb_edp *edp;
 	const struct edp_power_seq *edp_pps;
-	const struct edp_link_params *edp_link_params;
+	const struct edp_fast_link_params *edp_link_params;
 	int panel_type = dev_priv->vbt.panel_type;
 
 	edp = find_section(bdb, BDB_EDP);
@@ -600,7 +600,7 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
 
 	/* Get the eDP sequencing and link info */
 	edp_pps = &edp->power_seqs[panel_type];
-	edp_link_params = &edp->link_params[panel_type];
+	edp_link_params = &edp->fast_link_params[panel_type];
 
 	dev_priv->vbt.edp.pps = *edp_pps;
 
drivers/gpu/drm/i915/intel_vbt_defs.h +20 -5
index ea508ecc74b3..61d590db3675 100644
@@ -688,23 +688,38 @@ struct bdb_driver_features {
 #define EDP_VSWING_1_2V		3
 
 
-struct edp_link_params {
+struct edp_fast_link_params {
 	u8 rate:4;
 	u8 lanes:4;
 	u8 preemphasis:4;
 	u8 vswing:4;
 } __packed;
 
+struct edp_pwm_delays {
+	u16 pwm_on_to_backlight_enable;
+	u16 backlight_disable_to_pwm_off;
+} __packed;
+
+struct edp_full_link_params {
+	u8 preemphasis:4;
+	u8 vswing:4;
+} __packed;
+
 struct bdb_edp {
 	struct edp_power_seq power_seqs[16];
 	u32 color_depth;
-	struct edp_link_params link_params[16];
+	struct edp_fast_link_params fast_link_params[16];
 	u32 sdrrs_msa_timing_delay;
 
 	/* ith bit indicates enabled/disabled for (i+1)th panel */
-	u16 edp_s3d_feature;
-	u16 edp_t3_optimization;
-	u64 edp_vswing_preemph;		/* v173 */
+	u16 edp_s3d_feature;					/* 162 */
+	u16 edp_t3_optimization;				/* 165 */
+	u64 edp_vswing_preemph;					/* 173 */
+	u16 fast_link_training;					/* 182 */
+	u16 dpcd_600h_write_required;				/* 185 */
+	struct edp_pwm_delays pwm_delays[16];			/* 186 */
+	u16 full_link_params_provided;				/* 199 */
+	struct edp_full_link_params full_link_params[16];	/* 199 */
 } __packed;
 
 struct psr_table {
Signature · 6 lines
2.11.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#7 lore raw
In reply to Jani Nikula
Quoted 1 line · Jani Nikula

Follow-up to [1].

Oh, and part of the rationale is that I'm migrating intel_vbt_decode to use intel_vbt_defs.h copied over verbatim from the kernel. Going forward, we should not duplicate this stuff.

BR,
Jani.

Quoted 16 lines

BR,
Jani.

[1] http://mid.mail-archive.com/[email protected]

Jani Nikula (4):
drm/i915/bios: split up iboost to hdmi and dp bitfields drm/i915/bios: amend bdb_general_features drm/i915/bios: amend child device flags based on intel_vbt_decode drm/i915/bios: amend edp block based on intel_vbt_decode

 drivers/gpu/drm/i915/intel_bios.c     |  8 +++---
 drivers/gpu/drm/i915/intel_vbt_defs.h | 53 ++++++++++++++++++++++++++---------
 2 files changed, 43 insertions(+), 18 deletions(-)
Signature · 5 lines
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#8 lore raw

✓ Fi.CI.BAT: success for drm/i915/bios: additional vbt definition cleanups

In reply to Jani Nikula
== Series Details ==

== Series Details ==

Series: drm/i915/bios: additional vbt definition cleanups
URL : https://patchwork.freedesktop.org/series/29357/
State : success

== Summary ==

Series 29357v1 drm/i915/bios: additional vbt definition cleanups
https://patchwork.freedesktop.org/api/1.0/series/29357/revisions/1/mbox/

Test kms_cursor_legacy:

        Subgroup basic-busy-flip-before-cursor-atomic:
                pass       -> FAIL       (fi-snb-2600) fdo#100215 +1
Test kms_frontbuffer_tracking:
        Subgroup basic:
                pass       -> DMESG-WARN (fi-bdw-5557u) fdo#102410

fdo#100215 https://bugs.freedesktop.org/show_bug.cgi?id=100215
fdo#102410 https://bugs.freedesktop.org/show_bug.cgi?id=102410

fi-bdw-5557u     total:279  pass:267  dwarn:1   dfail:0   fail:0   skip:11  time:454s
fi-bdw-gvtdvm    total:279  pass:265  dwarn:0   dfail:0   fail:0   skip:14  time:452s
fi-blb-e6850     total:279  pass:224  dwarn:1   dfail:0   fail:0   skip:54  time:360s
fi-bsw-n3050     total:279  pass:243  dwarn:0   dfail:0   fail:0   skip:36  time:543s
fi-bwr-2160      total:279  pass:184  dwarn:0   dfail:0   fail:0   skip:95  time:252s
fi-bxt-j4205     total:279  pass:260  dwarn:0   dfail:0   fail:0   skip:19  time:517s
fi-byt-j1900     total:279  pass:254  dwarn:1   dfail:0   fail:0   skip:24  time:527s
fi-byt-n2820     total:279  pass:250  dwarn:1   dfail:0   fail:0   skip:28  time:517s
fi-elk-e7500     total:279  pass:230  dwarn:0   dfail:0   fail:0   skip:49  time:436s
fi-glk-2a        total:279  pass:260  dwarn:0   dfail:0   fail:0   skip:19  time:605s
fi-hsw-4770      total:279  pass:263  dwarn:0   dfail:0   fail:0   skip:16  time:447s
fi-hsw-4770r     total:279  pass:263  dwarn:0   dfail:0   fail:0   skip:16  time:426s
fi-ilk-650       total:279  pass:229  dwarn:0   dfail:0   fail:0   skip:50  time:428s
fi-ivb-3520m     total:279  pass:261  dwarn:0   dfail:0   fail:0   skip:18  time:510s
fi-ivb-3770      total:279  pass:261  dwarn:0   dfail:0   fail:0   skip:18  time:477s
fi-kbl-7500u     total:279  pass:261  dwarn:0   dfail:0   fail:0   skip:18  time:479s
fi-kbl-7560u     total:279  pass:269  dwarn:0   dfail:0   fail:0   skip:10  time:594s
fi-kbl-r         total:279  pass:261  dwarn:0   dfail:0   fail:0   skip:18  time:594s
fi-pnv-d510      total:279  pass:223  dwarn:1   dfail:0   fail:0   skip:55  time:521s
fi-skl-6260u     total:279  pass:269  dwarn:0   dfail:0   fail:0   skip:10  time:462s
fi-skl-6700k     total:279  pass:261  dwarn:0   dfail:0   fail:0   skip:18  time:477s
fi-skl-6770hq    total:279  pass:269  dwarn:0   dfail:0   fail:0   skip:10  time:491s
fi-skl-gvtdvm    total:279  pass:266  dwarn:0   dfail:0   fail:0   skip:13  time:439s
fi-skl-x1585l    total:279  pass:268  dwarn:0   dfail:0   fail:0   skip:11  time:491s
fi-snb-2520m     total:279  pass:251  dwarn:0   dfail:0   fail:0   skip:28  time:550s
fi-snb-2600      total:279  pass:249  dwarn:0   dfail:0   fail:1   skip:29  time:411s

84896d875643281c82beba90c3ce632b5b328c52 drm-tip: 2017y-08m-25d-14h-00m-21s UTC integration manifest 7a34b086c012 drm/i915/bios: amend edp block based on intel_vbt_decode
d5d24f1959b5 drm/i915/bios: amend child device flags based on intel_vbt_decode dc5a715cd957 drm/i915/bios: amend bdb_general_features
275cb431c2cc drm/i915/bios: split up iboost to hdmi and dp bitfields

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5494/
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#9 lore raw

✓ Fi.CI.IGT: success for drm/i915/bios: additional vbt definition cleanups

In reply to Jani Nikula
== Series Details ==

== Series Details ==

Series: drm/i915/bios: additional vbt definition cleanups
URL : https://patchwork.freedesktop.org/series/29357/
State : success

== Summary ==

Test kms_setmode:

        Subgroup basic:
                pass       -> FAIL       (shard-hsw) fdo#99912
Test perf:
        Subgroup polling:
                fail       -> PASS       (shard-hsw) fdo#102252

fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252

shard-hsw total:2230 pass:1230 dwarn:0 dfail:0 fail:18 skip:982 time:9635s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5494/shards.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx