Module Name:    src
Committed By:   riastradh
Date:           Mon Aug 27 06:08:25 UTC 2018

Modified Files:
        src/sys/external/bsd/common/include/linux: kernel.h
        src/sys/external/bsd/drm2/dist/drm/i915: i915_gem_gtt.c i915_gem_gtt.h
            i915_gem_stolen.c i915_gpu_error.c
        src/sys/external/bsd/drm2/include/linux: hashtable.h

Log Message:
some more definitions necessary

ifdef out all the i915 gtt virtual memory stuff that errors,
unless it looks exactly like the old code and then merge the
netbsd ifdefs for it.

we don't want to use their ALIGN(, which has more arguments,
use the old alt function.
merge in the old intel_acpi.c code.
don't duplicate DECLARE_BITMAP

Author: coypu <[email protected]>
Committer: Taylor R Campbell <[email protected]>


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/external/bsd/common/include/linux/kernel.h
cvs rdiff -u -r1.5 -r1.6 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h
cvs rdiff -u -r1.6 -r1.7 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/include/linux/hashtable.h

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/common/include/linux/kernel.h
diff -u src/sys/external/bsd/common/include/linux/kernel.h:1.11 src/sys/external/bsd/common/include/linux/kernel.h:1.12
--- src/sys/external/bsd/common/include/linux/kernel.h:1.11	Mon Aug 27 06:07:20 2018
+++ src/sys/external/bsd/common/include/linux/kernel.h	Mon Aug 27 06:08:25 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: kernel.h,v 1.11 2018/08/27 06:07:20 riastradh Exp $	*/
+/*	$NetBSD: kernel.h,v 1.12 2018/08/27 06:08:25 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -40,6 +40,10 @@
 #include <lib/libkern/libkern.h>
 #include <linux/printk.h>
 
+#define U16_MAX UINT16_MAX
+#define U32_MAX UINT32_MAX
+#define U64_MAX UINT64_MAX
+
 #define	oops_in_progress	(panicstr != NULL)
 
 #define	IS_ENABLED(option)	(option)

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.5 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.5	Mon Aug 27 04:58:23 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c	Mon Aug 27 06:08:25 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_gtt.c,v 1.5 2018/08/27 04:58:23 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_gtt.c,v 1.6 2018/08/27 06:08:25 riastradh Exp $	*/
 
 /*
  * Copyright © 2010 Daniel Vetter
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.5 2018/08/27 04:58:23 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.6 2018/08/27 06:08:25 riastradh Exp $");
 
 #include <linux/err.h>
 #include <linux/seq_file.h>
@@ -1686,7 +1686,6 @@ static void gen6_write_pde(struct i915_p
 #else
 	writel(pd_entry, ppgtt->pd_addr + pde);
 #endif
-
 }
 
 /* Write all the page tables found in the ppgtt structure to incrementing page
@@ -3321,7 +3320,6 @@ static int gen6_gmch_probe(struct drm_de
 
 static void gen6_gmch_remove(struct i915_address_space *vm)
 {
-
 	struct i915_gtt *gtt = container_of(vm, struct i915_gtt, base);
 
 #ifdef __NetBSD__
@@ -3574,6 +3572,9 @@ rotate_pages(dma_addr_t *in, unsigned in
 	     unsigned int width, unsigned int height,
 	     struct sg_table *st, struct scatterlist *sg)
 {
+#ifdef __NetBSD__
+	panic("XXX");
+#else
 	unsigned int column, row;
 	unsigned int src_idx;
 
@@ -3599,12 +3600,16 @@ rotate_pages(dma_addr_t *in, unsigned in
 	}
 
 	return sg;
+#endif
 }
 
 static struct sg_table *
 intel_rotate_fb_obj_pages(struct i915_ggtt_view *ggtt_view,
 			  struct drm_i915_gem_object *obj)
 {
+#ifdef __NetBSD__
+	panic("XXX");
+#else
 	struct intel_rotation_info *rot_info = &ggtt_view->rotation_info;
 	unsigned int size_pages = rot_info->size >> PAGE_SHIFT;
 	unsigned int size_pages_uv;
@@ -3688,12 +3693,16 @@ err_st_alloc:
 		      rot_info->height_pages, size_pages + size_pages_uv,
 		      size_pages);
 	return ERR_PTR(ret);
+#endif
 }
 
 static struct sg_table *
 intel_partial_pages(const struct i915_ggtt_view *view,
 		    struct drm_i915_gem_object *obj)
 {
+#ifdef __NetBSD__
+	panic("XXX");
+#else
 	struct sg_table *st;
 	struct scatterlist *sg;
 	struct sg_page_iter obj_sg_iter;
@@ -3729,6 +3738,7 @@ err_sg_alloc:
 	kfree(st);
 err_st_alloc:
 	return ERR_PTR(ret);
+#endif
 }
 
 static int
Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c:1.5 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c:1.5	Mon Aug 27 04:58:23 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c	Mon Aug 27 06:08:25 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_stolen.c,v 1.5 2018/08/27 04:58:23 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_stolen.c,v 1.6 2018/08/27 06:08:25 riastradh Exp $	*/
 
 /*
  * Copyright © 2008-2012 Intel Corporation
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_stolen.c,v 1.5 2018/08/27 04:58:23 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_stolen.c,v 1.6 2018/08/27 06:08:25 riastradh Exp $");
 
 #include <linux/printk.h>
 #include <linux/err.h>
@@ -416,7 +416,11 @@ int i915_gem_init_stolen(struct drm_devi
 	unsigned long reserved_total, reserved_base = 0, reserved_size;
 	unsigned long stolen_top;
 
+#ifdef __NetBSD__
+	linux_mutex_init(&dev_priv->mm.stolen_lock);
+#else
 	mutex_init(&dev_priv->mm.stolen_lock);
+#endif
 
 #ifdef CONFIG_INTEL_IOMMU
 	if (intel_iommu_gfx_mapped && INTEL_INFO(dev)->gen < 8) {
@@ -513,6 +517,9 @@ static struct sg_table *
 i915_pages_create_for_stolen(struct drm_device *dev,
 			     u32 offset, u32 size)
 {
+#ifdef __NetBSD__
+	panic("XXX");
+#else
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct sg_table *st;
 	struct scatterlist *sg;
@@ -542,6 +549,7 @@ i915_pages_create_for_stolen(struct drm_
 	sg_dma_len(sg) = size;
 
 	return st;
+#endif
 }
 #endif
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h:1.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h:1.3	Mon Aug 27 05:35:11 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.h	Mon Aug 27 06:08:25 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_gtt.h,v 1.3 2018/08/27 05:35:11 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_gtt.h,v 1.4 2018/08/27 06:08:25 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -435,6 +435,16 @@ struct i915_hw_ppgtt {
  *
  * XXX: temp is not actually needed, but it saves doing the ALIGN operation.
  */
