[SRU] [E/Unstable/OEM-OSP1-B] [PATCH 0/1] Fix MST support on Ice Lake

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[SRU] [E/Unstable/OEM-OSP1-B] [PATCH 0/1] Fix MST support on Ice Lake

Kai-Heng Feng
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

BugLink: https://bugs.launchpad.net/bugs/1854432

[Impact]
Some HDMI and DP doesn't count as external monitor on ICL MST.

[Fix]
Fix external port MST check on Ice Lake.

[Test]
DP and HDMI ports can only mirror display.
After applying this patch bot DP and HDMI ports can drive its own
external display.

[Regression Potential]
Low. This fix targets Gen 11 and Gen 12 Intel graphics, older systems
are unaffected.

Lucas De Marchi (1):
  drm/i915: fix port checks for MST support on gen >= 11

 drivers/gpu/drm/i915/display/intel_dp.c     |  7 ++-----
 drivers/gpu/drm/i915/display/intel_dp_mst.c | 22 +++++++++++++++------
 2 files changed, 18 insertions(+), 11 deletions(-)

--
2.17.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[OEM-OSP1-B] [PATCH 1/1] drm/i915: fix port checks for MST support on gen >= 11

Kai-Heng Feng
From: Lucas De Marchi <[hidden email]>

BugLink: https://bugs.launchpad.net/bugs/1854432

Both Ice Lake and Elkhart Lake (gen 11) support MST on all external
connections except DDI A. Tiger Lake (gen 12) supports on all external
connections.

Move the check to happen inside intel_dp_mst_encoder_init() and add
specific platform checks.

v2: Replace != with == checks for ports on gen < 11 (Ville)

Signed-off-by: Lucas De Marchi <[hidden email]>
Reviewed-by: Ville Syrjälä <[hidden email]>
Link: https://patchwork.freedesktop.org/patch/msgid/20191015164029.18431-3-lucas.demarchi@...
(backported from commit 10d987fd1b7baceaafa78d805e71427ab735b4e4 linux-next)
Signed-off-by: Kai-Heng Feng <[hidden email]>
---
 drivers/gpu/drm/i915/intel_dp.c     |  7 ++-----
 drivers/gpu/drm/i915/intel_dp_mst.c | 22 ++++++++++++++++------
 2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 0cb59653fcba..f980611527ad 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -6806,11 +6806,8 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
  intel_connector->get_hw_state = intel_connector_get_hw_state;
 
  /* init MST on ports that can support it */
- if (HAS_DP_MST(dev_priv) && !intel_dp_is_edp(intel_dp) &&
-    (port == PORT_B || port == PORT_C ||
-     port == PORT_D || port == PORT_F))
- intel_dp_mst_encoder_init(intel_dig_port,
-  intel_connector->base.base.id);
+ intel_dp_mst_encoder_init(intel_dig_port,
+  intel_connector->base.base.id);
 
  if (!intel_edp_init_connector(intel_dp, intel_connector)) {
  intel_dp_aux_fini(intel_dp);
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 4de247ddf05f..826c9988c2fd 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -587,21 +587,31 @@ intel_dp_create_fake_mst_encoders(struct intel_digital_port *intel_dig_port)
 int
 intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_base_id)
 {
+ struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
  struct intel_dp *intel_dp = &intel_dig_port->dp;
- struct drm_device *dev = intel_dig_port->base.base.dev;
+ enum port port = intel_dig_port->base.port;
  int ret;
 
- intel_dp->can_mst = true;
+ if (!HAS_DP_MST(i915) || intel_dp_is_edp(intel_dp))
+ return 0;
+
+ if (INTEL_GEN(i915) < 12 && port == PORT_A)
+ return 0;
+
+ if (INTEL_GEN(i915) < 11 && port == PORT_E)
+ return 0;
+
  intel_dp->mst_mgr.cbs = &mst_cbs;
 
  /* create encoders */
  intel_dp_create_fake_mst_encoders(intel_dig_port);
- ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev,
+ ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, &i915->drm,
    &intel_dp->aux, 16, 3, conn_base_id);
- if (ret) {
- intel_dp->can_mst = false;
+ if (ret)
  return ret;
- }
+
+ intel_dp->can_mst = true;
+
  return 0;
 }
 
--
2.17.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[E/Unstable] [PATCH 1/1] drm/i915: fix port checks for MST support on gen >= 11

