mbox series

[OEM5.14/J,SRU,v2,0/7]

Message ID 20220802181115.22369-1-mario.limonciello@amd.com
Headers show
Series | expand

Message

Mario Limonciello Aug. 2, 2022, 6:11 p.m. UTC
BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143

When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
port on AMD Yellow Carp (Rembrandt) a software connection manager works
with the hardware to initialize tunnels.

One of those tunnels is for DP (display port). It was observed that
on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
specifically when connecting to a Thunderbolt monitor fails.
This circumstance does not happen on OEM-5.17 or mainline kernels.

This is due to a backport error on the USB4 patch series that went
into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
series corrects that error as minimally as possible as a SAUCE patch.

It was also observed that DP tunneling is not working for Thunderbolt
monitor connected at boot, but this is a different root cause.
The "Pre-OS" connection manager creates DP tunnels that are expected
to be re-used by the OS connection manager. The remaining patches in
this series enable this flow.

Patches 2-6 are upstream patches or reverts to closer match upstream.
Patch 7 is a SAUCE patch because it is not landed upstream yet, but
will be needed for patch 2-6 to work properly.  If the Thunderbolt
CM doesn't hand off resources, amdgpu can't possibly re-use them.

For this whole flow to work an updated AMDGPU DMCUB firmware is also
needed.  This is already in process as part of:
https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922

v1->v2:
* Fixup [1/4], it didn't work due to a contextual error
* Add a revert of a stable patch before previous patch [3/4] applied
  so that it can re-apply cleanly.
* Add missing dependencies for patch [3/4] to allow applying cleanly
* Re-apply revert commit

Mario Limonciello (2):
  UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
  Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"

Meenakshikumar Somasundaram (1):
  drm/amd/display: Fix for dmub outbox notification enable

Nicholas Kazlauskas (2):
  drm/amd/display: Reset link encoder assignments for GPU reset
  drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset

Sanjay R Mehta (1):
  UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
    discovered.

Stylon Wang (1):
  drm/amd/display: Fix new dmub notification enabling in DM

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
 drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
 drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
 .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
 .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
 .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
 .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
 .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
 drivers/thunderbolt/tb.c                      | 15 +++++
 drivers/thunderbolt/tb.h                      |  1 +
 drivers/thunderbolt/tunnel.c                  |  2 +
 11 files changed, 133 insertions(+), 33 deletions(-)

Comments

Stefan Bader Aug. 3, 2022, 2:35 p.m. UTC | #1
On 02.08.22 20:11, Mario Limonciello wrote:
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143
> 
> When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
> port on AMD Yellow Carp (Rembrandt) a software connection manager works
> with the hardware to initialize tunnels.
> 
> One of those tunnels is for DP (display port). It was observed that
> on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
> specifically when connecting to a Thunderbolt monitor fails.
> This circumstance does not happen on OEM-5.17 or mainline kernels.
> 
> This is due to a backport error on the USB4 patch series that went
> into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
> series corrects that error as minimally as possible as a SAUCE patch.
> 
> It was also observed that DP tunneling is not working for Thunderbolt
> monitor connected at boot, but this is a different root cause.
> The "Pre-OS" connection manager creates DP tunnels that are expected
> to be re-used by the OS connection manager. The remaining patches in
> this series enable this flow.
> 
> Patches 2-6 are upstream patches or reverts to closer match upstream.
> Patch 7 is a SAUCE patch because it is not landed upstream yet, but
> will be needed for patch 2-6 to work properly.  If the Thunderbolt
> CM doesn't hand off resources, amdgpu can't possibly re-use them.
> 
> For this whole flow to work an updated AMDGPU DMCUB firmware is also
> needed.  This is already in process as part of:
> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922
> 
> v1->v2:
> * Fixup [1/4], it didn't work due to a contextual error
> * Add a revert of a stable patch before previous patch [3/4] applied
>    so that it can re-apply cleanly.
> * Add missing dependencies for patch [3/4] to allow applying cleanly
> * Re-apply revert commit
> 
> Mario Limonciello (2):
>    UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
>    Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"
> 
> Meenakshikumar Somasundaram (1):
>    drm/amd/display: Fix for dmub outbox notification enable
> 
> Nicholas Kazlauskas (2):
>    drm/amd/display: Reset link encoder assignments for GPU reset
>    drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
> 
> Sanjay R Mehta (1):
>    UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
>      discovered.
> 
> Stylon Wang (1):
>    drm/amd/display: Fix new dmub notification enabling in DM
> 
>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
>   drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
>   drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
>   .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
>   .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
>   drivers/thunderbolt/tb.c                      | 15 +++++
>   drivers/thunderbolt/tb.h                      |  1 +
>   drivers/thunderbolt/tunnel.c                  |  2 +
>   11 files changed, 133 insertions(+), 33 deletions(-)
> 

