diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2014-06-02 16:13:21 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-06-09 22:06:55 -0400 |
commit | 65fcf668ee7f2de2fbd580e1297336045f1ef6f4 (patch) | |
tree | 17064a99c2cf9b0e6d4baab83e654758edef4617 /drivers/gpu/drm/radeon/radeon_kms.c | |
parent | 478b6e72721807953bc3513fc5895d5f007614e3 (diff) |
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>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_kms.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_kms.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c index eaaedba04675..5cd70f9e7311 100644 --- a/drivers/gpu/drm/radeon/radeon_kms.c +++ b/drivers/gpu/drm/radeon/radeon_kms.c | |||
@@ -513,6 +513,22 @@ static int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file | |||
513 | value_size = sizeof(uint64_t); | 513 | value_size = sizeof(uint64_t); |
514 | value64 = atomic64_read(&rdev->gtt_usage); | 514 | value64 = atomic64_read(&rdev->gtt_usage); |
515 | break; | 515 | break; |
516 | case RADEON_INFO_ACTIVE_CU_COUNT: | ||
517 | if (rdev->family >= CHIP_BONAIRE) | ||
518 | *value = rdev->config.cik.active_cus; | ||
519 | else if (rdev->family >= CHIP_TAHITI) | ||
520 | *value = rdev->config.si.active_cus; | ||
521 | else if (rdev->family >= CHIP_CAYMAN) | ||
522 | *value = rdev->config.cayman.active_simds; | ||
523 | else if (rdev->family >= CHIP_CEDAR) | ||
524 | *value = rdev->config.evergreen.active_simds; | ||
525 | else if (rdev->family >= CHIP_RV770) | ||
526 | *value = rdev->config.rv770.active_simds; | ||
527 | else if (rdev->family >= CHIP_R600) | ||
528 | *value = rdev->config.r600.active_simds; | ||
529 | else | ||
530 | *value = 1; | ||
531 | break; | ||
516 | default: | 532 | default: |
517 | DRM_DEBUG_KMS("Invalid request %d\n", info->request); | 533 | DRM_DEBUG_KMS("Invalid request %d\n", info->request); |
518 | return -EINVAL; | 534 | return -EINVAL; |