int i, j;
        u32 data;
        u32 active_rbs = 0;
+       u32 bitmap;
        u32 rb_bitmap_width_per_sh = adev->gfx.config.max_backends_per_se /
                                        adev->gfx.config.max_sh_per_se;
 
        mutex_lock(&adev->grbm_idx_mutex);
        for (i = 0; i < adev->gfx.config.max_shader_engines; i++) {
                for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) {
+                       bitmap = i * adev->gfx.config.max_sh_per_se + j;
+                       if ((adev->asic_type == CHIP_SIENNA_CICHLID) &&
+                           ((gfx_v10_3_get_disabled_sa(adev) >> bitmap) & 1))
+                               continue;
                        gfx_v10_0_select_se_sh(adev, i, j, 0xffffffff);
                        data = gfx_v10_0_get_rb_active_bitmap(adev);
                        active_rbs |= data << ((i * adev->gfx.config.max_sh_per_se + j) *
        mutex_lock(&adev->grbm_idx_mutex);
        for (i = 0; i < adev->gfx.config.max_shader_engines; i++) {
                for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) {
+                       bitmap = i * adev->gfx.config.max_sh_per_se + j;
+                       if ((adev->asic_type == CHIP_SIENNA_CICHLID) &&
+                           ((gfx_v10_3_get_disabled_sa(adev) >> bitmap) & 1))
+                               continue;
                        mask = 1;
                        ao_bitmap = 0;
                        counter = 0;