Patch "drm/radeon: update smc firmware selection for SI" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drm/radeon: update smc firmware selection for SI
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-radeon-update-smc-firmware-selection-for-si.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
6458bd4dfd9414cba5804eb9907fe2a824278c34Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Thu, 5 Jan 2017 12:15:52 -0500
Subject: drm/radeon: update smc firmware selection for SI
From: Alex Deucher <[email protected]>
commit 6458bd4dfd9414cba5804eb9907fe2a824278c34 upstream.
Use the appropriate smc firmware for each chip revision. Using the wrong one can cause stability issues.
--- drivers/gpu/drm/radeon/si.c | 60 ++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 32 deletions(-)
drivers/gpu/drm/radeon/si.c +28 -32
@@ -50,7 +50,6 @@ MODULE_FIRMWARE("radeon/tahiti_ce.bin");MODULE_FIRMWARE ("radeon/tahiti_mc.bin" );MODULE_FIRMWARE ("radeon/tahiti_rlc.bin" );MODULE_FIRMWARE ("radeon/tahiti_smc.bin" ); -MODULE_FIRMWARE ("radeon/tahiti_k_smc.bin" );MODULE_FIRMWARE ("radeon/PITCAIRN_pfp.bin" );MODULE_FIRMWARE ("radeon/PITCAIRN_me.bin" );
@@ -1657,9 +1656,6 @@ static int si_init_microcode(struct radeswitch (rdev->family) {case CHIP_TAHITI : chip_name ="TAHITI" ; -/* XXX: figure out which Tahitis need the new ucode */ -if (0 ) - new_smc = true; new_chip_name ="tahiti" ; pfp_req_size =SI_PFP_UCODE_SIZE *4 ; me_req_size =SI_PM4_UCODE_SIZE *4 ;
@@ -1671,12 +1667,9 @@ static int si_init_microcode(struct radebreak ;case CHIP_PITCAIRN : chip_name ="PITCAIRN" ; -if ((rdev->pdev->revision ==0x81 ) || - (rdev->pdev->device ==0x6810 ) || - (rdev->pdev->device ==0x6811 ) || - (rdev->pdev->device ==0x6816 ) || - (rdev->pdev->device ==0x6817 ) || - (rdev->pdev->device ==0x6806 )) +if ((rdev->pdev->revision ==0x81 ) && + ((rdev->pdev->device ==0x6810 ) || + (rdev->pdev->device ==0x6811 ))) new_smc = true; new_chip_name ="pitcairn" ; pfp_req_size =SI_PFP_UCODE_SIZE *4 ;
@@ -1689,15 +1682,15 @@ static int si_init_microcode(struct radebreak ;case CHIP_VERDE : chip_name ="VERDE" ; -if ((rdev->pdev->revision ==0x81 ) || - (rdev->pdev->revision ==0x83 ) || - (rdev->pdev->revision ==0x87 ) || - (rdev->pdev->device ==0x6820 ) || - (rdev->pdev->device ==0x6821 ) || - (rdev->pdev->device ==0x6822 ) || - (rdev->pdev->device ==0x6823 ) || - (rdev->pdev->device ==0x682A ) || - (rdev->pdev->device ==0x682B )) +if (((rdev->pdev->device ==0x6820 ) && + ((rdev->pdev->revision ==0x81 ) || + (rdev->pdev->revision ==0x83 ))) || + ((rdev->pdev->device ==0x6821 ) && + ((rdev->pdev->revision ==0x83 ) || + (rdev->pdev->revision ==0x87 ))) || + ((rdev->pdev->revision ==0x87 ) && + ((rdev->pdev->device ==0x6823 ) || + (rdev->pdev->device ==0x682b )))) new_smc = true; new_chip_name ="verde" ; pfp_req_size =SI_PFP_UCODE_SIZE *4 ;
@@ -1710,13 +1703,13 @@ static int si_init_microcode(struct radebreak ;case CHIP_OLAND : chip_name ="OLAND" ; -if ((rdev->pdev->revision ==0xC7 ) || - (rdev->pdev->revision ==0x80 ) || - (rdev->pdev->revision ==0x81 ) || - (rdev->pdev->revision ==0x83 ) || - (rdev->pdev->revision ==0x87 ) || - (rdev->pdev->device ==0x6604 ) || - (rdev->pdev->device ==0x6605 )) +if (((rdev->pdev->revision ==0x81 ) && + ((rdev->pdev->device ==0x6600 ) || + (rdev->pdev->device ==0x6604 ) || + (rdev->pdev->device ==0x6605 ) || + (rdev->pdev->device ==0x6610 ))) || + ((rdev->pdev->revision ==0x83 ) && + (rdev->pdev->device ==0x6610 ))) new_smc = true; new_chip_name ="oland" ; pfp_req_size =SI_PFP_UCODE_SIZE *4 ;
@@ -1728,12 +1721,15 @@ static int si_init_microcode(struct radebreak ;case CHIP_HAINAN : chip_name ="HAINAN" ; -if ((rdev->pdev->revision ==0x81 ) || - (rdev->pdev->revision ==0x83 ) || - (rdev->pdev->revision ==0xC3 ) || - (rdev->pdev->device ==0x6664 ) || - (rdev->pdev->device ==0x6665 ) || - (rdev->pdev->device ==0x6667 )) +if (((rdev->pdev->revision ==0x81 ) && + (rdev->pdev->device ==0x6660 )) || + ((rdev->pdev->revision ==0x83 ) && + ((rdev->pdev->device ==0x6660 ) || + (rdev->pdev->device ==0x6663 ) || + (rdev->pdev->device ==0x6665 ) || + (rdev->pdev->device ==0x6667 ))) || + ((rdev->pdev->revision ==0xc3 ) && + (rdev->pdev->device ==0x6665 ))) new_smc = true; new_chip_name ="hainan" ; pfp_req_size =SI_PFP_UCODE_SIZE *4 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/drm-amdgpu-update-si-kicker-smc-firmware.patch queue-4.9/drm-amdgpu-drop-verde-dpm-quirks.patch queue-4.9/drm-radeon-drop-verde-dpm-quirks.patch queue-4.9/drm-radeon-update-smc-firmware-selection-for-si.patch