diff options
Diffstat (limited to 'drivers/gpu/drm')
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 17 |
2 files changed, 10 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/Kconfig b/drivers/gpu/drm/amd/amdkfd/Kconfig index ed2f06c9f346..3858820a0055 100644 --- a/drivers/gpu/drm/amd/amdkfd/Kconfig +++ b/drivers/gpu/drm/amd/amdkfd/Kconfig | |||
| @@ -6,5 +6,6 @@ config HSA_AMD | |||
| 6 | tristate "HSA kernel driver for AMD GPU devices" | 6 | tristate "HSA kernel driver for AMD GPU devices" |
| 7 | depends on DRM_AMDGPU && X86_64 | 7 | depends on DRM_AMDGPU && X86_64 |
| 8 | imply AMD_IOMMU_V2 | 8 | imply AMD_IOMMU_V2 |
| 9 | select MMU_NOTIFIER | ||
| 9 | help | 10 | help |
| 10 | Enable this if you want to use HSA features on AMD GPU devices. | 11 | Enable this if you want to use HSA features on AMD GPU devices. |
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c index cd679cf1fd30..59808a39ecf4 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | |||
| @@ -749,12 +749,13 @@ static int kfd_ioctl_get_clock_counters(struct file *filep, | |||
| 749 | struct timespec64 time; | 749 | struct timespec64 time; |
| 750 | 750 | ||
| 751 | dev = kfd_device_by_id(args->gpu_id); | 751 | dev = kfd_device_by_id(args->gpu_id); |
| 752 | if (dev == NULL) | 752 | if (dev) |
| 753 | return -EINVAL; | 753 | /* Reading GPU clock counter from KGD */ |
| 754 | 754 | args->gpu_clock_counter = | |
| 755 | /* Reading GPU clock counter from KGD */ | 755 | dev->kfd2kgd->get_gpu_clock_counter(dev->kgd); |
| 756 | args->gpu_clock_counter = | 756 | else |
| 757 | dev->kfd2kgd->get_gpu_clock_counter(dev->kgd); | 757 | /* Node without GPU resource */ |
| 758 | args->gpu_clock_counter = 0; | ||
| 758 | 759 | ||
| 759 | /* No access to rdtsc. Using raw monotonic time */ | 760 | /* No access to rdtsc. Using raw monotonic time */ |
| 760 | getrawmonotonic64(&time); | 761 | getrawmonotonic64(&time); |
| @@ -1147,7 +1148,7 @@ err_unlock: | |||
| 1147 | return ret; | 1148 | return ret; |
| 1148 | } | 1149 | } |
| 1149 | 1150 | ||
| 1150 | bool kfd_dev_is_large_bar(struct kfd_dev *dev) | 1151 | static bool kfd_dev_is_large_bar(struct kfd_dev *dev) |
| 1151 | { | 1152 | { |
| 1152 | struct kfd_local_mem_info mem_info; | 1153 | struct kfd_local_mem_info mem_info; |
| 1153 | 1154 | ||
| @@ -1421,7 +1422,7 @@ static int kfd_ioctl_unmap_memory_from_gpu(struct file *filep, | |||
| 1421 | 1422 | ||
| 1422 | pdd = kfd_get_process_device_data(dev, p); | 1423 | pdd = kfd_get_process_device_data(dev, p); |
| 1423 | if (!pdd) { | 1424 | if (!pdd) { |
| 1424 | err = PTR_ERR(pdd); | 1425 | err = -EINVAL; |
| 1425 | goto bind_process_to_device_failed; | 1426 | goto bind_process_to_device_failed; |
| 1426 | } | 1427 | } |
| 1427 | 1428 | ||
