* [Intel-gfx] [PATCH v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
@ 2021-05-20 6:58 ` Kai-Heng Feng
0 siblings, 0 replies; 15+ messages in thread
From: Kai-Heng Feng @ 2021-05-20 6:58 UTC (permalink / raw)
To: jani.nikula, joonas.lahtinen, rodrigo.vivi, ville.syrjala
Cc: Thomas Zimmermann, David Airlie, intel-gfx, Lucas De Marchi,
open list, open list:DRM DRIVERS, Chris Wilson, Takashi Iwai,
Kai-Heng Feng
On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
to discrete GFX after S3. This is not desirable, because userspace will
treat connected display as a new one, losing display settings.
The expected behavior is to let discrete GFX drives all external
displays.
The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
The method is inside the another _DSM, so add the _DSM and call it
accordingly.
I also tested some MUX-less and iGPU only laptops with that _DSM, no
regression was found.
v4:
- Rebase.
- Change the DSM name to avoid confusion.
- Move the function call to intel_opregion.
v3:
- Remove BXT from names.
- Change the parameter type.
- Fold the function into intel_modeset_init_hw().
v2:
- Forward declare struct pci_dev.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
3 files changed, 25 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
index 833d0c1be4f1..7cfe91fc05f2 100644
--- a/drivers/gpu/drm/i915/display/intel_acpi.c
+++ b/drivers/gpu/drm/i915/display/intel_acpi.c
@@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
+#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
+
+static const guid_t intel_dsm_guid2 =
+ GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
+ 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
+
static char *intel_dsm_port_name(u8 id)
{
switch (id) {
@@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
{
}
+void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
+{
+ struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
+ acpi_handle dhandle;
+
+ dhandle = ACPI_HANDLE(&pdev->dev);
+ if (!dhandle)
+ return;
+
+ acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
+ INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
+}
+
/*
* ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
* Attached to the Display Adapter).
diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
index e8b068661d22..9f197401c313 100644
--- a/drivers/gpu/drm/i915/display/intel_acpi.h
+++ b/drivers/gpu/drm/i915/display/intel_acpi.h
@@ -11,11 +11,14 @@ struct drm_i915_private;
#ifdef CONFIG_ACPI
void intel_register_dsm_handler(void);
void intel_unregister_dsm_handler(void);
+void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
void intel_acpi_device_id_update(struct drm_i915_private *i915);
#else
static inline void intel_register_dsm_handler(void) { return; }
static inline void intel_unregister_dsm_handler(void) { return; }
static inline
+void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
+static inline
void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
#endif /* CONFIG_ACPI */
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index dfd724e506b5..3855fba70980 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
opregion->asle->ardy = ASLE_ARDY_READY;
}
+ /* Some platforms abuse the _DSM to enable MUX */
+ intel_dsm_get_bios_data_funcs_supported(i915);
+
intel_opregion_notify_adapter(i915, PCI_D0);
}
--
2.31.1
_______________________________________________
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 v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
@ 2021-05-20 6:58 ` Kai-Heng Feng
0 siblings, 0 replies; 15+ messages in thread
From: Kai-Heng Feng @ 2021-05-20 6:58 UTC (permalink / raw)
To: jani.nikula, joonas.lahtinen, rodrigo.vivi, ville.syrjala
Cc: Thomas Zimmermann, David Airlie, intel-gfx, Lucas De Marchi,
open list, open list:DRM DRIVERS, Chris Wilson, Kai-Heng Feng
On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
to discrete GFX after S3. This is not desirable, because userspace will
treat connected display as a new one, losing display settings.
The expected behavior is to let discrete GFX drives all external
displays.
The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
The method is inside the another _DSM, so add the _DSM and call it
accordingly.
I also tested some MUX-less and iGPU only laptops with that _DSM, no
regression was found.
v4:
- Rebase.
- Change the DSM name to avoid confusion.
- Move the function call to intel_opregion.
v3:
- Remove BXT from names.
- Change the parameter type.
- Fold the function into intel_modeset_init_hw().
v2:
- Forward declare struct pci_dev.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
3 files changed, 25 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
index 833d0c1be4f1..7cfe91fc05f2 100644
--- a/drivers/gpu/drm/i915/display/intel_acpi.c
+++ b/drivers/gpu/drm/i915/display/intel_acpi.c
@@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
+#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
+
+static const guid_t intel_dsm_guid2 =
+ GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
+ 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
+
static char *intel_dsm_port_name(u8 id)
{
switch (id) {
@@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
{
}
+void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
+{
+ struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
+ acpi_handle dhandle;
+
+ dhandle = ACPI_HANDLE(&pdev->dev);
+ if (!dhandle)
+ return;
+
+ acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
+ INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
+}
+
/*
* ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
* Attached to the Display Adapter).
diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
index e8b068661d22..9f197401c313 100644
--- a/drivers/gpu/drm/i915/display/intel_acpi.h
+++ b/drivers/gpu/drm/i915/display/intel_acpi.h
@@ -11,11 +11,14 @@ struct drm_i915_private;
#ifdef CONFIG_ACPI
void intel_register_dsm_handler(void);
void intel_unregister_dsm_handler(void);
+void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
void intel_acpi_device_id_update(struct drm_i915_private *i915);
#else
static inline void intel_register_dsm_handler(void) { return; }
static inline void intel_unregister_dsm_handler(void) { return; }
static inline
+void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
+static inline
void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
#endif /* CONFIG_ACPI */
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index dfd724e506b5..3855fba70980 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
opregion->asle->ardy = ASLE_ARDY_READY;
}
+ /* Some platforms abuse the _DSM to enable MUX */
+ intel_dsm_get_bios_data_funcs_supported(i915);
+
intel_opregion_notify_adapter(i915, PCI_D0);
}
--
2.31.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops (rev2)
2021-05-20 6:58 ` Kai-Heng Feng
(?)
(?)
@ 2021-05-20 7:08 ` Patchwork
-1 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2021-05-20 7:08 UTC (permalink / raw)
To: Kai-Heng Feng; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops (rev2)
URL : https://patchwork.freedesktop.org/series/89503/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
dcae1309b1dc drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
-:35: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#35:
References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
total: 0 errors, 1 warnings, 0 checks, 54 lines checked
_______________________________________________
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
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops (rev2)
2021-05-20 6:58 ` Kai-Heng Feng
` (2 preceding siblings ...)
(?)
@ 2021-05-20 7:38 ` Patchwork
-1 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2021-05-20 7:38 UTC (permalink / raw)
To: Kai-Heng Feng; +Cc: intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 8339 bytes --]
== Series Details ==
Series: drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops (rev2)
URL : https://patchwork.freedesktop.org/series/89503/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_10109 -> Patchwork_20156
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/index.html
Known issues
------------
Here are the changes found in Patchwork_20156 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@amdgpu/amd_cs_nop@sync-fork-compute0:
- fi-snb-2600: NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-snb-2600/igt@amdgpu/amd_cs_nop@sync-fork-compute0.html
* igt@core_hotunplug@unbind-rebind:
- fi-bdw-5557u: NOTRUN -> [WARN][2] ([i915#2283])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-bdw-5557u/igt@core_hotunplug@unbind-rebind.html
* igt@gem_huc_copy@huc-copy:
- fi-skl-6700k2: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#2190])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-skl-6700k2/igt@gem_huc_copy@huc-copy.html
* igt@i915_selftest@live@execlists:
- fi-skl-6700k2: NOTRUN -> [DMESG-FAIL][4] ([i915#3462])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-skl-6700k2/igt@i915_selftest@live@execlists.html
- fi-bdw-5557u: NOTRUN -> [DMESG-FAIL][5] ([i915#3462])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-bdw-5557u/igt@i915_selftest@live@execlists.html
* igt@kms_chamelium@dp-crc-fast:
- fi-bdw-5557u: NOTRUN -> [SKIP][6] ([fdo#109271] / [fdo#111827]) +8 similar issues
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-bdw-5557u/igt@kms_chamelium@dp-crc-fast.html
* igt@kms_chamelium@dp-hpd-fast:
- fi-skl-6700k2: NOTRUN -> [SKIP][7] ([fdo#109271]) +11 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-skl-6700k2/igt@kms_chamelium@dp-hpd-fast.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- fi-skl-6700k2: NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#533])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-skl-6700k2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html
* igt@kms_psr@cursor_plane_move:
- fi-bdw-5557u: NOTRUN -> [SKIP][9] ([fdo#109271]) +9 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-bdw-5557u/igt@kms_psr@cursor_plane_move.html
* igt@runner@aborted:
- fi-skl-6700k2: NOTRUN -> [FAIL][10] ([i915#1436] / [i915#3363])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-skl-6700k2/igt@runner@aborted.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3:
- fi-skl-6700k2: [INCOMPLETE][11] ([i915#198]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-skl-6700k2/igt@gem_exec_suspend@basic-s3.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-skl-6700k2/igt@gem_exec_suspend@basic-s3.html
* igt@i915_selftest@live@hangcheck:
- fi-snb-2600: [INCOMPLETE][13] ([i915#2782]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
#### Warnings ####
* igt@i915_selftest@live@execlists:
- fi-bsw-nick: [DMESG-FAIL][15] ([i915#3462]) -> [INCOMPLETE][16] ([i915#2782] / [i915#2940] / [i915#3462])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-bsw-nick/igt@i915_selftest@live@execlists.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-bsw-nick/igt@i915_selftest@live@execlists.html
- fi-bsw-kefka: [INCOMPLETE][17] ([i915#2782] / [i915#2940]) -> [INCOMPLETE][18] ([i915#2782] / [i915#2940] / [i915#3462])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-bsw-kefka/igt@i915_selftest@live@execlists.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-bsw-kefka/igt@i915_selftest@live@execlists.html
* igt@runner@aborted:
- fi-cfl-8700k: [FAIL][19] ([i915#3363]) -> [FAIL][20] ([i915#2426] / [i915#3363])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-cfl-8700k/igt@runner@aborted.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-cfl-8700k/igt@runner@aborted.html
- fi-glk-dsi: [FAIL][21] ([i915#3363] / [k.org#202321]) -> [FAIL][22] ([i915#2426] / [i915#3363] / [k.org#202321])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-glk-dsi/igt@runner@aborted.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-glk-dsi/igt@runner@aborted.html
- fi-kbl-r: [FAIL][23] ([i915#1436] / [i915#3363]) -> [FAIL][24] ([i915#1436] / [i915#2426] / [i915#3363])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-kbl-r/igt@runner@aborted.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-kbl-r/igt@runner@aborted.html
- fi-bdw-5557u: [FAIL][25] ([i915#1602] / [i915#2029]) -> [FAIL][26] ([i915#3462])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-bdw-5557u/igt@runner@aborted.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-bdw-5557u/igt@runner@aborted.html
- fi-kbl-guc: [FAIL][27] ([i915#1436] / [i915#2426] / [i915#3363]) -> [FAIL][28] ([i915#1436] / [i915#3363])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-kbl-guc/igt@runner@aborted.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-kbl-guc/igt@runner@aborted.html
- fi-cml-u2: [FAIL][29] ([i915#2082] / [i915#2426] / [i915#3363]) -> [FAIL][30] ([i915#3363])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/fi-cml-u2/igt@runner@aborted.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/fi-cml-u2/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
[i915#2029]: https://gitlab.freedesktop.org/drm/intel/issues/2029
[i915#2082]: https://gitlab.freedesktop.org/drm/intel/issues/2082
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
[i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
[i915#2782]: https://gitlab.freedesktop.org/drm/intel/issues/2782
[i915#2932]: https://gitlab.freedesktop.org/drm/intel/issues/2932
[i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
[i915#2966]: https://gitlab.freedesktop.org/drm/intel/issues/2966
[i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363
[i915#3462]: https://gitlab.freedesktop.org/drm/intel/issues/3462
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321
Participating hosts (42 -> 39)
------------------------------
Missing (3): fi-bsw-cyan fi-bdw-samus fi-hsw-4200u
Build changes
-------------
* Linux: CI_DRM_10109 -> Patchwork_20156
CI-20190529: 20190529
CI_DRM_10109: 7ee73e534e052450019c587e0640632d9a6cdb1b @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_6088: 2c1e9a30f17944d75640a43d3b8c2124b035de1c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_20156: dcae1309b1dc645b71eaebfc10f95a72fcd3a954 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
dcae1309b1dc drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/index.html
[-- Attachment #1.2: Type: text/html, Size: 11459 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
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
* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops (rev2)
2021-05-20 6:58 ` Kai-Heng Feng
` (3 preceding siblings ...)
(?)
@ 2021-05-21 12:16 ` Patchwork
-1 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2021-05-21 12:16 UTC (permalink / raw)
To: Kai-Heng Feng; +Cc: intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 30299 bytes --]
== Series Details ==
Series: drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops (rev2)
URL : https://patchwork.freedesktop.org/series/89503/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_10109_full -> Patchwork_20156_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_20156_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_create@create-massive:
- shard-skl: NOTRUN -> [DMESG-WARN][1] ([i915#3002])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl1/igt@gem_create@create-massive.html
* igt@gem_ctx_persistence@clone:
- shard-snb: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#1099]) +2 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-snb7/igt@gem_ctx_persistence@clone.html
* igt@gem_eio@unwedge-stress:
- shard-snb: NOTRUN -> [FAIL][3] ([i915#3354])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-snb7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [PASS][4] -> [FAIL][5] ([i915#2846])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-glk2/igt@gem_exec_fair@basic-deadline.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-glk8/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-pace@bcs0:
- shard-tglb: [PASS][6] -> [FAIL][7] ([i915#2842]) +1 similar issue
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-tglb7/igt@gem_exec_fair@basic-pace@bcs0.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb5/igt@gem_exec_fair@basic-pace@bcs0.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-glk: [PASS][8] -> [FAIL][9] ([i915#2842])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-glk4/igt@gem_exec_fair@basic-pace@rcs0.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-glk6/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_exec_params@rsvd2-dirt:
- shard-tglb: NOTRUN -> [SKIP][10] ([fdo#109283])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@gem_exec_params@rsvd2-dirt.html
* igt@gem_exec_reloc@basic-wide-active@rcs0:
- shard-snb: NOTRUN -> [FAIL][11] ([i915#2389]) +2 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-snb5/igt@gem_exec_reloc@basic-wide-active@rcs0.html
- shard-kbl: NOTRUN -> [FAIL][12] ([i915#2389]) +4 similar issues
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl3/igt@gem_exec_reloc@basic-wide-active@rcs0.html
* igt@gem_exec_reloc@basic-wide-active@vcs1:
- shard-iclb: NOTRUN -> [FAIL][13] ([i915#2389])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@gem_exec_reloc@basic-wide-active@vcs1.html
* igt@gem_exec_whisper@basic-contexts-all:
- shard-glk: [PASS][14] -> [DMESG-WARN][15] ([i915#118] / [i915#95])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-glk5/igt@gem_exec_whisper@basic-contexts-all.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-glk7/igt@gem_exec_whisper@basic-contexts-all.html
* igt@gem_mmap_gtt@cpuset-basic-small-copy:
- shard-kbl: NOTRUN -> [INCOMPLETE][16] ([i915#3468])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl3/igt@gem_mmap_gtt@cpuset-basic-small-copy.html
* igt@gem_mmap_gtt@cpuset-basic-small-copy-odd:
- shard-iclb: [PASS][17] -> [INCOMPLETE][18] ([i915#2910] / [i915#3468])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-iclb3/igt@gem_mmap_gtt@cpuset-basic-small-copy-odd.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb2/igt@gem_mmap_gtt@cpuset-basic-small-copy-odd.html
- shard-skl: [PASS][19] -> [INCOMPLETE][20] ([i915#198] / [i915#2910] / [i915#3468])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl7/igt@gem_mmap_gtt@cpuset-basic-small-copy-odd.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl8/igt@gem_mmap_gtt@cpuset-basic-small-copy-odd.html
* igt@gem_mmap_gtt@cpuset-basic-small-copy-xy:
- shard-tglb: [PASS][21] -> [INCOMPLETE][22] ([i915#3468])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-tglb5/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb3/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html
* igt@gem_mmap_gtt@fault-concurrent-x:
- shard-apl: NOTRUN -> [INCOMPLETE][23] ([i915#3468])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl7/igt@gem_mmap_gtt@fault-concurrent-x.html
* igt@gem_mmap_gtt@fault-concurrent-y:
- shard-snb: NOTRUN -> [INCOMPLETE][24] ([i915#3468])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-snb5/igt@gem_mmap_gtt@fault-concurrent-y.html
* igt@gem_userptr_blits@create-destroy-unsync:
- shard-tglb: NOTRUN -> [SKIP][25] ([i915#3297])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@gem_userptr_blits@create-destroy-unsync.html
* igt@gem_userptr_blits@vma-merge:
- shard-snb: NOTRUN -> [FAIL][26] ([i915#2724])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-snb5/igt@gem_userptr_blits@vma-merge.html
* igt@gen7_exec_parse@oacontrol-tracking:
- shard-tglb: NOTRUN -> [SKIP][27] ([fdo#109289])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@gen7_exec_parse@oacontrol-tracking.html
* igt@gen9_exec_parse@batch-invalid-length:
- shard-snb: NOTRUN -> [SKIP][28] ([fdo#109271]) +366 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-snb5/igt@gen9_exec_parse@batch-invalid-length.html
* igt@gen9_exec_parse@secure-batches:
- shard-iclb: NOTRUN -> [SKIP][29] ([fdo#112306])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@gen9_exec_parse@secure-batches.html
* igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
- shard-kbl: NOTRUN -> [SKIP][30] ([fdo#109271] / [i915#1937])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl4/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: NOTRUN -> [WARN][31] ([i915#2684])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@i915_pm_rc6_residency@rc6-fence.html
* igt@i915_pm_rpm@modeset-non-lpsp:
- shard-tglb: NOTRUN -> [SKIP][32] ([fdo#111644] / [i915#1397] / [i915#2411])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@i915_pm_rpm@modeset-non-lpsp.html
* igt@i915_pm_rpm@modeset-pc8-residency-stress:
- shard-iclb: NOTRUN -> [SKIP][33] ([fdo#109293] / [fdo#109506])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@i915_pm_rpm@modeset-pc8-residency-stress.html
* igt@i915_pm_sseu@full-enable:
- shard-iclb: NOTRUN -> [SKIP][34] ([fdo#109288])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@i915_pm_sseu@full-enable.html
* igt@i915_query@query-topology-known-pci-ids:
- shard-tglb: NOTRUN -> [SKIP][35] ([fdo#109303])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@i915_query@query-topology-known-pci-ids.html
* igt@i915_selftest@live@execlists:
- shard-apl: NOTRUN -> [DMESG-FAIL][36] ([i915#3462])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl6/igt@i915_selftest@live@execlists.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
- shard-tglb: NOTRUN -> [SKIP][37] ([fdo#111615])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
* igt@kms_big_joiner@invalid-modeset:
- shard-kbl: NOTRUN -> [SKIP][38] ([fdo#109271] / [i915#2705])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl4/igt@kms_big_joiner@invalid-modeset.html
* igt@kms_ccs@pipe-d-ccs-on-another-bo:
- shard-iclb: NOTRUN -> [SKIP][39] ([fdo#109278]) +5 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@kms_ccs@pipe-d-ccs-on-another-bo.html
* igt@kms_chamelium@dp-edid-change-during-suspend:
- shard-apl: NOTRUN -> [SKIP][40] ([fdo#109271] / [fdo#111827]) +11 similar issues
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl6/igt@kms_chamelium@dp-edid-change-during-suspend.html
* igt@kms_chamelium@dp-hpd-enable-disable-mode:
- shard-tglb: NOTRUN -> [SKIP][41] ([fdo#109284] / [fdo#111827]) +3 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@kms_chamelium@dp-hpd-enable-disable-mode.html
* igt@kms_chamelium@hdmi-audio-edid:
- shard-kbl: NOTRUN -> [SKIP][42] ([fdo#109271] / [fdo#111827]) +12 similar issues
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl3/igt@kms_chamelium@hdmi-audio-edid.html
* igt@kms_color_chamelium@pipe-d-ctm-red-to-blue:
- shard-skl: NOTRUN -> [SKIP][43] ([fdo#109271] / [fdo#111827]) +4 similar issues
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl6/igt@kms_color_chamelium@pipe-d-ctm-red-to-blue.html
- shard-iclb: NOTRUN -> [SKIP][44] ([fdo#109278] / [fdo#109284] / [fdo#111827])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@kms_color_chamelium@pipe-d-ctm-red-to-blue.html
* igt@kms_color_chamelium@pipe-invalid-ctm-matrix-sizes:
- shard-snb: NOTRUN -> [SKIP][45] ([fdo#109271] / [fdo#111827]) +23 similar issues
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-snb7/igt@kms_color_chamelium@pipe-invalid-ctm-matrix-sizes.html
* igt@kms_content_protection@atomic:
- shard-apl: NOTRUN -> [TIMEOUT][46] ([i915#1319])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl7/igt@kms_content_protection@atomic.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-iclb: NOTRUN -> [SKIP][47] ([i915#3116])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_content_protection@lic:
- shard-tglb: NOTRUN -> [SKIP][48] ([fdo#111828])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@kms_content_protection@lic.html
* igt@kms_content_protection@uevent:
- shard-apl: NOTRUN -> [FAIL][49] ([i915#2105])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl6/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-skl: [PASS][50] -> [INCOMPLETE][51] ([i915#146] / [i915#2828] / [i915#300])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl4/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl6/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
* igt@kms_cursor_crc@pipe-b-cursor-32x10-random:
- shard-kbl: NOTRUN -> [SKIP][52] ([fdo#109271]) +151 similar issues
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl7/igt@kms_cursor_crc@pipe-b-cursor-32x10-random.html
* igt@kms_cursor_crc@pipe-c-cursor-128x42-offscreen:
- shard-skl: [PASS][53] -> [FAIL][54] ([i915#3444])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl6/igt@kms_cursor_crc@pipe-c-cursor-128x42-offscreen.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl2/igt@kms_cursor_crc@pipe-c-cursor-128x42-offscreen.html
* igt@kms_cursor_crc@pipe-c-cursor-32x32-onscreen:
- shard-tglb: NOTRUN -> [SKIP][55] ([i915#3319]) +1 similar issue
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@kms_cursor_crc@pipe-c-cursor-32x32-onscreen.html
* igt@kms_cursor_crc@pipe-c-cursor-suspend:
- shard-kbl: [PASS][56] -> [DMESG-WARN][57] ([i915#180]) +2 similar issues
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-kbl2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl4/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
* igt@kms_cursor_crc@pipe-d-cursor-32x10-random:
- shard-tglb: NOTRUN -> [SKIP][58] ([i915#3359])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@kms_cursor_crc@pipe-d-cursor-32x10-random.html
* igt@kms_cursor_crc@pipe-d-cursor-512x512-rapid-movement:
- shard-tglb: NOTRUN -> [SKIP][59] ([fdo#109279] / [i915#3359]) +1 similar issue
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@kms_cursor_crc@pipe-d-cursor-512x512-rapid-movement.html
* igt@kms_cursor_legacy@pipe-d-torture-bo:
- shard-kbl: NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#533]) +1 similar issue
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl2/igt@kms_cursor_legacy@pipe-d-torture-bo.html
- shard-apl: NOTRUN -> [SKIP][61] ([fdo#109271] / [i915#533]) +1 similar issue
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl6/igt@kms_cursor_legacy@pipe-d-torture-bo.html
* igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium:
- shard-skl: NOTRUN -> [SKIP][62] ([fdo#109271] / [i915#2065])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl8/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_flip@2x-flip-vs-fences-interruptible:
- shard-tglb: NOTRUN -> [SKIP][63] ([fdo#111825]) +7 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@kms_flip@2x-flip-vs-fences-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs:
- shard-kbl: NOTRUN -> [SKIP][64] ([fdo#109271] / [i915#2672]) +1 similar issue
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs:
- shard-apl: NOTRUN -> [SKIP][65] ([fdo#109271] / [i915#2672])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs.html
* igt@kms_flip_tiling@flip-changes-tiling-yf@edp-1-pipe-c:
- shard-skl: [PASS][66] -> [FAIL][67] ([i915#699])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl4/igt@kms_flip_tiling@flip-changes-tiling-yf@edp-1-pipe-c.html
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl5/igt@kms_flip_tiling@flip-changes-tiling-yf@edp-1-pipe-c.html
* igt@kms_frontbuffer_tracking@fbc-suspend:
- shard-kbl: NOTRUN -> [DMESG-WARN][68] ([i915#180])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl4/igt@kms_frontbuffer_tracking@fbc-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render:
- shard-iclb: NOTRUN -> [SKIP][69] ([fdo#109280]) +2 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-cpu:
- shard-skl: NOTRUN -> [SKIP][70] ([fdo#109271]) +58 similar issues
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-cpu.html
* igt@kms_hdr@bpc-switch:
- shard-skl: [PASS][71] -> [FAIL][72] ([i915#1188])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl3/igt@kms_hdr@bpc-switch.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl9/igt@kms_hdr@bpc-switch.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- shard-skl: NOTRUN -> [SKIP][73] ([fdo#109271] / [i915#533])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl6/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html
* igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
- shard-apl: NOTRUN -> [FAIL][74] ([fdo#108145] / [i915#265])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl6/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
* igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
- shard-kbl: NOTRUN -> [FAIL][75] ([fdo#108145] / [i915#265]) +3 similar issues
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl4/igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb.html
* igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
- shard-skl: NOTRUN -> [FAIL][76] ([fdo#108145] / [i915#265])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl8/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [PASS][77] -> [FAIL][78] ([fdo#108145] / [i915#265])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl10/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping:
- shard-kbl: NOTRUN -> [SKIP][79] ([fdo#109271] / [i915#2733])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl7/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping.html
* igt@kms_psr2_sf@cursor-plane-update-sf:
- shard-tglb: NOTRUN -> [SKIP][80] ([i915#2920])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@kms_psr2_sf@cursor-plane-update-sf.html
* igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1:
- shard-kbl: NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#658]) +2 similar issues
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl3/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-1.html
* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5:
- shard-skl: NOTRUN -> [SKIP][82] ([fdo#109271] / [i915#658])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl6/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5.html
- shard-iclb: NOTRUN -> [SKIP][83] ([i915#658])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5.html
* igt@kms_psr2_sf@plane-move-sf-dmg-area-3:
- shard-apl: NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#658])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl7/igt@kms_psr2_sf@plane-move-sf-dmg-area-3.html
* igt@kms_psr@psr2_sprite_mmap_cpu:
- shard-iclb: NOTRUN -> [SKIP][85] ([fdo#109441])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@kms_psr@psr2_sprite_mmap_cpu.html
* igt@kms_tv_load_detect@load-detect:
- shard-iclb: NOTRUN -> [SKIP][86] ([fdo#109309])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@kms_tv_load_detect@load-detect.html
* igt@kms_vblank@pipe-d-ts-continuation-idle:
- shard-apl: NOTRUN -> [SKIP][87] ([fdo#109271]) +110 similar issues
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl7/igt@kms_vblank@pipe-d-ts-continuation-idle.html
* igt@kms_writeback@writeback-check-output:
- shard-kbl: NOTRUN -> [SKIP][88] ([fdo#109271] / [i915#2437])
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl7/igt@kms_writeback@writeback-check-output.html
* igt@kms_writeback@writeback-fb-id:
- shard-apl: NOTRUN -> [SKIP][89] ([fdo#109271] / [i915#2437])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl6/igt@kms_writeback@writeback-fb-id.html
* igt@nouveau_crc@pipe-b-source-outp-complete:
- shard-tglb: NOTRUN -> [SKIP][90] ([i915#2530])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@nouveau_crc@pipe-b-source-outp-complete.html
* igt@perf@polling-small-buf:
- shard-skl: [PASS][91] -> [FAIL][92] ([i915#1722])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl1/igt@perf@polling-small-buf.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl3/igt@perf@polling-small-buf.html
* igt@prime_nv_api@nv_i915_import_twice_check_flink_name:
- shard-tglb: NOTRUN -> [SKIP][93] ([fdo#109291]) +1 similar issue
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@prime_nv_api@nv_i915_import_twice_check_flink_name.html
* igt@prime_nv_pcopy@test_semaphore:
- shard-iclb: NOTRUN -> [SKIP][94] ([fdo#109291])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@prime_nv_pcopy@test_semaphore.html
* igt@sysfs_clients@recycle-many:
- shard-apl: NOTRUN -> [SKIP][95] ([fdo#109271] / [i915#2994]) +1 similar issue
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-apl6/igt@sysfs_clients@recycle-many.html
* igt@sysfs_clients@sema-10:
- shard-kbl: NOTRUN -> [SKIP][96] ([fdo#109271] / [i915#2994]) +2 similar issues
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl4/igt@sysfs_clients@sema-10.html
#### Possible fixes ####
* igt@gem_create@create-clear:
- shard-glk: [FAIL][97] ([i915#1888] / [i915#3160]) -> [PASS][98]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-glk4/igt@gem_create@create-clear.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-glk8/igt@gem_create@create-clear.html
* igt@gem_ctx_ringsize@active@bcs0:
- shard-skl: [INCOMPLETE][99] ([i915#3316]) -> [PASS][100]
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl2/igt@gem_ctx_ringsize@active@bcs0.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl9/igt@gem_ctx_ringsize@active@bcs0.html
* igt@gem_eio@in-flight-contexts-10ms:
- shard-tglb: [TIMEOUT][101] ([i915#3063]) -> [PASS][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-tglb8/igt@gem_eio@in-flight-contexts-10ms.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb1/igt@gem_eio@in-flight-contexts-10ms.html
* igt@gem_exec_fair@basic-flow@rcs0:
- shard-tglb: [FAIL][103] ([i915#2842]) -> [PASS][104] +1 similar issue
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-tglb7/igt@gem_exec_fair@basic-flow@rcs0.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb7/igt@gem_exec_fair@basic-flow@rcs0.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-iclb: [FAIL][105] ([i915#2842]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-iclb5/igt@gem_exec_fair@basic-none-share@rcs0.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb2/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_mmap_gtt@big-copy-xy:
- shard-glk: [FAIL][107] ([i915#307]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-glk5/igt@gem_mmap_gtt@big-copy-xy.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-glk2/igt@gem_mmap_gtt@big-copy-xy.html
* igt@gem_mmap_gtt@cpuset-basic-small-copy:
- shard-iclb: [INCOMPLETE][109] ([i915#3468]) -> [PASS][110]
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-iclb6/igt@gem_mmap_gtt@cpuset-basic-small-copy.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb1/igt@gem_mmap_gtt@cpuset-basic-small-copy.html
- shard-skl: [INCOMPLETE][111] ([i915#198] / [i915#3468]) -> [PASS][112]
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl10/igt@gem_mmap_gtt@cpuset-basic-small-copy.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl6/igt@gem_mmap_gtt@cpuset-basic-small-copy.html
* igt@gem_mmap_gtt@cpuset-basic-small-copy-odd:
- shard-tglb: [INCOMPLETE][113] ([i915#2910] / [i915#3468]) -> [PASS][114]
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-tglb8/igt@gem_mmap_gtt@cpuset-basic-small-copy-odd.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb8/igt@gem_mmap_gtt@cpuset-basic-small-copy-odd.html
* igt@gem_mmap_gtt@cpuset-basic-small-copy-xy:
- shard-kbl: [INCOMPLETE][115] ([i915#3468]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-kbl2/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl7/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html
* igt@gem_mmap_gtt@cpuset-medium-copy-odd:
- shard-iclb: [FAIL][117] ([i915#2428]) -> [PASS][118]
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-iclb6/igt@gem_mmap_gtt@cpuset-medium-copy-odd.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb3/igt@gem_mmap_gtt@cpuset-medium-copy-odd.html
* igt@kms_cursor_crc@pipe-c-cursor-128x42-onscreen:
- shard-skl: [FAIL][119] ([i915#3444]) -> [PASS][120]
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl9/igt@kms_cursor_crc@pipe-c-cursor-128x42-onscreen.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl3/igt@kms_cursor_crc@pipe-c-cursor-128x42-onscreen.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-kbl: [INCOMPLETE][121] ([i915#155] / [i915#180] / [i915#636]) -> [PASS][122]
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl3/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-skl: [FAIL][123] ([i915#79]) -> [PASS][124] +1 similar issue
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl9/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl3/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-kbl: [DMESG-WARN][125] ([i915#180]) -> [PASS][126] +5 similar issues
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-kbl2/igt@kms_hdr@bpc-switch-suspend.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-kbl4/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_psr2_su@page_flip:
- shard-iclb: [SKIP][127] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][128]
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-iclb6/igt@kms_psr2_su@page_flip.html
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb2/igt@kms_psr2_su@page_flip.html
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [SKIP][129] ([fdo#109441]) -> [PASS][130] +1 similar issue
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-iclb5/igt@kms_psr@psr2_primary_mmap_cpu.html
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
* igt@kms_vblank@pipe-b-ts-continuation-suspend:
- shard-skl: [INCOMPLETE][131] ([i915#198] / [i915#2828]) -> [PASS][132]
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl2/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl8/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
* igt@perf@polling:
- shard-skl: [FAIL][133] ([i915#1542]) -> [PASS][134]
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-skl4/igt@perf@polling.html
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-skl6/igt@perf@polling.html
#### Warnings ####
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-iclb: [FAIL][135] ([i915#2842]) -> [FAIL][136] ([i915#2849])
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-iclb6/igt@gem_exec_fair@basic-throttle@rcs0.html
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@i915_selftest@live@execlists:
- shard-tglb: [INCOMPLETE][137] ([i915#3462]) -> [DMESG-FAIL][138] ([i915#3462])
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-tglb8/igt@i915_selftest@live@execlists.html
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/shard-tglb1/igt@i915_selftest@live@execlists.html
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2:
- shard-iclb: [SKIP][139] ([i915#658]) -> [SKIP][140] ([i915#2920])
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10109/shard-iclb5/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2.html
[140]: https://intel-gfx-ci.01.org/tree
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20156/index.html
[-- Attachment #1.2: Type: text/html, Size: 33732 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
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 v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
2021-05-20 6:58 ` Kai-Heng Feng
(?)
@ 2021-06-04 15:57 ` Kai-Heng Feng
-1 siblings, 0 replies; 15+ messages in thread
From: Kai-Heng Feng @ 2021-06-04 15:57 UTC (permalink / raw)
To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: David Airlie, Daniel Vetter, Takashi Iwai, Chris Wilson,
Lucas De Marchi, Thomas Zimmermann, intel-gfx,
open list:DRM DRIVERS, open list
On Thu, May 20, 2021 at 2:58 PM Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
>
> On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
> to discrete GFX after S3. This is not desirable, because userspace will
> treat connected display as a new one, losing display settings.
>
> The expected behavior is to let discrete GFX drives all external
> displays.
>
> The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
> The method is inside the another _DSM, so add the _DSM and call it
> accordingly.
>
> I also tested some MUX-less and iGPU only laptops with that _DSM, no
> regression was found.
>
> v4:
> - Rebase.
> - Change the DSM name to avoid confusion.
> - Move the function call to intel_opregion.
>
> v3:
> - Remove BXT from names.
> - Change the parameter type.
> - Fold the function into intel_modeset_init_hw().
>
> v2:
> - Forward declare struct pci_dev.
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
> References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
A gentle ping...
> ---
> drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
> drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
> 3 files changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
> index 833d0c1be4f1..7cfe91fc05f2 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.c
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.c
> @@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
> GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
> 0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
>
> +#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
> +
> +static const guid_t intel_dsm_guid2 =
> + GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
> + 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
> +
> static char *intel_dsm_port_name(u8 id)
> {
> switch (id) {
> @@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
> {
> }
>
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
> +{
> + struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> + acpi_handle dhandle;
> +
> + dhandle = ACPI_HANDLE(&pdev->dev);
> + if (!dhandle)
> + return;
> +
> + acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
> + INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
> +}
> +
> /*
> * ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
> * Attached to the Display Adapter).
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
> index e8b068661d22..9f197401c313 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.h
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.h
> @@ -11,11 +11,14 @@ struct drm_i915_private;
> #ifdef CONFIG_ACPI
> void intel_register_dsm_handler(void);
> void intel_unregister_dsm_handler(void);
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
> void intel_acpi_device_id_update(struct drm_i915_private *i915);
> #else
> static inline void intel_register_dsm_handler(void) { return; }
> static inline void intel_unregister_dsm_handler(void) { return; }
> static inline
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
> +static inline
> void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
> #endif /* CONFIG_ACPI */
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index dfd724e506b5..3855fba70980 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
> opregion->asle->ardy = ASLE_ARDY_READY;
> }
>
> + /* Some platforms abuse the _DSM to enable MUX */
> + intel_dsm_get_bios_data_funcs_supported(i915);
> +
> intel_opregion_notify_adapter(i915, PCI_D0);
> }
>
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Intel-gfx] [PATCH v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
@ 2021-06-04 15:57 ` Kai-Heng Feng
0 siblings, 0 replies; 15+ messages in thread
From: Kai-Heng Feng @ 2021-06-04 15:57 UTC (permalink / raw)
To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: David Airlie, intel-gfx, Lucas De Marchi, open list,
open list:DRM DRIVERS, Chris Wilson, Takashi Iwai,
Thomas Zimmermann
On Thu, May 20, 2021 at 2:58 PM Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
>
> On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
> to discrete GFX after S3. This is not desirable, because userspace will
> treat connected display as a new one, losing display settings.
>
> The expected behavior is to let discrete GFX drives all external
> displays.
>
> The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
> The method is inside the another _DSM, so add the _DSM and call it
> accordingly.
>
> I also tested some MUX-less and iGPU only laptops with that _DSM, no
> regression was found.
>
> v4:
> - Rebase.
> - Change the DSM name to avoid confusion.
> - Move the function call to intel_opregion.
>
> v3:
> - Remove BXT from names.
> - Change the parameter type.
> - Fold the function into intel_modeset_init_hw().
>
> v2:
> - Forward declare struct pci_dev.
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
> References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
A gentle ping...
> ---
> drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
> drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
> 3 files changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
> index 833d0c1be4f1..7cfe91fc05f2 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.c
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.c
> @@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
> GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
> 0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
>
> +#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
> +
> +static const guid_t intel_dsm_guid2 =
> + GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
> + 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
> +
> static char *intel_dsm_port_name(u8 id)
> {
> switch (id) {
> @@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
> {
> }
>
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
> +{
> + struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> + acpi_handle dhandle;
> +
> + dhandle = ACPI_HANDLE(&pdev->dev);
> + if (!dhandle)
> + return;
> +
> + acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
> + INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
> +}
> +
> /*
> * ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
> * Attached to the Display Adapter).
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
> index e8b068661d22..9f197401c313 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.h
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.h
> @@ -11,11 +11,14 @@ struct drm_i915_private;
> #ifdef CONFIG_ACPI
> void intel_register_dsm_handler(void);
> void intel_unregister_dsm_handler(void);
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
> void intel_acpi_device_id_update(struct drm_i915_private *i915);
> #else
> static inline void intel_register_dsm_handler(void) { return; }
> static inline void intel_unregister_dsm_handler(void) { return; }
> static inline
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
> +static inline
> void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
> #endif /* CONFIG_ACPI */
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index dfd724e506b5..3855fba70980 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
> opregion->asle->ardy = ASLE_ARDY_READY;
> }
>
> + /* Some platforms abuse the _DSM to enable MUX */
> + intel_dsm_get_bios_data_funcs_supported(i915);
> +
> intel_opregion_notify_adapter(i915, PCI_D0);
> }
>
> --
> 2.31.1
>
_______________________________________________
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 v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
@ 2021-06-04 15:57 ` Kai-Heng Feng
0 siblings, 0 replies; 15+ messages in thread
From: Kai-Heng Feng @ 2021-06-04 15:57 UTC (permalink / raw)
To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: David Airlie, intel-gfx, Lucas De Marchi, open list,
open list:DRM DRIVERS, Chris Wilson, Thomas Zimmermann
On Thu, May 20, 2021 at 2:58 PM Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
>
> On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
> to discrete GFX after S3. This is not desirable, because userspace will
> treat connected display as a new one, losing display settings.
>
> The expected behavior is to let discrete GFX drives all external
> displays.
>
> The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
> The method is inside the another _DSM, so add the _DSM and call it
> accordingly.
>
> I also tested some MUX-less and iGPU only laptops with that _DSM, no
> regression was found.
>
> v4:
> - Rebase.
> - Change the DSM name to avoid confusion.
> - Move the function call to intel_opregion.
>
> v3:
> - Remove BXT from names.
> - Change the parameter type.
> - Fold the function into intel_modeset_init_hw().
>
> v2:
> - Forward declare struct pci_dev.
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
> References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
A gentle ping...
> ---
> drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
> drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
> 3 files changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
> index 833d0c1be4f1..7cfe91fc05f2 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.c
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.c
> @@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
> GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
> 0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
>
> +#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
> +
> +static const guid_t intel_dsm_guid2 =
> + GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
> + 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
> +
> static char *intel_dsm_port_name(u8 id)
> {
> switch (id) {
> @@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
> {
> }
>
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
> +{
> + struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> + acpi_handle dhandle;
> +
> + dhandle = ACPI_HANDLE(&pdev->dev);
> + if (!dhandle)
> + return;
> +
> + acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
> + INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
> +}
> +
> /*
> * ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
> * Attached to the Display Adapter).
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
> index e8b068661d22..9f197401c313 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.h
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.h
> @@ -11,11 +11,14 @@ struct drm_i915_private;
> #ifdef CONFIG_ACPI
> void intel_register_dsm_handler(void);
> void intel_unregister_dsm_handler(void);
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
> void intel_acpi_device_id_update(struct drm_i915_private *i915);
> #else
> static inline void intel_register_dsm_handler(void) { return; }
> static inline void intel_unregister_dsm_handler(void) { return; }
> static inline
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
> +static inline
> void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
> #endif /* CONFIG_ACPI */
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index dfd724e506b5..3855fba70980 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
> opregion->asle->ardy = ASLE_ARDY_READY;
> }
>
> + /* Some platforms abuse the _DSM to enable MUX */
> + intel_dsm_get_bios_data_funcs_supported(i915);
> +
> intel_opregion_notify_adapter(i915, PCI_D0);
> }
>
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
2021-06-04 15:57 ` Kai-Heng Feng
(?)
@ 2021-06-15 7:01 ` Kai-Heng Feng
-1 siblings, 0 replies; 15+ messages in thread
From: Kai-Heng Feng @ 2021-06-15 7:01 UTC (permalink / raw)
To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: David Airlie, Daniel Vetter, Takashi Iwai, Chris Wilson,
Lucas De Marchi, Thomas Zimmermann, intel-gfx,
open list:DRM DRIVERS, open list
On Fri, Jun 4, 2021 at 11:57 PM Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
>
> On Thu, May 20, 2021 at 2:58 PM Kai-Heng Feng
> <kai.heng.feng@canonical.com> wrote:
> >
> > On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
> > to discrete GFX after S3. This is not desirable, because userspace will
> > treat connected display as a new one, losing display settings.
> >
> > The expected behavior is to let discrete GFX drives all external
> > displays.
> >
> > The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
> > The method is inside the another _DSM, so add the _DSM and call it
> > accordingly.
> >
> > I also tested some MUX-less and iGPU only laptops with that _DSM, no
> > regression was found.
> >
> > v4:
> > - Rebase.
> > - Change the DSM name to avoid confusion.
> > - Move the function call to intel_opregion.
> >
> > v3:
> > - Remove BXT from names.
> > - Change the parameter type.
> > - Fold the function into intel_modeset_init_hw().
> >
> > v2:
> > - Forward declare struct pci_dev.
> >
> > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
> > References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
>
> A gentle ping...
Another gentle ping...
>
> > ---
> > drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
> > drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
> > drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
> > 3 files changed, 25 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
> > index 833d0c1be4f1..7cfe91fc05f2 100644
> > --- a/drivers/gpu/drm/i915/display/intel_acpi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_acpi.c
> > @@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
> > GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
> > 0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
> >
> > +#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
> > +
> > +static const guid_t intel_dsm_guid2 =
> > + GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
> > + 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
> > +
> > static char *intel_dsm_port_name(u8 id)
> > {
> > switch (id) {
> > @@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
> > {
> > }
> >
> > +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
> > +{
> > + struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> > + acpi_handle dhandle;
> > +
> > + dhandle = ACPI_HANDLE(&pdev->dev);
> > + if (!dhandle)
> > + return;
> > +
> > + acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
> > + INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
> > +}
> > +
> > /*
> > * ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
> > * Attached to the Display Adapter).
> > diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
> > index e8b068661d22..9f197401c313 100644
> > --- a/drivers/gpu/drm/i915/display/intel_acpi.h
> > +++ b/drivers/gpu/drm/i915/display/intel_acpi.h
> > @@ -11,11 +11,14 @@ struct drm_i915_private;
> > #ifdef CONFIG_ACPI
> > void intel_register_dsm_handler(void);
> > void intel_unregister_dsm_handler(void);
> > +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
> > void intel_acpi_device_id_update(struct drm_i915_private *i915);
> > #else
> > static inline void intel_register_dsm_handler(void) { return; }
> > static inline void intel_unregister_dsm_handler(void) { return; }
> > static inline
> > +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
> > +static inline
> > void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
> > #endif /* CONFIG_ACPI */
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> > index dfd724e506b5..3855fba70980 100644
> > --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> > +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> > @@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
> > opregion->asle->ardy = ASLE_ARDY_READY;
> > }
> >
> > + /* Some platforms abuse the _DSM to enable MUX */
> > + intel_dsm_get_bios_data_funcs_supported(i915);
> > +
> > intel_opregion_notify_adapter(i915, PCI_D0);
> > }
> >
> > --
> > 2.31.1
> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Intel-gfx] [PATCH v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
@ 2021-06-15 7:01 ` Kai-Heng Feng
0 siblings, 0 replies; 15+ messages in thread
From: Kai-Heng Feng @ 2021-06-15 7:01 UTC (permalink / raw)
To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: David Airlie, intel-gfx, Lucas De Marchi, open list,
open list:DRM DRIVERS, Chris Wilson, Takashi Iwai,
Thomas Zimmermann
On Fri, Jun 4, 2021 at 11:57 PM Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
>
> On Thu, May 20, 2021 at 2:58 PM Kai-Heng Feng
> <kai.heng.feng@canonical.com> wrote:
> >
> > On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
> > to discrete GFX after S3. This is not desirable, because userspace will
> > treat connected display as a new one, losing display settings.
> >
> > The expected behavior is to let discrete GFX drives all external
> > displays.
> >
> > The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
> > The method is inside the another _DSM, so add the _DSM and call it
> > accordingly.
> >
> > I also tested some MUX-less and iGPU only laptops with that _DSM, no
> > regression was found.
> >
> > v4:
> > - Rebase.
> > - Change the DSM name to avoid confusion.
> > - Move the function call to intel_opregion.
> >
> > v3:
> > - Remove BXT from names.
> > - Change the parameter type.
> > - Fold the function into intel_modeset_init_hw().
> >
> > v2:
> > - Forward declare struct pci_dev.
> >
> > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
> > References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
>
> A gentle ping...
Another gentle ping...
>
> > ---
> > drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
> > drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
> > drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
> > 3 files changed, 25 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
> > index 833d0c1be4f1..7cfe91fc05f2 100644
> > --- a/drivers/gpu/drm/i915/display/intel_acpi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_acpi.c
> > @@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
> > GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
> > 0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
> >
> > +#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
> > +
> > +static const guid_t intel_dsm_guid2 =
> > + GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
> > + 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
> > +
> > static char *intel_dsm_port_name(u8 id)
> > {
> > switch (id) {
> > @@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
> > {
> > }
> >
> > +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
> > +{
> > + struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> > + acpi_handle dhandle;
> > +
> > + dhandle = ACPI_HANDLE(&pdev->dev);
> > + if (!dhandle)
> > + return;
> > +
> > + acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
> > + INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
> > +}
> > +
> > /*
> > * ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
> > * Attached to the Display Adapter).
> > diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
> > index e8b068661d22..9f197401c313 100644
> > --- a/drivers/gpu/drm/i915/display/intel_acpi.h
> > +++ b/drivers/gpu/drm/i915/display/intel_acpi.h
> > @@ -11,11 +11,14 @@ struct drm_i915_private;
> > #ifdef CONFIG_ACPI
> > void intel_register_dsm_handler(void);
> > void intel_unregister_dsm_handler(void);
> > +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
> > void intel_acpi_device_id_update(struct drm_i915_private *i915);
> > #else
> > static inline void intel_register_dsm_handler(void) { return; }
> > static inline void intel_unregister_dsm_handler(void) { return; }
> > static inline
> > +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
> > +static inline
> > void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
> > #endif /* CONFIG_ACPI */
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> > index dfd724e506b5..3855fba70980 100644
> > --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> > +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> > @@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
> > opregion->asle->ardy = ASLE_ARDY_READY;
> > }
> >
> > + /* Some platforms abuse the _DSM to enable MUX */
> > + intel_dsm_get_bios_data_funcs_supported(i915);
> > +
> > intel_opregion_notify_adapter(i915, PCI_D0);
> > }
> >
> > --
> > 2.31.1
> >
_______________________________________________
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 v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
@ 2021-06-15 7:01 ` Kai-Heng Feng
0 siblings, 0 replies; 15+ messages in thread
From: Kai-Heng Feng @ 2021-06-15 7:01 UTC (permalink / raw)
To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: David Airlie, intel-gfx, Lucas De Marchi, open list,
open list:DRM DRIVERS, Chris Wilson, Thomas Zimmermann
On Fri, Jun 4, 2021 at 11:57 PM Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
>
> On Thu, May 20, 2021 at 2:58 PM Kai-Heng Feng
> <kai.heng.feng@canonical.com> wrote:
> >
> > On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
> > to discrete GFX after S3. This is not desirable, because userspace will
> > treat connected display as a new one, losing display settings.
> >
> > The expected behavior is to let discrete GFX drives all external
> > displays.
> >
> > The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
> > The method is inside the another _DSM, so add the _DSM and call it
> > accordingly.
> >
> > I also tested some MUX-less and iGPU only laptops with that _DSM, no
> > regression was found.
> >
> > v4:
> > - Rebase.
> > - Change the DSM name to avoid confusion.
> > - Move the function call to intel_opregion.
> >
> > v3:
> > - Remove BXT from names.
> > - Change the parameter type.
> > - Fold the function into intel_modeset_init_hw().
> >
> > v2:
> > - Forward declare struct pci_dev.
> >
> > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
> > References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
> > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
>
> A gentle ping...
Another gentle ping...
>
> > ---
> > drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
> > drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
> > drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
> > 3 files changed, 25 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
> > index 833d0c1be4f1..7cfe91fc05f2 100644
> > --- a/drivers/gpu/drm/i915/display/intel_acpi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_acpi.c
> > @@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
> > GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
> > 0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
> >
> > +#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
> > +
> > +static const guid_t intel_dsm_guid2 =
> > + GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
> > + 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
> > +
> > static char *intel_dsm_port_name(u8 id)
> > {
> > switch (id) {
> > @@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
> > {
> > }
> >
> > +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
> > +{
> > + struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> > + acpi_handle dhandle;
> > +
> > + dhandle = ACPI_HANDLE(&pdev->dev);
> > + if (!dhandle)
> > + return;
> > +
> > + acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
> > + INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
> > +}
> > +
> > /*
> > * ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
> > * Attached to the Display Adapter).
> > diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
> > index e8b068661d22..9f197401c313 100644
> > --- a/drivers/gpu/drm/i915/display/intel_acpi.h
> > +++ b/drivers/gpu/drm/i915/display/intel_acpi.h
> > @@ -11,11 +11,14 @@ struct drm_i915_private;
> > #ifdef CONFIG_ACPI
> > void intel_register_dsm_handler(void);
> > void intel_unregister_dsm_handler(void);
> > +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
> > void intel_acpi_device_id_update(struct drm_i915_private *i915);
> > #else
> > static inline void intel_register_dsm_handler(void) { return; }
> > static inline void intel_unregister_dsm_handler(void) { return; }
> > static inline
> > +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
> > +static inline
> > void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
> > #endif /* CONFIG_ACPI */
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> > index dfd724e506b5..3855fba70980 100644
> > --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> > +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> > @@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
> > opregion->asle->ardy = ASLE_ARDY_READY;
> > }
> >
> > + /* Some platforms abuse the _DSM to enable MUX */
> > + intel_dsm_get_bios_data_funcs_supported(i915);
> > +
> > intel_opregion_notify_adapter(i915, PCI_D0);
> > }
> >
> > --
> > 2.31.1
> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
2021-05-20 6:58 ` Kai-Heng Feng
(?)
@ 2021-07-12 7:40 ` Ville Syrjälä
-1 siblings, 0 replies; 15+ messages in thread
From: Ville Syrjälä @ 2021-07-12 7:40 UTC (permalink / raw)
To: Kai-Heng Feng
Cc: jani.nikula, joonas.lahtinen, rodrigo.vivi, David Airlie,
Daniel Vetter, Takashi Iwai, Chris Wilson, Lucas De Marchi,
Thomas Zimmermann, intel-gfx, open list:DRM DRIVERS, open list
On Thu, May 20, 2021 at 02:58:20PM +0800, Kai-Heng Feng wrote:
> On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
> to discrete GFX after S3. This is not desirable, because userspace will
> treat connected display as a new one, losing display settings.
>
> The expected behavior is to let discrete GFX drives all external
> displays.
>
> The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
> The method is inside the another _DSM, so add the _DSM and call it
> accordingly.
>
> I also tested some MUX-less and iGPU only laptops with that _DSM, no
> regression was found.
>
> v4:
> - Rebase.
> - Change the DSM name to avoid confusion.
> - Move the function call to intel_opregion.
>
> v3:
> - Remove BXT from names.
> - Change the parameter type.
> - Fold the function into intel_modeset_init_hw().
>
> v2:
> - Forward declare struct pci_dev.
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
> References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Thanks. Pushed to drm-intel-next. And sorry for the lag.
> ---
> drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
> drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
> 3 files changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
> index 833d0c1be4f1..7cfe91fc05f2 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.c
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.c
> @@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
> GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
> 0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
>
> +#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
> +
> +static const guid_t intel_dsm_guid2 =
> + GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
> + 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
> +
> static char *intel_dsm_port_name(u8 id)
> {
> switch (id) {
> @@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
> {
> }
>
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
> +{
> + struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> + acpi_handle dhandle;
> +
> + dhandle = ACPI_HANDLE(&pdev->dev);
> + if (!dhandle)
> + return;
> +
> + acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
> + INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
> +}
> +
> /*
> * ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
> * Attached to the Display Adapter).
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
> index e8b068661d22..9f197401c313 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.h
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.h
> @@ -11,11 +11,14 @@ struct drm_i915_private;
> #ifdef CONFIG_ACPI
> void intel_register_dsm_handler(void);
> void intel_unregister_dsm_handler(void);
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
> void intel_acpi_device_id_update(struct drm_i915_private *i915);
> #else
> static inline void intel_register_dsm_handler(void) { return; }
> static inline void intel_unregister_dsm_handler(void) { return; }
> static inline
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
> +static inline
> void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
> #endif /* CONFIG_ACPI */
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index dfd724e506b5..3855fba70980 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
> opregion->asle->ardy = ASLE_ARDY_READY;
> }
>
> + /* Some platforms abuse the _DSM to enable MUX */
> + intel_dsm_get_bios_data_funcs_supported(i915);
> +
> intel_opregion_notify_adapter(i915, PCI_D0);
> }
>
> --
> 2.31.1
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Intel-gfx] [PATCH v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
@ 2021-07-12 7:40 ` Ville Syrjälä
0 siblings, 0 replies; 15+ messages in thread
From: Ville Syrjälä @ 2021-07-12 7:40 UTC (permalink / raw)
To: Kai-Heng Feng
Cc: Thomas Zimmermann, David Airlie, intel-gfx, Lucas De Marchi,
open list, Chris Wilson, Takashi Iwai, open list:DRM DRIVERS
On Thu, May 20, 2021 at 02:58:20PM +0800, Kai-Heng Feng wrote:
> On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
> to discrete GFX after S3. This is not desirable, because userspace will
> treat connected display as a new one, losing display settings.
>
> The expected behavior is to let discrete GFX drives all external
> displays.
>
> The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
> The method is inside the another _DSM, so add the _DSM and call it
> accordingly.
>
> I also tested some MUX-less and iGPU only laptops with that _DSM, no
> regression was found.
>
> v4:
> - Rebase.
> - Change the DSM name to avoid confusion.
> - Move the function call to intel_opregion.
>
> v3:
> - Remove BXT from names.
> - Change the parameter type.
> - Fold the function into intel_modeset_init_hw().
>
> v2:
> - Forward declare struct pci_dev.
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
> References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Thanks. Pushed to drm-intel-next. And sorry for the lag.
> ---
> drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
> drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
> 3 files changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
> index 833d0c1be4f1..7cfe91fc05f2 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.c
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.c
> @@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
> GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
> 0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
>
> +#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
> +
> +static const guid_t intel_dsm_guid2 =
> + GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
> + 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
> +
> static char *intel_dsm_port_name(u8 id)
> {
> switch (id) {
> @@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
> {
> }
>
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
> +{
> + struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> + acpi_handle dhandle;
> +
> + dhandle = ACPI_HANDLE(&pdev->dev);
> + if (!dhandle)
> + return;
> +
> + acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
> + INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
> +}
> +
> /*
> * ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
> * Attached to the Display Adapter).
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
> index e8b068661d22..9f197401c313 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.h
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.h
> @@ -11,11 +11,14 @@ struct drm_i915_private;
> #ifdef CONFIG_ACPI
> void intel_register_dsm_handler(void);
> void intel_unregister_dsm_handler(void);
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
> void intel_acpi_device_id_update(struct drm_i915_private *i915);
> #else
> static inline void intel_register_dsm_handler(void) { return; }
> static inline void intel_unregister_dsm_handler(void) { return; }
> static inline
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
> +static inline
> void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
> #endif /* CONFIG_ACPI */
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index dfd724e506b5..3855fba70980 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
> opregion->asle->ardy = ASLE_ARDY_READY;
> }
>
> + /* Some platforms abuse the _DSM to enable MUX */
> + intel_dsm_get_bios_data_funcs_supported(i915);
> +
> intel_opregion_notify_adapter(i915, PCI_D0);
> }
>
> --
> 2.31.1
--
Ville Syrjälä
Intel
_______________________________________________
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 v4] drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops
@ 2021-07-12 7:40 ` Ville Syrjälä
0 siblings, 0 replies; 15+ messages in thread
From: Ville Syrjälä @ 2021-07-12 7:40 UTC (permalink / raw)
To: Kai-Heng Feng
Cc: Thomas Zimmermann, David Airlie, intel-gfx, Lucas De Marchi,
open list, Chris Wilson, open list:DRM DRIVERS, rodrigo.vivi
On Thu, May 20, 2021 at 02:58:20PM +0800, Kai-Heng Feng wrote:
> On HP Fury G7 Workstations, graphics output is re-routed from Intel GFX
> to discrete GFX after S3. This is not desirable, because userspace will
> treat connected display as a new one, losing display settings.
>
> The expected behavior is to let discrete GFX drives all external
> displays.
>
> The platform in question uses ACPI method \_SB.PCI0.HGME to enable MUX.
> The method is inside the another _DSM, so add the _DSM and call it
> accordingly.
>
> I also tested some MUX-less and iGPU only laptops with that _DSM, no
> regression was found.
>
> v4:
> - Rebase.
> - Change the DSM name to avoid confusion.
> - Move the function call to intel_opregion.
>
> v3:
> - Remove BXT from names.
> - Change the parameter type.
> - Fold the function into intel_modeset_init_hw().
>
> v2:
> - Forward declare struct pci_dev.
>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3113
> References: https://lore.kernel.org/intel-gfx/1460040732-31417-4-git-send-email-animesh.manna@intel.com/
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Thanks. Pushed to drm-intel-next. And sorry for the lag.
> ---
> drivers/gpu/drm/i915/display/intel_acpi.c | 19 +++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_acpi.h | 3 +++
> drivers/gpu/drm/i915/display/intel_opregion.c | 3 +++
> 3 files changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.c b/drivers/gpu/drm/i915/display/intel_acpi.c
> index 833d0c1be4f1..7cfe91fc05f2 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.c
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.c
> @@ -19,6 +19,12 @@ static const guid_t intel_dsm_guid =
> GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f,
> 0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c);
>
> +#define INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED 0 /* No args */
> +
> +static const guid_t intel_dsm_guid2 =
> + GUID_INIT(0x3e5b41c6, 0xeb1d, 0x4260,
> + 0x9d, 0x15, 0xc7, 0x1f, 0xba, 0xda, 0xe4, 0x14);
> +
> static char *intel_dsm_port_name(u8 id)
> {
> switch (id) {
> @@ -176,6 +182,19 @@ void intel_unregister_dsm_handler(void)
> {
> }
>
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915)
> +{
> + struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
> + acpi_handle dhandle;
> +
> + dhandle = ACPI_HANDLE(&pdev->dev);
> + if (!dhandle)
> + return;
> +
> + acpi_evaluate_dsm(dhandle, &intel_dsm_guid2, INTEL_DSM_REVISION_ID,
> + INTEL_DSM_FN_GET_BIOS_DATA_FUNCS_SUPPORTED, NULL);
> +}
> +
> /*
> * ACPI Specification, Revision 5.0, Appendix B.3.2 _DOD (Enumerate All Devices
> * Attached to the Display Adapter).
> diff --git a/drivers/gpu/drm/i915/display/intel_acpi.h b/drivers/gpu/drm/i915/display/intel_acpi.h
> index e8b068661d22..9f197401c313 100644
> --- a/drivers/gpu/drm/i915/display/intel_acpi.h
> +++ b/drivers/gpu/drm/i915/display/intel_acpi.h
> @@ -11,11 +11,14 @@ struct drm_i915_private;
> #ifdef CONFIG_ACPI
> void intel_register_dsm_handler(void);
> void intel_unregister_dsm_handler(void);
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915);
> void intel_acpi_device_id_update(struct drm_i915_private *i915);
> #else
> static inline void intel_register_dsm_handler(void) { return; }
> static inline void intel_unregister_dsm_handler(void) { return; }
> static inline
> +void intel_dsm_get_bios_data_funcs_supported(struct drm_i915_private *i915) { return; }
> +static inline
> void intel_acpi_device_id_update(struct drm_i915_private *i915) { return; }
> #endif /* CONFIG_ACPI */
>
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index dfd724e506b5..3855fba70980 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -1078,6 +1078,9 @@ void intel_opregion_resume(struct drm_i915_private *i915)
> opregion->asle->ardy = ASLE_ARDY_READY;
> }
>
> + /* Some platforms abuse the _DSM to enable MUX */
> + intel_dsm_get_bios_data_funcs_supported(i915);
> +
> intel_opregion_notify_adapter(i915, PCI_D0);
> }
>
> --
> 2.31.1
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 15+ messages in thread