diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0140-drm-amdgpu-hybrid-add-query-for-aperture-va-range.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0140-drm-amdgpu-hybrid-add-query-for-aperture-va-range.patch | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0140-drm-amdgpu-hybrid-add-query-for-aperture-va-range.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0140-drm-amdgpu-hybrid-add-query-for-aperture-va-range.patch new file mode 100644 index 00000000..d806dcf5 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0140-drm-amdgpu-hybrid-add-query-for-aperture-va-range.patch @@ -0,0 +1,93 @@ +From 8e46fa965e989122a27d0c39ae2722a299269ab1 Mon Sep 17 00:00:00 2001 +From: Flora Cui <flora.cui@amd.com> +Date: Sat, 10 Oct 2015 17:11:12 +0800 +Subject: [PATCH 0140/2940] drm/amdgpu: [hybrid] add query for aperture va + range + +Change-Id: I9021faca76e6ff060dbc02542d056eb424b75d15 +Signed-off-by: Flora Cui <Flora.Cui@amd.com> +Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Kalyan Alle <kalyan.alle@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 17 +++++++++++++++++ + include/uapi/drm/amdgpu_drm.h | 21 +++++++++++++++++++++ + 2 files changed, 38 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +index 7d3d76a1a9dd..b5eaf39cd301 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +@@ -298,6 +298,23 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file + flush_delayed_work(&adev->late_init_work); + + switch (info->query) { ++ case AMDGPU_INFO_VIRTUAL_RANGE: { ++ struct drm_amdgpu_virtual_range range_info; ++ switch (info->virtual_range.aperture) { ++ case AMDGPU_SUA_APERTURE_PRIVATE: ++ range_info.start = adev->gmc.private_aperture_start; ++ range_info.end = adev->gmc.private_aperture_end; ++ break; ++ case AMDGPU_SUA_APERTURE_SHARED: ++ range_info.start = adev->gmc.shared_aperture_start; ++ range_info.end = adev->gmc.shared_aperture_end; ++ break; ++ default: ++ return -EINVAL; ++ } ++ return copy_to_user(out, &range_info, ++ min((size_t)size, sizeof(range_info))) ? -EFAULT : 0; ++ } + case AMDGPU_INFO_ACCEL_WORKING: + ui32 = adev->accel_working; + return copy_to_user(out, &ui32, min(size, 4u)) ? -EFAULT : 0; +diff --git a/include/uapi/drm/amdgpu_drm.h b/include/uapi/drm/amdgpu_drm.h +index e879f38611a1..763874711532 100644 +--- a/include/uapi/drm/amdgpu_drm.h ++++ b/include/uapi/drm/amdgpu_drm.h +@@ -722,6 +722,12 @@ struct drm_amdgpu_cs_chunk_data { + #define AMDGPU_INFO_NUM_VRAM_CPU_PAGE_FAULTS 0x1E + #define AMDGPU_INFO_VRAM_LOST_COUNTER 0x1F + ++/* Hybrid Stack Specific Defs*/ ++/* gpu capability */ ++#define AMDGPU_INFO_CAPABILITY 0x50 ++/* virtual range */ ++#define AMDGPU_INFO_VIRTUAL_RANGE 0x51 ++ + #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0 + #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff + #define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8 +@@ -778,6 +784,11 @@ struct drm_amdgpu_info { + __u32 flags; + } read_mmr_reg; + ++ struct { ++ uint32_t aperture; ++ uint32_t _pad; ++ } virtual_range; ++ + struct drm_amdgpu_query_fw query_fw; + + struct { +@@ -992,6 +1003,16 @@ struct drm_amdgpu_info_vce_clock_table { + #define AMDGPU_FAMILY_AI 141 /* Vega10 */ + #define AMDGPU_FAMILY_RV 142 /* Raven */ + ++/** ++ * Definition of System Unified Address (SUA) apertures ++ */ ++#define AMDGPU_SUA_APERTURE_PRIVATE 1 ++#define AMDGPU_SUA_APERTURE_SHARED 2 ++struct drm_amdgpu_virtual_range { ++ uint64_t start; ++ uint64_t end; ++}; ++ + /* + * Definition of free sync enter and exit signals + * We may have more options in the future +-- +2.17.1 + |