| @@ -1,40 +1,40 @@ | | | @@ -1,40 +1,40 @@ |
1 | /* $NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.4 2018/08/27 14:51:33 riastradh Exp $ */ | | 1 | /* $NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.5 2018/08/27 14:51:55 riastradh Exp $ */ |
2 | | | 2 | |
3 | /* | | 3 | /* |
4 | * Copyright 2012 Red Hat Inc. | | 4 | * Copyright 2012 Red Hat Inc. |
5 | * | | 5 | * |
6 | * Permission is hereby granted, free of charge, to any person obtaining a | | 6 | * Permission is hereby granted, free of charge, to any person obtaining a |
7 | * copy of this software and associated documentation files (the "Software"), | | 7 | * copy of this software and associated documentation files (the "Software"), |
8 | * to deal in the Software without restriction, including without limitation | | 8 | * to deal in the Software without restriction, including without limitation |
9 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | | 9 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
10 | * and/or sell copies of the Software, and to permit persons to whom the | | 10 | * and/or sell copies of the Software, and to permit persons to whom the |
11 | * Software is furnished to do so, subject to the following conditions: | | 11 | * Software is furnished to do so, subject to the following conditions: |
12 | * | | 12 | * |
13 | * The above copyright notice and this permission notice shall be included in | | 13 | * The above copyright notice and this permission notice shall be included in |
14 | * all copies or substantial portions of the Software. | | 14 | * all copies or substantial portions of the Software. |
15 | * | | 15 | * |
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | | 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | | 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | | 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
19 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | | 19 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR |
20 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | | 20 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
21 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | | 21 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
22 | * OTHER DEALINGS IN THE SOFTWARE. | | 22 | * OTHER DEALINGS IN THE SOFTWARE. |
23 | * | | 23 | * |
24 | * Authors: Ben Skeggs | | 24 | * Authors: Ben Skeggs |
25 | */ | | 25 | */ |
26 | #include <sys/cdefs.h> | | 26 | #include <sys/cdefs.h> |
27 | __KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.4 2018/08/27 14:51:33 riastradh Exp $"); | | 27 | __KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.5 2018/08/27 14:51:55 riastradh Exp $"); |
28 | | | 28 | |
29 | #define nv40_instmem(p) container_of((p), struct nv40_instmem, base) | | 29 | #define nv40_instmem(p) container_of((p), struct nv40_instmem, base) |
30 | #include "priv.h" | | 30 | #include "priv.h" |
31 | | | 31 | |
32 | #include <core/memory.h> | | 32 | #include <core/memory.h> |
33 | #include <core/ramht.h> | | 33 | #include <core/ramht.h> |
34 | #include <engine/gr/nv40.h> | | 34 | #include <engine/gr/nv40.h> |
35 | | | 35 | |
36 | #ifdef __NetBSD__ | | 36 | #ifdef __NetBSD__ |
37 | # define __iomem __nvkm_memory_iomem | | 37 | # define __iomem __nvkm_memory_iomem |
38 | #endif | | 38 | #endif |
39 | | | 39 | |
40 | struct nv40_instmem { | | 40 | struct nv40_instmem { |
| @@ -158,38 +158,38 @@ nv40_instobj_new(struct nvkm_instmem *ba | | | @@ -158,38 +158,38 @@ nv40_instobj_new(struct nvkm_instmem *ba |
158 | mutex_unlock(&imem->base.subdev.mutex); | | 158 | mutex_unlock(&imem->base.subdev.mutex); |
159 | return ret; | | 159 | return ret; |
160 | } | | 160 | } |
161 | | | 161 | |
162 | /****************************************************************************** | | 162 | /****************************************************************************** |
163 | * instmem subdev implementation | | 163 | * instmem subdev implementation |
164 | *****************************************************************************/ | | 164 | *****************************************************************************/ |
165 | | | 165 | |
166 | static u32 | | 166 | static u32 |
167 | nv40_instmem_rd32(struct nvkm_instmem *base, u32 addr) | | 167 | nv40_instmem_rd32(struct nvkm_instmem *base, u32 addr) |
168 | { | | 168 | { |
169 | #ifdef __NetBSD__ | | 169 | #ifdef __NetBSD__ |
170 | struct nv40_instmem *imem = nv40_instmem(base); | | 170 | struct nv40_instmem *imem = nv40_instmem(base); |
171 | return bus_space_read_4(imem->iomemt, imem->iomemh, addr); | | 171 | return bus_space_read_stream_4(imem->iomemt, imem->iomemh, addr); |
172 | #else | | 172 | #else |
173 | return ioread32_native(nv40_instmem(base)->iomem + addr); | | 173 | return ioread32_native(nv40_instmem(base)->iomem + addr); |
174 | #endif | | 174 | #endif |
175 | } | | 175 | } |
176 | | | 176 | |
177 | static void | | 177 | static void |
178 | nv40_instmem_wr32(struct nvkm_instmem *base, u32 addr, u32 data) | | 178 | nv40_instmem_wr32(struct nvkm_instmem *base, u32 addr, u32 data) |
179 | { | | 179 | { |
180 | #ifdef __NetBSD__ | | 180 | #ifdef __NetBSD__ |
181 | struct nv40_instmem *imem = nv40_instmem(base); | | 181 | struct nv40_instmem *imem = nv40_instmem(base); |
182 | bus_space_write_4(imem->iomemt, imem->iomemh, addr, data); | | 182 | bus_space_write_stream_4(imem->iomemt, imem->iomemh, addr, data); |
183 | #else | | 183 | #else |
184 | iowrite32_native(data, nv40_instmem(base)->iomem + addr); | | 184 | iowrite32_native(data, nv40_instmem(base)->iomem + addr); |
185 | #endif | | 185 | #endif |
186 | } | | 186 | } |
187 | | | 187 | |
188 | static int | | 188 | static int |
189 | nv40_instmem_oneinit(struct nvkm_instmem *base) | | 189 | nv40_instmem_oneinit(struct nvkm_instmem *base) |
190 | { | | 190 | { |
191 | struct nv40_instmem *imem = nv40_instmem(base); | | 191 | struct nv40_instmem *imem = nv40_instmem(base); |
192 | struct nvkm_device *device = imem->base.subdev.device; | | 192 | struct nvkm_device *device = imem->base.subdev.device; |
193 | int ret, vs; | | 193 | int ret, vs; |
194 | | | 194 | |
195 | /* PRAMIN aperture maps over the end of vram, reserve enough space | | 195 | /* PRAMIN aperture maps over the end of vram, reserve enough space |