I think this is a replacement for the previous set but lacking the topic. If 
that is correct, then the previous thread should be NACKed to make it clear.

The method chosen to work around the context change is somewhat worrying. 
Basically the patch reverted was upstream stable and had been adjusted in 
context to match the v5.15.y code base. Then you re-apply the unmodified 
upstream patch. So we are closer to what code looks like in upstream v5.16 or 
later but further away from linux-5.15.y. I know we are already diverting. Just 
scary to see this example of how mind boggling things can become. This time it 
is just context but it might be a different flow of execution or locking in 
other cases. And this is near impossible to properly review.

-Stefan
Mario Limonciello Aug. 3, 2022, 2:42 p.m. UTC | #2
On 8/3/22 09:35, Stefan Bader wrote:
> On 02.08.22 20:11, Mario Limonciello wrote:
>> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143
>>
>> When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
>> port on AMD Yellow Carp (Rembrandt) a software connection manager works
>> with the hardware to initialize tunnels.
>>
>> One of those tunnels is for DP (display port). It was observed that
>> on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
>> specifically when connecting to a Thunderbolt monitor fails.
>> This circumstance does not happen on OEM-5.17 or mainline kernels.
>>
>> This is due to a backport error on the USB4 patch series that went
>> into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
>> series corrects that error as minimally as possible as a SAUCE patch.
>>
>> It was also observed that DP tunneling is not working for Thunderbolt
>> monitor connected at boot, but this is a different root cause.
>> The "Pre-OS" connection manager creates DP tunnels that are expected
>> to be re-used by the OS connection manager. The remaining patches in
>> this series enable this flow.
>>
>> Patches 2-6 are upstream patches or reverts to closer match upstream.
>> Patch 7 is a SAUCE patch because it is not landed upstream yet, but
>> will be needed for patch 2-6 to work properly.  If the Thunderbolt
>> CM doesn't hand off resources, amdgpu can't possibly re-use them.
>>
>> For this whole flow to work an updated AMDGPU DMCUB firmware is also
>> needed.  This is already in process as part of:
>> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922
>>
>> v1->v2:
>> * Fixup [1/4], it didn't work due to a contextual error
>> * Add a revert of a stable patch before previous patch [3/4] applied
>>    so that it can re-apply cleanly.
>> * Add missing dependencies for patch [3/4] to allow applying cleanly
>> * Re-apply revert commit
>>
>> Mario Limonciello (2):
>>    UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
>>    Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"
>>
>> Meenakshikumar Somasundaram (1):
>>    drm/amd/display: Fix for dmub outbox notification enable
>>
>> Nicholas Kazlauskas (2):
>>    drm/amd/display: Reset link encoder assignments for GPU reset
>>    drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
>>
>> Sanjay R Mehta (1):
>>    UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
>>      discovered.
>>
>> Stylon Wang (1):
>>    drm/amd/display: Fix new dmub notification enabling in DM
>>
>>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
>>   drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
>>   drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
>>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
>>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
>>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
>>   .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
>>   .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
>>   drivers/thunderbolt/tb.c                      | 15 +++++
>>   drivers/thunderbolt/tb.h                      |  1 +
>>   drivers/thunderbolt/tunnel.c                  |  2 +
>>   11 files changed, 133 insertions(+), 33 deletions(-)
>>
> 
> I think this is a replacement for the previous set but lacking the 
> topic. If that is correct, then the previous thread should be NACKed to 
> make it clear.

Yes it's replacement for previous series to make everything apply 
cleanly.  I'll drop a message to that thread to make it clearer.

> 
> The method chosen to work around the context change is somewhat 
> worrying. Basically the patch reverted was upstream stable and had been 
> adjusted in context to match the v5.15.y code base. Then you re-apply 
> the unmodified upstream patch. So we are closer to what code looks like 
> in upstream v5.16 or later but further away from linux-5.15.y.

