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)
{