+#ifdef __NetBSD__ /* ALIGN means something else */
+#define gen6_for_each_pde(pt, pd, start, length, temp, iter) \
+	for (iter = gen6_pde_index(start); \
+	     length > 0 && iter < I915_PDES ? \
+			(pt = (pd)->page_table[iter]), 1 : 0; \
+	     iter++, \
+	     temp = round_up(start+1, 1 << GEN6_PDE_SHIFT) - start, \
+	     temp = min_t(unsigned, temp, length), \
+	     start += temp, length -= temp)
+#else
 #define gen6_for_each_pde(pt, pd, start, length, temp, iter) \
 	for (iter = gen6_pde_index(start); \
 	     length > 0 && iter < I915_PDES ? \
@@ -443,6 +453,7 @@ struct i915_hw_ppgtt {
 	     temp = ALIGN(start+1, 1 << GEN6_PDE_SHIFT) - start, \
 	     temp = min_t(unsigned, temp, length), \
 	     start += temp, length -= temp)
+#endif
 
 #define gen6_for_all_pdes(pt, ppgtt, iter)  \
 	for (iter = 0;		\
@@ -501,6 +512,36 @@ static inline uint32_t gen6_pde_index(ui
  * between from start until start + length. On gen8+ it simply iterates
  * over every page directory entry in a page directory.
  */
+#ifdef __NetBSD__ /* ALIGN means something else */
+
+#define gen8_for_each_pde(pt, pd, start, length, temp, iter)		\
+	for (iter = gen8_pde_index(start); \
+	     length > 0 && iter < I915_PDES ? \
+			(pt = (pd)->page_table[iter]), 1 : 0; \
+	     iter++,				\
+	     temp = round_up(start+1, 1 << GEN8_PDE_SHIFT) - start,	\
+	     temp = min(temp, length),					\
+	     start += temp, length -= temp)
+#define gen8_for_each_pdpe(pd, pdp, start, length, temp, iter)	\
+	for (iter = gen8_pdpe_index(start); \
+	     length > 0 && (iter < I915_PDPES_PER_PDP(dev)) ? \
+			(pd = (pdp)->page_directory[iter]), 1 : 0; \
+	     iter++,				\
+	     temp = round_up(start+1, 1 << GEN8_PDPE_SHIFT) - start,	\
+	     temp = min(temp, length),					\
+	     start += temp, length -= temp)
+
+#define gen8_for_each_pml4e(pdp, pml4, start, length, temp, iter)	\
+	for (iter = gen8_pml4e_index(start);	\
+	     length > 0 && iter < GEN8_PML4ES_PER_PML4 ? \
+			(pdp = (pml4)->pdps[iter]), 1 : 0; \
+	     iter++,				\
+	     temp = round_up(start+1, 1ULL << GEN8_PML4E_SHIFT) - start,	\
+	     temp = min(temp, length),					\
+	     start += temp, length -= temp)
+
+#else
+
 #define gen8_for_each_pde(pt, pd, start, length, temp, iter)		\
 	for (iter = gen8_pde_index(start); \
 	     length > 0 && iter < I915_PDES ? \
@@ -527,6 +568,7 @@ static inline uint32_t gen6_pde_index(ui
 	     temp = ALIGN(start+1, 1ULL << GEN8_PML4E_SHIFT) - start,	\
 	     temp = min(temp, length),					\
 	     start += temp, length -= temp)
+#endif
 
 static inline uint32_t gen8_pte_index(uint64_t address)
 {

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.6 src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.6	Mon Aug 27 05:57:29 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c	Mon Aug 27 06:08:25 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gpu_error.c,v 1.6 2018/08/27 05:57:29 riastradh Exp $	*/
+/*	$NetBSD: i915_gpu_error.c,v 1.7 2018/08/27 06:08:25 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2008 Intel Corporation
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_gpu_error.c,v 1.6 2018/08/27 05:57:29 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gpu_error.c,v 1.7 2018/08/27 06:08:25 riastradh Exp $");
 
 #include <sys/param.h>
 
@@ -355,7 +355,7 @@ int i915_error_state_to_str(struct drm_i
 	err_printf(m, "%s\n", error->error_msg);
 	err_printf(m, "Time: %"PRIdMAX" s %ld us\n", (intmax_t)error->time.tv_sec,
 		   (long)error->time.tv_usec);
-	err_printf(m, "Kernel: " __NetBSD_Version__ "\n");
+	err_printf(m, "Kernel: %d\n", __NetBSD_Version__);
 	err_printf(m, "Time: %ld s %ld us\n", error->time.tv_sec,
 		   error->time.tv_usec);
 	max_hangcheck_score = 0;

Index: src/sys/external/bsd/drm2/include/linux/hashtable.h
diff -u src/sys/external/bsd/drm2/include/linux/hashtable.h:1.2 src/sys/external/bsd/drm2/include/linux/hashtable.h:1.3
--- src/sys/external/bsd/drm2/include/linux/hashtable.h:1.2	Mon Aug 27 06:08:09 2018
+++ src/sys/external/bsd/drm2/include/linux/hashtable.h	Mon Aug 27 06:08:25 2018
@@ -1,4 +1,4 @@
-/*	$OpenBSD: drm_linux.h,v 1.89 2018/06/25 22:29:16 kettenis Exp $	*/
+/*	$OpenBSD$	*/
 /*
  * Copyright (c) 2013, 2014, 2015 Mark Kettenis
  * Copyright (c) 2017 Martin Pieuchot
@@ -58,8 +58,4 @@ __hash_empty(struct list_head *table, u_
 	for (i = 0; i < nitems(table); i++)		\
 	       list_for_each_entry_safe(obj, tmp, &table[i], member)
 
-#define DECLARE_HASHTABLE(__a,__b) \
-	uint64_t __a /* XXX */
-
-
 #endif /*_LINUX_HASHTABLE_H_*/

Reply via email to