Yes that's correct.  I guess it's up to you which way you prefer to take 
it.  I thought it was more important to make things apply cleanly.

If you prefer the previous approach I'll resubmit the previous patches 
[2-4] and the fixed [1/7] in this series as a v3.

> I know we 
> are already diverting. Just scary to see this example of how mind 
> boggling things can become. This time it is just context but it might be 
> a different flow of execution or locking in other cases. And this is 
> near impossible to properly review.

Yeah I don't think this approach works every single time.
Stefan Bader Aug. 3, 2022, 2:53 p.m. UTC | #3
On 03.08.22 16:42, Mario Limonciello wrote:
> On 8/3/22 09:35, Stefan Bader wrote:
>> On 02.08.22 20:11, Mario Limonciello wrote:
>>> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143
>>>
>>> When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
>>> port on AMD Yellow Carp (Rembrandt) a software connection manager works
>>> with the hardware to initialize tunnels.
>>>
>>> One of those tunnels is for DP (display port). It was observed that
>>> on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
>>> specifically when connecting to a Thunderbolt monitor fails.
>>> This circumstance does not happen on OEM-5.17 or mainline kernels.
>>>
>>> This is due to a backport error on the USB4 patch series that went
>>> into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
>>> series corrects that error as minimally as possible as a SAUCE patch.
>>>
>>> It was also observed that DP tunneling is not working for Thunderbolt
>>> monitor connected at boot, but this is a different root cause.
>>> The "Pre-OS" connection manager creates DP tunnels that are expected
>>> to be re-used by the OS connection manager. The remaining patches in
>>> this series enable this flow.
>>>
>>> Patches 2-6 are upstream patches or reverts to closer match upstream.
>>> Patch 7 is a SAUCE patch because it is not landed upstream yet, but
>>> will be needed for patch 2-6 to work properly.  If the Thunderbolt
>>> CM doesn't hand off resources, amdgpu can't possibly re-use them.
>>>
>>> For this whole flow to work an updated AMDGPU DMCUB firmware is also
>>> needed.  This is already in process as part of:
>>> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922
>>>
>>> v1->v2:
>>> * Fixup [1/4], it didn't work due to a contextual error
>>> * Add a revert of a stable patch before previous patch [3/4] applied
>>>    so that it can re-apply cleanly.
>>> * Add missing dependencies for patch [3/4] to allow applying cleanly
>>> * Re-apply revert commit
>>>
>>> Mario Limonciello (2):
>>>    UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
>>>    Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"
>>>
>>> Meenakshikumar Somasundaram (1):
>>>    drm/amd/display: Fix for dmub outbox notification enable
>>>
>>> Nicholas Kazlauskas (2):
>>>    drm/amd/display: Reset link encoder assignments for GPU reset
>>>    drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
>>>
>>> Sanjay R Mehta (1):
>>>    UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
>>>      discovered.
>>>
>>> Stylon Wang (1):
>>>    drm/amd/display: Fix new dmub notification enabling in DM
>>>
>>>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
>>>   drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
>>>   drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
>>>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
>>>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
>>>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
>>>   .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
>>>   .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
>>>   drivers/thunderbolt/tb.c                      | 15 +++++
>>>   drivers/thunderbolt/tb.h                      |  1 +
>>>   drivers/thunderbolt/tunnel.c                  |  2 +
>>>   11 files changed, 133 insertions(+), 33 deletions(-)
>>>
>>
>> I think this is a replacement for the previous set but lacking the topic. If 
>> that is correct, then the previous thread should be NACKed to make it clear.
> 
> Yes it's replacement for previous series to make everything apply cleanly.  I'll 
> drop a message to that thread to make it clearer.
> 
>>
>> The method chosen to work around the context change is somewhat worrying. 
>> Basically the patch reverted was upstream stable and had been adjusted in 
>> context to match the v5.15.y code base. Then you re-apply the unmodified 
>> upstream patch. So we are closer to what code looks like in upstream v5.16 or 
>> later but further away from linux-5.15.y.
> 
> Yes that's correct.  I guess it's up to you which way you prefer to take it.  I 
> thought it was more important to make things apply cleanly.
> 
> If you prefer the previous approach I'll resubmit the previous patches [2-4] and 
> the fixed [1/7] in this series as a v3.

