Skip to contentSkip to conversation

drm/amd/display: Fully switch to dmub for all dcn21 asics

PATCH In review [email protected] 4 participants 7 messages Oct 15, 2021 – Oct 18, 2021

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drm/amd/display: Fully switch to dmub for all dcn21 asics

From: Roman Li <[email protected]>

[Why]
On renoir usb-c port stops functioning on resume after f/w update. New dmub firmware caused regression due to conflict with dmcu. With new dmub f/w dmcu is superseded and should be disabled.

[How]
- Disable dmcu for all dcn21.

Check dmesg for dmub f/w version.
The old firmware (before regression):
[drm] DMUB hardware initialized: version=0x00000001 All other versions require that patch for renoir.

---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -2
index ff54550..e56f73e 100644
@@ -1356,8 +1356,7 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
 		switch (adev->ip_versions[DCE_HWIP][0]) {
 		case IP_VERSION(2, 1, 0):
 			init_data.flags.gpu_vm_support = true;
-			if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id))
-				init_data.flags.disable_dmcu = true;
+			init_data.flags.disable_dmcu = true;
 			break;
 		case IP_VERSION(1, 0, 0):
 		case IP_VERSION(1, 0, 1):
Signature · 1 line
2.7.4
Acked-by on v1 1/1
#1 lore raw
Quoted 11 lines · On Fri, Oct 15, 2021 at 6:33 PM <[email protected]> wrote:

From: Roman Li <[email protected]>

[Why]
On renoir usb-c port stops functioning on resume after f/w update. New dmub firmware caused regression due to conflict with dmcu. With new dmub f/w dmcu is superseded and should be disabled.

[How]
- Disable dmcu for all dcn21.

Quoted 8 lines

Check dmesg for dmub f/w version.
The old firmware (before regression):
[drm] DMUB hardware initialized: version=0x00000001 All other versions require that patch for renoir.

Quoted 21 lines
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -3
index ff54550..e56f73e 100644
@@ -1356,8 +1356,7 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
                switch (adev->ip_versions[DCE_HWIP][0]) {
                case IP_VERSION(2, 1, 0):
                        init_data.flags.gpu_vm_support = true;
-                       if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id))
-                               init_data.flags.disable_dmcu = true;
+                       init_data.flags.disable_dmcu = true;
                        break;
                case IP_VERSION(1, 0, 0):
                case IP_VERSION(1, 0, 1):
--

2.7.4

maintainer Reviewed-by on v1 1/1
#2 lore raw
In reply to [email protected]
Quoted 10 lines · On 2021-10-15 18:31, [email protected] wrote:

From: Roman Li <[email protected]>

[Why]
On renoir usb-c port stops functioning on resume after f/w update. New dmub firmware caused regression due to conflict with dmcu. With new dmub f/w dmcu is superseded and should be disabled.

[How]
- Disable dmcu for all dcn21.

Quoted 8 lines

Check dmesg for dmub f/w version.
The old firmware (before regression):
[drm] DMUB hardware initialized: version=0x00000001 All other versions require that patch for renoir.

Harry

Quoted 19 lines
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -2
index ff54550..e56f73e 100644
@@ -1356,8 +1356,7 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
 		switch (adev->ip_versions[DCE_HWIP][0]) {
 		case IP_VERSION(2, 1, 0):
 			init_data.flags.gpu_vm_support = true;
-			if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id))
-				init_data.flags.disable_dmcu = true;
+			init_data.flags.disable_dmcu = true;
 			break;
 		case IP_VERSION(1, 0, 0):
 		case IP_VERSION(1, 0, 1):
#3 lore raw
Quoted 16 lines · Harry Wentland
Quoted 15 lines · On 2021-10-15 18:31, [email protected] wrote:

From: Roman Li <[email protected]>

[Why]
On renoir usb-c port stops functioning on resume after f/w update. New dmub firmware caused regression due to conflict with dmcu. With new dmub f/w dmcu is superseded and should be disabled.

[How]
- Disable dmcu for all dcn21.

Check dmesg for dmub f/w version.
The old firmware (before regression):
[drm] DMUB hardware initialized: version=0x00000001 All other versions require that patch for renoir.

Quoted 5 lines
Quoted 3 lines
Quoted 23 lines

Harry

Quoted 19 lines
---
  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -2
index ff54550..e56f73e 100644
@@ -1356,8 +1356,7 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
  		switch (adev->ip_versions[DCE_HWIP][0]) {
  		case IP_VERSION(2, 1, 0):
  			init_data.flags.gpu_vm_support = true;
-			if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id))
-				init_data.flags.disable_dmcu = true;
+			init_data.flags.disable_dmcu = true;
  			break;
  		case IP_VERSION(1, 0, 0):
  		case IP_VERSION(1, 0, 1):
#4 lore raw
In reply to [email protected]
Quoted 10 lines · On 10/15/2021 17:31, [email protected] wrote:

