|
@@ -2299,9 +2299,13 @@ int r600_init_microcode(struct radeon_device *rdev)
|
|
|
if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_HEMLOCK)) {
|
|
|
snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", smc_chip_name);
|
|
|
err = request_firmware(&rdev->smc_fw, fw_name, rdev->dev);
|
|
|
- if (err)
|
|
|
- goto out;
|
|
|
- if (rdev->smc_fw->size != smc_req_size) {
|
|
|
+ if (err) {
|
|
|
+ printk(KERN_ERR
|
|
|
+ "smc: error loading firmware \"%s\"\n",
|
|
|
+ fw_name);
|
|
|
+ release_firmware(rdev->smc_fw);
|
|
|
+ rdev->smc_fw = NULL;
|
|
|
+ } else if (rdev->smc_fw->size != smc_req_size) {
|
|
|
printk(KERN_ERR
|
|
|
"smc: Bogus length %zu in firmware \"%s\"\n",
|
|
|
rdev->smc_fw->size, fw_name);
|