Kai-Heng Feng
In reply to this post by Kai-Heng Feng
From: Lucas De Marchi <[hidden email]>

BugLink: https://bugs.launchpad.net/bugs/1854432

Both Ice Lake and Elkhart Lake (gen 11) support MST on all external
connections except DDI A. Tiger Lake (gen 12) supports on all external
connections.

Move the check to happen inside intel_dp_mst_encoder_init() and add
specific platform checks.

v2: Replace != with == checks for ports on gen < 11 (Ville)

Signed-off-by: Lucas De Marchi <[hidden email]>
Reviewed-by: Ville Syrjälä <[hidden email]>
Link: https://patchwork.freedesktop.org/patch/msgid/20191015164029.18431-3-lucas.demarchi@...
(cherry picked from commit 10d987fd1b7baceaafa78d805e71427ab735b4e4 linux-next)
Signed-off-by: Kai-Heng Feng <[hidden email]>
---
 drivers/gpu/drm/i915/display/intel_dp.c     |  7 ++-----
 drivers/gpu/drm/i915/display/intel_dp_mst.c | 22 +++++++++++++++------
 2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 9b15ac4f2fb6..4ab6531a4a74 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -7218,11 +7218,8 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
  intel_connector->get_hw_state = intel_connector_get_hw_state;
 
  /* init MST on ports that can support it */
- if (HAS_DP_MST(dev_priv) && !intel_dp_is_edp(intel_dp) &&
-    (port == PORT_B || port == PORT_C ||
-     port == PORT_D || port == PORT_F))
- intel_dp_mst_encoder_init(intel_dig_port,
-  intel_connector->base.base.id);
+ intel_dp_mst_encoder_init(intel_dig_port,
+  intel_connector->base.base.id);
 
  if (!intel_edp_init_connector(intel_dp, intel_connector)) {
  intel_dp_aux_fini(intel_dp);
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 600873c796d0..74d45a0eecb8 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -653,21 +653,31 @@ intel_dp_mst_encoder_active_links(struct intel_digital_port *intel_dig_port)
 int
 intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_base_id)
 {
+ struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
  struct intel_dp *intel_dp = &intel_dig_port->dp;
- struct drm_device *dev = intel_dig_port->base.base.dev;
+ enum port port = intel_dig_port->base.port;
  int ret;
 
- intel_dp->can_mst = true;
+ if (!HAS_DP_MST(i915) || intel_dp_is_edp(intel_dp))
+ return 0;
+
+ if (INTEL_GEN(i915) < 12 && port == PORT_A)
+ return 0;
+
+ if (INTEL_GEN(i915) < 11 && port == PORT_E)
+ return 0;
+
  intel_dp->mst_mgr.cbs = &mst_cbs;
 
  /* create encoders */
  intel_dp_create_fake_mst_encoders(intel_dig_port);
- ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, dev,
+ ret = drm_dp_mst_topology_mgr_init(&intel_dp->mst_mgr, &i915->drm,
    &intel_dp->aux, 16, 3, conn_base_id);
- if (ret) {
- intel_dp->can_mst = false;
+ if (ret)
  return ret;
- }
+
+ intel_dp->can_mst = true;
+
  return 0;
 }
 
--
2.17.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU] [E/Unstable/OEM-OSP1-B] [PATCH 0/1] Fix MST support on Ice Lake

Anthony Wong-2
In reply to this post by Kai-Heng Feng
On Fri, Nov 29, 2019 at 02:10:21PM +0800, Kai-Heng Feng wrote:

> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> BugLink: https://bugs.launchpad.net/bugs/1854432
>
> [Impact]
> Some HDMI and DP doesn't count as external monitor on ICL MST.
>
> [Fix]
> Fix external port MST check on Ice Lake.
>
> [Test]
> DP and HDMI ports can only mirror display.
> After applying this patch bot DP and HDMI ports can drive its own
> external display.
>
> [Regression Potential]
> Low. This fix targets Gen 11 and Gen 12 Intel graphics, older systems
> are unaffected.
>
> Lucas De Marchi (1):
>   drm/i915: fix port checks for MST support on gen >= 11
>
>  drivers/gpu/drm/i915/display/intel_dp.c     |  7 ++-----
>  drivers/gpu/drm/i915/display/intel_dp_mst.c | 22 +++++++++++++++------
>  2 files changed, 18 insertions(+), 11 deletions(-)

