* [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
@ 2017-10-19 15:45 Rodrigo Vivi
2017-10-19 16:02 ` Rodrigo Vivi
` (8 more replies)
0 siblings, 9 replies; 17+ messages in thread
From: Rodrigo Vivi @ 2017-10-19 15:45 UTC (permalink / raw)
To: intel-gfx; +Cc: Jani Nikula, Paulo Zanoni, Rodrigo Vivi
Starting on CNL we now need to map VBT DDC Pin to
BSPec DDC Pin values. Not a direct translation anymore.
According to VBT
Block 2 (General Bytes Definition)
DDC Bus
+----------+-----------+--------------------+
| DDI Type | VBT Value | Bspec Mapped Value |
+----------+-----------+--------------------+
| DDI-B | 0x1 | 0x1 |
| DDI-C | 0x2 | 0x2 |
| DDI-D | 0x3 | 0x4 |
| DDI-F | 0x4 | 0x3 |
+----------+-----------+--------------------+
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Clinton Taylor <clinton.a.taylor@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
drivers/gpu/drm/i915/intel_bios.c | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index dc4fad30bf4f..e0e59cd52766 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -1071,6 +1071,24 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
}
}
+#define DDC_BUS_DDI_B 0x1
+#define DDC_BUS_DDI_C 0x2
+#define DDC_BUS_DDI_D 0x3
+#define DDC_BUS_DDI_F 0x4
+
+static u8 cnl_ddc_pin_map(u8 ddc_pin)
+{
+ switch (ddc_pin) {
+ case DDC_BUS_DDI_B: return 0x1;
+ case DDC_BUS_DDI_C: return 0x2;
+ case DDC_BUS_DDI_D: return 0x4;
+ case DDC_BUS_DDI_F: return 0x3;
+ default:
+ MISSING_CASE(ddc_pin);
+ return ddc_pin;
+ }
+}
+
static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
u8 bdb_version)
{
@@ -1164,16 +1182,10 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
if (is_dvi) {
- info->alternate_ddc_pin = ddc_pin;
-
- /*
- * All VBTs that we got so far for B Stepping has this
- * information wrong for Port D. So, let's just ignore for now.
- */
- if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
- port == PORT_D) {
- info->alternate_ddc_pin = 0;
- }
+ if (IS_CANNONLAKE(dev_priv))
+ info->alternate_ddc_pin = cnl_ddc_pin_map(ddc_pin);
+ else
+ info->alternate_ddc_pin = ddc_pin;
sanitize_ddc_pin(dev_priv, port);
}
--
2.13.5
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
@ 2017-10-19 16:02 ` Rodrigo Vivi
2017-10-19 16:02 ` Ville Syrjälä
` (7 subsequent siblings)
8 siblings, 0 replies; 17+ messages in thread
From: Rodrigo Vivi @ 2017-10-19 16:02 UTC (permalink / raw)
To: intel-gfx; +Cc: Jani Nikula, Paulo Zanoni, Rodrigo Vivi
Starting on CNL we now need to map VBT DDC Pin to
BSPec DDC Pin values. Not a direct translation anymore.
According to VBT
Block 2 (General Bytes Definition)
DDC Bus
+----------+-----------+--------------------+
| DDI Type | VBT Value | Bspec Mapped Value |
+----------+-----------+--------------------+
| DDI-B | 0x1 | 0x1 |
| DDI-C | 0x2 | 0x2 |
| DDI-D | 0x3 | 0x4 |
| DDI-F | 0x4 | 0x3 |
+----------+-----------+--------------------+
v2: Move defines to a better place.
This is actually CNL_PCH not CNL only.
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Clinton Taylor <clinton.a.taylor@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
drivers/gpu/drm/i915/intel_bios.c | 27 +++++++++++++++++----------
drivers/gpu/drm/i915/intel_vbt_defs.h | 6 ++++++
2 files changed, 23 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index dc4fad30bf4f..49e333826c2c 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -1071,6 +1071,19 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
}
}
+static u8 cnp_ddc_pin_map(u8 ddc_pin)
+{
+ switch (ddc_pin) {
+ case DDC_BUS_DDI_B: return 0x1;
+ case DDC_BUS_DDI_C: return 0x2;
+ case DDC_BUS_DDI_D: return 0x4;
+ case DDC_BUS_DDI_F: return 0x3;
+ default:
+ MISSING_CASE(ddc_pin);
+ return ddc_pin;
+ }
+}
+
static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
u8 bdb_version)
{
@@ -1164,16 +1177,10 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
if (is_dvi) {
- info->alternate_ddc_pin = ddc_pin;
-
- /*
- * All VBTs that we got so far for B Stepping has this
- * information wrong for Port D. So, let's just ignore for now.
- */
- if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
- port == PORT_D) {
- info->alternate_ddc_pin = 0;
- }
+ if (HAS_PCH_CNP(dev_priv))
+ info->alternate_ddc_pin = cnp_ddc_pin_map(ddc_pin);
+ else
+ info->alternate_ddc_pin = ddc_pin;
sanitize_ddc_pin(dev_priv, port);
}
diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
index 7e2a96712d07..e2e9fc601a9e 100644
--- a/drivers/gpu/drm/i915/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
@@ -308,6 +308,12 @@ struct bdb_general_features {
#define LEGACY_CHILD_DEVICE_CONFIG_SIZE 33
+/* ddc_pin DDI Type 155+ */
+#define DDC_BUS_DDI_B 0x1
+#define DDC_BUS_DDI_C 0x2
+#define DDC_BUS_DDI_D 0x3
+#define DDC_BUS_DDI_F 0x4
+
/*
* The child device config, aka the display device data structure, provides a
* description of a port and its configuration on the platform.
--
2.13.5
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
2017-10-19 16:02 ` Rodrigo Vivi
@ 2017-10-19 16:02 ` Ville Syrjälä
2017-10-19 21:11 ` Rodrigo Vivi
2017-10-19 16:12 ` ✓ Fi.CI.BAT: success for " Patchwork
` (6 subsequent siblings)
8 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjälä @ 2017-10-19 16:02 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: Jani Nikula, intel-gfx, Paulo Zanoni
On Thu, Oct 19, 2017 at 08:45:21AM -0700, Rodrigo Vivi wrote:
> Starting on CNL we now need to map VBT DDC Pin to
> BSPec DDC Pin values. Not a direct translation anymore.
>
> According to VBT
> Block 2 (General Bytes Definition)
> DDC Bus
>
> +----------+-----------+--------------------+
> | DDI Type | VBT Value | Bspec Mapped Value |
> +----------+-----------+--------------------+
> | DDI-B | 0x1 | 0x1 |
> | DDI-C | 0x2 | 0x2 |
> | DDI-D | 0x3 | 0x4 |
> | DDI-F | 0x4 | 0x3 |
> +----------+-----------+--------------------+
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Cc: Clinton Taylor <clinton.a.taylor@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/intel_bios.c | 32 ++++++++++++++++++++++----------
> 1 file changed, 22 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index dc4fad30bf4f..e0e59cd52766 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -1071,6 +1071,24 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
> }
> }
>
> +#define DDC_BUS_DDI_B 0x1
> +#define DDC_BUS_DDI_C 0x2
> +#define DDC_BUS_DDI_D 0x3
> +#define DDC_BUS_DDI_F 0x4
enum perhaps?
> +
> +static u8 cnl_ddc_pin_map(u8 ddc_pin)
> +{
> + switch (ddc_pin) {
> + case DDC_BUS_DDI_B: return 0x1;
> + case DDC_BUS_DDI_C: return 0x2;
> + case DDC_BUS_DDI_D: return 0x4;
> + case DDC_BUS_DDI_F: return 0x3;
s/magic number/GMBUS_PIN_whatever/ ?
Also looks like this thing could be represented as an array instead,
even for *future* platforms.
> + default:
> + MISSING_CASE(ddc_pin);
> + return ddc_pin;
> + }
> +}
> +
> static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> u8 bdb_version)
> {
> @@ -1164,16 +1182,10 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
>
> if (is_dvi) {
> - info->alternate_ddc_pin = ddc_pin;
> -
> - /*
> - * All VBTs that we got so far for B Stepping has this
> - * information wrong for Port D. So, let's just ignore for now.
> - */
> - if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
> - port == PORT_D) {
> - info->alternate_ddc_pin = 0;
> - }
> + if (IS_CANNONLAKE(dev_priv))
> + info->alternate_ddc_pin = cnl_ddc_pin_map(ddc_pin);
> + else
> + info->alternate_ddc_pin = ddc_pin;
>
> sanitize_ddc_pin(dev_priv, port);
> }
> --
> 2.13.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
2017-10-19 16:02 ` Rodrigo Vivi
2017-10-19 16:02 ` Ville Syrjälä
@ 2017-10-19 16:12 ` Patchwork
2017-10-19 16:34 ` ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev2) Patchwork
` (5 subsequent siblings)
8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-10-19 16:12 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
URL : https://patchwork.freedesktop.org/series/32305/
State : success
== Summary ==
Series 32305v1 drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
https://patchwork.freedesktop.org/api/1.0/series/32305/revisions/1/mbox/
Test chamelium:
Subgroup dp-crc-fast:
pass -> FAIL (fi-kbl-7500u) fdo#102514
Test kms_busy:
Subgroup basic-flip-b:
fail -> PASS (fi-gdg-551) fdo#102654
Test kms_cursor_legacy:
Subgroup basic-busy-flip-before-cursor-legacy:
fail -> PASS (fi-gdg-551) fdo#102618
Subgroup basic-flip-after-cursor-varying-size:
incomplete -> PASS (fi-skl-6260u)
fdo#102514 https://bugs.freedesktop.org/show_bug.cgi?id=102514
fdo#102654 https://bugs.freedesktop.org/show_bug.cgi?id=102654
fdo#102618 https://bugs.freedesktop.org/show_bug.cgi?id=102618
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:439s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:453s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:373s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:529s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:265s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:495s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:490s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:489s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:475s
fi-cfl-s total:289 pass:253 dwarn:4 dfail:0 fail:0 skip:32 time:561s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:413s
fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:250s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:583s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:448s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:428s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:431s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:497s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:455s
fi-kbl-7500u total:289 pass:263 dwarn:1 dfail:0 fail:1 skip:24 time:475s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:575s
fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:471s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:582s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:544s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:449s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:644s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:522s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:501s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:455s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:561s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:418s
9024f1a2827aa921560ee3f985a5b418ef296435 drm-tip: 2017y-10m-19d-12h-57m-03s UTC integration manifest
fa6f2c6e84c5 drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6106/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev2)
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
` (2 preceding siblings ...)
2017-10-19 16:12 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2017-10-19 16:34 ` Patchwork
2017-10-19 17:23 ` ✓ Fi.CI.IGT: " Patchwork
` (4 subsequent siblings)
8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-10-19 16:34 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev2)
URL : https://patchwork.freedesktop.org/series/32305/
State : success
== Summary ==
Series 32305v2 drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
https://patchwork.freedesktop.org/api/1.0/series/32305/revisions/2/mbox/
Test kms_busy:
Subgroup basic-flip-b:
fail -> PASS (fi-gdg-551) fdo#102654
Test kms_cursor_legacy:
Subgroup basic-busy-flip-before-cursor-legacy:
fail -> PASS (fi-gdg-551) fdo#102618
Subgroup basic-flip-after-cursor-varying-size:
incomplete -> PASS (fi-skl-6260u)
Test drv_module_reload:
Subgroup basic-reload-inject:
dmesg-warn -> INCOMPLETE (fi-cfl-s) fdo#103206
fdo#102654 https://bugs.freedesktop.org/show_bug.cgi?id=102654
fdo#102618 https://bugs.freedesktop.org/show_bug.cgi?id=102618
fdo#103206 https://bugs.freedesktop.org/show_bug.cgi?id=103206
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:446s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:448s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:381s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:519s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:263s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:500s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:496s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:494s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:472s
fi-cfl-s total:288 pass:253 dwarn:3 dfail:0 fail:0 skip:31
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:417s
fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:249s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:583s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:444s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:429s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:434s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:487s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:456s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:490s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:570s
fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:475s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:577s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:541s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:453s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:647s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:516s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:499s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:457s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:568s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:419s
9024f1a2827aa921560ee3f985a5b418ef296435 drm-tip: 2017y-10m-19d-12h-57m-03s UTC integration manifest
9bfbafa247c0 drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6107/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Fi.CI.IGT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev2)
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
` (3 preceding siblings ...)
2017-10-19 16:34 ` ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev2) Patchwork
@ 2017-10-19 17:23 ` Patchwork
2017-10-19 21:32 ` ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev3) Patchwork
` (3 subsequent siblings)
8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-10-19 17:23 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev2)
URL : https://patchwork.freedesktop.org/series/32305/
State : success
== Summary ==
Test kms_busy:
Subgroup extended-modeset-hang-newfb-with-reset-render-B:
pass -> DMESG-WARN (shard-hsw) fdo#103038
fdo#103038 https://bugs.freedesktop.org/show_bug.cgi?id=103038
shard-hsw total:2540 pass:1428 dwarn:3 dfail:0 fail:8 skip:1101 time:9230s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6107/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-19 16:02 ` Ville Syrjälä
@ 2017-10-19 21:11 ` Rodrigo Vivi
2017-10-20 9:11 ` Jani Nikula
0 siblings, 1 reply; 17+ messages in thread
From: Rodrigo Vivi @ 2017-10-19 21:11 UTC (permalink / raw)
To: intel-gfx; +Cc: Paulo Zanoni, Jani Nikula, Rodrigo Vivi
Starting on CNL we now need to map VBT DDC Pin to
BSPec DDC Pin values. Not a direct translation anymore.
According to VBT
Block 2 (General Bytes Definition)
DDC Bus
+----------+-----------+--------------------+
| DDI Type | VBT Value | Bspec Mapped Value |
+----------+-----------+--------------------+
| DDI-B | 0x1 | 0x1 |
| DDI-C | 0x2 | 0x2 |
| DDI-D | 0x3 | 0x4 |
| DDI-F | 0x4 | 0x3 |
+----------+-----------+--------------------+
v2: Move defines to a better place.
This is actually CNL_PCH not CNL only.
v3: Accepting Ville's suggestions: enums and array to
to make this future proof.
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Clinton Taylor <clinton.a.taylor@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
drivers/gpu/drm/i915/intel_bios.c | 26 ++++++++++++++++----------
drivers/gpu/drm/i915/intel_vbt_defs.h | 15 +++++++++++++++
2 files changed, 31 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index dc4fad30bf4f..79638308664c 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -1071,6 +1071,21 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
}
}
+static const enum bspec_gmbus_pin cnp_ddc_pin_map[] = {
+ [DDC_BUS_DDI_B] = GMBUS_PIN_1,
+ [DDC_BUS_DDI_C] = GMBUS_PIN_2,
+ [DDC_BUS_DDI_D] = GMBUS_PIN_4,
+ [DDC_BUS_DDI_F] = GMBUS_PIN_3,
+};
+
+static u8 get_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
+{
+ if (HAS_PCH_CNP(dev_priv))
+ return cnp_ddc_pin_map[vbt_pin];
+
+ return vbt_pin;
+}
+
static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
u8 bdb_version)
{
@@ -1164,16 +1179,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
if (is_dvi) {
- info->alternate_ddc_pin = ddc_pin;
-
- /*
- * All VBTs that we got so far for B Stepping has this
- * information wrong for Port D. So, let's just ignore for now.
- */
- if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
- port == PORT_D) {
- info->alternate_ddc_pin = 0;
- }
+ info->alternate_ddc_pin = get_ddc_pin(dev_priv, ddc_pin);
sanitize_ddc_pin(dev_priv, port);
}
diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
index 7e2a96712d07..dfc9f7a43668 100644
--- a/drivers/gpu/drm/i915/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
@@ -308,6 +308,21 @@ struct bdb_general_features {
#define LEGACY_CHILD_DEVICE_CONFIG_SIZE 33
+/* DDC Bus DDI Type 155+ */
+enum vbt_gmbus_ddi {
+ DDC_BUS_DDI_B = 0x1,
+ DDC_BUS_DDI_C,
+ DDC_BUS_DDI_D,
+ DDC_BUS_DDI_F,
+};
+
+enum bspec_gmbus_pin {
+ GMBUS_PIN_1 = 0x1,
+ GMBUS_PIN_2,
+ GMBUS_PIN_3,
+ GMBUS_PIN_4,
+};
+
/*
* The child device config, aka the display device data structure, provides a
* description of a port and its configuration on the platform.
--
2.13.5
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 17+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev3)
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
` (4 preceding siblings ...)
2017-10-19 17:23 ` ✓ Fi.CI.IGT: " Patchwork
@ 2017-10-19 21:32 ` Patchwork
2017-10-19 22:29 ` ✓ Fi.CI.IGT: " Patchwork
` (2 subsequent siblings)
8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-10-19 21:32 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev3)
URL : https://patchwork.freedesktop.org/series/32305/
State : success
== Summary ==
Series 32305v3 drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
https://patchwork.freedesktop.org/api/1.0/series/32305/revisions/3/mbox/
Test gem_sync:
Subgroup basic-store-all:
pass -> FAIL (fi-ivb-3520m) fdo#100007
Test kms_flip:
Subgroup basic-flip-vs-wf_vblank:
incomplete -> PASS (fi-skl-6700hq)
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass -> DMESG-WARN (fi-byt-n2820) fdo#101705
fdo#100007 https://bugs.freedesktop.org/show_bug.cgi?id=100007
fdo#101705 https://bugs.freedesktop.org/show_bug.cgi?id=101705
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:443s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:449s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:375s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:545s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:265s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:503s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:498s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:496s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:480s
fi-cfl-s total:289 pass:253 dwarn:4 dfail:0 fail:0 skip:32 time:552s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:424s
fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:258s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:586s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:456s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:432s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:434s
fi-ivb-3520m total:289 pass:259 dwarn:0 dfail:0 fail:1 skip:29 time:491s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:463s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:495s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:574s
fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:478s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:582s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:564s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:453s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:645s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:518s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:503s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:459s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:571s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:419s
87b113da0ae43b97650ddcec6c05ef69469e2107 drm-tip: 2017y-10m-19d-18h-14m-41s UTC integration manifest
d432e1914713 drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6115/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Fi.CI.IGT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev3)
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
` (5 preceding siblings ...)
2017-10-19 21:32 ` ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev3) Patchwork
@ 2017-10-19 22:29 ` Patchwork
2017-10-20 18:07 ` ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev4) Patchwork
2017-10-20 20:04 ` ✓ Fi.CI.IGT: " Patchwork
8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-10-19 22:29 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev3)
URL : https://patchwork.freedesktop.org/series/32305/
State : success
== Summary ==
Test kms_force_connector_basic:
Subgroup force-load-detect:
skip -> PASS (shard-hsw)
Test drv_module_reload:
Subgroup basic-reload-inject:
pass -> DMESG-WARN (shard-hsw) fdo#102707
Test kms_flip:
Subgroup modeset-vs-vblank-race:
pass -> DMESG-FAIL (shard-hsw) fdo#103060
fdo#102707 https://bugs.freedesktop.org/show_bug.cgi?id=102707
fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
shard-hsw total:2540 pass:1429 dwarn:2 dfail:1 fail:8 skip:1100 time:9206s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6115/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-19 21:11 ` Rodrigo Vivi
@ 2017-10-20 9:11 ` Jani Nikula
2017-10-20 11:25 ` Ville Syrjälä
0 siblings, 1 reply; 17+ messages in thread
From: Jani Nikula @ 2017-10-20 9:11 UTC (permalink / raw)
To: intel-gfx; +Cc: Paulo Zanoni, Rodrigo Vivi
On Thu, 19 Oct 2017, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> Starting on CNL we now need to map VBT DDC Pin to
> BSPec DDC Pin values. Not a direct translation anymore.
>
> According to VBT
> Block 2 (General Bytes Definition)
> DDC Bus
>
> +----------+-----------+--------------------+
> | DDI Type | VBT Value | Bspec Mapped Value |
> +----------+-----------+--------------------+
> | DDI-B | 0x1 | 0x1 |
> | DDI-C | 0x2 | 0x2 |
> | DDI-D | 0x3 | 0x4 |
> | DDI-F | 0x4 | 0x3 |
> +----------+-----------+--------------------+
>
> v2: Move defines to a better place.
> This is actually CNL_PCH not CNL only.
> v3: Accepting Ville's suggestions: enums and array to
> to make this future proof.
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Cc: Clinton Taylor <clinton.a.taylor@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/intel_bios.c | 26 ++++++++++++++++----------
> drivers/gpu/drm/i915/intel_vbt_defs.h | 15 +++++++++++++++
> 2 files changed, 31 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index dc4fad30bf4f..79638308664c 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -1071,6 +1071,21 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
> }
> }
>
> +static const enum bspec_gmbus_pin cnp_ddc_pin_map[] = {
> + [DDC_BUS_DDI_B] = GMBUS_PIN_1,
> + [DDC_BUS_DDI_C] = GMBUS_PIN_2,
> + [DDC_BUS_DDI_D] = GMBUS_PIN_4,
> + [DDC_BUS_DDI_F] = GMBUS_PIN_3,
I think the two last lines deserve comments like /* sic */ or something.
> +};
> +
> +static u8 get_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
Nitpick, You're passing in a pin and you get a pin? How about
"map_ddc_pin"? Like your array name suggests?
> +{
> + if (HAS_PCH_CNP(dev_priv))
> + return cnp_ddc_pin_map[vbt_pin];
> +
> + return vbt_pin;
> +}
> +
> static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> u8 bdb_version)
> {
> @@ -1164,16 +1179,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
>
> if (is_dvi) {
> - info->alternate_ddc_pin = ddc_pin;
> -
> - /*
> - * All VBTs that we got so far for B Stepping has this
> - * information wrong for Port D. So, let's just ignore for now.
> - */
> - if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
> - port == PORT_D) {
> - info->alternate_ddc_pin = 0;
> - }
> + info->alternate_ddc_pin = get_ddc_pin(dev_priv, ddc_pin);
>
> sanitize_ddc_pin(dev_priv, port);
> }
> diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
> index 7e2a96712d07..dfc9f7a43668 100644
> --- a/drivers/gpu/drm/i915/intel_vbt_defs.h
> +++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
> @@ -308,6 +308,21 @@ struct bdb_general_features {
>
> #define LEGACY_CHILD_DEVICE_CONFIG_SIZE 33
>
> +/* DDC Bus DDI Type 155+ */
> +enum vbt_gmbus_ddi {
> + DDC_BUS_DDI_B = 0x1,
> + DDC_BUS_DDI_C,
> + DDC_BUS_DDI_D,
> + DDC_BUS_DDI_F,
> +};
> +
> +enum bspec_gmbus_pin {
> + GMBUS_PIN_1 = 0x1,
> + GMBUS_PIN_2,
> + GMBUS_PIN_3,
> + GMBUS_PIN_4,
You already have these defined in i915_reg.h. The naming isn't pretty,
but the above doesn't make much sense either.
> +};
> +
> /*
> * The child device config, aka the display device data structure, provides a
> * description of a port and its configuration on the platform.
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-20 9:11 ` Jani Nikula
@ 2017-10-20 11:25 ` Ville Syrjälä
2017-10-20 11:29 ` Jani Nikula
0 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjälä @ 2017-10-20 11:25 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx, Paulo Zanoni, Rodrigo Vivi
On Fri, Oct 20, 2017 at 12:11:29PM +0300, Jani Nikula wrote:
> On Thu, 19 Oct 2017, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > Starting on CNL we now need to map VBT DDC Pin to
> > BSPec DDC Pin values. Not a direct translation anymore.
> >
> > According to VBT
> > Block 2 (General Bytes Definition)
> > DDC Bus
> >
> > +----------+-----------+--------------------+
> > | DDI Type | VBT Value | Bspec Mapped Value |
> > +----------+-----------+--------------------+
> > | DDI-B | 0x1 | 0x1 |
> > | DDI-C | 0x2 | 0x2 |
> > | DDI-D | 0x3 | 0x4 |
> > | DDI-F | 0x4 | 0x3 |
> > +----------+-----------+--------------------+
> >
> > v2: Move defines to a better place.
> > This is actually CNL_PCH not CNL only.
> > v3: Accepting Ville's suggestions: enums and array to
> > to make this future proof.
> >
> > Cc: Jani Nikula <jani.nikula@intel.com>
> > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > Cc: Clinton Taylor <clinton.a.taylor@intel.com>
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_bios.c | 26 ++++++++++++++++----------
> > drivers/gpu/drm/i915/intel_vbt_defs.h | 15 +++++++++++++++
> > 2 files changed, 31 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> > index dc4fad30bf4f..79638308664c 100644
> > --- a/drivers/gpu/drm/i915/intel_bios.c
> > +++ b/drivers/gpu/drm/i915/intel_bios.c
> > @@ -1071,6 +1071,21 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
> > }
> > }
> >
> > +static const enum bspec_gmbus_pin cnp_ddc_pin_map[] = {
> > + [DDC_BUS_DDI_B] = GMBUS_PIN_1,
> > + [DDC_BUS_DDI_C] = GMBUS_PIN_2,
> > + [DDC_BUS_DDI_D] = GMBUS_PIN_4,
> > + [DDC_BUS_DDI_F] = GMBUS_PIN_3,
>
> I think the two last lines deserve comments like /* sic */ or something.
>
> > +};
> > +
> > +static u8 get_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
>
> Nitpick, You're passing in a pin and you get a pin? How about
> "map_ddc_pin"? Like your array name suggests?
>
> > +{
> > + if (HAS_PCH_CNP(dev_priv))
> > + return cnp_ddc_pin_map[vbt_pin];
Do we need an ARRAY_SIZE() check? I didn't actually check how many bits
we have in the VBT for this.
> > +
> > + return vbt_pin;
> > +}
> > +
> > static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> > u8 bdb_version)
> > {
> > @@ -1164,16 +1179,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> > DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
> >
> > if (is_dvi) {
> > - info->alternate_ddc_pin = ddc_pin;
> > -
> > - /*
> > - * All VBTs that we got so far for B Stepping has this
> > - * information wrong for Port D. So, let's just ignore for now.
> > - */
> > - if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
> > - port == PORT_D) {
> > - info->alternate_ddc_pin = 0;
> > - }
> > + info->alternate_ddc_pin = get_ddc_pin(dev_priv, ddc_pin);
> >
> > sanitize_ddc_pin(dev_priv, port);
> > }
> > diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
> > index 7e2a96712d07..dfc9f7a43668 100644
> > --- a/drivers/gpu/drm/i915/intel_vbt_defs.h
> > +++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
> > @@ -308,6 +308,21 @@ struct bdb_general_features {
> >
> > #define LEGACY_CHILD_DEVICE_CONFIG_SIZE 33
> >
> > +/* DDC Bus DDI Type 155+ */
> > +enum vbt_gmbus_ddi {
> > + DDC_BUS_DDI_B = 0x1,
> > + DDC_BUS_DDI_C,
> > + DDC_BUS_DDI_D,
> > + DDC_BUS_DDI_F,
> > +};
> > +
> > +enum bspec_gmbus_pin {
> > + GMBUS_PIN_1 = 0x1,
> > + GMBUS_PIN_2,
> > + GMBUS_PIN_3,
> > + GMBUS_PIN_4,
>
> You already have these defined in i915_reg.h. The naming isn't pretty,
> but the above doesn't make much sense either.
+1
>
> > +};
> > +
> > /*
> > * The child device config, aka the display device data structure, provides a
> > * description of a port and its configuration on the platform.
>
> --
> Jani Nikula, Intel Open Source Technology Center
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-20 11:25 ` Ville Syrjälä
@ 2017-10-20 11:29 ` Jani Nikula
2017-10-20 17:26 ` Rodrigo Vivi
0 siblings, 1 reply; 17+ messages in thread
From: Jani Nikula @ 2017-10-20 11:29 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx, Paulo Zanoni, Rodrigo Vivi
On Fri, 20 Oct 2017, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Fri, Oct 20, 2017 at 12:11:29PM +0300, Jani Nikula wrote:
>> On Thu, 19 Oct 2017, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
>> > Starting on CNL we now need to map VBT DDC Pin to
>> > BSPec DDC Pin values. Not a direct translation anymore.
>> >
>> > According to VBT
>> > Block 2 (General Bytes Definition)
>> > DDC Bus
>> >
>> > +----------+-----------+--------------------+
>> > | DDI Type | VBT Value | Bspec Mapped Value |
>> > +----------+-----------+--------------------+
>> > | DDI-B | 0x1 | 0x1 |
>> > | DDI-C | 0x2 | 0x2 |
>> > | DDI-D | 0x3 | 0x4 |
>> > | DDI-F | 0x4 | 0x3 |
>> > +----------+-----------+--------------------+
>> >
>> > v2: Move defines to a better place.
>> > This is actually CNL_PCH not CNL only.
>> > v3: Accepting Ville's suggestions: enums and array to
>> > to make this future proof.
>> >
>> > Cc: Jani Nikula <jani.nikula@intel.com>
>> > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
>> > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
>> > Cc: Clinton Taylor <clinton.a.taylor@intel.com>
>> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> > ---
>> > drivers/gpu/drm/i915/intel_bios.c | 26 ++++++++++++++++----------
>> > drivers/gpu/drm/i915/intel_vbt_defs.h | 15 +++++++++++++++
>> > 2 files changed, 31 insertions(+), 10 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
>> > index dc4fad30bf4f..79638308664c 100644
>> > --- a/drivers/gpu/drm/i915/intel_bios.c
>> > +++ b/drivers/gpu/drm/i915/intel_bios.c
>> > @@ -1071,6 +1071,21 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
>> > }
>> > }
>> >
>> > +static const enum bspec_gmbus_pin cnp_ddc_pin_map[] = {
>> > + [DDC_BUS_DDI_B] = GMBUS_PIN_1,
>> > + [DDC_BUS_DDI_C] = GMBUS_PIN_2,
>> > + [DDC_BUS_DDI_D] = GMBUS_PIN_4,
>> > + [DDC_BUS_DDI_F] = GMBUS_PIN_3,
>>
>> I think the two last lines deserve comments like /* sic */ or something.
>>
>> > +};
>> > +
>> > +static u8 get_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
>>
>> Nitpick, You're passing in a pin and you get a pin? How about
>> "map_ddc_pin"? Like your array name suggests?
>>
>> > +{
>> > + if (HAS_PCH_CNP(dev_priv))
>> > + return cnp_ddc_pin_map[vbt_pin];
>
> Do we need an ARRAY_SIZE() check? I didn't actually check how many bits
> we have in the VBT for this.
Oh yes, it's u8.
BR,
Jani.
>
>> > +
>> > + return vbt_pin;
>> > +}
>> > +
>> > static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
>> > u8 bdb_version)
>> > {
>> > @@ -1164,16 +1179,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
>> > DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
>> >
>> > if (is_dvi) {
>> > - info->alternate_ddc_pin = ddc_pin;
>> > -
>> > - /*
>> > - * All VBTs that we got so far for B Stepping has this
>> > - * information wrong for Port D. So, let's just ignore for now.
>> > - */
>> > - if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
>> > - port == PORT_D) {
>> > - info->alternate_ddc_pin = 0;
>> > - }
>> > + info->alternate_ddc_pin = get_ddc_pin(dev_priv, ddc_pin);
>> >
>> > sanitize_ddc_pin(dev_priv, port);
>> > }
>> > diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
>> > index 7e2a96712d07..dfc9f7a43668 100644
>> > --- a/drivers/gpu/drm/i915/intel_vbt_defs.h
>> > +++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
>> > @@ -308,6 +308,21 @@ struct bdb_general_features {
>> >
>> > #define LEGACY_CHILD_DEVICE_CONFIG_SIZE 33
>> >
>> > +/* DDC Bus DDI Type 155+ */
>> > +enum vbt_gmbus_ddi {
>> > + DDC_BUS_DDI_B = 0x1,
>> > + DDC_BUS_DDI_C,
>> > + DDC_BUS_DDI_D,
>> > + DDC_BUS_DDI_F,
>> > +};
>> > +
>> > +enum bspec_gmbus_pin {
>> > + GMBUS_PIN_1 = 0x1,
>> > + GMBUS_PIN_2,
>> > + GMBUS_PIN_3,
>> > + GMBUS_PIN_4,
>>
>> You already have these defined in i915_reg.h. The naming isn't pretty,
>> but the above doesn't make much sense either.
>
> +1
>
>>
>> > +};
>> > +
>> > /*
>> > * The child device config, aka the display device data structure, provides a
>> > * description of a port and its configuration on the platform.
>>
>> --
>> Jani Nikula, Intel Open Source Technology Center
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-20 11:29 ` Jani Nikula
@ 2017-10-20 17:26 ` Rodrigo Vivi
2017-10-20 17:40 ` Ville Syrjälä
0 siblings, 1 reply; 17+ messages in thread
From: Rodrigo Vivi @ 2017-10-20 17:26 UTC (permalink / raw)
To: intel-gfx; +Cc: Paulo Zanoni, Jani Nikula, Rodrigo Vivi
Starting on CNL we now need to map VBT DDC Pin to
BSPec DDC Pin values. Not a direct translation anymore.
According to VBT
Block 2 (General Bytes Definition)
DDC Bus
+----------+-----------+--------------------+
| DDI Type | VBT Value | Bspec Mapped Value |
+----------+-----------+--------------------+
| DDI-B | 0x1 | 0x1 |
| DDI-C | 0x2 | 0x2 |
| DDI-D | 0x3 | 0x4 |
| DDI-F | 0x4 | 0x3 |
+----------+-----------+--------------------+
v2: Move defines to a better place.
This is actually CNL_PCH not CNL only.
v3: Accepting Ville's suggestions: enums and array to
to make this future proof.
v4: Protect the array access as Ville suggested.
Also accepting all Jani's suggestions:
- use already defined gmbus pin definitions.
- use map_ddc_pin for disambiguation.
- Add /* sic */ comment on inverted values
so people can easily see it it nos a mistake
we have the map 3 -> 4 and 4 -> 3 :/
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Clinton Taylor <clinton.a.taylor@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
drivers/gpu/drm/i915/intel_bios.c | 27 +++++++++++++++++----------
drivers/gpu/drm/i915/intel_vbt_defs.h | 8 ++++++++
2 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index e809a9c347d3..a95cf07bd8e1 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -1071,6 +1071,22 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
}
}
+static const u8 cnp_ddc_pin_map[] = {
+ [DDC_BUS_DDI_B] = GMBUS_PIN_1_BXT,
+ [DDC_BUS_DDI_C] = GMBUS_PIN_2_BXT,
+ [DDC_BUS_DDI_D] = GMBUS_PIN_4_CNP, /* sic */
+ [DDC_BUS_DDI_F] = GMBUS_PIN_3_BXT, /* sic */
+};
+
+static u8 map_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
+{
+ if (HAS_PCH_CNP(dev_priv) &&
+ vbt_pin > 0 && vbt_pin < ARRAY_SIZE(cnp_ddc_pin_map))
+ return cnp_ddc_pin_map[vbt_pin];
+
+ return vbt_pin;
+}
+
static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
u8 bdb_version)
{
@@ -1163,16 +1179,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
if (is_dvi) {
- info->alternate_ddc_pin = ddc_pin;
-
- /*
- * All VBTs that we got so far for B Stepping has this
- * information wrong for Port D. So, let's just ignore for now.
- */
- if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
- port == PORT_D) {
- info->alternate_ddc_pin = 0;
- }
+ info->alternate_ddc_pin = map_ddc_pin(dev_priv, ddc_pin);
sanitize_ddc_pin(dev_priv, port);
}
diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
index 404569c9fdfc..f225c288a121 100644
--- a/drivers/gpu/drm/i915/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
@@ -306,6 +306,14 @@ struct bdb_general_features {
#define LEGACY_CHILD_DEVICE_CONFIG_SIZE 33
+/* DDC Bus DDI Type 155+ */
+enum vbt_gmbus_ddi {
+ DDC_BUS_DDI_B = 0x1,
+ DDC_BUS_DDI_C,
+ DDC_BUS_DDI_D,
+ DDC_BUS_DDI_F,
+};
+
/*
* The child device config, aka the display device data structure, provides a
* description of a port and its configuration on the platform.
--
2.13.5
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-20 17:26 ` Rodrigo Vivi
@ 2017-10-20 17:40 ` Ville Syrjälä
2017-10-20 23:24 ` Rodrigo Vivi
0 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjälä @ 2017-10-20 17:40 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: Jani Nikula, intel-gfx, Paulo Zanoni
On Fri, Oct 20, 2017 at 10:26:41AM -0700, Rodrigo Vivi wrote:
> Starting on CNL we now need to map VBT DDC Pin to
> BSPec DDC Pin values. Not a direct translation anymore.
>
> According to VBT
> Block 2 (General Bytes Definition)
> DDC Bus
>
> +----------+-----------+--------------------+
> | DDI Type | VBT Value | Bspec Mapped Value |
> +----------+-----------+--------------------+
> | DDI-B | 0x1 | 0x1 |
> | DDI-C | 0x2 | 0x2 |
> | DDI-D | 0x3 | 0x4 |
> | DDI-F | 0x4 | 0x3 |
> +----------+-----------+--------------------+
>
> v2: Move defines to a better place.
> This is actually CNL_PCH not CNL only.
> v3: Accepting Ville's suggestions: enums and array to
> to make this future proof.
> v4: Protect the array access as Ville suggested.
> Also accepting all Jani's suggestions:
> - use already defined gmbus pin definitions.
> - use map_ddc_pin for disambiguation.
> - Add /* sic */ comment on inverted values
> so people can easily see it it nos a mistake
> we have the map 3 -> 4 and 4 -> 3 :/
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Cc: Clinton Taylor <clinton.a.taylor@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/intel_bios.c | 27 +++++++++++++++++----------
> drivers/gpu/drm/i915/intel_vbt_defs.h | 8 ++++++++
> 2 files changed, 25 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index e809a9c347d3..a95cf07bd8e1 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -1071,6 +1071,22 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
> }
> }
>
> +static const u8 cnp_ddc_pin_map[] = {
> + [DDC_BUS_DDI_B] = GMBUS_PIN_1_BXT,
> + [DDC_BUS_DDI_C] = GMBUS_PIN_2_BXT,
> + [DDC_BUS_DDI_D] = GMBUS_PIN_4_CNP, /* sic */
> + [DDC_BUS_DDI_F] = GMBUS_PIN_3_BXT, /* sic */
> +};
> +
> +static u8 map_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
> +{
> + if (HAS_PCH_CNP(dev_priv) &&
> + vbt_pin > 0 && vbt_pin < ARRAY_SIZE(cnp_ddc_pin_map))
> + return cnp_ddc_pin_map[vbt_pin];
Not quite sure what we should do with invalid pins. But I guess this
makes as much sense as anything.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> +
> + return vbt_pin;
> +}
> +
> static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> u8 bdb_version)
> {
> @@ -1163,16 +1179,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
>
> if (is_dvi) {
> - info->alternate_ddc_pin = ddc_pin;
> -
> - /*
> - * All VBTs that we got so far for B Stepping has this
> - * information wrong for Port D. So, let's just ignore for now.
> - */
> - if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
> - port == PORT_D) {
> - info->alternate_ddc_pin = 0;
> - }
> + info->alternate_ddc_pin = map_ddc_pin(dev_priv, ddc_pin);
>
> sanitize_ddc_pin(dev_priv, port);
> }
> diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
> index 404569c9fdfc..f225c288a121 100644
> --- a/drivers/gpu/drm/i915/intel_vbt_defs.h
> +++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
> @@ -306,6 +306,14 @@ struct bdb_general_features {
>
> #define LEGACY_CHILD_DEVICE_CONFIG_SIZE 33
>
> +/* DDC Bus DDI Type 155+ */
> +enum vbt_gmbus_ddi {
> + DDC_BUS_DDI_B = 0x1,
> + DDC_BUS_DDI_C,
> + DDC_BUS_DDI_D,
> + DDC_BUS_DDI_F,
> +};
> +
> /*
> * The child device config, aka the display device data structure, provides a
> * description of a port and its configuration on the platform.
> --
> 2.13.5
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev4)
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
` (6 preceding siblings ...)
2017-10-19 22:29 ` ✓ Fi.CI.IGT: " Patchwork
@ 2017-10-20 18:07 ` Patchwork
2017-10-20 20:04 ` ✓ Fi.CI.IGT: " Patchwork
8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-10-20 18:07 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev4)
URL : https://patchwork.freedesktop.org/series/32305/
State : success
== Summary ==
Series 32305v4 drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
https://patchwork.freedesktop.org/api/1.0/series/32305/revisions/4/mbox/
Test kms_frontbuffer_tracking:
Subgroup basic:
dmesg-warn -> PASS (fi-bdw-5557u) fdo#102473
Test kms_pipe_crc_basic:
Subgroup hang-read-crc-pipe-b:
incomplete -> PASS (fi-skl-6700hq)
fdo#102473 https://bugs.freedesktop.org/show_bug.cgi?id=102473
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:440s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:447s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:370s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:524s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:262s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:501s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:505s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:492s
fi-cfl-s total:289 pass:253 dwarn:4 dfail:0 fail:0 skip:32 time:543s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:415s
fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:247s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:577s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:449s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:427s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:438s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:498s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:459s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:493s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:574s
fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:474s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:584s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:541s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:446s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:640s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:520s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:498s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:454s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:558s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:415s
fi-byt-n2820 failed to connect after reboot
e9b02ebe67a3f104fff3ab668cbdaad8d551c08a drm-tip: 2017y-10m-20d-17h-05m-26s UTC integration manifest
6765f7d41571 drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6128/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Fi.CI.IGT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev4)
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
` (7 preceding siblings ...)
2017-10-20 18:07 ` ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev4) Patchwork
@ 2017-10-20 20:04 ` Patchwork
8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2017-10-20 20:04 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev4)
URL : https://patchwork.freedesktop.org/series/32305/
State : success
== Summary ==
Test kms_busy:
Subgroup extended-modeset-hang-oldfb-with-reset-render-A:
pass -> DMESG-WARN (shard-hsw) fdo#102249
Test kms_setmode:
Subgroup basic:
pass -> FAIL (shard-hsw) fdo#99912
Test kms_flip:
Subgroup modeset-vs-vblank-race-interruptible:
pass -> FAIL (shard-hsw) fdo#103060
fdo#102249 https://bugs.freedesktop.org/show_bug.cgi?id=102249
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
shard-hsw total:2540 pass:1427 dwarn:2 dfail:0 fail:10 skip:1101 time:9239s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_6128/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
2017-10-20 17:40 ` Ville Syrjälä
@ 2017-10-20 23:24 ` Rodrigo Vivi
0 siblings, 0 replies; 17+ messages in thread
From: Rodrigo Vivi @ 2017-10-20 23:24 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: Jani Nikula, intel-gfx, Paulo Zanoni
On Fri, Oct 20, 2017 at 05:40:10PM +0000, Ville Syrjälä wrote:
> On Fri, Oct 20, 2017 at 10:26:41AM -0700, Rodrigo Vivi wrote:
> > Starting on CNL we now need to map VBT DDC Pin to
> > BSPec DDC Pin values. Not a direct translation anymore.
> >
> > According to VBT
> > Block 2 (General Bytes Definition)
> > DDC Bus
> >
> > +----------+-----------+--------------------+
> > | DDI Type | VBT Value | Bspec Mapped Value |
> > +----------+-----------+--------------------+
> > | DDI-B | 0x1 | 0x1 |
> > | DDI-C | 0x2 | 0x2 |
> > | DDI-D | 0x3 | 0x4 |
> > | DDI-F | 0x4 | 0x3 |
> > +----------+-----------+--------------------+
> >
> > v2: Move defines to a better place.
> > This is actually CNL_PCH not CNL only.
> > v3: Accepting Ville's suggestions: enums and array to
> > to make this future proof.
> > v4: Protect the array access as Ville suggested.
> > Also accepting all Jani's suggestions:
> > - use already defined gmbus pin definitions.
> > - use map_ddc_pin for disambiguation.
> > - Add /* sic */ comment on inverted values
> > so people can easily see it it nos a mistake
> > we have the map 3 -> 4 and 4 -> 3 :/
> >
> > Cc: Jani Nikula <jani.nikula@intel.com>
> > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > Cc: Clinton Taylor <clinton.a.taylor@intel.com>
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_bios.c | 27 +++++++++++++++++----------
> > drivers/gpu/drm/i915/intel_vbt_defs.h | 8 ++++++++
> > 2 files changed, 25 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> > index e809a9c347d3..a95cf07bd8e1 100644
> > --- a/drivers/gpu/drm/i915/intel_bios.c
> > +++ b/drivers/gpu/drm/i915/intel_bios.c
> > @@ -1071,6 +1071,22 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
> > }
> > }
> >
> > +static const u8 cnp_ddc_pin_map[] = {
> > + [DDC_BUS_DDI_B] = GMBUS_PIN_1_BXT,
> > + [DDC_BUS_DDI_C] = GMBUS_PIN_2_BXT,
> > + [DDC_BUS_DDI_D] = GMBUS_PIN_4_CNP, /* sic */
> > + [DDC_BUS_DDI_F] = GMBUS_PIN_3_BXT, /* sic */
> > +};
> > +
> > +static u8 map_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
> > +{
> > + if (HAS_PCH_CNP(dev_priv) &&
> > + vbt_pin > 0 && vbt_pin < ARRAY_SIZE(cnp_ddc_pin_map))
> > + return cnp_ddc_pin_map[vbt_pin];
>
> Not quite sure what we should do with invalid pins. But I guess this
> makes as much sense as anything.
>
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Thanks a lot for all ideas.
merged to dinq.
>
> > +
> > + return vbt_pin;
> > +}
> > +
> > static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> > u8 bdb_version)
> > {
> > @@ -1163,16 +1179,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
> > DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
> >
> > if (is_dvi) {
> > - info->alternate_ddc_pin = ddc_pin;
> > -
> > - /*
> > - * All VBTs that we got so far for B Stepping has this
> > - * information wrong for Port D. So, let's just ignore for now.
> > - */
> > - if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0) &&
> > - port == PORT_D) {
> > - info->alternate_ddc_pin = 0;
> > - }
> > + info->alternate_ddc_pin = map_ddc_pin(dev_priv, ddc_pin);
> >
> > sanitize_ddc_pin(dev_priv, port);
> > }
> > diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
> > index 404569c9fdfc..f225c288a121 100644
> > --- a/drivers/gpu/drm/i915/intel_vbt_defs.h
> > +++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
> > @@ -306,6 +306,14 @@ struct bdb_general_features {
> >
> > #define LEGACY_CHILD_DEVICE_CONFIG_SIZE 33
> >
> > +/* DDC Bus DDI Type 155+ */
> > +enum vbt_gmbus_ddi {
> > + DDC_BUS_DDI_B = 0x1,
> > + DDC_BUS_DDI_C,
> > + DDC_BUS_DDI_D,
> > + DDC_BUS_DDI_F,
> > +};
> > +
> > /*
> > * The child device config, aka the display device data structure, provides a
> > * description of a port and its configuration on the platform.
> > --
> > 2.13.5
>
> --
> Ville Syrjälä
> Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2017-10-20 23:24 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-19 15:45 [PATCH] drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin Rodrigo Vivi
2017-10-19 16:02 ` Rodrigo Vivi
2017-10-19 16:02 ` Ville Syrjälä
2017-10-19 21:11 ` Rodrigo Vivi
2017-10-20 9:11 ` Jani Nikula
2017-10-20 11:25 ` Ville Syrjälä
2017-10-20 11:29 ` Jani Nikula
2017-10-20 17:26 ` Rodrigo Vivi
2017-10-20 17:40 ` Ville Syrjälä
2017-10-20 23:24 ` Rodrigo Vivi
2017-10-19 16:12 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-10-19 16:34 ` ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev2) Patchwork
2017-10-19 17:23 ` ✓ Fi.CI.IGT: " Patchwork
2017-10-19 21:32 ` ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev3) Patchwork
2017-10-19 22:29 ` ✓ Fi.CI.IGT: " Patchwork
2017-10-20 18:07 ` ✓ Fi.CI.BAT: success for drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin. (rev4) Patchwork
2017-10-20 20:04 ` ✓ Fi.CI.IGT: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.