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_*/