public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL
@ 2016-11-16 11:29 Jani Nikula
  2016-11-16 11:29 ` [PATCH 1/3] drm/i915: make i915 the source of acpi device ids for _DOD Jani Nikula
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Jani Nikula @ 2016-11-16 11:29 UTC (permalink / raw)
  To: intel-gfx
  Cc: Jan-Marek Glogowski, Jani Nikula, Rainer Koenig, Paolo Stivanin,
	Marcos Paulo de Souza

Another spin of [1]. The pain point seems to be the CADL update based on
the list of active connectors. So I left it out for now, and instead
just hack it to ensure CADL contains the internal displays.

Let's see if this sticks. It shouldn't prevent us from fixing CADL
update properly down the line.

BR,
Jani.


[1] http://mid.mail-archive.com/cover.1472129339.git.jani.nikula@intel.com


Cc: Peter Wu <peter@lekensteyn.nl>
Cc: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
Cc: Jan-Marek Glogowski <glogow@fbihome.de>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Cc: Paolo Stivanin <paolostivanin@fastmail.fm>


Jani Nikula (3):
  drm/i915: make i915 the source of acpi device ids for _DOD
  drm/i915/opregion: fill in the CADL from connector list, not DIDL
  drm/i915/opregion: put internal panels to the front of CADL

 drivers/gpu/drm/i915/intel_drv.h      |   3 +
 drivers/gpu/drm/i915/intel_opregion.c | 152 +++++++++++++---------------------
 2 files changed, 61 insertions(+), 94 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] 10+ messages in thread

* [PATCH 1/3] drm/i915: make i915 the source of acpi device ids for _DOD
  2016-11-16 11:29 [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL Jani Nikula
@ 2016-11-16 11:29 ` Jani Nikula
  2016-11-16 11:29 ` [PATCH 2/3] drm/i915/opregion: fill in the CADL from connector list, not DIDL Jani Nikula
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2016-11-16 11:29 UTC (permalink / raw)
  To: intel-gfx
  Cc: Jan-Marek Glogowski, Jani Nikula, Rainer Koenig, Paolo Stivanin,
	Marcos Paulo de Souza

The graphics driver is supposed to define the DIDL, which are used for
_DOD, not the BIOS. Restore that behaviour.

This is basically a revert of

commit 3143751ff51a163b77f7efd389043e038f3e008e
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Mon Mar 29 15:12:16 2010 +0800

    drm/i915: set DIDL using the ACPI video output device _ADR method return.

which went out of its way to cater to a specific BIOS, setting up DIDL
based on _ADR method. Perhaps that approach worked on that specific
machine, but on the machines I checked the _ADR method invents the
device identifiers out of thin air if DIDL has not been set. The source
for _ADR is also supposed to be the DIDL set by the driver, not the
other way around.

With this, we'll also limit the number of outputs to what the driver
actually has.

v2: do not set ACPI_DEVICE_ID_SCHEME in the device id (Peter Wu)

v3: Rebase

Cc: Peter Wu <peter@lekensteyn.nl>
Cc: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
Cc: Jan-Marek Glogowski <glogow@fbihome.de>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Cc: Paolo Stivanin <paolostivanin@fastmail.fm>
Tested-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Reviewed-and-tested-by: Peter Wu <peter@lekensteyn.nl>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_drv.h      |  3 ++
 drivers/gpu/drm/i915/intel_opregion.c | 88 ++++++++++-------------------------
 2 files changed, 27 insertions(+), 64 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 0be407e50d61..5b93455b98b7 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -294,6 +294,9 @@ struct intel_connector {
 	 */
 	struct intel_encoder *encoder;
 
+	/* ACPI device id for ACPI and driver cooperation */
+	u32 acpi_device_id;
+
 	/* Reads out the current hw, returning true if the connector is enabled
 	 * and active (i.e. dpms ON state). */
 	bool (*get_hw_state)(struct intel_connector *);
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
index 7acbbbf97833..6bac71c26e94 100644
--- a/drivers/gpu/drm/i915/intel_opregion.c
+++ b/drivers/gpu/drm/i915/intel_opregion.c
@@ -674,11 +674,11 @@ static void set_did(struct intel_opregion *opregion, int i, u32 val)
 	}
 }
 
-static u32 acpi_display_type(struct drm_connector *connector)
+static u32 acpi_display_type(struct intel_connector *connector)
 {
 	u32 display_type;
 
-	switch (connector->connector_type) {
+	switch (connector->base.connector_type) {
 	case DRM_MODE_CONNECTOR_VGA:
 	case DRM_MODE_CONNECTOR_DVIA:
 		display_type = ACPI_DISPLAY_TYPE_VGA;
@@ -707,7 +707,7 @@ static u32 acpi_display_type(struct drm_connector *connector)
 		display_type = ACPI_DISPLAY_TYPE_OTHER;
 		break;
 	default:
-		MISSING_CASE(connector->connector_type);
+		MISSING_CASE(connector->base.connector_type);
 		display_type = ACPI_DISPLAY_TYPE_OTHER;
 		break;
 	}
@@ -718,34 +718,9 @@ static u32 acpi_display_type(struct drm_connector *connector)
 static void intel_didl_outputs(struct drm_i915_private *dev_priv)
 {
 	struct intel_opregion *opregion = &dev_priv->opregion;
-	struct pci_dev *pdev = dev_priv->drm.pdev;
-	struct drm_connector *connector;
-	acpi_handle handle;
-	struct acpi_device *acpi_dev, *acpi_cdev, *acpi_video_bus = NULL;
-	unsigned long long device_id;
-	acpi_status status;
-	u32 temp, max_outputs;
-	int i = 0;
-
-	handle = ACPI_HANDLE(&pdev->dev);
-	if (!handle || acpi_bus_get_device(handle, &acpi_dev))
-		return;
-
-	if (acpi_is_video_device(handle))
-		acpi_video_bus = acpi_dev;
-	else {
-		list_for_each_entry(acpi_cdev, &acpi_dev->children, node) {
-			if (acpi_is_video_device(acpi_cdev->handle)) {
-				acpi_video_bus = acpi_cdev;
-				break;
-			}
-		}
-	}
-
-	if (!acpi_video_bus) {
-		DRM_DEBUG_KMS("No ACPI video bus found\n");
-		return;
-	}
+	struct intel_connector *connector;
+	int i = 0, max_outputs;
+	int display_index[16] = {};
 
 	/*
 	 * In theory, did2, the extended didl, gets added at opregion version
@@ -757,46 +732,31 @@ static void intel_didl_outputs(struct drm_i915_private *dev_priv)
 	max_outputs = ARRAY_SIZE(opregion->acpi->didl) +
 		ARRAY_SIZE(opregion->acpi->did2);
 
-	list_for_each_entry(acpi_cdev, &acpi_video_bus->children, node) {
-		if (i >= max_outputs) {
-			DRM_DEBUG_KMS("More than %u outputs detected via ACPI\n",
-				      max_outputs);
-			return;
-		}
-		status = acpi_evaluate_integer(acpi_cdev->handle, "_ADR",
-					       NULL, &device_id);
-		if (ACPI_SUCCESS(status)) {
-			if (!device_id)
-				goto blind_set;
-			set_did(opregion, i++, (u32)(device_id & 0x0f0f));
-		}
+	for_each_intel_connector(&dev_priv->drm, connector) {
+		u32 device_id, type;
+
+		device_id = acpi_display_type(connector);
+
+		/* Use display type specific display index. */
+		type = (device_id & ACPI_DISPLAY_TYPE_MASK)
+			>> ACPI_DISPLAY_TYPE_SHIFT;
+		device_id |= display_index[type]++ << ACPI_DISPLAY_INDEX_SHIFT;
+
+		connector->acpi_device_id = device_id;
+		if (i < max_outputs)
+			set_did(opregion, i, device_id);
+		i++;
 	}
 
-end:
 	DRM_DEBUG_KMS("%d outputs detected\n", i);
 
+	if (i > max_outputs)
+		DRM_ERROR("More than %d outputs in connector list\n",
+			  max_outputs);
+
 	/* If fewer than max outputs, the list must be null terminated */
 	if (i < max_outputs)
 		set_did(opregion, i, 0);
-	return;
-
-blind_set:
-	i = 0;
-	list_for_each_entry(connector,
-			    &dev_priv->drm.mode_config.connector_list, head) {
-		int display_type = acpi_display_type(connector);
-
-		if (i >= max_outputs) {
-			DRM_DEBUG_KMS("More than %u outputs in connector list\n",
-				      max_outputs);
-			return;
-		}
-
-		temp = get_did(opregion, i);
-		set_did(opregion, i, temp | (1 << 31) | display_type | i);
-		i++;
-	}
-	goto end;
 }
 
 static void intel_setup_cadls(struct drm_i915_private *dev_priv)
-- 
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] 10+ messages in thread

* [PATCH 2/3] drm/i915/opregion: fill in the CADL from connector list, not DIDL
  2016-11-16 11:29 [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL Jani Nikula
  2016-11-16 11:29 ` [PATCH 1/3] drm/i915: make i915 the source of acpi device ids for _DOD Jani Nikula
