struct amdgpu_ring              sw_gfx_ring[AMDGPU_MAX_SW_GFX_RINGS];
        struct amdgpu_ring_mux          muxer;
 
+       bool                            cp_gfx_shadow; /* for gfx11 */
+
        enum amdgpu_gfx_partition       partition_mode;
        uint32_t                        num_xcd;
        uint32_t                        num_xcc_per_xcp;
 
        return err;
 }
 
+static void gfx_v11_0_check_fw_cp_gfx_shadow(struct amdgpu_device *adev)
+{
+       switch (adev->ip_versions[GC_HWIP][0]) {
+       case IP_VERSION(11, 0, 0):
+       case IP_VERSION(11, 0, 2):
+       case IP_VERSION(11, 0, 3):
+       default:
+               adev->gfx.cp_gfx_shadow = false;
+               break;
+       }
+}
+
 static int gfx_v11_0_init_microcode(struct amdgpu_device *adev)
 {
        char fw_name[40];
        /* only one MEC for gfx 11.0.0. */
        adev->gfx.mec2_fw = NULL;
 
+       gfx_v11_0_check_fw_cp_gfx_shadow(adev);
 out:
        if (err) {
                amdgpu_ucode_release(&adev->gfx.pfp_fw);