Acked-by: Anthony Wong <[hidden email]>

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

Re: [SRU] [E/Unstable/OEM-OSP1-B] [PATCH 0/1] Fix MST support on Ice Lake

Timo Aaltonen-6
In reply to this post by Kai-Heng Feng
On 29.11.2019 8.10, Kai-Heng Feng wrote:

> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> BugLink: https://bugs.launchpad.net/bugs/1854432
>
> [Impact]
> Some HDMI and DP doesn't count as external monitor on ICL MST.
>
> [Fix]
> Fix external port MST check on Ice Lake.
>
> [Test]
> DP and HDMI ports can only mirror display.
> After applying this patch bot DP and HDMI ports can drive its own
> external display.
>
> [Regression Potential]
> Low. This fix targets Gen 11 and Gen 12 Intel graphics, older systems
> are unaffected.
>
> Lucas De Marchi (1):
>   drm/i915: fix port checks for MST support on gen >= 11
>
>  drivers/gpu/drm/i915/display/intel_dp.c     |  7 ++-----
>  drivers/gpu/drm/i915/display/intel_dp_mst.c | 22 +++++++++++++++------
>  2 files changed, 18 insertions(+), 11 deletions(-)

Applied to osp1 oem-current, thanks.


--
t

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

APPLIED[OEM-OSP1-B] Re: [SRU] [E/Unstable/OEM-OSP1-B] [PATCH 0/1] Fix MST support on Ice Lake

Timo Aaltonen-6
On 3.12.2019 14.31, Timo Aaltonen wrote:

> On 29.11.2019 8.10, Kai-Heng Feng wrote:
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> BugLink: https://bugs.launchpad.net/bugs/1854432
>>
>> [Impact]
>> Some HDMI and DP doesn't count as external monitor on ICL MST.
>>
>> [Fix]
>> Fix external port MST check on Ice Lake.
>>
>> [Test]
>> DP and HDMI ports can only mirror display.
>> After applying this patch bot DP and HDMI ports can drive its own
>> external display.
>>
>> [Regression Potential]
>> Low. This fix targets Gen 11 and Gen 12 Intel graphics, older systems
>> are unaffected.
>>
>> Lucas De Marchi (1):
>>   drm/i915: fix port checks for MST support on gen >= 11
>>
>>  drivers/gpu/drm/i915/display/intel_dp.c     |  7 ++-----
>>  drivers/gpu/drm/i915/display/intel_dp_mst.c | 22 +++++++++++++++------
>>  2 files changed, 18 insertions(+), 11 deletions(-)
>
> Applied to osp1 oem-current, thanks.

now with the Subject fixed


--
t

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU] [E/Unstable/OEM-OSP1-B] [PATCH 0/1] Fix MST support on Ice Lake

Seth Forshee
In reply to this post by Kai-Heng Feng
On Fri, Nov 29, 2019 at 02:10:21PM +0800, Kai-Heng Feng wrote:

> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> BugLink: https://bugs.launchpad.net/bugs/1854432
>
> [Impact]
> Some HDMI and DP doesn't count as external monitor on ICL MST.
>
> [Fix]
> Fix external port MST check on Ice Lake.
>
> [Test]
> DP and HDMI ports can only mirror display.
> After applying this patch bot DP and HDMI ports can drive its own
> external display.
>
> [Regression Potential]
> Low. This fix targets Gen 11 and Gen 12 Intel graphics, older systems
> are unaffected.

Acked-by: Seth Forshee <[hidden email]>

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

APPLIED[Unstable]: [SRU] [E/Unstable/OEM-OSP1-B] [PATCH 0/1] Fix MST support on Ice Lake

Seth Forshee
In reply to this post by Kai-Heng Feng
On Fri, Nov 29, 2019 at 02:10:21PM +0800, Kai-Heng Feng wrote:

> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> BugLink: https://bugs.launchpad.net/bugs/1854432
>
> [Impact]
> Some HDMI and DP doesn't count as external monitor on ICL MST.
>
> [Fix]
> Fix external port MST check on Ice Lake.
>
> [Test]
> DP and HDMI ports can only mirror display.
> After applying this patch bot DP and HDMI ports can drive its own
> external display.
>
> [Regression Potential]
> Low. This fix targets Gen 11 and Gen 12 Intel graphics, older systems
> are unaffected.

Applied to unstable/master, thanks!

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team