All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/i915/vbt: defaults handling for no VBT case
@ 2017-03-10 13:27 Jani Nikula
  2017-03-10 13:27 ` [PATCH 1/2] drm/i915/vbt: don't propagate errors from intel_bios_init() Jani Nikula
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Jani Nikula @ 2017-03-10 13:27 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

This is my proposed alternative to [1].

BR,
Jani.


[1] http://patchwork.freedesktop.org/patch/msgid/1488546102-27789-1-git-send-email-manasi.d.navare@intel.com


Jani Nikula (2):
  drm/i915/vbt: don't propagate errors from intel_bios_init()
  drm/i915/vbt: split out defaults that are set when there is no VBT

 drivers/gpu/drm/i915/i915_drv.c   |  4 +---
 drivers/gpu/drm/i915/i915_drv.h   |  2 +-
 drivers/gpu/drm/i915/intel_bios.c | 46 ++++++++++++++++++++++++++-------------
 3 files changed, 33 insertions(+), 19 deletions(-)

-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/2] drm/i915/vbt: don't propagate errors from intel_bios_init()
  2017-03-10 13:27 [PATCH 0/2] drm/i915/vbt: defaults handling for no VBT case Jani Nikula
@ 2017-03-10 13:27 ` Jani Nikula
  2017-03-10 14:07   ` Chris Wilson
  2017-03-10 13:27 ` [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT Jani Nikula
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 15+ messages in thread
From: Jani Nikula @ 2017-03-10 13:27 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

We don't use the error return for anything other than reporting and
logging that there is no VBT. We can pull the logging in the function,
and remove the error status return. Moreover, if we needed the
information for something later on, we'd probably be better off storing
the bit in dev_priv, and using it where it's needed, instead of using
the error return.

While at it, improve the comments.

Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c   |  4 +---
 drivers/gpu/drm/i915/i915_drv.h   |  2 +-
 drivers/gpu/drm/i915/intel_bios.c | 31 ++++++++++++++++---------------
 3 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index b1e9027a4f80..1af54717fa81 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -567,9 +567,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
 	if (i915_inject_load_failure())
 		return -ENODEV;
 
-	ret = intel_bios_init(dev_priv);
-	if (ret)
-		DRM_INFO("failed to find VBIOS tables\n");
+	intel_bios_init(dev_priv);
 
 	/* If we have > 1 VGA cards, then we need to arbitrate access
 	 * to the common VGA resources.
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 3002996ddbed..4fc8ca340d27 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3714,7 +3714,7 @@ static inline bool intel_gmbus_is_forced_bit(struct i2c_adapter *adapter)
 extern void intel_i2c_reset(struct drm_i915_private *dev_priv);
 
 /* intel_bios.c */
-int intel_bios_init(struct drm_i915_private *dev_priv);
+void intel_bios_init(struct drm_i915_private *dev_priv);
 bool intel_bios_is_valid_vbt(const void *buf, size_t size);
 bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv);
 bool intel_bios_is_lvds_present(struct drm_i915_private *dev_priv, u8 *i2c_pin);
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index e144f033f4b5..710988d72253 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -1462,36 +1462,35 @@ static const struct vbt_header *find_vbt(void __iomem *bios, size_t size)
  * intel_bios_init - find VBT and initialize settings from the BIOS
  * @dev_priv: i915 device instance
  *
- * Loads the Video BIOS and checks that the VBT exists.  Sets scratch registers
- * to appropriate values.
- *
- * Returns 0 on success, nonzero on failure.
+ * Parse and initialize settings from the Video BIOS Tables (VBT). If the VBT
+ * was not found in ACPI OpRegion, try to find it in PCI ROM first. Also
+ * initialize some defaults if the VBT is not present at all.
  */
