diff options
author | Preetham Chandru R <pchandru@nvidia.com> | 2019-03-06 05:50:22 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2019-03-13 17:43:56 -0400 |
commit | 77ee4144ce112de624a279300d7969dfa80e0b7e (patch) | |
tree | cd8247f0c84f78d5dab273cdda1b346bceb25917 /include | |
parent | 4269d56d02db3278270e8d49d3ec402f5a0a1189 (diff) |
gpu: nvgpu: add compatibility version
Add compatibility version to page table and dma mapping structure.
Bug 200438879
Change-Id: I04b4601f71ae2b3e75843f39f5445ecca2b16677
Signed-off-by: Preetham Chandru R <pchandru@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2029086
(cherry picked from commit 8bbbd09caa06f7c0f17a48e129d4fd07ce6fa9be)
Reviewed-on: https://git-master.nvidia.com/r/2071427
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nv-p2p.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/linux/nv-p2p.h b/include/linux/nv-p2p.h index 124e136f..64b92cbf 100644 --- a/include/linux/nv-p2p.h +++ b/include/linux/nv-p2p.h | |||
@@ -30,6 +30,23 @@ | |||
30 | #define NVIDIA_P2P_PINNED 0x1 | 30 | #define NVIDIA_P2P_PINNED 0x1 |
31 | #define NVIDIA_P2P_MAPPED 0x2 | 31 | #define NVIDIA_P2P_MAPPED 0x2 |
32 | 32 | ||
33 | #define NVIDIA_P2P_MAJOR_VERSION_MASK 0xffff0000 | ||
34 | #define NVIDIA_P2P_MINOR_VERSION_MASK 0x0000ffff | ||
35 | |||
36 | #define NVIDIA_P2P_MAJOR_VERSION(v) \ | ||
37 | (((v) & NVIDIA_P2P_MAJOR_VERSION_MASK) >> 16) | ||
38 | |||
39 | #define NVIDIA_P2P_MINOR_VERSION(v) \ | ||
40 | (((v) & NVIDIA_P2P_MINOR_VERSION_MASK)) | ||
41 | |||
42 | #define NVIDIA_P2P_MAJOR_VERSION_MATCHES(p, v) \ | ||
43 | (NVIDIA_P2P_MAJOR_VERSION((p)->version) == NVIDIA_P2P_MAJOR_VERSION(v)) | ||
44 | |||
45 | #define NVIDIA_P2P_VERSION_COMPATIBLE(p, v) \ | ||
46 | (NVIDIA_P2P_MAJOR_VERSION_MATCHES(p, v) && \ | ||
47 | (NVIDIA_P2P_MINOR_VERSION((p)->version) >= \ | ||
48 | (NVIDIA_P2P_MINOR_VERSION(v)))) | ||
49 | |||
33 | enum nvidia_p2p_page_size_type { | 50 | enum nvidia_p2p_page_size_type { |
34 | NVIDIA_P2P_PAGE_SIZE_4KB = 0, | 51 | NVIDIA_P2P_PAGE_SIZE_4KB = 0, |
35 | NVIDIA_P2P_PAGE_SIZE_64KB, | 52 | NVIDIA_P2P_PAGE_SIZE_64KB, |
@@ -38,6 +55,7 @@ enum nvidia_p2p_page_size_type { | |||
38 | }; | 55 | }; |
39 | 56 | ||
40 | struct nvidia_p2p_page_table { | 57 | struct nvidia_p2p_page_table { |
58 | u32 version; | ||
41 | u32 page_size; | 59 | u32 page_size; |
42 | u64 size; | 60 | u64 size; |
43 | u32 entries; | 61 | u32 entries; |
@@ -54,6 +72,7 @@ struct nvidia_p2p_page_table { | |||
54 | }; | 72 | }; |
55 | 73 | ||
56 | struct nvidia_p2p_dma_mapping { | 74 | struct nvidia_p2p_dma_mapping { |
75 | u32 version; | ||
57 | dma_addr_t *hw_address; | 76 | dma_addr_t *hw_address; |
58 | u32 *hw_len; | 77 | u32 *hw_len; |
59 | u32 entries; | 78 | u32 entries; |
@@ -64,6 +83,11 @@ struct nvidia_p2p_dma_mapping { | |||
64 | enum dma_data_direction direction; | 83 | enum dma_data_direction direction; |
65 | }; | 84 | }; |
66 | 85 | ||
86 | #define NVIDIA_P2P_PAGE_TABLE_VERSION 0x00010000 | ||
87 | |||
88 | #define NVIDIA_P2P_PAGE_TABLE_VERSION_COMPATIBLE(p) \ | ||
89 | NVIDIA_P2P_VERSION_COMPATIBLE(p, NVIDIA_P2P_PAGE_TABLE_VERSION) | ||
90 | |||
67 | /* | 91 | /* |
68 | * @brief | 92 | * @brief |
69 | * Make the pages underlying a range of GPU virtual memory | 93 | * Make the pages underlying a range of GPU virtual memory |
@@ -124,6 +148,11 @@ int nvidia_p2p_put_pages(struct nvidia_p2p_page_table *page_table); | |||
124 | */ | 148 | */ |
125 | int nvidia_p2p_free_page_table(struct nvidia_p2p_page_table *page_table); | 149 | int nvidia_p2p_free_page_table(struct nvidia_p2p_page_table *page_table); |
126 | 150 | ||
151 | #define NVIDIA_P2P_DMA_MAPPING_VERSION 0x00010000 | ||
152 | |||
153 | #define NVIDIA_P2P_DMA_MAPPING_VERSION_COMPATIBLE(p) \ | ||
154 | NVIDIA_P2P_VERSION_COMPATIBLE(p, NVIDIA_P2P_DMA_MAPPING_VERSION) | ||
155 | |||
127 | /* | 156 | /* |
128 | * @brief | 157 | * @brief |
129 | * Map the pages retrieved using nvidia_p2p_get_pages and | 158 | * Map the pages retrieved using nvidia_p2p_get_pages and |