@ 2016-11-16 11:29 ` Jani Nikula
  2016-11-16 11:29 ` [PATCH 3/3] drm/i915/opregion: put internal panels to the front of CADL Jani Nikula
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2016-11-16 11:29 UTC (permalink / raw)
  To: intel-gfx
  Cc: Jan-Marek Glogowski, Jani Nikula, Rainer Koenig, Paolo Stivanin,
	Marcos Paulo de Souza

This is essentially the same thing as duplicating DIDL now that the
connector list has the ACPI device IDs.

Cc: Peter Wu <peter@lekensteyn.nl>
Cc: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
Cc: Jan-Marek Glogowski <glogow@fbihome.de>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Cc: Paolo Stivanin <paolostivanin@fastmail.fm>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_opregion.c | 48 +++++++++++++----------------------
 1 file changed, 18 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
index 6bac71c26e94..024ae9b393e7 100644
--- a/drivers/gpu/drm/i915/intel_opregion.c
+++ b/drivers/gpu/drm/i915/intel_opregion.c
@@ -642,24 +642,6 @@ static struct notifier_block intel_opregion_notifier = {
  * (version 3)
  */
 
-static u32 get_did(struct intel_opregion *opregion, int i)
-{
-	u32 did;
-
-	if (i < ARRAY_SIZE(opregion->acpi->didl)) {
-		did = opregion->acpi->didl[i];
-	} else {
-		i -= ARRAY_SIZE(opregion->acpi->didl);
-
-		if (WARN_ON(i >= ARRAY_SIZE(opregion->acpi->did2)))
-			return 0;
-
-		did = opregion->acpi->did2[i];
-	}
-
-	return did;
-}
-
 static void set_did(struct intel_opregion *opregion, int i, u32 val)
 {
 	if (i < ARRAY_SIZE(opregion->acpi->didl)) {
@@ -762,19 +744,25 @@ static void intel_didl_outputs(struct drm_i915_private *dev_priv)
 static void intel_setup_cadls(struct drm_i915_private *dev_priv)
 {
 	struct intel_opregion *opregion = &dev_priv->opregion;
+	struct intel_connector *connector;
 	int i = 0;
-	u32 disp_id;
-
-	/* Initialize the CADL field by duplicating the DIDL values.
-	 * Technically, this is not always correct as display outputs may exist,
-	 * but not active. This initialization is necessary for some Clevo
-	 * laptops that check this field before processing the brightness and
-	 * display switching hotkeys. Just like DIDL, CADL is NULL-terminated if
-	 * there are less than eight devices. */
-	do {
-		disp_id = get_did(opregion, i);
-		opregion->acpi->cadl[i] = disp_id;
-	} while (++i < 8 && disp_id != 0);
+
+	/*
+	 * Initialize the CADL field from the connector device ids. This is
+	 * essentially the same as copying from the DIDL. Technically, this is
+	 * not always correct as display outputs may exist, but not active. This
+	 * initialization is necessary for some Clevo laptops that check this
+	 * field before processing the brightness and display switching hotkeys.
+	 */
+	for_each_intel_connector(&dev_priv->drm, connector) {
+		if (i >= ARRAY_SIZE(opregion->acpi->cadl))
+			break;
+		opregion->acpi->cadl[i++] = connector->acpi_device_id;
+	}
+
+	/* If fewer than 8 active devices, the list must be null terminated */
+	if (i < ARRAY_SIZE(opregion->acpi->cadl))
+		opregion->acpi->cadl[i] = 0;
 }
 
 void intel_opregion_register(struct drm_i915_private *dev_priv)
-- 
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] 10+ messages in thread

* [PATCH 3/3] drm/i915/opregion: put internal panels to the front of CADL
  2016-11-16 11:29 [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL Jani Nikula
  2016-11-16 11:29 ` [PATCH 1/3] drm/i915: make i915 the source of acpi device ids for _DOD Jani Nikula
  2016-11-16 11:29 ` [PATCH 2/3] drm/i915/opregion: fill in the CADL from connector list, not DIDL Jani Nikula
@ 2016-11-16 11:29 ` Jani Nikula
  2016-11-16 12:46 ` ✗ Fi.CI.BAT: failure for drm/i915/opregion: proper handling of DIDL, and some hacks on CADL Patchwork
  2016-11-17  9:24 ` [PATCH 0/3] " Rainer Koenig
  4 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2016-11-16 11:29 UTC (permalink / raw)
  To: intel-gfx
  Cc: Jan-Marek Glogowski, Jani Nikula, Rainer Koenig, Paolo Stivanin,
	Marcos Paulo de Souza

The attempts to update CADL based on the actual active connectors have
not been successful. That is the right thing to do ultimately, but there
must be something we're still missing.

In the mean time, change the dumb CADL initialization we currently have
to put internal panels in front of the CADL to ensure they're included
in the list. (There's a max of eight.) Hopefully this ensures the BIOS
does not block backlight hotkey events, thinking the internal panel is
off.

Cc: Peter Wu <peter@lekensteyn.nl>
Cc: Rainer Koenig <Rainer.Koenig@ts.fujitsu.com>
Cc: Jan-Marek Glogowski <glogow@fbihome.de>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Cc: Paolo Stivanin <paolostivanin@fastmail.fm>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_opregion.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
index 024ae9b393e7..cb58194973ae 100644
--- a/drivers/gpu/drm/i915/intel_opregion.c
+++ b/drivers/gpu/drm/i915/intel_opregion.c
@@ -753,8 +753,24 @@ static void intel_setup_cadls(struct drm_i915_private *dev_priv)
 	 * not always correct as display outputs may exist, but not active. This
 	 * initialization is necessary for some Clevo laptops that check this
 	 * field before processing the brightness and display switching hotkeys.
+	 * Put internal panels in front of the list to ensure they're not left
+	 * out.
 	 */
 	for_each_intel_connector(&dev_priv->drm, connector) {
+		if ((connector->acpi_device_id & ACPI_DISPLAY_TYPE_MASK) !=
+		    ACPI_DISPLAY_TYPE_INTERNAL_DIGITAL)
+			continue;
+
+		if (i >= ARRAY_SIZE(opregion->acpi->cadl))
+			break;
+		opregion->acpi->cadl[i++] = connector->acpi_device_id;
+	}
+
+	for_each_intel_connector(&dev_priv->drm, connector) {
+		if ((connector->acpi_device_id & ACPI_DISPLAY_TYPE_MASK) ==
+		    ACPI_DISPLAY_TYPE_INTERNAL_DIGITAL)
+			continue;
+
 		if (i >= ARRAY_SIZE(opregion->acpi->cadl))
 			break;
 		opregion->acpi->cadl[i++] = connector->acpi_device_id;
-- 
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] 10+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915/opregion: proper handling of DIDL, and some hacks on CADL
  2016-11-16 11:29 [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL Jani Nikula
                   ` (2 preceding siblings ...)
  2016-11-16 11:29 ` [PATCH 3/3] drm/i915/opregion: put internal panels to the front of CADL Jani Nikula
@ 2016-11-16 12:46 ` Patchwork
  2016-11-17  9:24 ` [PATCH 0/3] " Rainer Koenig
  4 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2016-11-16 12:46 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/opregion: proper handling of DIDL, and some hacks on CADL
URL   : https://patchwork.freedesktop.org/series/15403/
State : failure

== Summary ==

Series 15403v1 drm/i915/opregion: proper handling of DIDL, and some hacks on CADL
https://patchwork.freedesktop.org/api/1.0/series/15403/revisions/1/mbox/

Test gem_busy:
        Subgroup basic-hang-default:
                pass       -> FAIL       (fi-hsw-4770r)

fi-bdw-5557u     total:244  pass:229  dwarn:0   dfail:0   fail:0   skip:15 
fi-bsw-n3050     total:244  pass:204  dwarn:0   dfail:0   fail:0   skip:40 
fi-byt-j1900     total:244  pass:216  dwarn:0   dfail:0   fail:0   skip:28 
fi-byt-n2820     total:244  pass:212  dwarn:0   dfail:0   fail:0   skip:32 
fi-hsw-4770      total:244  pass:224  dwarn:0   dfail:0   fail:0   skip:20 
fi-hsw-4770r     total:244  pass:223  dwarn:0   dfail:0   fail:1   skip:20 
fi-ilk-650       total:244  pass:191  dwarn:0   dfail:0   fail:0   skip:53 
fi-ivb-3520m     total:244  pass:222  dwarn:0   dfail:0   fail:0   skip:22 
fi-ivb-3770      total:244  pass:222  dwarn:0   dfail:0   fail:0   skip:22 
fi-kbl-7200u     total:244  pass:222  dwarn:0   dfail:0   fail:0   skip:22 
fi-skl-6260u     total:244  pass:230  dwarn:0   dfail:0   fail:0   skip:14 
fi-skl-6700hq    total:244  pass:223  dwarn:0   dfail:0   fail:0   skip:21 
fi-skl-6700k     total:244  pass:222  dwarn:1   dfail:0   fail:0   skip:21 
fi-skl-6770hq    total:244  pass:230  dwarn:0   dfail:0   fail:0   skip:14 
fi-snb-2520m     total:244  pass:212  dwarn:0   dfail:0   fail:0   skip:32 
fi-snb-2600      total:244  pass:211  dwarn:0   dfail:0   fail:0   skip:33 

6294f67611ebe69006c0e85c372efadcac8e9d66 drm-intel-nightly: 2016y-11m-16d-09h-57m-25s UTC integration manifest
1c5b376 drm/i915/opregion: put internal panels to the front of CADL
d8c1b3b drm/i915/opregion: fill in the CADL from connector list, not DIDL
c095ca7 drm/i915: make i915 the source of acpi device ids for _DOD

== Logs ==

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

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

* Re: [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL
  2016-11-16 11:29 [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL Jani Nikula
                   ` (3 preceding siblings ...)
  2016-11-16 12:46 ` ✗ Fi.CI.BAT: failure for drm/i915/opregion: proper handling of DIDL, and some hacks on CADL Patchwork
@ 2016-11-17  9:24 ` Rainer Koenig
  2016-11-17 11:01   ` Jani Nikula
  4 siblings, 1 reply; 10+ messages in thread
From: Rainer Koenig @ 2016-11-17  9:24 UTC (permalink / raw)
  To: Jani Nikula, intel-gfx
  Cc: Jan-Marek Glogowski, Paolo Stivanin, Marcos Paulo de Souza

Hi Jani,

applied those patches to the 4.9.0-rc4 from
http://anongit.freedesktop.org/git/drm-intel.git
and tested it on the Fujitsu LIFEBOOK E736.

Works perfectly, even after suspend and resume.

Adding my hopes that this will be merged into the mainline soon.

Best regards and thanks a lot
Rainer

Am 16.11.2016 um 12:29 schrieb Jani Nikula:
> Another spin of [1]. The pain point seems to be the CADL update based on
> the list of active connectors. So I left it out for now, and instead
> just hack it to ensure CADL contains the internal displays.
> 
> Let's see if this sticks. It shouldn't prevent us from fixing CADL
> update properly down the line.
> 
> BR,
> Jani.
> 
> 
> [1] http://mid.mail-archive.com/cover.1472129339.git.jani.nikula@intel.com
> 
> Jani Nikula (3):
>   drm/i915: make i915 the source of acpi device ids for _DOD
>   drm/i915/opregion: fill in the CADL from connector list, not DIDL
>   drm/i915/opregion: put internal panels to the front of CADL
> 
>  drivers/gpu/drm/i915/intel_drv.h      |   3 +
>  drivers/gpu/drm/i915/intel_opregion.c | 152 +++++++++++++---------------------
>  2 files changed, 61 insertions(+), 94 deletions(-)
> 


-- 
Dipl.-Inf. (FH) Rainer Koenig
Project Manager Linux Clients
FJ EMEIA PR PSO PM&D CCD ENG SW OSS&C

Fujitsu Technology Solutions
Bürgermeister-Ullrich-Str. 100
86199 Augsburg
Germany

Telephone: +49-821-804-3321
Telefax:   +49-821-804-2131
Mail:      mailto:Rainer.Koenig@ts.fujitsu.com

Internet         ts.fujtsu.com
Company Details  ts.fujitsu.com/imprint.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL
  2016-11-17  9:24 ` [PATCH 0/3] " Rainer Koenig
@ 2016-11-17 11:01   ` Jani Nikula
  2016-11-17 18:43     ` Paolo Stivanin
  0 siblings, 1 reply; 10+ messages in thread
From: Jani Nikula @ 2016-11-17 11:01 UTC (permalink / raw)
  To: Rainer Koenig, intel-gfx
  Cc: Daniel Vetter, Jan-Marek Glogowski, Paolo Stivanin,
	Marcos Paulo de Souza

On Thu, 17 Nov 2016, Rainer Koenig <Rainer.Koenig@ts.fujitsu.com> wrote:
> Hi Jani,
>
> applied those patches to the 4.9.0-rc4 from
> http://anongit.freedesktop.org/git/drm-intel.git
> and tested it on the Fujitsu LIFEBOOK E736.
>
> Works perfectly, even after suspend and resume.
>
> Adding my hopes that this will be merged into the mainline soon.

Pushed patches 1-2 to drm-intel-next-queued, with Daniel's review on
patch 2. He observed that patch 3 should not be needed, as we already
sort the connector list to have internal panels in front.

I presume this will make it to v4.10-rc1. I'm thinking we could do a
stable backport request once this has had more exposure.

Thanks for the review and testing. And patience!

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

* Re: [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL
  2016-11-17 11:01   ` Jani Nikula
@ 2016-11-17 18:43     ` Paolo Stivanin
  2016-11-18  8:27       ` Jani Nikula
  0 siblings, 1 reply; 10+ messages in thread
From: Paolo Stivanin @ 2016-11-17 18:43 UTC (permalink / raw)
  To: Jani Nikula, Rainer Koenig, intel-gfx
  Cc: Jan-Marek Glogowski, Marcos Paulo de Souza, Daniel Vetter

Hello,
I can confirm that patch 3 is not needed.
I applied only patch 1 and 2 and everything works super fine!

Thanks again!

BR

Paolo

-- 
  Paolo Stivanin
  paolostivanin@fastmail.fm
  Public Key ID: E71B7545

On Thu, Nov 17, 2016, at 12:01 PM, Jani Nikula wrote:
> On Thu, 17 Nov 2016, Rainer Koenig <Rainer.Koenig@ts.fujitsu.com> wrote:
> > Hi Jani,
> >
> > applied those patches to the 4.9.0-rc4 from
> > http://anongit.freedesktop.org/git/drm-intel.git
> > and tested it on the Fujitsu LIFEBOOK E736.
> >
> > Works perfectly, even after suspend and resume.
> >
> > Adding my hopes that this will be merged into the mainline soon.
> 
> Pushed patches 1-2 to drm-intel-next-queued, with Daniel's review on
> patch 2. He observed that patch 3 should not be needed, as we already
> sort the connector list to have internal panels in front.
> 
> I presume this will make it to v4.10-rc1. I'm thinking we could do a
> stable backport request once this has had more exposure.
> 
> Thanks for the review and testing. And patience!
> 
> 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] 10+ messages in thread

* Re: [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL
  2016-11-17 18:43     ` Paolo Stivanin
@ 2016-11-18  8:27       ` Jani Nikula
  2016-11-21  9:17         ` Peter Wu
  0 siblings, 1 reply; 10+ messages in thread
From: Jani Nikula @ 2016-11-18  8:27 UTC (permalink / raw)
  To: Paolo Stivanin, Rainer Koenig, intel-gfx
  Cc: Jan-Marek Glogowski, Marcos Paulo de Souza, Daniel Vetter

On Thu, 17 Nov 2016, Paolo Stivanin <paolostivanin@fastmail.fm> wrote:
> Hello,
> I can confirm that patch 3 is not needed.
> I applied only patch 1 and 2 and everything works super fine!

Thanks for confirming this.

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

* Re: [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL
  2016-11-18  8:27       ` Jani Nikula
@ 2016-11-21  9:17         ` Peter Wu
  0 siblings, 0 replies; 10+ messages in thread
From: Peter Wu @ 2016-11-21  9:17 UTC (permalink / raw)
  To: Jani Nikula, Paolo Stivanin, Rainer Koenig, intel-gfx
  Cc: Jan-Marek Glogowski, Marcos Paulo de Souza, Daniel Vetter

Hi Jani,

I can also confirm that patches 1+2 (applied in top of v4.9-rc5ish) fixes it for me (Clevo P651RA).
The previous issue where the keys broke with PRIME/monitor hotplugging is also gone.
After system suspend/resume stuff is also still working.

Thanks!

Kind regards,
Peter
https://lekensteyn.nl
(pardon my brevity, top-posting and formatting, sent from my phone)


On 18 November 2016 09:27:07 CET, Jani Nikula <jani.nikula@intel.com> wrote:
>On Thu, 17 Nov 2016, Paolo Stivanin <paolostivanin@fastmail.fm> wrote:
>> Hello,
>> I can confirm that patch 3 is not needed.
>> I applied only patch 1 and 2 and everything works super fine!
>
>Thanks for confirming this.
>
>BR,
>Jani.

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

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

end of thread, other threads:[~2016-11-21  9:38 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-16 11:29 [PATCH 0/3] drm/i915/opregion: proper handling of DIDL, and some hacks on CADL Jani Nikula
2016-11-16 11:29 ` [PATCH 1/3] drm/i915: make i915 the source of acpi device ids for _DOD Jani Nikula
2016-11-16 11:29 ` [PATCH 2/3] drm/i915/opregion: fill in the CADL from connector list, not DIDL Jani Nikula
2016-11-16 11:29 ` [PATCH 3/3] drm/i915/opregion: put internal panels to the front of CADL Jani Nikula
2016-11-16 12:46 ` ✗ Fi.CI.BAT: failure for drm/i915/opregion: proper handling of DIDL, and some hacks on CADL Patchwork
2016-11-17  9:24 ` [PATCH 0/3] " Rainer Koenig
2016-11-17 11:01   ` Jani Nikula
2016-11-17 18:43     ` Paolo Stivanin
2016-11-18  8:27       ` Jani Nikula
2016-11-21  9:17         ` Peter Wu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox