Marcin Slusarz
2011-Jan-09 17:30 UTC
[Nouveau] [libdrm PATCH 2/3] nouveau: add OUT_RELOChl
---
nouveau/nouveau_pushbuf.h | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/nouveau/nouveau_pushbuf.h b/nouveau/nouveau_pushbuf.h
index 70d0f28..5151e01 100644
--- a/nouveau/nouveau_pushbuf.h
+++ b/nouveau/nouveau_pushbuf.h
@@ -142,4 +142,15 @@ OUT_RELOCh(struct nouveau_channel *chan, struct nouveau_bo
*bo,
return OUT_RELOC(chan, bo, delta, flags | NOUVEAU_BO_HIGH, 0, 0);
}
+/* High 32-bits, then low 32-bits of offset */
+static __inline__ int
+OUT_RELOChl(struct nouveau_channel *chan, struct nouveau_bo *bo,
+ unsigned delta, unsigned flags)
+{
+ int r = OUT_RELOC(chan, bo, delta, flags | NOUVEAU_BO_HIGH, 0, 0);
+ if (r)
+ return r;
+ return OUT_RELOC(chan, bo, delta, flags | NOUVEAU_BO_LOW, 0, 0);
+}
+
#endif
--
1.7.3.3
Marcin Slusarz
2011-Jan-12 19:24 UTC
[Nouveau] [libdrm PATCH 2/3 v2] nouveau: add new OUT_RELOC2 (OUT_RELOCh + OUT_RELOCl)
---
nouveau/nouveau_pushbuf.h | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
v2: s/OUT_RELOChl/OUT_RELOC2/g as requested
diff --git a/nouveau/nouveau_pushbuf.h b/nouveau/nouveau_pushbuf.h
index 70d0f28..9273272 100644
--- a/nouveau/nouveau_pushbuf.h
+++ b/nouveau/nouveau_pushbuf.h
@@ -142,4 +142,15 @@ OUT_RELOCh(struct nouveau_channel *chan, struct nouveau_bo
*bo,
return OUT_RELOC(chan, bo, delta, flags | NOUVEAU_BO_HIGH, 0, 0);
}
+/* High 32-bits, then low 32-bits of offset */
+static __inline__ int
+OUT_RELOC2(struct nouveau_channel *chan, struct nouveau_bo *bo,
+ unsigned delta, unsigned flags)
+{
+ int r = OUT_RELOC(chan, bo, delta, flags | NOUVEAU_BO_HIGH, 0, 0);
+ if (r)
+ return r;
+ return OUT_RELOC(chan, bo, delta, flags | NOUVEAU_BO_LOW, 0, 0);
+}
+
#endif
--
1.7.3.3