-int
-intel_bios_init(struct drm_i915_private *dev_priv)
+void intel_bios_init(struct drm_i915_private *dev_priv)
 {
 	struct pci_dev *pdev = dev_priv->drm.pdev;
 	const struct vbt_header *vbt = dev_priv->opregion.vbt;
 	const struct bdb_header *bdb;
 	u8 __iomem *bios = NULL;
 
-	if (HAS_PCH_NOP(dev_priv))
-		return -ENODEV;
+	if (HAS_PCH_NOP(dev_priv)) {
+		DRM_DEBUG_KMS("Skipping VBT init due to disabled display.\n");
+		return;
+	}
 
 	init_vbt_defaults(dev_priv);
 
+	/* If the OpRegion does not have VBT, look in PCI ROM. */
 	if (!vbt) {
 		size_t size;
 
 		bios = pci_map_rom(pdev, &size);
 		if (!bios)
-			return -1;
+			goto out;
 
 		vbt = find_vbt(bios, size);
-		if (!vbt) {
-			pci_unmap_rom(pdev, bios);
-			return -1;
-		}
+		if (!vbt)
+			goto out;
 
 		DRM_DEBUG_KMS("Found valid VBT in PCI ROM\n");
 	}
@@ -1516,10 +1515,12 @@ intel_bios_init(struct drm_i915_private *dev_priv)
 	parse_mipi_sequence(dev_priv, bdb);
 	parse_ddi_ports(dev_priv, bdb);
 
+out:
+	if (!vbt)
+		DRM_INFO("Failed to find VBIOS tables (VBT)\n");
+
 	if (bios)
 		pci_unmap_rom(pdev, bios);
-
-	return 0;
 }
 
 /**
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT
  2017-03-10 13:27 [PATCH 0/2] drm/i915/vbt: defaults handling for no VBT case Jani Nikula
  2017-03-10 13:27 ` [PATCH 1/2] drm/i915/vbt: don't propagate errors from intel_bios_init() Jani Nikula
@ 2017-03-10 13:27 ` Jani Nikula
  2017-03-10 23:57   ` Manasi Navare
  2017-03-10 16:53 ` ✗ Fi.CI.BAT: failure for drm/i915/vbt: defaults handling for no VBT case Patchwork
  2017-03-13  9:17 ` ✓ Fi.CI.BAT: success " Patchwork
  3 siblings, 1 reply; 15+ messages in thread
From: Jani Nikula @ 2017-03-10 13:27 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

The main thing are the DDI ports. If there's a VBT that says there are
no outputs, we should trust that, and not have semi-random
defaults. Unfortunately, the defaults have resulted in some Chromebooks
without VBT to rely on this behaviour, so we split out the defaults for
the missing VBT case.

Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_bios.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index 710988d72253..639d45c1dd2e 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -1341,6 +1341,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
 	return;
 }
 
+/* Common defaults which may be overridden by VBT. */
 static void
 init_vbt_defaults(struct drm_i915_private *dev_priv)
 {
@@ -1377,6 +1378,18 @@ init_vbt_defaults(struct drm_i915_private *dev_priv)
 			&dev_priv->vbt.ddi_port_info[port];
 
 		info->hdmi_level_shift = HDMI_LEVEL_SHIFT_UNKNOWN;
+	}
+}
+
+/* Defaults to initialize only if there is no VBT. */
+static void
+init_vbt_missing_defaults(struct drm_i915_private *dev_priv)
+{
+	enum port port;
+
+	for (port = PORT_A; port < I915_MAX_PORTS; port++) {
+		struct ddi_vbt_port_info *info =
+			&dev_priv->vbt.ddi_port_info[port];
 
 		info->supports_dvi = (port != PORT_A && port != PORT_E);
 		info->supports_hdmi = info->supports_dvi;
@@ -1516,8 +1529,10 @@ void intel_bios_init(struct drm_i915_private *dev_priv)
 	parse_ddi_ports(dev_priv, bdb);
 
 out:
-	if (!vbt)
+	if (!vbt) {
 		DRM_INFO("Failed to find VBIOS tables (VBT)\n");
+		init_vbt_missing_defaults(dev_priv);
+	}
 
 	if (bios)
 		pci_unmap_rom(pdev, bios);
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] drm/i915/vbt: don't propagate errors from intel_bios_init()
  2017-03-10 13:27 ` [PATCH 1/2] drm/i915/vbt: don't propagate errors from intel_bios_init() Jani Nikula
@ 2017-03-10 14:07   ` Chris Wilson
  2017-03-13 10:01     ` Jani Nikula
  0 siblings, 1 reply; 15+ messages in thread
From: Chris Wilson @ 2017-03-10 14:07 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Fri, Mar 10, 2017 at 03:27:57PM +0200, Jani Nikula wrote:
> We don't use the error return for anything other than reporting and
> logging that there is no VBT. We can pull the logging in the function,
> and remove the error status return. Moreover, if we needed the
> information for something later on, we'd probably be better off storing
> the bit in dev_priv, and using it where it's needed, instead of using
> the error return.
> 
> While at it, improve the comments.
> 
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.c   |  4 +---
>  drivers/gpu/drm/i915/i915_drv.h   |  2 +-
>  drivers/gpu/drm/i915/intel_bios.c | 31 ++++++++++++++++---------------
>  3 files changed, 18 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index b1e9027a4f80..1af54717fa81 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -567,9 +567,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
>  	if (i915_inject_load_failure())
>  		return -ENODEV;
>  
> -	ret = intel_bios_init(dev_priv);
> -	if (ret)
> -		DRM_INFO("failed to find VBIOS tables\n");
> +	intel_bios_init(dev_priv);

Sold.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915/vbt: defaults handling for no VBT case
  2017-03-10 13:27 [PATCH 0/2] drm/i915/vbt: defaults handling for no VBT case Jani Nikula
  2017-03-10 13:27 ` [PATCH 1/2] drm/i915/vbt: don't propagate errors from intel_bios_init() Jani Nikula
  2017-03-10 13:27 ` [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT Jani Nikula
@ 2017-03-10 16:53 ` Patchwork
  2017-03-13  9:17 ` ✓ Fi.CI.BAT: success " Patchwork
  3 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2017-03-10 16:53 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/vbt: defaults handling for no VBT case
URL   : https://patchwork.freedesktop.org/series/21061/
State : failure

== Summary ==

Series 21061v1 drm/i915/vbt: defaults handling for no VBT case
https://patchwork.freedesktop.org/api/1.0/series/21061/revisions/1/mbox/

Test gem_exec_flush:
        Subgroup basic-batch-kernel-default-uc:
                pass       -> FAIL       (fi-snb-2600) fdo#100007
Test kms_pipe_crc_basic:
        Subgroup hang-read-crc-pipe-b:
                dmesg-warn -> PASS       (fi-byt-j1900)
Test pm_rpm:
        Subgroup basic-pci-d3-state:
                pass       -> INCOMPLETE (fi-byt-j1900)

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

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time: 462s
fi-bsw-n3050     total:278  pass:239  dwarn:0   dfail:0   fail:0   skip:39  time: 601s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time: 532s
fi-bxt-t5700     total:278  pass:258  dwarn:0   dfail:0   fail:0   skip:20  time: 556s
fi-byt-j1900     total:241  pass:214  dwarn:0   dfail:0   fail:0   skip:26  time: 0s
fi-byt-n2820     total:278  pass:247  dwarn:0   dfail:0   fail:0   skip:31  time: 503s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time: 436s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time: 436s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time: 445s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time: 505s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time: 493s
fi-kbl-7500u     total:278  pass:259  dwarn:1   dfail:0   fail:0   skip:18  time: 475s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time: 484s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time: 587s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time: 491s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time: 507s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time: 548s
fi-snb-2600      total:278  pass:248  dwarn:0   dfail:0   fail:1   skip:29  time: 431s

2095bbc9d234d71fa44fd9181597431e2653058c drm-tip: 2017y-03m-10d-15h-03m-17s UTC integration manifest
d047866 drm/i915/vbt: split out defaults that are set when there is no VBT
d6576e7 drm/i915/vbt: don't propagate errors from intel_bios_init()

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4138/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT
  2017-03-10 13:27 ` [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT Jani Nikula
@ 2017-03-10 23:57   ` Manasi Navare
  2017-03-13  9:55     ` Jani Nikula
  0 siblings, 1 reply; 15+ messages in thread
From: Manasi Navare @ 2017-03-10 23:57 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Fri, Mar 10, 2017 at 03:27:58PM +0200, Jani Nikula wrote:
> The main thing are the DDI ports. If there's a VBT that says there are
> no outputs, we should trust that, and not have semi-random
> defaults. Unfortunately, the defaults have resulted in some Chromebooks
> without VBT to rely on this behaviour, so we split out the defaults for
> the missing VBT case.
> 
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_bios.c | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 710988d72253..639d45c1dd2e 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -1341,6 +1341,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
>  	return;
>  }
>  
> +/* Common defaults which may be overridden by VBT. */
>  static void
>  init_vbt_defaults(struct drm_i915_private *dev_priv)
>  {
> @@ -1377,6 +1378,18 @@ init_vbt_defaults(struct drm_i915_private *dev_priv)
>  			&dev_priv->vbt.ddi_port_info[port];
>  
>  		info->hdmi_level_shift = HDMI_LEVEL_SHIFT_UNKNOWN;
> +	}
> +}
> +
> +/* Defaults to initialize only if there is no VBT. */
> +static void
> +init_vbt_missing_defaults(struct drm_i915_private *dev_priv)
> +{
> +	enum port port;
> +
> +	for (port = PORT_A; port < I915_MAX_PORTS; port++) {
> +		struct ddi_vbt_port_info *info =
> +			&dev_priv->vbt.ddi_port_info[port];
>  
>  		info->supports_dvi = (port != PORT_A && port != PORT_E);
>  		info->supports_hdmi = info->supports_dvi;
> @@ -1516,8 +1529,10 @@ void intel_bios_init(struct drm_i915_private *dev_priv)
>  	parse_ddi_ports(dev_priv, bdb);
>  
>  out:
> -	if (!vbt)
> +	if (!vbt) {
>  		DRM_INFO("Failed to find VBIOS tables (VBT)\n");
> +		init_vbt_missing_defaults(dev_priv);
> +	}

So in case there is no VBT, this will set supports_DP flag on Port A.
What is there is no VBT and there is no eDP on Port A?
In this case it will still try to link train on Port A and fail..?
I am not sure if this case exists, but just a thought looking at it.
If such a case does not exist, then this will solve our problem of
current failures because leaving defaults on Port A. So in that case
it lgtm.

Regards
Manasi


>  
>  	if (bios)
>  		pci_unmap_rom(pdev, bios);
> -- 
> 2.1.4
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915/vbt: defaults handling for no VBT case
  2017-03-10 13:27 [PATCH 0/2] drm/i915/vbt: defaults handling for no VBT case Jani Nikula
                   ` (2 preceding siblings ...)
  2017-03-10 16:53 ` ✗ Fi.CI.BAT: failure for drm/i915/vbt: defaults handling for no VBT case Patchwork
@ 2017-03-13  9:17 ` Patchwork
  3 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2017-03-13  9:17 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/vbt: defaults handling for no VBT case
URL   : https://patchwork.freedesktop.org/series/21061/
State : success

== Summary ==

Series 21061v1 drm/i915/vbt: defaults handling for no VBT case
https://patchwork.freedesktop.org/api/1.0/series/21061/revisions/1/mbox/

Test gem_exec_flush:
        Subgroup basic-batch-kernel-default-uc:
                fail       -> PASS       (fi-snb-2600) fdo#100007
Test gem_exec_suspend:
        Subgroup basic-s3:
                fail       -> DMESG-WARN (fi-kbl-7500u) fdo#100124
        Subgroup basic-s4-devices:
                fail       -> PASS       (fi-kbl-7500u) fdo#100099
Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-a:
                fail       -> PASS       (fi-kbl-7500u) fdo#100123
        Subgroup suspend-read-crc-pipe-b:
                fail       -> PASS       (fi-kbl-7500u) fdo#100123
        Subgroup suspend-read-crc-pipe-c:
                fail       -> PASS       (fi-kbl-7500u) fdo#100044

fdo#100007 https://bugs.freedesktop.org/show_bug.cgi?id=100007
fdo#100124 https://bugs.freedesktop.org/show_bug.cgi?id=100124
fdo#100099 https://bugs.freedesktop.org/show_bug.cgi?id=100099
fdo#100123 https://bugs.freedesktop.org/show_bug.cgi?id=100123
fdo#100044 https://bugs.freedesktop.org/show_bug.cgi?id=100044

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11  time: 462s
fi-bsw-n3050     total:278  pass:239  dwarn:0   dfail:0   fail:0   skip:39  time: 610s
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19  time: 528s
fi-bxt-t5700     total:278  pass:258  dwarn:0   dfail:0   fail:0   skip:20  time: 548s
fi-byt-j1900     total:278  pass:251  dwarn:0   dfail:0   fail:0   skip:27  time: 503s
fi-byt-n2820     total:278  pass:247  dwarn:0   dfail:0   fail:0   skip:31  time: 508s
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time: 434s
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16  time: 429s
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50  time: 445s
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time: 504s
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18  time: 483s
fi-kbl-7500u     total:278  pass:259  dwarn:1   dfail:0   fail:0   skip:18  time: 471s
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time: 475s
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17  time: 590s
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18  time: 490s
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10  time: 505s
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28  time: 551s
fi-snb-2600      total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:29  time: 423s

9f5422bbf45b2d8a0bb0538b08335c4ba7c2fba5 drm-tip: 2017y-03m-13d-08h-27m-09s UTC integration manifest
f55d292 drm/i915/vbt: split out defaults that are set when there is no VBT
88af841 drm/i915/vbt: don't propagate errors from intel_bios_init()

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4149/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT
  2017-03-10 23:57   ` Manasi Navare
@ 2017-03-13  9:55     ` Jani Nikula
  2017-03-13 16:30       ` Manasi Navare
  0 siblings, 1 reply; 15+ messages in thread
From: Jani Nikula @ 2017-03-13  9:55 UTC (permalink / raw)
  To: Manasi Navare; +Cc: intel-gfx

On Sat, 11 Mar 2017, Manasi Navare <manasi.d.navare@intel.com> wrote:
> On Fri, Mar 10, 2017 at 03:27:58PM +0200, Jani Nikula wrote:
>> The main thing are the DDI ports. If there's a VBT that says there are
>> no outputs, we should trust that, and not have semi-random
>> defaults. Unfortunately, the defaults have resulted in some Chromebooks
>> without VBT to rely on this behaviour, so we split out the defaults for
>> the missing VBT case.
>> 
>> Cc: Manasi Navare <manasi.d.navare@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/i915/intel_bios.c | 17 ++++++++++++++++-
>>  1 file changed, 16 insertions(+), 1 deletion(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
>> index 710988d72253..639d45c1dd2e 100644
>> --- a/drivers/gpu/drm/i915/intel_bios.c
>> +++ b/drivers/gpu/drm/i915/intel_bios.c
>> @@ -1341,6 +1341,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
>>  	return;
>>  }
>>  
>> +/* Common defaults which may be overridden by VBT. */
>>  static void
>>  init_vbt_defaults(struct drm_i915_private *dev_priv)
>>  {
>> @@ -1377,6 +1378,18 @@ init_vbt_defaults(struct drm_i915_private *dev_priv)
>>  			&dev_priv->vbt.ddi_port_info[port];
>>  
>>  		info->hdmi_level_shift = HDMI_LEVEL_SHIFT_UNKNOWN;
>> +	}
>> +}
>> +
>> +/* Defaults to initialize only if there is no VBT. */
>> +static void
>> +init_vbt_missing_defaults(struct drm_i915_private *dev_priv)
>> +{
>> +	enum port port;
>> +
>> +	for (port = PORT_A; port < I915_MAX_PORTS; port++) {
>> +		struct ddi_vbt_port_info *info =
>> +			&dev_priv->vbt.ddi_port_info[port];
>>  
>>  		info->supports_dvi = (port != PORT_A && port != PORT_E);
>>  		info->supports_hdmi = info->supports_dvi;
>> @@ -1516,8 +1529,10 @@ void intel_bios_init(struct drm_i915_private *dev_priv)
>>  	parse_ddi_ports(dev_priv, bdb);
>>  
>>  out:
>> -	if (!vbt)
>> +	if (!vbt) {
>>  		DRM_INFO("Failed to find VBIOS tables (VBT)\n");
>> +		init_vbt_missing_defaults(dev_priv);
>> +	}
>
> So in case there is no VBT, this will set supports_DP flag on Port A.
> What is there is no VBT and there is no eDP on Port A?
> In this case it will still try to link train on Port A and fail..?
> I am not sure if this case exists, but just a thought looking at it.

It's possible the case exists, but the point is that the behaviour for
the no-VBT case remains the same before and after this patch.

BR,
Jani.


> If such a case does not exist, then this will solve our problem of
> current failures because leaving defaults on Port A. So in that case
> it lgtm.
>
> Regards
> Manasi
>
>
>>  
>>  	if (bios)
>>  		pci_unmap_rom(pdev, bios);
>> -- 
>> 2.1.4
>> 

-- 
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] 15+ messages in thread

* Re: [PATCH 1/2] drm/i915/vbt: don't propagate errors from intel_bios_init()
  2017-03-10 14:07   ` Chris Wilson
@ 2017-03-13 10:01     ` Jani Nikula
  0 siblings, 0 replies; 15+ messages in thread
From: Jani Nikula @ 2017-03-13 10:01 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

On Fri, 10 Mar 2017, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> On Fri, Mar 10, 2017 at 03:27:57PM +0200, Jani Nikula wrote:
>> We don't use the error return for anything other than reporting and
>> logging that there is no VBT. We can pull the logging in the function,
>> and remove the error status return. Moreover, if we needed the
>> information for something later on, we'd probably be better off storing
>> the bit in dev_priv, and using it where it's needed, instead of using
>> the error return.
>> 
>> While at it, improve the comments.
>> 
>> Cc: Manasi Navare <manasi.d.navare@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_drv.c   |  4 +---
>>  drivers/gpu/drm/i915/i915_drv.h   |  2 +-
>>  drivers/gpu/drm/i915/intel_bios.c | 31 ++++++++++++++++---------------
>>  3 files changed, 18 insertions(+), 19 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
>> index b1e9027a4f80..1af54717fa81 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.c
>> +++ b/drivers/gpu/drm/i915/i915_drv.c
>> @@ -567,9 +567,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
>>  	if (i915_inject_load_failure())
>>  		return -ENODEV;
>>  
>> -	ret = intel_bios_init(dev_priv);
>> -	if (ret)
>> -		DRM_INFO("failed to find VBIOS tables\n");
>> +	intel_bios_init(dev_priv);
>
> Sold.
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

Pushed patch 1, thanks for the review.

BR,
Jani.

-- 
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] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT
  2017-03-13  9:55     ` Jani Nikula
@ 2017-03-13 16:30       ` Manasi Navare
  2017-03-14  9:09         ` Jani Nikula
  0 siblings, 1 reply; 15+ messages in thread
From: Manasi Navare @ 2017-03-13 16:30 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Mon, Mar 13, 2017 at 11:55:31AM +0200, Jani Nikula wrote:
> On Sat, 11 Mar 2017, Manasi Navare <manasi.d.navare@intel.com> wrote:
> > On Fri, Mar 10, 2017 at 03:27:58PM +0200, Jani Nikula wrote:
> >> The main thing are the DDI ports. If there's a VBT that says there are
> >> no outputs, we should trust that, and not have semi-random
> >> defaults. Unfortunately, the defaults have resulted in some Chromebooks
> >> without VBT to rely on this behaviour, so we split out the defaults for
> >> the missing VBT case.
> >> 
> >> Cc: Manasi Navare <manasi.d.navare@intel.com>
> >> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> >> ---
> >>  drivers/gpu/drm/i915/intel_bios.c | 17 ++++++++++++++++-
> >>  1 file changed, 16 insertions(+), 1 deletion(-)
> >> 
> >> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> >> index 710988d72253..639d45c1dd2e 100644
> >> --- a/drivers/gpu/drm/i915/intel_bios.c
> >> +++ b/drivers/gpu/drm/i915/intel_bios.c
> >> @@ -1341,6 +1341,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
> >>  	return;
> >>  }
> >>  
> >> +/* Common defaults which may be overridden by VBT. */
> >>  static void
> >>  init_vbt_defaults(struct drm_i915_private *dev_priv)
> >>  {
> >> @@ -1377,6 +1378,18 @@ init_vbt_defaults(struct drm_i915_private *dev_priv)
> >>  			&dev_priv->vbt.ddi_port_info[port];
> >>  
> >>  		info->hdmi_level_shift = HDMI_LEVEL_SHIFT_UNKNOWN;
> >> +	}
> >> +}
> >> +
> >> +/* Defaults to initialize only if there is no VBT. */
> >> +static void
> >> +init_vbt_missing_defaults(struct drm_i915_private *dev_priv)
> >> +{
> >> +	enum port port;
> >> +
> >> +	for (port = PORT_A; port < I915_MAX_PORTS; port++) {
> >> +		struct ddi_vbt_port_info *info =
> >> +			&dev_priv->vbt.ddi_port_info[port];
> >>  
> >>  		info->supports_dvi = (port != PORT_A && port != PORT_E);
> >>  		info->supports_hdmi = info->supports_dvi;
> >> @@ -1516,8 +1529,10 @@ void intel_bios_init(struct drm_i915_private *dev_priv)
> >>  	parse_ddi_ports(dev_priv, bdb);
> >>  
> >>  out:
> >> -	if (!vbt)
> >> +	if (!vbt) {
> >>  		DRM_INFO("Failed to find VBIOS tables (VBT)\n");
> >> +		init_vbt_missing_defaults(dev_priv);
> >> +	}
> >
> > So in case there is no VBT, this will set supports_DP flag on Port A.
> > What is there is no VBT and there is no eDP on Port A?
> > In this case it will still try to link train on Port A and fail..?
> > I am not sure if this case exists, but just a thought looking at it.
> 
> It's possible the case exists, but the point is that the behaviour for
> the no-VBT case remains the same before and after this patch.
> 
> BR,
> Jani.
> 
>

Ok agreed. In that case Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>

Regards
Manasi

 
> > If such a case does not exist, then this will solve our problem of
> > current failures because leaving defaults on Port A. So in that case
> > it lgtm.
> >
> > Regards
> > Manasi
> >
> >
> >>  
> >>  	if (bios)
> >>  		pci_unmap_rom(pdev, bios);
> >> -- 
> >> 2.1.4
> >> 
> 
> -- 
> 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] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT
  2017-03-13 16:30       ` Manasi Navare
@ 2017-03-14  9:09         ` Jani Nikula
  2017-03-17 20:21           ` Paulo Zanoni
  0 siblings, 1 reply; 15+ messages in thread
From: Jani Nikula @ 2017-03-14  9:09 UTC (permalink / raw)
  To: Manasi Navare; +Cc: intel-gfx

On Mon, 13 Mar 2017, Manasi Navare <manasi.d.navare@intel.com> wrote:
> On Mon, Mar 13, 2017 at 11:55:31AM +0200, Jani Nikula wrote:
>> On Sat, 11 Mar 2017, Manasi Navare <manasi.d.navare@intel.com> wrote:
>> > On Fri, Mar 10, 2017 at 03:27:58PM +0200, Jani Nikula wrote:
>> >> The main thing are the DDI ports. If there's a VBT that says there are
>> >> no outputs, we should trust that, and not have semi-random
>> >> defaults. Unfortunately, the defaults have resulted in some Chromebooks
>> >> without VBT to rely on this behaviour, so we split out the defaults for
>> >> the missing VBT case.
>> >> 
>> >> Cc: Manasi Navare <manasi.d.navare@intel.com>
>> >> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> >> ---
>> >>  drivers/gpu/drm/i915/intel_bios.c | 17 ++++++++++++++++-
>> >>  1 file changed, 16 insertions(+), 1 deletion(-)
>> >> 
>> >> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
>> >> index 710988d72253..639d45c1dd2e 100644
>> >> --- a/drivers/gpu/drm/i915/intel_bios.c
>> >> +++ b/drivers/gpu/drm/i915/intel_bios.c
>> >> @@ -1341,6 +1341,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
>> >>  	return;
>> >>  }
>> >>  
>> >> +/* Common defaults which may be overridden by VBT. */
>> >>  static void
>> >>  init_vbt_defaults(struct drm_i915_private *dev_priv)
>> >>  {
>> >> @@ -1377,6 +1378,18 @@ init_vbt_defaults(struct drm_i915_private *dev_priv)
>> >>  			&dev_priv->vbt.ddi_port_info[port];
>> >>  
>> >>  		info->hdmi_level_shift = HDMI_LEVEL_SHIFT_UNKNOWN;
>> >> +	}
>> >> +}
>> >> +
>> >> +/* Defaults to initialize only if there is no VBT. */
>> >> +static void
>> >> +init_vbt_missing_defaults(struct drm_i915_private *dev_priv)
>> >> +{
>> >> +	enum port port;
>> >> +
>> >> +	for (port = PORT_A; port < I915_MAX_PORTS; port++) {
>> >> +		struct ddi_vbt_port_info *info =
>> >> +			&dev_priv->vbt.ddi_port_info[port];
>> >>  
>> >>  		info->supports_dvi = (port != PORT_A && port != PORT_E);
>> >>  		info->supports_hdmi = info->supports_dvi;
>> >> @@ -1516,8 +1529,10 @@ void intel_bios_init(struct drm_i915_private *dev_priv)
>> >>  	parse_ddi_ports(dev_priv, bdb);
>> >>  
>> >>  out:
>> >> -	if (!vbt)
>> >> +	if (!vbt) {
>> >>  		DRM_INFO("Failed to find VBIOS tables (VBT)\n");
>> >> +		init_vbt_missing_defaults(dev_priv);
>> >> +	}
>> >
>> > So in case there is no VBT, this will set supports_DP flag on Port A.
>> > What is there is no VBT and there is no eDP on Port A?
>> > In this case it will still try to link train on Port A and fail..?
>> > I am not sure if this case exists, but just a thought looking at it.
>> 
>> It's possible the case exists, but the point is that the behaviour for
>> the no-VBT case remains the same before and after this patch.
>> 
>> BR,
>> Jani.
>> 
>>
>
> Ok agreed. In that case Reviewed-by: Manasi Navare
> <manasi.d.navare@intel.com>

Pushed to drm-intel-next-queued, thanks for the review.

I really hope there are no machines out there that have a crippled VBT
with no child device config. I guess we'll find out...

BR,
Jani.


>
> Regards
> Manasi
>
>  
>> > If such a case does not exist, then this will solve our problem of
>> > current failures because leaving defaults on Port A. So in that case
>> > it lgtm.
>> >
>> > Regards
>> > Manasi
>> >
>> >
>> >>  
>> >>  	if (bios)
>> >>  		pci_unmap_rom(pdev, bios);
>> >> -- 
>> >> 2.1.4
>> >> 
>> 
>> -- 
>> 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] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT
  2017-03-14  9:09         ` Jani Nikula
@ 2017-03-17 20:21           ` Paulo Zanoni
  2017-03-20  9:38             ` Jani Nikula
  0 siblings, 1 reply; 15+ messages in thread
From: Paulo Zanoni @ 2017-03-17 20:21 UTC (permalink / raw)
  To: Jani Nikula, Manasi Navare; +Cc: intel-gfx

Em Ter, 2017-03-14 às 11:09 +0200, Jani Nikula escreveu:
> On Mon, 13 Mar 2017, Manasi Navare <manasi.d.navare@intel.com> wrote:
> > 
> > On Mon, Mar 13, 2017 at 11:55:31AM +0200, Jani Nikula wrote:
> > > 
> > > On Sat, 11 Mar 2017, Manasi Navare <manasi.d.navare@intel.com>
> > > wrote:
> > > > 
> > > > On Fri, Mar 10, 2017 at 03:27:58PM +0200, Jani Nikula wrote:
> > > > > 
> > > > > The main thing are the DDI ports. If there's a VBT that says
> > > > > there are
> > > > > no outputs, we should trust that, and not have semi-random
> > > > > defaults. Unfortunately, the defaults have resulted in some
> > > > > Chromebooks
> > > > > without VBT to rely on this behaviour, so we split out the
> > > > > defaults for
> > > > > the missing VBT case.
> > > > > 
> > > > > Cc: Manasi Navare <manasi.d.navare@intel.com>
> > > > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > > > > ---
> > > > >  drivers/gpu/drm/i915/intel_bios.c | 17 ++++++++++++++++-
> > > > >  1 file changed, 16 insertions(+), 1 deletion(-)
> > > > > 
> > > > > diff --git a/drivers/gpu/drm/i915/intel_bios.c
> > > > > b/drivers/gpu/drm/i915/intel_bios.c
> > > > > index 710988d72253..639d45c1dd2e 100644
> > > > > --- a/drivers/gpu/drm/i915/intel_bios.c
> > > > > +++ b/drivers/gpu/drm/i915/intel_bios.c
> > > > > @@ -1341,6 +1341,7 @@ parse_device_mapping(struct
> > > > > drm_i915_private *dev_priv,
> > > > >  	return;
> > > > >  }
> > > > >  
> > > > > +/* Common defaults which may be overridden by VBT. */
> > > > >  static void
> > > > >  init_vbt_defaults(struct drm_i915_private *dev_priv)
> > > > >  {
> > > > > @@ -1377,6 +1378,18 @@ init_vbt_defaults(struct
> > > > > drm_i915_private *dev_priv)
> > > > >  			&dev_priv->vbt.ddi_port_info[port];
> > > > >  
> > > > >  		info->hdmi_level_shift =
> > > > > HDMI_LEVEL_SHIFT_UNKNOWN;
> > > > > +	}
> > > > > +}
> > > > > +
> > > > > +/* Defaults to initialize only if there is no VBT. */
> > > > > +static void
> > > > > +init_vbt_missing_defaults(struct drm_i915_private *dev_priv)
> > > > > +{
> > > > > +	enum port port;
> > > > > +
> > > > > +	for (port = PORT_A; port < I915_MAX_PORTS; port++) {
> > > > > +		struct ddi_vbt_port_info *info =
> > > > > +			&dev_priv->vbt.ddi_port_info[port];
> > > > >  
> > > > >  		info->supports_dvi = (port != PORT_A && port
> > > > > != PORT_E);
> > > > >  		info->supports_hdmi = info->supports_dvi;
> > > > > @@ -1516,8 +1529,10 @@ void intel_bios_init(struct
> > > > > drm_i915_private *dev_priv)
> > > > >  	parse_ddi_ports(dev_priv, bdb);
> > > > >  
> > > > >  out:
> > > > > -	if (!vbt)
> > > > > +	if (!vbt) {
> > > > >  		DRM_INFO("Failed to find VBIOS tables
> > > > > (VBT)\n");
> > > > > +		init_vbt_missing_defaults(dev_priv);
> > > > > +	}
> > > > 
> > > > So in case there is no VBT, this will set supports_DP flag on
> > > > Port A.
> > > > What is there is no VBT and there is no eDP on Port A?
> > > > In this case it will still try to link train on Port A and
> > > > fail..?
> > > > I am not sure if this case exists, but just a thought looking
> > > > at it.
> > > 
> > > It's possible the case exists, but the point is that the
> > > behaviour for
> > > the no-VBT case remains the same before and after this patch.
> > > 
> > > BR,
> > > Jani.
> > > 
> > > 
> > 
> > Ok agreed. In that case Reviewed-by: Manasi Navare
> > <manasi.d.navare@intel.com>
> 
> Pushed to drm-intel-next-queued, thanks for the review.
> 
> I really hope there are no machines out there that have a crippled
> VBT
> with no child device config. I guess we'll find out...

I have access to this very interesting machine with DDB version 163 and
a child device size config that's 1 instead of the expected 33.

So what happens here is that since the VBT is supposed to be valid we
don't end up calling init_vbt_missing_defauilts(). We return early from
parse_device_mapping(), which means we don't set vbt.child_dev_num,
which means that parse_ddi_port() returns early. So info->supports_*
stays false, and intel_ddi_init() fails.

Given your commit message it seems that we should properly be able to
distinguish between "VBT correctly says that there's no output" and
"VBT is drunk and should go home" in order to fix this problem.

I can confirm that reverting this patch makes display great again^w^w
work again. So unfortunately I'll have to call regression on this
patch.

> 
> BR,
> Jani.
> 
> 
> > 
> > 
> > Regards
> > Manasi
> > 
> >  
> > > 
> > > > 
> > > > If such a case does not exist, then this will solve our problem
> > > > of
> > > > current failures because leaving defaults on Port A. So in that
> > > > case
> > > > it lgtm.
> > > > 
> > > > Regards
> > > > Manasi
> > > > 
> > > > 
> > > > > 
> > > > >  
> > > > >  	if (bios)
> > > > >  		pci_unmap_rom(pdev, bios);
> > > > > -- 
> > > > > 2.1.4
> > > > > 
> > > 
> > > -- 
> > > 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] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT
  2017-03-17 20:21           ` Paulo Zanoni
@ 2017-03-20  9:38             ` Jani Nikula
  2017-03-20 16:57               ` Paulo Zanoni
  0 siblings, 1 reply; 15+ messages in thread
From: Jani Nikula @ 2017-03-20  9:38 UTC (permalink / raw)
  To: Paulo Zanoni, Manasi Navare; +Cc: intel-gfx

On Fri, 17 Mar 2017, Paulo Zanoni <paulo.r.zanoni@intel.com> wrote:
> Em Ter, 2017-03-14 às 11:09 +0200, Jani Nikula escreveu:
>> On Mon, 13 Mar 2017, Manasi Navare <manasi.d.navare@intel.com> wrote:
>> > 
>> > On Mon, Mar 13, 2017 at 11:55:31AM +0200, Jani Nikula wrote:
>> > > 
>> > > On Sat, 11 Mar 2017, Manasi Navare <manasi.d.navare@intel.com>
>> > > wrote:
>> > > > 
>> > > > On Fri, Mar 10, 2017 at 03:27:58PM +0200, Jani Nikula wrote:
>> > > > > 
>> > > > > The main thing are the DDI ports. If there's a VBT that says
>> > > > > there are
>> > > > > no outputs, we should trust that, and not have semi-random
>> > > > > defaults. Unfortunately, the defaults have resulted in some
>> > > > > Chromebooks
>> > > > > without VBT to rely on this behaviour, so we split out the
>> > > > > defaults for
>> > > > > the missing VBT case.
>> > > > > 
>> > > > > Cc: Manasi Navare <manasi.d.navare@intel.com>
>> > > > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> > > > > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> > > > > ---
>> > > > >  drivers/gpu/drm/i915/intel_bios.c | 17 ++++++++++++++++-
>> > > > >  1 file changed, 16 insertions(+), 1 deletion(-)
>> > > > > 
>> > > > > diff --git a/drivers/gpu/drm/i915/intel_bios.c
>> > > > > b/drivers/gpu/drm/i915/intel_bios.c
>> > > > > index 710988d72253..639d45c1dd2e 100644
>> > > > > --- a/drivers/gpu/drm/i915/intel_bios.c
>> > > > > +++ b/drivers/gpu/drm/i915/intel_bios.c
>> > > > > @@ -1341,6 +1341,7 @@ parse_device_mapping(struct
>> > > > > drm_i915_private *dev_priv,
>> > > > >  	return;
>> > > > >  }
>> > > > >  
>> > > > > +/* Common defaults which may be overridden by VBT. */
>> > > > >  static void
>> > > > >  init_vbt_defaults(struct drm_i915_private *dev_priv)
>> > > > >  {
>> > > > > @@ -1377,6 +1378,18 @@ init_vbt_defaults(struct
>> > > > > drm_i915_private *dev_priv)
>> > > > >  			&dev_priv->vbt.ddi_port_info[port];
>> > > > >  
>> > > > >  		info->hdmi_level_shift =
>> > > > > HDMI_LEVEL_SHIFT_UNKNOWN;
>> > > > > +	}
>> > > > > +}
>> > > > > +
>> > > > > +/* Defaults to initialize only if there is no VBT. */
>> > > > > +static void
>> > > > > +init_vbt_missing_defaults(struct drm_i915_private *dev_priv)
>> > > > > +{
>> > > > > +	enum port port;
>> > > > > +
>> > > > > +	for (port = PORT_A; port < I915_MAX_PORTS; port++) {
>> > > > > +		struct ddi_vbt_port_info *info =
>> > > > > +			&dev_priv->vbt.ddi_port_info[port];
>> > > > >  
>> > > > >  		info->supports_dvi = (port != PORT_A && port
>> > > > > != PORT_E);
>> > > > >  		info->supports_hdmi = info->supports_dvi;
>> > > > > @@ -1516,8 +1529,10 @@ void intel_bios_init(struct
>> > > > > drm_i915_private *dev_priv)
>> > > > >  	parse_ddi_ports(dev_priv, bdb);
>> > > > >  
>> > > > >  out:
>> > > > > -	if (!vbt)
>> > > > > +	if (!vbt) {
>> > > > >  		DRM_INFO("Failed to find VBIOS tables
>> > > > > (VBT)\n");
>> > > > > +		init_vbt_missing_defaults(dev_priv);
>> > > > > +	}
>> > > > 
>> > > > So in case there is no VBT, this will set supports_DP flag on
>> > > > Port A.
>> > > > What is there is no VBT and there is no eDP on Port A?
>> > > > In this case it will still try to link train on Port A and
>> > > > fail..?
>> > > > I am not sure if this case exists, but just a thought looking
>> > > > at it.
>> > > 
>> > > It's possible the case exists, but the point is that the
>> > > behaviour for
>> > > the no-VBT case remains the same before and after this patch.
>> > > 
>> > > BR,
>> > > Jani.
>> > > 
>> > > 
>> > 
>> > Ok agreed. In that case Reviewed-by: Manasi Navare
>> > <manasi.d.navare@intel.com>
>> 
>> Pushed to drm-intel-next-queued, thanks for the review.
>> 
>> I really hope there are no machines out there that have a crippled
>> VBT
>> with no child device config. I guess we'll find out...
>
> I have access to this very interesting machine with DDB version 163 and
> a child device size config that's 1 instead of the expected 33.
>
> So what happens here is that since the VBT is supposed to be valid we
> don't end up calling init_vbt_missing_defauilts(). We return early from
> parse_device_mapping(), which means we don't set vbt.child_dev_num,
> which means that parse_ddi_port() returns early. So info->supports_*
> stays false, and intel_ddi_init() fails.
>
> Given your commit message it seems that we should properly be able to
> distinguish between "VBT correctly says that there's no output" and
> "VBT is drunk and should go home" in order to fix this problem.

I'm not sure it's possible to distinguish between the two. I thought
we'd be able to rely on the former. If we have to change
"init_vbt_missing_defaults" to "init_child_dev_missing_defaults", then
we'll never be able to handle the case where vbt correctly states there
are no child devices. :(

BR,
Jani.


> I can confirm that reverting this patch makes display great again^w^w
> work again. So unfortunately I'll have to call regression on this
> patch.
>
>> 
>> BR,
>> Jani.
>> 
>> 
>> > 
>> > 
>> > Regards
>> > Manasi
>> > 
>> >  
>> > > 
>> > > > 
>> > > > If such a case does not exist, then this will solve our problem
>> > > > of
>> > > > current failures because leaving defaults on Port A. So in that
>> > > > case
>> > > > it lgtm.
>> > > > 
>> > > > Regards
>> > > > Manasi
>> > > > 
>> > > > 
>> > > > > 
>> > > > >  
>> > > > >  	if (bios)
>> > > > >  		pci_unmap_rom(pdev, bios);
>> > > > > -- 
>> > > > > 2.1.4
>> > > > > 
>> > > 
>> > > -- 
>> > > 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] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT
  2017-03-20  9:38             ` Jani Nikula
@ 2017-03-20 16:57               ` Paulo Zanoni
  2017-03-20 20:47                 ` Manasi Navare
  0 siblings, 1 reply; 15+ messages in thread
From: Paulo Zanoni @ 2017-03-20 16:57 UTC (permalink / raw)
  To: Jani Nikula, Manasi Navare; +Cc: intel-gfx

Em Seg, 2017-03-20 às 11:38 +0200, Jani Nikula escreveu:
> On Fri, 17 Mar 2017, Paulo Zanoni <paulo.r.zanoni@intel.com> wrote:
> > 
> > Em Ter, 2017-03-14 às 11:09 +0200, Jani Nikula escreveu:
> > > 
> > > On Mon, 13 Mar 2017, Manasi Navare <manasi.d.navare@intel.com>
> > > wrote:
> > > > 
> > > > 
> > > > On Mon, Mar 13, 2017 at 11:55:31AM +0200, Jani Nikula wrote:
> > > > > 
> > > > > 
> > > > > On Sat, 11 Mar 2017, Manasi Navare <manasi.d.navare@intel.com
> > > > > >
> > > > > wrote:
> > > > > > 
> > > > > > 
> > > > > > On Fri, Mar 10, 2017 at 03:27:58PM +0200, Jani Nikula
> > > > > > wrote:
> > > > > > > 
> > > > > > > 
> > > > > > > The main thing are the DDI ports. If there's a VBT that
> > > > > > > says
> > > > > > > there are
> > > > > > > no outputs, we should trust that, and not have semi-
> > > > > > > random
> > > > > > > defaults. Unfortunately, the defaults have resulted in
> > > > > > > some
> > > > > > > Chromebooks
> > > > > > > without VBT to rely on this behaviour, so we split out
> > > > > > > the
> > > > > > > defaults for
> > > > > > > the missing VBT case.
> > > > > > > 
> > > > > > > Cc: Manasi Navare <manasi.d.navare@intel.com>
> > > > > > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > > > > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > > > > > > ---
> > > > > > >  drivers/gpu/drm/i915/intel_bios.c | 17 ++++++++++++++++-
> > > > > > >  1 file changed, 16 insertions(+), 1 deletion(-)
> > > > > > > 
> > > > > > > diff --git a/drivers/gpu/drm/i915/intel_bios.c
> > > > > > > b/drivers/gpu/drm/i915/intel_bios.c
> > > > > > > index 710988d72253..639d45c1dd2e 100644
> > > > > > > --- a/drivers/gpu/drm/i915/intel_bios.c
> > > > > > > +++ b/drivers/gpu/drm/i915/intel_bios.c
> > > > > > > @@ -1341,6 +1341,7 @@ parse_device_mapping(struct
> > > > > > > drm_i915_private *dev_priv,
> > > > > > >  	return;
> > > > > > >  }
> > > > > > >  
> > > > > > > +/* Common defaults which may be overridden by VBT. */
> > > > > > >  static void
> > > > > > >  init_vbt_defaults(struct drm_i915_private *dev_priv)
> > > > > > >  {
> > > > > > > @@ -1377,6 +1378,18 @@ init_vbt_defaults(struct
> > > > > > > drm_i915_private *dev_priv)
> > > > > > >  			&dev_priv-
> > > > > > > >vbt.ddi_port_info[port];
> > > > > > >  
> > > > > > >  		info->hdmi_level_shift =
> > > > > > > HDMI_LEVEL_SHIFT_UNKNOWN;
> > > > > > > +	}
> > > > > > > +}
> > > > > > > +
> > > > > > > +/* Defaults to initialize only if there is no VBT. */
> > > > > > > +static void
> > > > > > > +init_vbt_missing_defaults(struct drm_i915_private
> > > > > > > *dev_priv)
> > > > > > > +{
> > > > > > > +	enum port port;
> > > > > > > +
> > > > > > > +	for (port = PORT_A; port < I915_MAX_PORTS;
> > > > > > > port++) {
> > > > > > > +		struct ddi_vbt_port_info *info =
> > > > > > > +			&dev_priv-
> > > > > > > >vbt.ddi_port_info[port];
> > > > > > >  
> > > > > > >  		info->supports_dvi = (port != PORT_A &&
> > > > > > > port
> > > > > > > != PORT_E);
> > > > > > >  		info->supports_hdmi = info-
> > > > > > > >supports_dvi;
> > > > > > > @@ -1516,8 +1529,10 @@ void intel_bios_init(struct
> > > > > > > drm_i915_private *dev_priv)
> > > > > > >  	parse_ddi_ports(dev_priv, bdb);
> > > > > > >  
> > > > > > >  out:
> > > > > > > -	if (!vbt)
> > > > > > > +	if (!vbt) {
> > > > > > >  		DRM_INFO("Failed to find VBIOS tables
> > > > > > > (VBT)\n");
> > > > > > > +		init_vbt_missing_defaults(dev_priv);
> > > > > > > +	}
> > > > > > 
> > > > > > So in case there is no VBT, this will set supports_DP flag
> > > > > > on
> > > > > > Port A.
> > > > > > What is there is no VBT and there is no eDP on Port A?
> > > > > > In this case it will still try to link train on Port A and
> > > > > > fail..?
> > > > > > I am not sure if this case exists, but just a thought
> > > > > > looking
> > > > > > at it.
> > > > > 
> > > > > It's possible the case exists, but the point is that the
> > > > > behaviour for
> > > > > the no-VBT case remains the same before and after this patch.
> > > > > 
> > > > > BR,
> > > > > Jani.
> > > > > 
> > > > > 
> > > > 
> > > > Ok agreed. In that case Reviewed-by: Manasi Navare
> > > > <manasi.d.navare@intel.com>
> > > 
> > > Pushed to drm-intel-next-queued, thanks for the review.
> > > 
> > > I really hope there are no machines out there that have a
> > > crippled
> > > VBT
> > > with no child device config. I guess we'll find out...
> > 
> > I have access to this very interesting machine with DDB version 163
> > and
> > a child device size config that's 1 instead of the expected 33.
> > 
> > So what happens here is that since the VBT is supposed to be valid
> > we
> > don't end up calling init_vbt_missing_defauilts(). We return early
> > from
> > parse_device_mapping(), which means we don't set vbt.child_dev_num,
> > which means that parse_ddi_port() returns early. So info-
> > >supports_*
> > stays false, and intel_ddi_init() fails.
> > 
> > Given your commit message it seems that we should properly be able
> > to
> > distinguish between "VBT correctly says that there's no output" and
> > "VBT is drunk and should go home" in order to fix this problem.
> 
> I'm not sure it's possible to distinguish between the two. I thought
> we'd be able to rely on the former.

Are you sure? The code I'm hitting is that child_dev_size != expected
size, which translates to "we failed to parse the VBT". Is this exactly
what you see in the no-output machines? I would expect no-output
machines would have a VBT that actually parses correctly but
intentionally leaves you with child_device_num = 0.

Then, what we'd need to do would be to make those parse_something
functions return error codes when the VBT was malformed, so we'd be
able to differentiate between intentional child_dev_num=0 or parse
failures.


>  If we have to change
> "init_vbt_missing_defaults" to "init_child_dev_missing_defaults",
> then
> we'll never be able to handle the case where vbt correctly states
> there
> are no child devices. :(
> 
> BR,
> Jani.
> 
> 
> > 
> > I can confirm that reverting this patch makes display great
> > again^w^w
> > work again. So unfortunately I'll have to call regression on this
> > patch.
> > 
> > > 
> > > 
> > > BR,
> > > Jani.
> > > 
> > > 
> > > > 
> > > > 
> > > > 
> > > > Regards
> > > > Manasi
> > > > 
> > > >  
> > > > > 
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > If such a case does not exist, then this will solve our
> > > > > > problem
> > > > > > of
> > > > > > current failures because leaving defaults on Port A. So in
> > > > > > that
> > > > > > case
> > > > > > it lgtm.
> > > > > > 
> > > > > > Regards
> > > > > > Manasi
> > > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > >  
> > > > > > >  	if (bios)
> > > > > > >  		pci_unmap_rom(pdev, bios);
> > > > > > > -- 
> > > > > > > 2.1.4
> > > > > > > 
> > > > > 
> > > > > -- 
> > > > > 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] 15+ messages in thread

* Re: [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT
  2017-03-20 16:57               ` Paulo Zanoni
@ 2017-03-20 20:47                 ` Manasi Navare
  0 siblings, 0 replies; 15+ messages in thread
From: Manasi Navare @ 2017-03-20 20:47 UTC (permalink / raw)
  To: Paulo Zanoni; +Cc: Jani Nikula, intel-gfx

On Mon, Mar 20, 2017 at 01:57:51PM -0300, Paulo Zanoni wrote:
> Em Seg, 2017-03-20 às 11:38 +0200, Jani Nikula escreveu:
> > On Fri, 17 Mar 2017, Paulo Zanoni <paulo.r.zanoni@intel.com> wrote:
> > > 
> > > Em Ter, 2017-03-14 às 11:09 +0200, Jani Nikula escreveu:
> > > > 
> > > > On Mon, 13 Mar 2017, Manasi Navare <manasi.d.navare@intel.com>
> > > > wrote:
> > > > > 
> > > > > 
> > > > > On Mon, Mar 13, 2017 at 11:55:31AM +0200, Jani Nikula wrote:
> > > > > > 
> > > > > > 
> > > > > > On Sat, 11 Mar 2017, Manasi Navare <manasi.d.navare@intel.com
> > > > > > >
> > > > > > wrote:
> > > > > > > 
> > > > > > > 
> > > > > > > On Fri, Mar 10, 2017 at 03:27:58PM +0200, Jani Nikula
> > > > > > > wrote:
> > > > > > > > 
> > > > > > > > 
> > > > > > > > The main thing are the DDI ports. If there's a VBT that
> > > > > > > > says
> > > > > > > > there are
> > > > > > > > no outputs, we should trust that, and not have semi-
> > > > > > > > random
> > > > > > > > defaults. Unfortunately, the defaults have resulted in
> > > > > > > > some
> > > > > > > > Chromebooks
> > > > > > > > without VBT to rely on this behaviour, so we split out
> > > > > > > > the
> > > > > > > > defaults for
> > > > > > > > the missing VBT case.
> > > > > > > > 
> > > > > > > > Cc: Manasi Navare <manasi.d.navare@intel.com>
> > > > > > > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > > > > > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > > > > > > > ---
> > > > > > > >  drivers/gpu/drm/i915/intel_bios.c | 17 ++++++++++++++++-
> > > > > > > >  1 file changed, 16 insertions(+), 1 deletion(-)
> > > > > > > > 
> > > > > > > > diff --git a/drivers/gpu/drm/i915/intel_bios.c
> > > > > > > > b/drivers/gpu/drm/i915/intel_bios.c
> > > > > > > > index 710988d72253..639d45c1dd2e 100644
> > > > > > > > --- a/drivers/gpu/drm/i915/intel_bios.c
> > > > > > > > +++ b/drivers/gpu/drm/i915/intel_bios.c
> > > > > > > > @@ -1341,6 +1341,7 @@ parse_device_mapping(struct
> > > > > > > > drm_i915_private *dev_priv,
> > > > > > > >  	return;
> > > > > > > >  }
> > > > > > > >  
> > > > > > > > +/* Common defaults which may be overridden by VBT. */
> > > > > > > >  static void
> > > > > > > >  init_vbt_defaults(struct drm_i915_private *dev_priv)
> > > > > > > >  {
> > > > > > > > @@ -1377,6 +1378,18 @@ init_vbt_defaults(struct
> > > > > > > > drm_i915_private *dev_priv)
> > > > > > > >  			&dev_priv-
> > > > > > > > >vbt.ddi_port_info[port];
> > > > > > > >  
> > > > > > > >  		info->hdmi_level_shift =
> > > > > > > > HDMI_LEVEL_SHIFT_UNKNOWN;
> > > > > > > > +	}
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > +/* Defaults to initialize only if there is no VBT. */
> > > > > > > > +static void
> > > > > > > > +init_vbt_missing_defaults(struct drm_i915_private
> > > > > > > > *dev_priv)
> > > > > > > > +{
> > > > > > > > +	enum port port;
> > > > > > > > +
> > > > > > > > +	for (port = PORT_A; port < I915_MAX_PORTS;
> > > > > > > > port++) {
> > > > > > > > +		struct ddi_vbt_port_info *info =
> > > > > > > > +			&dev_priv-
> > > > > > > > >vbt.ddi_port_info[port];
> > > > > > > >  
> > > > > > > >  		info->supports_dvi = (port != PORT_A &&
> > > > > > > > port
> > > > > > > > != PORT_E);
> > > > > > > >  		info->supports_hdmi = info-
> > > > > > > > >supports_dvi;
> > > > > > > > @@ -1516,8 +1529,10 @@ void intel_bios_init(struct
> > > > > > > > drm_i915_private *dev_priv)
> > > > > > > >  	parse_ddi_ports(dev_priv, bdb);
> > > > > > > >  
> > > > > > > >  out:
> > > > > > > > -	if (!vbt)
> > > > > > > > +	if (!vbt) {
> > > > > > > >  		DRM_INFO("Failed to find VBIOS tables
> > > > > > > > (VBT)\n");
> > > > > > > > +		init_vbt_missing_defaults(dev_priv);
> > > > > > > > +	}
> > > > > > > 
> > > > > > > So in case there is no VBT, this will set supports_DP flag
> > > > > > > on
> > > > > > > Port A.
> > > > > > > What is there is no VBT and there is no eDP on Port A?
> > > > > > > In this case it will still try to link train on Port A and
> > > > > > > fail..?
> > > > > > > I am not sure if this case exists, but just a thought
> > > > > > > looking
> > > > > > > at it.
> > > > > > 
> > > > > > It's possible the case exists, but the point is that the
> > > > > > behaviour for
> > > > > > the no-VBT case remains the same before and after this patch.
> > > > > > 
> > > > > > BR,
> > > > > > Jani.
> > > > > > 
> > > > > > 
> > > > > 
> > > > > Ok agreed. In that case Reviewed-by: Manasi Navare
> > > > > <manasi.d.navare@intel.com>
> > > > 
> > > > Pushed to drm-intel-next-queued, thanks for the review.
> > > > 
> > > > I really hope there are no machines out there that have a
> > > > crippled
> > > > VBT
> > > > with no child device config. I guess we'll find out...
> > > 
> > > I have access to this very interesting machine with DDB version 163
> > > and
> > > a child device size config that's 1 instead of the expected 33.
> > > 
> > > So what happens here is that since the VBT is supposed to be valid
> > > we
> > > don't end up calling init_vbt_missing_defauilts(). We return early
> > > from
> > > parse_device_mapping(), which means we don't set vbt.child_dev_num,
> > > which means that parse_ddi_port() returns early. So info-
> > > >supports_*
> > > stays false, and intel_ddi_init() fails.
> > > 
> > > Given your commit message it seems that we should properly be able
> > > to
> > > distinguish between "VBT correctly says that there's no output" and
> > > "VBT is drunk and should go home" in order to fix this problem.
> > 
> > I'm not sure it's possible to distinguish between the two. I thought
> > we'd be able to rely on the former.
> 
> Are you sure? The code I'm hitting is that child_dev_size != expected
> size, which translates to "we failed to parse the VBT". Is this exactly
> what you see in the no-output machines? I would expect no-output
> machines would have a VBT that actually parses correctly but
> intentionally leaves you with child_device_num = 0.
> 
> Then, what we'd need to do would be to make those parse_something
> functions return error codes when the VBT was malformed, so we'd be
> able to differentiate between intentional child_dev_num=0 or parse
> failures.
> 
>

In the no-output machine cases, like the SKL desktop with on eDP on
Port A, it reports child_device_num=0 and so we should not call the
init_vbt_missing_defaults() function at all. I think we need a way to find
if the VBT was malformed/parese error.

Regards
Manasi

 
> >  If we have to change
> > "init_vbt_missing_defaults" to "init_child_dev_missing_defaults",
> > then
> > we'll never be able to handle the case where vbt correctly states
> > there
> > are no child devices. :(
> > 
> > BR,
> > Jani.
> > 
> > 
> > > 
> > > I can confirm that reverting this patch makes display great
> > > again^w^w
> > > work again. So unfortunately I'll have to call regression on this
> > > patch.
> > > 
> > > > 
> > > > 
> > > > BR,
> > > > Jani.
> > > > 
> > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Regards
> > > > > Manasi
> > > > > 
> > > > >  
> > > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > If such a case does not exist, then this will solve our
> > > > > > > problem
> > > > > > > of
> > > > > > > current failures because leaving defaults on Port A. So in
> > > > > > > that
> > > > > > > case
> > > > > > > it lgtm.
> > > > > > > 
> > > > > > > Regards
> > > > > > > Manasi
> > > > > > > 
> > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > >  
> > > > > > > >  	if (bios)
> > > > > > > >  		pci_unmap_rom(pdev, bios);
> > > > > > > > -- 
> > > > > > > > 2.1.4
> > > > > > > > 
> > > > > > 
> > > > > > -- 
> > > > > > 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] 15+ messages in thread

end of thread, other threads:[~2017-03-20 20:43 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-10 13:27 [PATCH 0/2] drm/i915/vbt: defaults handling for no VBT case Jani Nikula
2017-03-10 13:27 ` [PATCH 1/2] drm/i915/vbt: don't propagate errors from intel_bios_init() Jani Nikula
2017-03-10 14:07   ` Chris Wilson
2017-03-13 10:01     ` Jani Nikula
2017-03-10 13:27 ` [PATCH 2/2] drm/i915/vbt: split out defaults that are set when there is no VBT Jani Nikula
2017-03-10 23:57   ` Manasi Navare
2017-03-13  9:55     ` Jani Nikula
2017-03-13 16:30       ` Manasi Navare
2017-03-14  9:09         ` Jani Nikula
2017-03-17 20:21           ` Paulo Zanoni
2017-03-20  9:38             ` Jani Nikula
2017-03-20 16:57               ` Paulo Zanoni
2017-03-20 20:47                 ` Manasi Navare
2017-03-10 16:53 ` ✗ Fi.CI.BAT: failure for drm/i915/vbt: defaults handling for no VBT case Patchwork
2017-03-13  9:17 ` ✓ Fi.CI.BAT: success " 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.