aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r600.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/r600.c')
-rw-r--r--drivers/gpu/drm/radeon/r600.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index a27d746386ae..2d3655f7f41e 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -70,15 +70,19 @@ MODULE_FIRMWARE("radeon/R700_rlc.bin");
70MODULE_FIRMWARE("radeon/CEDAR_pfp.bin"); 70MODULE_FIRMWARE("radeon/CEDAR_pfp.bin");
71MODULE_FIRMWARE("radeon/CEDAR_me.bin"); 71MODULE_FIRMWARE("radeon/CEDAR_me.bin");
72MODULE_FIRMWARE("radeon/CEDAR_rlc.bin"); 72MODULE_FIRMWARE("radeon/CEDAR_rlc.bin");
73MODULE_FIRMWARE("radeon/CEDAR_smc.bin");
73MODULE_FIRMWARE("radeon/REDWOOD_pfp.bin"); 74MODULE_FIRMWARE("radeon/REDWOOD_pfp.bin");
74MODULE_FIRMWARE("radeon/REDWOOD_me.bin"); 75MODULE_FIRMWARE("radeon/REDWOOD_me.bin");
75MODULE_FIRMWARE("radeon/REDWOOD_rlc.bin"); 76MODULE_FIRMWARE("radeon/REDWOOD_rlc.bin");
77MODULE_FIRMWARE("radeon/REDWOOD_smc.bin");
76MODULE_FIRMWARE("radeon/JUNIPER_pfp.bin"); 78MODULE_FIRMWARE("radeon/JUNIPER_pfp.bin");
77MODULE_FIRMWARE("radeon/JUNIPER_me.bin"); 79MODULE_FIRMWARE("radeon/JUNIPER_me.bin");
78MODULE_FIRMWARE("radeon/JUNIPER_rlc.bin"); 80MODULE_FIRMWARE("radeon/JUNIPER_rlc.bin");
81MODULE_FIRMWARE("radeon/JUNIPER_smc.bin");
79MODULE_FIRMWARE("radeon/CYPRESS_pfp.bin"); 82MODULE_FIRMWARE("radeon/CYPRESS_pfp.bin");
80MODULE_FIRMWARE("radeon/CYPRESS_me.bin"); 83MODULE_FIRMWARE("radeon/CYPRESS_me.bin");
81MODULE_FIRMWARE("radeon/CYPRESS_rlc.bin"); 84MODULE_FIRMWARE("radeon/CYPRESS_rlc.bin");
85MODULE_FIRMWARE("radeon/CYPRESS_smc.bin");
82MODULE_FIRMWARE("radeon/PALM_pfp.bin"); 86MODULE_FIRMWARE("radeon/PALM_pfp.bin");
83MODULE_FIRMWARE("radeon/PALM_me.bin"); 87MODULE_FIRMWARE("radeon/PALM_me.bin");
84MODULE_FIRMWARE("radeon/SUMO_rlc.bin"); 88MODULE_FIRMWARE("radeon/SUMO_rlc.bin");
@@ -2214,19 +2218,27 @@ int r600_init_microcode(struct radeon_device *rdev)
2214 case CHIP_CEDAR: 2218 case CHIP_CEDAR:
2215 chip_name = "CEDAR"; 2219 chip_name = "CEDAR";
2216 rlc_chip_name = "CEDAR"; 2220 rlc_chip_name = "CEDAR";
2221 smc_chip_name = "CEDAR";
2222 smc_req_size = ALIGN(CEDAR_SMC_UCODE_SIZE, 4);
2217 break; 2223 break;
2218 case CHIP_REDWOOD: 2224 case CHIP_REDWOOD:
2219 chip_name = "REDWOOD"; 2225 chip_name = "REDWOOD";
2220 rlc_chip_name = "REDWOOD"; 2226 rlc_chip_name = "REDWOOD";
2227 smc_chip_name = "REDWOOD";
2228 smc_req_size = ALIGN(REDWOOD_SMC_UCODE_SIZE, 4);
2221 break; 2229 break;
2222 case CHIP_JUNIPER: 2230 case CHIP_JUNIPER:
2223 chip_name = "JUNIPER"; 2231 chip_name = "JUNIPER";
2224 rlc_chip_name = "JUNIPER"; 2232 rlc_chip_name = "JUNIPER";
2233 smc_chip_name = "JUNIPER";
2234 smc_req_size = ALIGN(JUNIPER_SMC_UCODE_SIZE, 4);
2225 break; 2235 break;
2226 case CHIP_CYPRESS: 2236 case CHIP_CYPRESS:
2227 case CHIP_HEMLOCK: 2237 case CHIP_HEMLOCK:
2228 chip_name = "CYPRESS"; 2238 chip_name = "CYPRESS";
2229 rlc_chip_name = "CYPRESS"; 2239 rlc_chip_name = "CYPRESS";
2240 smc_chip_name = "CYPRESS";
2241 smc_req_size = ALIGN(CYPRESS_SMC_UCODE_SIZE, 4);
2230 break; 2242 break;
2231 case CHIP_PALM: 2243 case CHIP_PALM:
2232 chip_name = "PALM"; 2244 chip_name = "PALM";
@@ -2293,7 +2305,7 @@ int r600_init_microcode(struct radeon_device *rdev)
2293 err = -EINVAL; 2305 err = -EINVAL;
2294 } 2306 }
2295 2307
2296 if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_RV740)) { 2308 if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_HEMLOCK)) {
2297 snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", smc_chip_name); 2309 snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", smc_chip_name);
2298 err = request_firmware(&rdev->smc_fw, fw_name, &pdev->dev); 2310 err = request_firmware(&rdev->smc_fw, fw_name, &pdev->dev);
2299 if (err) 2311 if (err)