cik.c (1e9a328e4b35af22c23ce9357c2c2a77159e74bb) cik.c (4c0ab318a18b86b80f604410e8ed10bb59f0d7eb)
1/*
2 * Copyright 2012 Advanced Micro Devices, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the

--- 1613 unchanged lines hidden (view full) ---

1622 0x88c4, 0x001f3ae3, 0x00000082,
1623 0x88d4, 0x0000001f, 0x00000010,
1624 0x30934, 0xffffffff, 0x00000000
1625};
1626
1627
1628static void cik_init_golden_registers(struct radeon_device *rdev)
1629{
1/*
2 * Copyright 2012 Advanced Micro Devices, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the

--- 1613 unchanged lines hidden (view full) ---

1622 0x88c4, 0x001f3ae3, 0x00000082,
1623 0x88d4, 0x0000001f, 0x00000010,
1624 0x30934, 0xffffffff, 0x00000000
1625};
1626
1627
1628static void cik_init_golden_registers(struct radeon_device *rdev)
1629{
1630 /* Some of the registers might be dependent on GRBM_GFX_INDEX */
1631 mutex_lock(&rdev->grbm_idx_mutex);
1632 switch (rdev->family) {
1633 case CHIP_BONAIRE:
1634 radeon_program_register_sequence(rdev,
1635 bonaire_mgcg_cgcg_init,
1636 (const u32)ARRAY_SIZE(bonaire_mgcg_cgcg_init));
1637 radeon_program_register_sequence(rdev,
1638 bonaire_golden_registers,
1639 (const u32)ARRAY_SIZE(bonaire_golden_registers));

--- 58 unchanged lines hidden (view full) ---

1698 (const u32)ARRAY_SIZE(hawaii_golden_common_registers));
1699 radeon_program_register_sequence(rdev,
1700 hawaii_golden_spm_registers,
1701 (const u32)ARRAY_SIZE(hawaii_golden_spm_registers));
1702 break;
1703 default:
1704 break;
1705 }
1630 switch (rdev->family) {
1631 case CHIP_BONAIRE:
1632 radeon_program_register_sequence(rdev,
1633 bonaire_mgcg_cgcg_init,
1634 (const u32)ARRAY_SIZE(bonaire_mgcg_cgcg_init));
1635 radeon_program_register_sequence(rdev,
1636 bonaire_golden_registers,
1637 (const u32)ARRAY_SIZE(bonaire_golden_registers));

--- 58 unchanged lines hidden (view full) ---

1696 (const u32)ARRAY_SIZE(hawaii_golden_common_registers));
1697 radeon_program_register_sequence(rdev,
1698 hawaii_golden_spm_registers,
1699 (const u32)ARRAY_SIZE(hawaii_golden_spm_registers));
1700 break;
1701 default:
1702 break;
1703 }
1706 mutex_unlock(&rdev->grbm_idx_mutex);
1707}
1708
1709/**
1710 * cik_get_xclk - get the xclk
1711 *
1712 * @rdev: radeon_device pointer
1713 *
1714 * Returns the reference clock used by the gfx engine

--- 1400 unchanged lines hidden (view full) ---

3115 u32 se_num, u32 sh_per_se,
3116 u32 max_rb_num_per_se)
3117{
3118 int i, j;
3119 u32 data, mask;
3120 u32 disabled_rbs = 0;
3121 u32 enabled_rbs = 0;
3122
1704}
1705
1706/**
1707 * cik_get_xclk - get the xclk
1708 *
1709 * @rdev: radeon_device pointer
1710 *
1711 * Returns the reference clock used by the gfx engine

--- 1400 unchanged lines hidden (view full) ---

3112 u32 se_num, u32 sh_per_se,
3113 u32 max_rb_num_per_se)
3114{
3115 int i, j;
3116 u32 data, mask;
3117 u32 disabled_rbs = 0;
3118 u32 enabled_rbs = 0;
3119
3123 mutex_lock(&rdev->grbm_idx_mutex);
3124 for (i = 0; i < se_num; i++) {
3125 for (j = 0; j < sh_per_se; j++) {
3126 cik_select_se_sh(rdev, i, j);
3127 data = cik_get_rb_disabled(rdev, max_rb_num_per_se, sh_per_se);
3128 if (rdev->family == CHIP_HAWAII)
3129 disabled_rbs |= data << ((i * sh_per_se + j) * HAWAII_RB_BITMAP_WIDTH_PER_SH);
3130 else
3131 disabled_rbs |= data << ((i * sh_per_se + j) * CIK_RB_BITMAP_WIDTH_PER_SH);
3132 }
3133 }
3134 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
3120 for (i = 0; i < se_num; i++) {
3121 for (j = 0; j < sh_per_se; j++) {
3122 cik_select_se_sh(rdev, i, j);
3123 data = cik_get_rb_disabled(rdev, max_rb_num_per_se, sh_per_se);
3124 if (rdev->family == CHIP_HAWAII)
3125 disabled_rbs |= data << ((i * sh_per_se + j) * HAWAII_RB_BITMAP_WIDTH_PER_SH);
3126 else
3127 disabled_rbs |= data << ((i * sh_per_se + j) * CIK_RB_BITMAP_WIDTH_PER_SH);
3128 }
3129 }
3130 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
3135 mutex_unlock(&rdev->grbm_idx_mutex);
3136
3137 mask = 1;
3138 for (i = 0; i < max_rb_num_per_se * se_num; i++) {
3139 if (!(disabled_rbs & mask))
3140 enabled_rbs |= mask;
3141 mask <<= 1;
3142 }
3143
3144 rdev->config.cik.backend_enable_mask = enabled_rbs;
3145
3131
3132 mask = 1;
3133 for (i = 0; i < max_rb_num_per_se * se_num; i++) {
3134 if (!(disabled_rbs & mask))
3135 enabled_rbs |= mask;
3136 mask <<= 1;
3137 }
3138
3139 rdev->config.cik.backend_enable_mask = enabled_rbs;
3140
3146 mutex_lock(&rdev->grbm_idx_mutex);
3147 for (i = 0; i < se_num; i++) {
3148 cik_select_se_sh(rdev, i, 0xffffffff);
3149 data = 0;
3150 for (j = 0; j < sh_per_se; j++) {
3151 switch (enabled_rbs & 3) {
3152 case 0:
3153 if (j == 0)
3154 data |= PKR_MAP(RASTER_CONFIG_RB_MAP_3);

--- 11 unchanged lines hidden (view full) ---

3166 data |= (RASTER_CONFIG_RB_MAP_2 << (i * sh_per_se + j) * 2);
3167 break;
3168 }
3169 enabled_rbs >>= 2;
3170 }
3171 WREG32(PA_SC_RASTER_CONFIG, data);
3172 }
3173 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
3141 for (i = 0; i < se_num; i++) {
3142 cik_select_se_sh(rdev, i, 0xffffffff);
3143 data = 0;
3144 for (j = 0; j < sh_per_se; j++) {
3145 switch (enabled_rbs & 3) {
3146 case 0:
3147 if (j == 0)
3148 data |= PKR_MAP(RASTER_CONFIG_RB_MAP_3);

--- 11 unchanged lines hidden (view full) ---

3160 data |= (RASTER_CONFIG_RB_MAP_2 << (i * sh_per_se + j) * 2);
3161 break;
3162 }
3163 enabled_rbs >>= 2;
3164 }
3165 WREG32(PA_SC_RASTER_CONFIG, data);
3166 }
3167 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
3174 mutex_unlock(&rdev->grbm_idx_mutex);
3175}
3176
3177/**
3178 * cik_gpu_init - setup the 3D engine
3179 *
3180 * @rdev: radeon_device pointer
3181 *
3182 * Configures the 3D engine and tiling configuration

--- 203 unchanged lines hidden (view full) ---

3386 rdev->config.cik.active_cus +=
3387 hweight32(cik_get_cu_active_bitmap(rdev, i, j));
3388 }
3389 }
3390
3391 /* set HW defaults for 3D engine */
3392 WREG32(CP_MEQ_THRESHOLDS, MEQ1_START(0x30) | MEQ2_START(0x60));
3393
3168}
3169
3170/**
3171 * cik_gpu_init - setup the 3D engine
3172 *
3173 * @rdev: radeon_device pointer
3174 *
3175 * Configures the 3D engine and tiling configuration

--- 203 unchanged lines hidden (view full) ---

3379 rdev->config.cik.active_cus +=
3380 hweight32(cik_get_cu_active_bitmap(rdev, i, j));
3381 }
3382 }
3383
3384 /* set HW defaults for 3D engine */
3385 WREG32(CP_MEQ_THRESHOLDS, MEQ1_START(0x30) | MEQ2_START(0x60));
3386
3394 mutex_lock(&rdev->grbm_idx_mutex);
3395 /*
3396 * making sure that the following register writes will be broadcasted
3397 * to all the shaders
3398 */
3399 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
3400 WREG32(SX_DEBUG_1, 0x20);
3401
3402 WREG32(TA_CNTL_AUX, 0x00010000);
3403
3404 tmp = RREG32(SPI_CONFIG_CNTL);
3405 tmp |= 0x03000000;
3406 WREG32(SPI_CONFIG_CNTL, tmp);
3407