From: Roman Li <[email protected]>

[Why]
On renoir usb-c port stops functioning on resume after f/w update. New dmub firmware caused regression due to conflict with dmcu. With new dmub f/w dmcu is superseded and should be disabled.

[How]
- Disable dmcu for all dcn21.

Quoted 7 lines

Check dmesg for dmub f/w version.
The old firmware (before regression):
[drm] DMUB hardware initialized: version=0x00000001 All other versions require that patch for renoir.

This won't backport cleanly to stable 5.15 and earlier don't use IP version to detect the chip.

Also - a question: *should* this go to stable? If a user has the older FW what happens with this change?

Quoted 20 lines
---
  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -2
index ff54550..e56f73e 100644
@@ -1356,8 +1356,7 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
  		switch (adev->ip_versions[DCE_HWIP][0]) {
  		case IP_VERSION(2, 1, 0):
  			init_data.flags.gpu_vm_support = true;
-			if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id))
-				init_data.flags.disable_dmcu = true;
+			init_data.flags.disable_dmcu = true;
  			break;
  		case IP_VERSION(1, 0, 0):
  		case IP_VERSION(1, 0, 1):
maintainer
#5 lore raw
Quoted 16 lines · Mario
Quoted 15 lines · On 10/15/2021 17:31, [email protected] wrote:

From: Roman Li <[email protected]>

[Why]
On renoir usb-c port stops functioning on resume after f/w update. New dmub firmware caused regression due to conflict with dmcu. With new dmub f/w dmcu is superseded and should be disabled.

[How]
- Disable dmcu for all dcn21.

Check dmesg for dmub f/w version.
The old firmware (before regression):
[drm] DMUB hardware initialized: version=0x00000001 All other versions require that patch for renoir.

Quoted 6 lines
Quoted 1 line

This won't backport cleanly to stable 5.15 and earlier don't use IP version to detect the chip.

Also - a question: *should* this go to stable?  If a user has the older FW what happens with this change?

Good point. Might be better of we drop Cc: stable from this patch

Harry

Quoted 21 lines
Quoted 20 lines

---
  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--

  1 file changed, 1 insertion(+), 2 deletions(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +0 -0
index ff54550..e56f73e 100644
@@ -1356,8 +1356,7 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
           switch (adev->ip_versions[DCE_HWIP][0]) {

          case IP_VERSION(2, 1, 0):
              init_data.flags.gpu_vm_support = true;
-            if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id)) -                init_data.flags.disable_dmcu = true;
+            init_data.flags.disable_dmcu = true; break;
          case IP_VERSION(1, 0, 0):
          case IP_VERSION(1, 0, 1):

author
#6 lore raw

[Public]

Quoted 35 lines

-----Original Message-----
From: Wentland, Harry <[email protected]>
Sent: Monday, October 18, 2021 9:57 AM
To: Limonciello, Mario <[email protected]>; Li, Roman <[email protected]>; [email protected]; Deucher, Alexander <[email protected]>; Siqueira, Rodrigo <[email protected]>
Cc: [email protected]
Subject: Re: [PATCH] drm/amd/display: Fully switch to dmub for all dcn21 asics

Quoted 16 lines · Mario
Quoted 15 lines · On 10/15/2021 17:31, [email protected] wrote:

From: Roman Li <[email protected]>

[Why]
On renoir usb-c port stops functioning on resume after f/w update. New dmub firmware caused regression due to conflict with dmcu. With new dmub f/w dmcu is superseded and should be disabled.

[How]
- Disable dmcu for all dcn21.

Check dmesg for dmub f/w version.
The old firmware (before regression):
[drm] DMUB hardware initialized: version=0x00000001 All other versions require that patch for renoir.

Quoted 4 lines
Quoted 2 lines

[email protected]

This won't backport cleanly to stable 5.15 and earlier don't use IP version to

detect the chip.

Quoted 1 line
Quoted 7 lines
Quoted 1 line

Also - a question: *should* this go to stable? If a user has the older FW what

happens with this change?

Quoted 1 line

Good point. Might be better of we drop Cc: stable from this patch

Harry

I will drop Cc: [email protected], thank you Mario and Harry.
- Roman

Quoted 23 lines
Quoted 23 lines
Quoted 22 lines
---
  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -2
index ff54550..e56f73e 100644
@@ -1356,8 +1356,7 @@ static int amdgpu_dm_init(struct amdgpu_device
 *adev)
          switch (adev->ip_versions[DCE_HWIP][0]) {
          case IP_VERSION(2, 1, 0):
              init_data.flags.gpu_vm_support = true;
-            if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id))
-                init_data.flags.disable_dmcu = true;
+            init_data.flags.disable_dmcu = true;
              break;
          case IP_VERSION(1, 0, 0):
          case IP_VERSION(1, 0, 1):