In this case it probably is better to go with the revert and upstream version. 
It is just scary and makes me doubt how much I can help to keep the overall 
driver stable.

-Stefan

> 
>> I know we are already diverting. Just scary to see this example of how mind 
>> boggling things can become. This time it is just context but it might be a 
>> different flow of execution or locking in other cases. And this is near 
>> impossible to properly review.
> 
> Yeah I don't think this approach works every single time.
>
Stefan Bader Aug. 4, 2022, 7:39 a.m. UTC | #4
On 02.08.22 20:11, Mario Limonciello wrote:
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143
> 
> When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
> port on AMD Yellow Carp (Rembrandt) a software connection manager works
> with the hardware to initialize tunnels.
> 
> One of those tunnels is for DP (display port). It was observed that
> on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
> specifically when connecting to a Thunderbolt monitor fails.
> This circumstance does not happen on OEM-5.17 or mainline kernels.
> 
> This is due to a backport error on the USB4 patch series that went
> into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
> series corrects that error as minimally as possible as a SAUCE patch.
> 
> It was also observed that DP tunneling is not working for Thunderbolt
> monitor connected at boot, but this is a different root cause.
> The "Pre-OS" connection manager creates DP tunnels that are expected
> to be re-used by the OS connection manager. The remaining patches in
> this series enable this flow.
> 
> Patches 2-6 are upstream patches or reverts to closer match upstream.
> Patch 7 is a SAUCE patch because it is not landed upstream yet, but
> will be needed for patch 2-6 to work properly.  If the Thunderbolt
> CM doesn't hand off resources, amdgpu can't possibly re-use them.
> 
> For this whole flow to work an updated AMDGPU DMCUB firmware is also
> needed.  This is already in process as part of:
> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922
> 
> v1->v2:
> * Fixup [1/4], it didn't work due to a contextual error
> * Add a revert of a stable patch before previous patch [3/4] applied
>    so that it can re-apply cleanly.
> * Add missing dependencies for patch [3/4] to allow applying cleanly
> * Re-apply revert commit
> 
> Mario Limonciello (2):
>    UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
>    Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"
> 
> Meenakshikumar Somasundaram (1):
>    drm/amd/display: Fix for dmub outbox notification enable
> 
> Nicholas Kazlauskas (2):
>    drm/amd/display: Reset link encoder assignments for GPU reset
>    drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
> 
> Sanjay R Mehta (1):
>    UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
>      discovered.
> 
> Stylon Wang (1):
>    drm/amd/display: Fix new dmub notification enabling in DM
> 
>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
>   drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
>   drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
>   .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
>   .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
>   drivers/thunderbolt/tb.c                      | 15 +++++
>   drivers/thunderbolt/tb.h                      |  1 +
>   drivers/thunderbolt/tunnel.c                  |  2 +
>   11 files changed, 133 insertions(+), 33 deletions(-)
> 

Since we already carry additional changes on this driver it sounds like 
replacing an upstream stable patch which had to be context adjusted by its 
upstream original is acceptable as it allows fixes for the already deviated code 
to be cherry picks as well. Review is complicated without deeper knowledge of 
the driver. We rely more on test results here.

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Kleber Souza Aug. 5, 2022, 11:17 a.m. UTC | #5
On 02.08.22 20:11, Mario Limonciello wrote:
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143
> 
> When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
> port on AMD Yellow Carp (Rembrandt) a software connection manager works
> with the hardware to initialize tunnels.
> 
> One of those tunnels is for DP (display port). It was observed that
> on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
> specifically when connecting to a Thunderbolt monitor fails.
> This circumstance does not happen on OEM-5.17 or mainline kernels.
> 
> This is due to a backport error on the USB4 patch series that went
> into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
> series corrects that error as minimally as possible as a SAUCE patch.
> 
> It was also observed that DP tunneling is not working for Thunderbolt
> monitor connected at boot, but this is a different root cause.
> The "Pre-OS" connection manager creates DP tunnels that are expected
> to be re-used by the OS connection manager. The remaining patches in
> this series enable this flow.
> 
> Patches 2-6 are upstream patches or reverts to closer match upstream.
> Patch 7 is a SAUCE patch because it is not landed upstream yet, but
> will be needed for patch 2-6 to work properly.  If the Thunderbolt
> CM doesn't hand off resources, amdgpu can't possibly re-use them.
> 
> For this whole flow to work an updated AMDGPU DMCUB firmware is also
> needed.  This is already in process as part of:
> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922
> 
> v1->v2:
> * Fixup [1/4], it didn't work due to a contextual error
> * Add a revert of a stable patch before previous patch [3/4] applied
>    so that it can re-apply cleanly.
> * Add missing dependencies for patch [3/4] to allow applying cleanly
> * Re-apply revert commit
> 
> Mario Limonciello (2):
>    UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
>    Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"
> 
> Meenakshikumar Somasundaram (1):
>    drm/amd/display: Fix for dmub outbox notification enable
> 
> Nicholas Kazlauskas (2):
>    drm/amd/display: Reset link encoder assignments for GPU reset
>    drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
> 
> Sanjay R Mehta (1):
>    UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
>      discovered.
> 
> Stylon Wang (1):
>    drm/amd/display: Fix new dmub notification enabling in DM
> 
>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
>   drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
>   drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
>   .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
>   .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
>   drivers/thunderbolt/tb.c                      | 15 +++++
>   drivers/thunderbolt/tb.h                      |  1 +
>   drivers/thunderbolt/tunnel.c                  |  2 +
>   11 files changed, 133 insertions(+), 33 deletions(-)
> 


Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>

