drm/radeon: add query for number of active CUs
Query to find out how many compute units on a GPU. Useful for OpenCL usermode drivers. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -80,6 +80,7 @@ extern int sumo_rlc_init(struct radeon_device *rdev);
|
||||
extern void si_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc);
|
||||
extern void si_rlc_reset(struct radeon_device *rdev);
|
||||
extern void si_init_uvd_internal_cg(struct radeon_device *rdev);
|
||||
static u32 cik_get_cu_active_bitmap(struct radeon_device *rdev, u32 se, u32 sh);
|
||||
extern int cik_sdma_resume(struct radeon_device *rdev);
|
||||
extern void cik_sdma_enable(struct radeon_device *rdev, bool enable);
|
||||
extern void cik_sdma_fini(struct radeon_device *rdev);
|
||||
@@ -3257,7 +3258,7 @@ static void cik_gpu_init(struct radeon_device *rdev)
|
||||
u32 mc_shared_chmap, mc_arb_ramcfg;
|
||||
u32 hdp_host_path_cntl;
|
||||
u32 tmp;
|
||||
int i, j;
|
||||
int i, j, k;
|
||||
|
||||
switch (rdev->family) {
|
||||
case CHIP_BONAIRE:
|
||||
@@ -3446,6 +3447,15 @@ static void cik_gpu_init(struct radeon_device *rdev)
|
||||
rdev->config.cik.max_sh_per_se,
|
||||
rdev->config.cik.max_backends_per_se);
|
||||
|
||||
for (i = 0; i < rdev->config.cik.max_shader_engines; i++) {
|
||||
for (j = 0; j < rdev->config.cik.max_sh_per_se; j++) {
|
||||
for (k = 0; k < rdev->config.cik.max_cu_per_sh; k++) {
|
||||
rdev->config.cik.active_cus +=
|
||||
hweight32(cik_get_cu_active_bitmap(rdev, i, j));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* set HW defaults for 3D engine */
|
||||
WREG32(CP_MEQ_THRESHOLDS, MEQ1_START(0x30) | MEQ2_START(0x60));
|
||||
|
||||
|
Reference in New Issue
Block a user