--- 39 unchanged lines hidden (view full) ---

3447 tmp |= HDP_FLUSH_INVALIDATE_CACHE;
3448 WREG32(HDP_MISC_CNTL, tmp);
3449
3450 hdp_host_path_cntl = RREG32(HDP_HOST_PATH_CNTL);
3451 WREG32(HDP_HOST_PATH_CNTL, hdp_host_path_cntl);
3452
3453 WREG32(PA_CL_ENHANCE, CLIP_VTX_REORDER_ENA | NUM_CLIP_SEQ(3));
3454 WREG32(PA_SC_ENHANCE, ENABLE_PA_SC_OUT_OF_ORDER);
3387 WREG32(SX_DEBUG_1, 0x20);
3388
3389 WREG32(TA_CNTL_AUX, 0x00010000);
3390
3391 tmp = RREG32(SPI_CONFIG_CNTL);
3392 tmp |= 0x03000000;
3393 WREG32(SPI_CONFIG_CNTL, tmp);
3394

--- 39 unchanged lines hidden (view full) ---

3434 tmp |= HDP_FLUSH_INVALIDATE_CACHE;
3435 WREG32(HDP_MISC_CNTL, tmp);
3436
3437 hdp_host_path_cntl = RREG32(HDP_HOST_PATH_CNTL);
3438 WREG32(HDP_HOST_PATH_CNTL, hdp_host_path_cntl);
3439
3440 WREG32(PA_CL_ENHANCE, CLIP_VTX_REORDER_ENA | NUM_CLIP_SEQ(3));
3441 WREG32(PA_SC_ENHANCE, ENABLE_PA_SC_OUT_OF_ORDER);
3455 mutex_unlock(&rdev->grbm_idx_mutex);
3456
3457 udelay(50);
3458}
3459
3460/*
3461 * GPU scratch registers helpers function.
3462 */
3463/**

--- 2361 unchanged lines hidden (view full) ---

5825 WREG32(RLC_LB_CNTL, tmp);
5826}
5827
5828static void cik_wait_for_rlc_serdes(struct radeon_device *rdev)
5829{
5830 u32 i, j, k;
5831 u32 mask;
5832
3442
3443 udelay(50);
3444}
3445
3446/*
3447 * GPU scratch registers helpers function.
3448 */
3449/**

--- 2361 unchanged lines hidden (view full) ---

5811 WREG32(RLC_LB_CNTL, tmp);
5812}
5813
5814static void cik_wait_for_rlc_serdes(struct radeon_device *rdev)
5815{
5816 u32 i, j, k;
5817 u32 mask;
5818
5833 mutex_lock(&rdev->grbm_idx_mutex);
5834 for (i = 0; i < rdev->config.cik.max_shader_engines; i++) {
5835 for (j = 0; j < rdev->config.cik.max_sh_per_se; j++) {
5836 cik_select_se_sh(rdev, i, j);
5837 for (k = 0; k < rdev->usec_timeout; k++) {
5838 if (RREG32(RLC_SERDES_CU_MASTER_BUSY) == 0)
5839 break;
5840 udelay(1);
5841 }
5842 }
5843 }
5844 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
5819 for (i = 0; i < rdev->config.cik.max_shader_engines; i++) {
5820 for (j = 0; j < rdev->config.cik.max_sh_per_se; j++) {
5821 cik_select_se_sh(rdev, i, j);
5822 for (k = 0; k < rdev->usec_timeout; k++) {
5823 if (RREG32(RLC_SERDES_CU_MASTER_BUSY) == 0)
5824 break;
5825 udelay(1);
5826 }
5827 }
5828 }
5829 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
5845 mutex_unlock(&rdev->grbm_idx_mutex);
5846
5847 mask = SE_MASTER_BUSY_MASK | GC_MASTER_BUSY | TC0_MASTER_BUSY | TC1_MASTER_BUSY;
5848 for (k = 0; k < rdev->usec_timeout; k++) {
5849 if ((RREG32(RLC_SERDES_NONCU_MASTER_BUSY) & mask) == 0)
5850 break;
5851 udelay(1);
5852 }
5853}

--- 118 unchanged lines hidden (view full) ---

5972
5973 cik_init_pg(rdev);
5974
5975 cik_init_cg(rdev);
5976
5977 WREG32(RLC_LB_CNTR_INIT, 0);
5978 WREG32(RLC_LB_CNTR_MAX, 0x00008000);
5979
5830
5831 mask = SE_MASTER_BUSY_MASK | GC_MASTER_BUSY | TC0_MASTER_BUSY | TC1_MASTER_BUSY;
5832 for (k = 0; k < rdev->usec_timeout; k++) {
5833 if ((RREG32(RLC_SERDES_NONCU_MASTER_BUSY) & mask) == 0)
5834 break;
5835 udelay(1);
5836 }
5837}

--- 118 unchanged lines hidden (view full) ---

5956
5957 cik_init_pg(rdev);
5958
5959 cik_init_cg(rdev);
5960
5961 WREG32(RLC_LB_CNTR_INIT, 0);
5962 WREG32(RLC_LB_CNTR_MAX, 0x00008000);
5963
5980 mutex_lock(&rdev->grbm_idx_mutex);
5981 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
5982 WREG32(RLC_LB_INIT_CU_MASK, 0xffffffff);
5983 WREG32(RLC_LB_PARAMS, 0x00600408);
5984 WREG32(RLC_LB_CNTL, 0x80000004);
5964 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
5965 WREG32(RLC_LB_INIT_CU_MASK, 0xffffffff);
5966 WREG32(RLC_LB_PARAMS, 0x00600408);
5967 WREG32(RLC_LB_CNTL, 0x80000004);
5985 mutex_unlock(&rdev->grbm_idx_mutex);
5986
5987 WREG32(RLC_MC_CNTL, 0);
5988 WREG32(RLC_UCODE_CNTL, 0);
5989
5990 if (rdev->new_fw) {
5991 const struct rlc_firmware_header_v1_0 *hdr =
5992 (const struct rlc_firmware_header_v1_0 *)rdev->rlc_fw->data;
5993 const __le32 *fw_data = (const __le32 *)

--- 50 unchanged lines hidden (view full) ---

6044
6045 orig = data = RREG32(RLC_CGCG_CGLS_CTRL);
6046
6047 if (enable && (rdev->cg_flags & RADEON_CG_SUPPORT_GFX_CGCG)) {
6048 cik_enable_gui_idle_interrupt(rdev, true);
6049
6050 tmp = cik_halt_rlc(rdev);
6051
5968
5969 WREG32(RLC_MC_CNTL, 0);
5970 WREG32(RLC_UCODE_CNTL, 0);
5971
5972 if (rdev->new_fw) {
5973 const struct rlc_firmware_header_v1_0 *hdr =
5974 (const struct rlc_firmware_header_v1_0 *)rdev->rlc_fw->data;
5975 const __le32 *fw_data = (const __le32 *)

--- 50 unchanged lines hidden (view full) ---

6026
6027 orig = data = RREG32(RLC_CGCG_CGLS_CTRL);
6028
6029 if (enable && (rdev->cg_flags & RADEON_CG_SUPPORT_GFX_CGCG)) {
6030 cik_enable_gui_idle_interrupt(rdev, true);
6031
6032 tmp = cik_halt_rlc(rdev);
6033
6052 mutex_lock(&rdev->grbm_idx_mutex);
6053 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
6054 WREG32(RLC_SERDES_WR_CU_MASTER_MASK, 0xffffffff);
6055 WREG32(RLC_SERDES_WR_NONCU_MASTER_MASK, 0xffffffff);
6056 tmp2 = BPM_ADDR_MASK | CGCG_OVERRIDE_0 | CGLS_ENABLE;
6057 WREG32(RLC_SERDES_WR_CTRL, tmp2);
6034 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
6035 WREG32(RLC_SERDES_WR_CU_MASTER_MASK, 0xffffffff);
6036 WREG32(RLC_SERDES_WR_NONCU_MASTER_MASK, 0xffffffff);
6037 tmp2 = BPM_ADDR_MASK | CGCG_OVERRIDE_0 | CGLS_ENABLE;
6038 WREG32(RLC_SERDES_WR_CTRL, tmp2);
6058 mutex_unlock(&rdev->grbm_idx_mutex);
6059
6060 cik_update_rlc(rdev, tmp);
6061
6062 data |= CGCG_EN | CGLS_EN;
6063 } else {
6064 cik_enable_gui_idle_interrupt(rdev, false);
6065
6066 RREG32(CB_CGTT_SCLK_CTRL);

--- 26 unchanged lines hidden (view full) ---

6093 orig = data = RREG32(RLC_CGTT_MGCG_OVERRIDE);
6094 data |= 0x00000001;
6095 data &= 0xfffffffd;
6096 if (orig != data)
6097 WREG32(RLC_CGTT_MGCG_OVERRIDE, data);
6098
6099 tmp = cik_halt_rlc(rdev);
6100
6039
6040 cik_update_rlc(rdev, tmp);
6041
6042 data |= CGCG_EN | CGLS_EN;
6043 } else {
6044 cik_enable_gui_idle_interrupt(rdev, false);
6045
6046 RREG32(CB_CGTT_SCLK_CTRL);

--- 26 unchanged lines hidden (view full) ---

6073 orig = data = RREG32(RLC_CGTT_MGCG_OVERRIDE);
6074 data |= 0x00000001;
6075 data &= 0xfffffffd;
6076 if (orig != data)
6077 WREG32(RLC_CGTT_MGCG_OVERRIDE, data);
6078
6079 tmp = cik_halt_rlc(rdev);
6080
6101 mutex_lock(&rdev->grbm_idx_mutex);
6102 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
6103 WREG32(RLC_SERDES_WR_CU_MASTER_MASK, 0xffffffff);
6104 WREG32(RLC_SERDES_WR_NONCU_MASTER_MASK, 0xffffffff);
6105 data = BPM_ADDR_MASK | MGCG_OVERRIDE_0;
6106 WREG32(RLC_SERDES_WR_CTRL, data);
6081 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
6082 WREG32(RLC_SERDES_WR_CU_MASTER_MASK, 0xffffffff);
6083 WREG32(RLC_SERDES_WR_NONCU_MASTER_MASK, 0xffffffff);
6084 data = BPM_ADDR_MASK | MGCG_OVERRIDE_0;
6085 WREG32(RLC_SERDES_WR_CTRL, data);
6107 mutex_unlock(&rdev->grbm_idx_mutex);
6108
6109 cik_update_rlc(rdev, tmp);
6110
6111 if (rdev->cg_flags & RADEON_CG_SUPPORT_GFX_CGTS) {
6112 orig = data = RREG32(CGTS_SM_CTRL_REG);
6113 data &= ~SM_MODE_MASK;
6114 data |= SM_MODE(0x2);
6115 data |= SM_MODE_ENABLE;

--- 27 unchanged lines hidden (view full) ---

6143
6144 orig = data = RREG32(CGTS_SM_CTRL_REG);
6145 data |= CGTS_OVERRIDE | CGTS_LS_OVERRIDE;
6146 if (orig != data)
6147 WREG32(CGTS_SM_CTRL_REG, data);
6148
6149 tmp = cik_halt_rlc(rdev);
6150
6086
6087 cik_update_rlc(rdev, tmp);
6088
6089 if (rdev->cg_flags & RADEON_CG_SUPPORT_GFX_CGTS) {
6090 orig = data = RREG32(CGTS_SM_CTRL_REG);
6091 data &= ~SM_MODE_MASK;
6092 data |= SM_MODE(0x2);
6093 data |= SM_MODE_ENABLE;

--- 27 unchanged lines hidden (view full) ---

6121
6122 orig = data = RREG32(CGTS_SM_CTRL_REG);
6123 data |= CGTS_OVERRIDE | CGTS_LS_OVERRIDE;
6124 if (orig != data)
6125 WREG32(CGTS_SM_CTRL_REG, data);
6126
6127 tmp = cik_halt_rlc(rdev);
6128
6151 mutex_lock(&rdev->grbm_idx_mutex);
6152 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
6153 WREG32(RLC_SERDES_WR_CU_MASTER_MASK, 0xffffffff);
6154 WREG32(RLC_SERDES_WR_NONCU_MASTER_MASK, 0xffffffff);
6155 data = BPM_ADDR_MASK | MGCG_OVERRIDE_1;
6156 WREG32(RLC_SERDES_WR_CTRL, data);
6129 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
6130 WREG32(RLC_SERDES_WR_CU_MASTER_MASK, 0xffffffff);
6131 WREG32(RLC_SERDES_WR_NONCU_MASTER_MASK, 0xffffffff);
6132 data = BPM_ADDR_MASK | MGCG_OVERRIDE_1;
6133 WREG32(RLC_SERDES_WR_CTRL, data);
6157 mutex_unlock(&rdev->grbm_idx_mutex);
6158
6159 cik_update_rlc(rdev, tmp);
6160 }
6161}
6162
6163static const u32 mc_cg_registers[] =
6164{
6165 MC_HUB_MISC_HUB_CG,

--- 412 unchanged lines hidden (view full) ---

6578 }
6579}
6580
6581static u32 cik_get_cu_active_bitmap(struct radeon_device *rdev, u32 se, u32 sh)
6582{
6583 u32 mask = 0, tmp, tmp1;
6584 int i;
6585
6134
6135 cik_update_rlc(rdev, tmp);
6136 }
6137}
6138
6139static const u32 mc_cg_registers[] =
6140{
6141 MC_HUB_MISC_HUB_CG,

--- 412 unchanged lines hidden (view full) ---

6554 }
6555}
6556
6557static u32 cik_get_cu_active_bitmap(struct radeon_device *rdev, u32 se, u32 sh)
6558{
6559 u32 mask = 0, tmp, tmp1;
6560 int i;
6561
6586 mutex_lock(&rdev->grbm_idx_mutex);
6587 cik_select_se_sh(rdev, se, sh);
6588 tmp = RREG32(CC_GC_SHADER_ARRAY_CONFIG);
6589 tmp1 = RREG32(GC_USER_SHADER_ARRAY_CONFIG);
6590 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
6562 cik_select_se_sh(rdev, se, sh);
6563 tmp = RREG32(CC_GC_SHADER_ARRAY_CONFIG);
6564 tmp1 = RREG32(GC_USER_SHADER_ARRAY_CONFIG);
6565 cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
6591 mutex_unlock(&rdev->grbm_idx_mutex);
6592
6593 tmp &= 0xffff0000;
6594
6595 tmp |= tmp1;
6596 tmp >>= 16;
6597
6598 for (i = 0; i < rdev->config.cik.max_cu_per_sh; i ++) {
6599 mask <<= 1;

--- 3186 unchanged lines hidden ---
6566
6567 tmp &= 0xffff0000;
6568
6569 tmp |= tmp1;
6570 tmp >>= 16;
6571
6572 for (i = 0; i < rdev->config.cik.max_cu_per_sh; i ++) {
6573 mask <<= 1;

--- 3186 unchanged lines hidden ---