Thanks
Stefan Bader Aug. 5, 2022, 2:32 p.m. UTC | #6
On 02.08.22 20:11, Mario Limonciello wrote:
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143
> 
> When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
> port on AMD Yellow Carp (Rembrandt) a software connection manager works
> with the hardware to initialize tunnels.
> 
> One of those tunnels is for DP (display port). It was observed that
> on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
> specifically when connecting to a Thunderbolt monitor fails.
> This circumstance does not happen on OEM-5.17 or mainline kernels.
> 
> This is due to a backport error on the USB4 patch series that went
> into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
> series corrects that error as minimally as possible as a SAUCE patch.
> 
> It was also observed that DP tunneling is not working for Thunderbolt
> monitor connected at boot, but this is a different root cause.
> The "Pre-OS" connection manager creates DP tunnels that are expected
> to be re-used by the OS connection manager. The remaining patches in
> this series enable this flow.
> 
> Patches 2-6 are upstream patches or reverts to closer match upstream.
> Patch 7 is a SAUCE patch because it is not landed upstream yet, but
> will be needed for patch 2-6 to work properly.  If the Thunderbolt
> CM doesn't hand off resources, amdgpu can't possibly re-use them.
> 
> For this whole flow to work an updated AMDGPU DMCUB firmware is also
> needed.  This is already in process as part of:
> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922
> 
> v1->v2:
> * Fixup [1/4], it didn't work due to a contextual error
> * Add a revert of a stable patch before previous patch [3/4] applied
>    so that it can re-apply cleanly.
> * Add missing dependencies for patch [3/4] to allow applying cleanly
> * Re-apply revert commit
> 
> Mario Limonciello (2):
>    UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
>    Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"
> 
> Meenakshikumar Somasundaram (1):
>    drm/amd/display: Fix for dmub outbox notification enable
> 
> Nicholas Kazlauskas (2):
>    drm/amd/display: Reset link encoder assignments for GPU reset
>    drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
> 
> Sanjay R Mehta (1):
>    UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
>      discovered.
> 
> Stylon Wang (1):
>    drm/amd/display: Fix new dmub notification enabling in DM
> 
>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
>   drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
>   drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
>   .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
>   .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
>   drivers/thunderbolt/tb.c                      | 15 +++++
>   drivers/thunderbolt/tb.h                      |  1 +
>   drivers/thunderbolt/tunnel.c                  |  2 +
>   11 files changed, 133 insertions(+), 33 deletions(-)
> 

Applied to jammy:linux/master-next. Thanks.

