Module Name: src Committed By: riastradh Date: Sun Dec 19 10:49:47 UTC 2021
Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50: atom.h disp.h lut.h nouveau_dispnv50_disp.c nouveau_dispnv50_head507d.c nouveau_dispnv50_head907d.c nouveau_dispnv50_headc57d.c nouveau_dispnv50_lut.c nouveau_dispnv50_wndwc57e.c Log Message: Hack up dispnv50 __iomem. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_lut.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc57e.c cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: atom.h,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: atom.h,v 1.3 2021/12/19 10:49:47 riastradh Exp $ */ #ifndef __NV50_KMS_ATOM_H__ #define __NV50_KMS_ATOM_H__ @@ -15,6 +15,11 @@ struct nv50_atom { #define nv50_head_atom(p) container_of((p), struct nv50_head_atom, state) +#ifdef __NetBSD__ +# define __lut_iomem volatile +# define __iomem __lut_iomem +#endif + struct nv50_head_atom { struct drm_crtc_state state; @@ -245,4 +250,9 @@ struct nv50_wndw_atom { u8 mask; } set, clr; }; + +#ifdef __NetBSD__ +# undef __iomem +#endif + #endif Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: disp.h,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: disp.h,v 1.3 2021/12/19 10:49:47 riastradh Exp $ */ #ifndef __NV50_KMS_H__ #define __NV50_KMS_H__ @@ -50,8 +50,17 @@ struct nv50_disp_interlock { void corec37d_ntfy_init(struct nouveau_bo *, u32); +#ifdef __NetBSD__ +# define __lut_iomem volatile +# define __iomem __lut_iomem +#endif + void head907d_olut_load(struct drm_color_lut *, int size, void __iomem *); +#ifdef __NetBSD__ +# undef __iomem +#endif + struct nv50_chan { struct nvif_object user; struct nvif_device *device; Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lut.h,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: lut.h,v 1.3 2021/12/19 10:49:47 riastradh Exp $ */ #ifndef __NV50_KMS_LUT_H__ #define __NV50_KMS_LUT_H__ @@ -13,6 +13,13 @@ struct nv50_lut { int nv50_lut_init(struct nv50_disp *, struct nvif_mmu *, struct nv50_lut *); void nv50_lut_fini(struct nv50_lut *); +#ifdef __NetBSD__ +# define __lut_iomem volatile +# define __iomem __lut_iomem +#endif u32 nv50_lut_load(struct nv50_lut *, int buffer, struct drm_property_blob *, void (*)(struct drm_color_lut *, int size, void __iomem *)); +#ifdef __NetBSD__ +# undef __iomem +#endif #endif Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_head907d.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_head907d.c,v 1.3 2021/12/19 10:49:47 riastradh Exp $ */ /* * Copyright 2018 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_head907d.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_head907d.c,v 1.3 2021/12/19 10:49:47 riastradh Exp $"); #include "head.h" #include "core.h" @@ -218,6 +218,12 @@ head907d_olut_set(struct nv50_head *head } } +#ifdef __NetBSD__ +#define __iomem __lut_iomem +#define readw(p) atomic_load_relaxed((const __iomem uint16_t *)(p)) +#define writew(v,p) atomic_store_relaxed((__iomem uint16_t *)(p), (v)) +#endif + void head907d_olut_load(struct drm_color_lut *in, int size, void __iomem *mem) { Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_lut.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_lut.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_lut.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_lut.c:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_lut.c Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_lut.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_lut.c,v 1.3 2021/12/19 10:49:47 riastradh Exp $ */ /* * Copyright 2018 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_lut.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_lut.c,v 1.3 2021/12/19 10:49:47 riastradh Exp $"); #include "lut.h" #include "disp.h" @@ -33,6 +33,12 @@ __KERNEL_RCSID(0, "$NetBSD: nouveau_disp #include <nvif/class.h> +#ifdef __NetBSD__ +#define __iomem __lut_iomem +#define readw(p) atomic_load_relaxed((const __iomem uint16_t *)(p)) +#define writew(v,p) atomic_store_relaxed((__iomem uint16_t *)(p), (v)) +#endif + u32 nv50_lut_load(struct nv50_lut *lut, int buffer, struct drm_property_blob *blob, void (*load)(struct drm_color_lut *, int, void __iomem *)) Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc57e.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc57e.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc57e.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc57e.c:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc57e.c Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_wndwc57e.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_wndwc57e.c,v 1.3 2021/12/19 10:49:47 riastradh Exp $ */ /* * Copyright 2018 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_wndwc57e.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_wndwc57e.c,v 1.3 2021/12/19 10:49:47 riastradh Exp $"); #include "wndw.h" #include "atom.h" @@ -138,6 +138,12 @@ fixedU0_16_FP16(u16 fixed) return (sign << 15) | (exp << 10) | man; } +#ifdef __NetBSD__ +#define __iomem __lut_iomem +#define readw(p) atomic_load_relaxed((const __iomem uint16_t *)(p)) +#define writew(v,p) atomic_store_relaxed((__iomem uint16_t *)(p), (v)) +#endif + static void wndwc57e_ilut_load(struct drm_color_lut *in, int size, void __iomem *mem) { Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c:1.4 Sun Dec 19 10:49:38 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_disp.c,v 1.4 2021/12/19 10:49:38 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_disp.c,v 1.5 2021/12/19 10:49:47 riastradh Exp $ */ /* * Copyright 2011 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_disp.c,v 1.4 2021/12/19 10:49:38 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_disp.c,v 1.5 2021/12/19 10:49:47 riastradh Exp $"); #include "disp.h" #include "atom.h" @@ -175,7 +175,7 @@ nv50_dmac_create(struct nvif_device *dev if (ret) return ret; - dmac->ptr = dmac->push.object.map.ptr; + dmac->ptr = __UNVOLATILE(dmac->push.object.map.ptr); args->pushbuf = nvif_handle(&dmac->push.object); Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c:1.3 Sun Dec 19 10:49:38 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_head507d.c,v 1.3 2021/12/19 10:49:38 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_head507d.c,v 1.4 2021/12/19 10:49:47 riastradh Exp $ */ /* * Copyright 2018 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_head507d.c,v 1.3 2021/12/19 10:49:38 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_head507d.c,v 1.4 2021/12/19 10:49:47 riastradh Exp $"); #include "head.h" #include "core.h" @@ -261,6 +261,12 @@ head507d_olut_set(struct nv50_head *head } } +#ifdef __NetBSD__ +#define __iomem __lut_iomem +#define readw(p) atomic_load_relaxed((const __iomem uint16_t *)(p)) +#define writew(v,p) atomic_store_relaxed((__iomem uint16_t *)(p), (v)) +#endif + static void head507d_olut_load(struct drm_color_lut *in, int size, void __iomem *mem) { Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c:1.3 Sun Dec 19 10:49:38 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_headc57d.c,v 1.3 2021/12/19 10:49:38 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_headc57d.c,v 1.4 2021/12/19 10:49:47 riastradh Exp $ */ /* * Copyright 2018 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_headc57d.c,v 1.3 2021/12/19 10:49:38 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_headc57d.c,v 1.4 2021/12/19 10:49:47 riastradh Exp $"); #include "head.h" #include "atom.h" @@ -103,6 +103,12 @@ headc57d_olut_set(struct nv50_head *head } } +#ifdef __NetBSD__ +#define __iomem __lut_iomem +#define readw(p) atomic_load_relaxed((const __iomem uint16_t *)(p)) +#define writew(v,p) atomic_store_relaxed((__iomem uint16_t *)(p), (v)) +#endif + static void headc57d_olut_load_8(struct drm_color_lut *in, int size, void __iomem *mem) {