|
@@ -991,6 +991,22 @@ out:
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
+static void gfx_v7_0_free_microcode(struct amdgpu_device *adev)
|
|
|
+{
|
|
|
+ release_firmware(adev->gfx.pfp_fw);
|
|
|
+ adev->gfx.pfp_fw = NULL;
|
|
|
+ release_firmware(adev->gfx.me_fw);
|
|
|
+ adev->gfx.me_fw = NULL;
|
|
|
+ release_firmware(adev->gfx.ce_fw);
|
|
|
+ adev->gfx.ce_fw = NULL;
|
|
|
+ release_firmware(adev->gfx.mec_fw);
|
|
|
+ adev->gfx.mec_fw = NULL;
|
|
|
+ release_firmware(adev->gfx.mec2_fw);
|
|
|
+ adev->gfx.mec2_fw = NULL;
|
|
|
+ release_firmware(adev->gfx.rlc_fw);
|
|
|
+ adev->gfx.rlc_fw = NULL;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* gfx_v7_0_tiling_mode_table_init - init the hw tiling table
|
|
|
*
|
|
@@ -4489,6 +4505,7 @@ static int gfx_v7_0_sw_fini(void *handle)
|
|
|
gfx_v7_0_cp_compute_fini(adev);
|
|
|
gfx_v7_0_rlc_fini(adev);
|
|
|
gfx_v7_0_mec_fini(adev);
|
|
|
+ gfx_v7_0_free_microcode(adev);
|
|
|
|
|
|
return 0;
|
|
|
}
|