-Stefan
Mario Limonciello Aug. 5, 2022, 2:39 p.m. UTC | #7
On 8/5/2022 09:32, Stefan Bader wrote:
> On 02.08.22 20:11, Mario Limonciello wrote:
>> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143
>>
>> When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
>> port on AMD Yellow Carp (Rembrandt) a software connection manager works
>> with the hardware to initialize tunnels.
>>
>> One of those tunnels is for DP (display port). It was observed that
>> on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
>> specifically when connecting to a Thunderbolt monitor fails.
>> This circumstance does not happen on OEM-5.17 or mainline kernels.
>>
>> This is due to a backport error on the USB4 patch series that went
>> into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
>> series corrects that error as minimally as possible as a SAUCE patch.
>>
>> It was also observed that DP tunneling is not working for Thunderbolt
>> monitor connected at boot, but this is a different root cause.
>> The "Pre-OS" connection manager creates DP tunnels that are expected
>> to be re-used by the OS connection manager. The remaining patches in
>> this series enable this flow.
>>
>> Patches 2-6 are upstream patches or reverts to closer match upstream.
>> Patch 7 is a SAUCE patch because it is not landed upstream yet, but
>> will be needed for patch 2-6 to work properly.  If the Thunderbolt
>> CM doesn't hand off resources, amdgpu can't possibly re-use them.
>>
>> For this whole flow to work an updated AMDGPU DMCUB firmware is also
>> needed.  This is already in process as part of:
>> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922
>>
>> v1->v2:
>> * Fixup [1/4], it didn't work due to a contextual error
>> * Add a revert of a stable patch before previous patch [3/4] applied
>>    so that it can re-apply cleanly.
>> * Add missing dependencies for patch [3/4] to allow applying cleanly
>> * Re-apply revert commit
>>
>> Mario Limonciello (2):
>>    UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
>>    Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"
>>
>> Meenakshikumar Somasundaram (1):
>>    drm/amd/display: Fix for dmub outbox notification enable
>>
>> Nicholas Kazlauskas (2):
>>    drm/amd/display: Reset link encoder assignments for GPU reset
>>    drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
>>
>> Sanjay R Mehta (1):
>>    UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
>>      discovered.
>>
>> Stylon Wang (1):
>>    drm/amd/display: Fix new dmub notification enabling in DM
>>
>>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
>>   drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
>>   drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
>>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
>>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
>>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
>>   .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
>>   .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
>>   drivers/thunderbolt/tb.c                      | 15 +++++
>>   drivers/thunderbolt/tb.h                      |  1 +
>>   drivers/thunderbolt/tunnel.c                  |  2 +
>>   11 files changed, 133 insertions(+), 33 deletions(-)
>>
> 
> Applied to jammy:linux/master-next. Thanks.

Thx.

KH - are these needed still for OEM-5.14 too?  Or will it EOL before 
needed there?


> 
> -Stefan
>
Timo Aaltonen Aug. 12, 2022, 6:27 a.m. UTC | #8
Mario Limonciello kirjoitti 2.8.2022 klo 21.11:
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143
> 
> When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
> port on AMD Yellow Carp (Rembrandt) a software connection manager works
> with the hardware to initialize tunnels.
> 
> One of those tunnels is for DP (display port). It was observed that
> on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
> specifically when connecting to a Thunderbolt monitor fails.
> This circumstance does not happen on OEM-5.17 or mainline kernels.
> 
> This is due to a backport error on the USB4 patch series that went
> into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
> series corrects that error as minimally as possible as a SAUCE patch.
> 
> It was also observed that DP tunneling is not working for Thunderbolt
> monitor connected at boot, but this is a different root cause.
> The "Pre-OS" connection manager creates DP tunnels that are expected
> to be re-used by the OS connection manager. The remaining patches in
> this series enable this flow.
> 
> Patches 2-6 are upstream patches or reverts to closer match upstream.
> Patch 7 is a SAUCE patch because it is not landed upstream yet, but
> will be needed for patch 2-6 to work properly.  If the Thunderbolt
> CM doesn't hand off resources, amdgpu can't possibly re-use them.
> 
> For this whole flow to work an updated AMDGPU DMCUB firmware is also
> needed.  This is already in process as part of:
> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922
> 
> v1->v2:
> * Fixup [1/4], it didn't work due to a contextual error
> * Add a revert of a stable patch before previous patch [3/4] applied
>    so that it can re-apply cleanly.
> * Add missing dependencies for patch [3/4] to allow applying cleanly
> * Re-apply revert commit
> 
> Mario Limonciello (2):
>    UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
>    Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"
> 
> Meenakshikumar Somasundaram (1):
>    drm/amd/display: Fix for dmub outbox notification enable
> 
> Nicholas Kazlauskas (2):
>    drm/amd/display: Reset link encoder assignments for GPU reset
>    drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
> 
> Sanjay R Mehta (1):
>    UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
>      discovered.
> 
> Stylon Wang (1):
>    drm/amd/display: Fix new dmub notification enabling in DM
> 
>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
>   drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
>   drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
>   .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
>   .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
>   drivers/thunderbolt/tb.c                      | 15 +++++
>   drivers/thunderbolt/tb.h                      |  1 +
>   drivers/thunderbolt/tunnel.c                  |  2 +
>   11 files changed, 133 insertions(+), 33 deletions(-)
> 

