Skip to content

Commit c82b38e

Browse files
Jiansong Chenalexdeucher
authored andcommitted
drm/amdgpu: add psp support for navy_flounder
Currently skip ASD FW loading and ih reroute per sienna_cichlid. Signed-off-by: Jiansong Chen <[email protected]> Reviewed-by: Tao Zhou <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent f4497d1 commit c82b38e

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ static int psp_early_init(void *handle)
9999
case CHIP_NAVI14:
100100
case CHIP_NAVI12:
101101
case CHIP_SIENNA_CICHLID:
102+
case CHIP_NAVY_FLOUNDER:
102103
psp_v11_0_set_psp_funcs(psp);
103104
psp->autoload_supported = true;
104105
break;
@@ -498,7 +499,9 @@ static int psp_asd_load(struct psp_context *psp)
498499
* add workaround to bypass it for sriov now.
499500
* TODO: add version check to make it common
500501
*/
501-
if (amdgpu_sriov_vf(psp->adev) || (psp->adev->asic_type == CHIP_SIENNA_CICHLID))
502+
if (amdgpu_sriov_vf(psp->adev) ||
503+
(psp->adev->asic_type == CHIP_SIENNA_CICHLID) ||
504+
(psp->adev->asic_type == CHIP_NAVY_FLOUNDER))
502505
return 0;
503506

504507
cmd = kzalloc(sizeof(struct psp_gfx_cmd_resp), GFP_KERNEL);
@@ -1763,7 +1766,8 @@ static int psp_np_fw_load(struct psp_context *psp)
17631766
continue;
17641767

17651768
if (psp->autoload_supported &&
1766-
adev->asic_type == CHIP_SIENNA_CICHLID &&
1769+
(adev->asic_type == CHIP_SIENNA_CICHLID ||
1770+
adev->asic_type == CHIP_NAVY_FLOUNDER) &&
17671771
(ucode->ucode_id == AMDGPU_UCODE_ID_SDMA1 ||
17681772
ucode->ucode_id == AMDGPU_UCODE_ID_SDMA2 ||
17691773
ucode->ucode_id == AMDGPU_UCODE_ID_SDMA3))

drivers/gpu/drm/amd/amdgpu/psp_v11_0.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ MODULE_FIRMWARE("amdgpu/arcturus_asd.bin");
5757
MODULE_FIRMWARE("amdgpu/arcturus_ta.bin");
5858
MODULE_FIRMWARE("amdgpu/sienna_cichlid_sos.bin");
5959
MODULE_FIRMWARE("amdgpu/sienna_cichlid_asd.bin");
60+
MODULE_FIRMWARE("amdgpu/navy_flounder_sos.bin");
61+
MODULE_FIRMWARE("amdgpu/navy_flounder_asd.bin");
6062

6163
/* address block */
6264
#define smnMP1_FIRMWARE_FLAGS 0x3010024
@@ -100,6 +102,9 @@ static int psp_v11_0_init_microcode(struct psp_context *psp)
100102
case CHIP_SIENNA_CICHLID:
101103
chip_name = "sienna_cichlid";
102104
break;
105+
case CHIP_NAVY_FLOUNDER:
106+
chip_name = "navy_flounder";
107+
break;
103108
default:
104109
BUG();
105110
}
@@ -108,7 +113,8 @@ static int psp_v11_0_init_microcode(struct psp_context *psp)
108113
if (err)
109114
return err;
110115

111-
if (adev->asic_type != CHIP_SIENNA_CICHLID) {
116+
if (adev->asic_type != CHIP_SIENNA_CICHLID &&
117+
adev->asic_type != CHIP_NAVY_FLOUNDER) {
112118
err = psp_init_asd_microcode(psp, chip_name);
113119
if (err)
114120
return err;
@@ -173,6 +179,7 @@ static int psp_v11_0_init_microcode(struct psp_context *psp)
173179
}
174180
break;
175181
case CHIP_SIENNA_CICHLID:
182+
case CHIP_NAVY_FLOUNDER:
176183
break;
177184
default:
178185
BUG();
@@ -397,7 +404,8 @@ static int psp_v11_0_ring_init(struct psp_context *psp,
397404
struct amdgpu_device *adev = psp->adev;
398405

399406
if ((!amdgpu_sriov_vf(adev)) &&
400-
(adev->asic_type != CHIP_SIENNA_CICHLID))
407+
(adev->asic_type != CHIP_SIENNA_CICHLID) &&
408+
(adev->asic_type != CHIP_NAVY_FLOUNDER))
401409
psp_v11_0_reroute_ih(psp);
402410

403411
ring = &psp->km_ring;

0 commit comments

Comments
 (0)