applied to oem-5.14, thanks
Timo Aaltonen Aug. 12, 2022, 6:30 a.m. UTC | #9
and now with the subject fixed

Timo Aaltonen kirjoitti 12.8.2022 klo 9.27:
> Mario Limonciello kirjoitti 2.8.2022 klo 21.11:
>> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1983143
>>
>> When a Thunderbolt monitor or Thunderbolt dock are connected to a USB4
>> port on AMD Yellow Carp (Rembrandt) a software connection manager works
>> with the hardware to initialize tunnels.
>>
>> One of those tunnels is for DP (display port). It was observed that
>> on both the OEM-5.14 as well as Jammy-5.15 kernel that DP tunneling
>> specifically when connecting to a Thunderbolt monitor fails.
>> This circumstance does not happen on OEM-5.17 or mainline kernels.
>>
>> This is due to a backport error on the USB4 patch series that went
>> into OEM-5.14 and moved forward to Jammy-5.15.  Patch 1/7 in this
>> series corrects that error as minimally as possible as a SAUCE patch.
>>
>> It was also observed that DP tunneling is not working for Thunderbolt
>> monitor connected at boot, but this is a different root cause.
>> The "Pre-OS" connection manager creates DP tunnels that are expected
>> to be re-used by the OS connection manager. The remaining patches in
>> this series enable this flow.
>>
>> Patches 2-6 are upstream patches or reverts to closer match upstream.
>> Patch 7 is a SAUCE patch because it is not landed upstream yet, but
>> will be needed for patch 2-6 to work properly.  If the Thunderbolt
>> CM doesn't hand off resources, amdgpu can't possibly re-use them.
>>
>> For this whole flow to work an updated AMDGPU DMCUB firmware is also
>> needed.  This is already in process as part of:
>> https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1981922
>>
>> v1->v2:
>> * Fixup [1/4], it didn't work due to a contextual error
>> * Add a revert of a stable patch before previous patch [3/4] applied
>>    so that it can re-apply cleanly.
>> * Add missing dependencies for patch [3/4] to allow applying cleanly
>> * Re-apply revert commit
>>
>> Mario Limonciello (2):
>>    UBUNTU: SAUCE: drm/amd: Fix DP Tunneling with Thunderbolt monitors
>>    Revert "drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset"
>>
>> Meenakshikumar Somasundaram (1):
>>    drm/amd/display: Fix for dmub outbox notification enable
>>
>> Nicholas Kazlauskas (2):
>>    drm/amd/display: Reset link encoder assignments for GPU reset
>>    drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset
>>
>> Sanjay R Mehta (1):
>>    UBUNTU: SAUCE: thunderbolt: Add DP out resource when DP tunnel is
>>      discovered.
>>
>> Stylon Wang (1):
>>    drm/amd/display: Fix new dmub notification enabling in DM
>>
>>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 +++++++++--
>>   drivers/gpu/drm/amd/display/dc/core/dc.c      | 66 +++++++++++++++++--
>>   drivers/gpu/drm/amd/display/dc/dc.h           |  3 +
>>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.c  | 25 +++----
>>   .../gpu/drm/amd/display/dc/dce/dmub_outbox.h  |  4 +-
>>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |  4 --
>>   .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |  5 +-
>>   .../drm/amd/display/dc/dcn31/dcn31_hwseq.c    |  2 +-
>>   drivers/thunderbolt/tb.c                      | 15 +++++
>>   drivers/thunderbolt/tb.h                      |  1 +
>>   drivers/thunderbolt/tunnel.c                  |  2 +
>>   11 files changed, 133 insertions(+), 33 deletions(-)
>>
> 
> applied to oem-5.14, thanks
>