summaryrefslogtreecommitdiff
path: root/sys/dev/pci/drm
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2015-04-18 14:47:36 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2015-04-18 14:47:36 +0000
commit59652e050a8311d8419f5727c476f3f1fdb9a293 (patch)
tree9ae10db6b9be66b4edd2292e22f09e59ce5910fe /sys/dev/pci/drm
parenta079d4ed8d476dd07406f782104f8a3d4bd7c37d (diff)
another round of reducing the diff to linux
Diffstat (limited to 'sys/dev/pci/drm')
-rw-r--r--sys/dev/pci/drm/drmP.h4
-rw-r--r--sys/dev/pci/drm/drm_atomic.h3
-rw-r--r--sys/dev/pci/drm/drm_edid.c8
-rw-r--r--sys/dev/pci/drm/drm_irq.c18
-rw-r--r--sys/dev/pci/drm/drm_linux.h30
-rw-r--r--sys/dev/pci/drm/drm_mem_util.h4
-rw-r--r--sys/dev/pci/drm/drm_mm.h4
-rw-r--r--sys/dev/pci/drm/i915/i915_dma.c8
-rw-r--r--sys/dev/pci/drm/i915/i915_drv.c70
-rw-r--r--sys/dev/pci/drm/i915/i915_gem.c22
-rw-r--r--sys/dev/pci/drm/i915/i915_gem_tiling.c8
-rw-r--r--sys/dev/pci/drm/i915/i915_suspend.c8
-rw-r--r--sys/dev/pci/drm/i915/intel_ddi.c7
-rw-r--r--sys/dev/pci/drm/i915/intel_display.c10
-rw-r--r--sys/dev/pci/drm/i915/intel_opregion.c27
-rw-r--r--sys/dev/pci/drm/i915/intel_panel.c4
-rw-r--r--sys/dev/pci/drm/i915/intel_pm.c6
-rw-r--r--sys/dev/pci/drm/radeon/atom.c4
-rw-r--r--sys/dev/pci/drm/radeon/atombios_dp.c4
-rw-r--r--sys/dev/pci/drm/radeon/atombios_encoders.c8
-rw-r--r--sys/dev/pci/drm/radeon/evergreen.c9
-rw-r--r--sys/dev/pci/drm/radeon/evergreen_blit_kms.c4
-rw-r--r--sys/dev/pci/drm/radeon/evergreen_cs.c6
-rw-r--r--sys/dev/pci/drm/radeon/ni.c3
-rw-r--r--sys/dev/pci/drm/radeon/r600_blit_kms.c14
-rw-r--r--sys/dev/pci/drm/radeon/r600_cs.c9
-rw-r--r--sys/dev/pci/drm/radeon/radeon.h4
-rw-r--r--sys/dev/pci/drm/radeon/radeon_atombios.c10
-rw-r--r--sys/dev/pci/drm/radeon/radeon_benchmark.c4
-rw-r--r--sys/dev/pci/drm/radeon/radeon_clocks.c6
-rw-r--r--sys/dev/pci/drm/radeon/radeon_combios.c7
-rw-r--r--sys/dev/pci/drm/radeon/radeon_connectors.c7
-rw-r--r--sys/dev/pci/drm/radeon/radeon_encoders.c4
-rw-r--r--sys/dev/pci/drm/radeon/radeon_fence.c4
-rw-r--r--sys/dev/pci/drm/radeon/radeon_gem.c11
-rw-r--r--sys/dev/pci/drm/radeon/radeon_irq_kms.c5
-rw-r--r--sys/dev/pci/drm/radeon/radeon_pm.c11
-rw-r--r--sys/dev/pci/drm/radeon/radeon_ring.c4
-rw-r--r--sys/dev/pci/drm/radeon/rv770.c4
-rw-r--r--sys/dev/pci/drm/ttm/ttm_bo_api.h10
-rw-r--r--sys/dev/pci/drm/ttm/ttm_bo_driver.h14
-rw-r--r--sys/dev/pci/drm/ttm/ttm_lock.h4
-rw-r--r--sys/dev/pci/drm/ttm/ttm_memory.h4
-rw-r--r--sys/dev/pci/drm/ttm/ttm_object.c4
-rw-r--r--sys/dev/pci/drm/ttm/ttm_object.h4
45 files changed, 209 insertions, 214 deletions
diff --git a/sys/dev/pci/drm/drmP.h b/sys/dev/pci/drm/drmP.h
index ad5b424b2c7..c2c0e169433 100644
--- a/sys/dev/pci/drm/drmP.h
+++ b/sys/dev/pci/drm/drmP.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: drmP.h,v 1.194 2015/04/17 00:54:41 jsg Exp $ */
+/* $OpenBSD: drmP.h,v 1.195 2015/04/18 14:47:34 jsg Exp $ */
/* drmP.h -- Private header for Direct Rendering Manager -*- linux-c -*-
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
*/
@@ -89,6 +89,8 @@
#define DRM_SUSER(p) (suser(p, 0) == 0)
#define DRM_MTRR_WC MDF_WRITECOMBINE
+#define DRM_WAKEUP(x) wakeup(x)
+
extern int ticks;
#define drm_msleep(x, msg) mdelay(x)
diff --git a/sys/dev/pci/drm/drm_atomic.h b/sys/dev/pci/drm/drm_atomic.h
index 6671c74cf59..e30fe1780f7 100644
--- a/sys/dev/pci/drm/drm_atomic.h
+++ b/sys/dev/pci/drm/drm_atomic.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: drm_atomic.h,v 1.11 2013/10/01 20:06:57 kettenis Exp $ */
+/* $OpenBSD: drm_atomic.h,v 1.12 2015/04/18 14:47:34 jsg Exp $ */
/**
* \file drm_atomic.h
* Atomic operations used in the DRM which may or may not be provided by the OS.
@@ -120,6 +120,7 @@ atomic_inc_not_zero(atomic_t *p)
/* FIXME */
#define atomic_set_int(p, bits) atomic_setbits_int(p,bits)
#define atomic_clear_int(p, bits) atomic_clearbits_int(p,bits)
+#define atomic_clear_mask(bits, p) atomic_clearbits_int(p,bits)
#define atomic_fetchadd_int(p, n) __sync_fetch_and_add(p, n)
#define atomic_fetchsub_int(p, n) __sync_fetch_and_sub(p, n)
diff --git a/sys/dev/pci/drm/drm_edid.c b/sys/dev/pci/drm/drm_edid.c
index 9d4e415c09e..c3703d85125 100644
--- a/sys/dev/pci/drm/drm_edid.c
+++ b/sys/dev/pci/drm/drm_edid.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: drm_edid.c,v 1.13 2015/04/18 11:05:32 jsg Exp $ */
+/* $OpenBSD: drm_edid.c,v 1.14 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright (c) 2006 Luc Verhaegen (quirks list)
* Copyright (c) 2007-2008 Intel Corporation
@@ -923,9 +923,9 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev,
return NULL;
if (quirks & EDID_QUIRK_135_CLOCK_TOO_HIGH)
- timing->pixel_clock = htole16(1088);
+ timing->pixel_clock = cpu_to_le16(1088);
- mode->clock = letoh16(timing->pixel_clock) * 10;
+ mode->clock = le16_to_cpu(timing->pixel_clock) * 10;
mode->hdisplay = hactive;
mode->hsync_start = mode->hdisplay + hsync_offset;
@@ -1362,7 +1362,7 @@ static int drm_cvt_modes(struct drm_connector *connector,
const u8 empty[3] = { 0, 0, 0 };
for (i = 0; i < 4; i++) {
- int width, height;
+ int uninitialized_var(width), height;
cvt = &(timing->data.other_data.data.cvt[i]);
if (!memcmp(cvt->code, empty, 3))
diff --git a/sys/dev/pci/drm/drm_irq.c b/sys/dev/pci/drm/drm_irq.c
index a32f5d62020..8094c616553 100644
--- a/sys/dev/pci/drm/drm_irq.c
+++ b/sys/dev/pci/drm/drm_irq.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: drm_irq.c,v 1.63 2015/04/15 09:48:19 kettenis Exp $ */
+/* $OpenBSD: drm_irq.c,v 1.64 2015/04/18 14:47:34 jsg Exp $ */
/**
* \file drm_irq.c
* IRQ support
@@ -396,10 +396,10 @@ int drm_irq_uninstall(struct drm_device *dev)
if (dev->num_crtcs) {
spin_lock_irqsave(&dev->vbl_lock, irqflags);
for (i = 0; i < dev->num_crtcs; i++) {
- wakeup(&dev->vbl_queue[i]);
+ DRM_WAKEUP(&dev->vbl_queue[i]);
dev->vblank_enabled[i] = 0;
dev->last_vblank[i] =
- dev->driver->get_vblank_counter(dev, i);
+ dev->driver->get_vblank_counter(dev, i);
}
spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
}
@@ -481,9 +481,9 @@ void drm_calc_timestamping_constants(struct drm_crtc *crtc)
* line duration, frame duration and pixel duration in
* nanoseconds:
*/
- pixeldur_ns = (s64) 1000000000 / dotclock;
- linedur_ns = (s64) ((u64) crtc->hwmode.crtc_htotal *
- 1000000000) / dotclock;
+ pixeldur_ns = (s64) div64_u64(1000000000, dotclock);
+ linedur_ns = (s64) div64_u64(((u64) crtc->hwmode.crtc_htotal *
+ 1000000000), dotclock);
framedur_ns = (s64) crtc->hwmode.crtc_vtotal * linedur_ns;
} else
DRM_ERROR("crtc %d: Can't calculate constants, dotclock = 0!\n",
@@ -980,6 +980,7 @@ void drm_vblank_put(struct drm_device *dev, int crtc)
(drm_vblank_offdelay > 0))
timeout_add_msec(&dev->vblank_disable_timer, drm_vblank_offdelay);
}
+EXPORT_SYMBOL(drm_vblank_put);
/**
* drm_vblank_off - disable vblank events on a CRTC
@@ -999,7 +1000,7 @@ void drm_vblank_off(struct drm_device *dev, int crtc)
spin_lock_irqsave(&dev->vbl_lock, irqflags);
vblank_disable_and_save(dev, crtc);
- wakeup(&dev->vbl_queue[crtc]);
+ DRM_WAKEUP(&dev->vbl_queue[crtc]);
list = &dev->vbl_events;
/* Send any queued vblank events, lest the natives grow disquiet */
@@ -1024,6 +1025,7 @@ void drm_vblank_off(struct drm_device *dev, int crtc)
spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
}
+EXPORT_SYMBOL(drm_vblank_off);
/**
* drm_vblank_pre_modeset - account for vblanks across mode sets
@@ -1394,7 +1396,7 @@ bool drm_handle_vblank(struct drm_device *dev, int crtc)
crtc, (int) diff_ns);
}
- wakeup(&dev->vbl_queue[crtc]);
+ DRM_WAKEUP(&dev->vbl_queue[crtc]);
drm_handle_vblank_events(dev, crtc);
spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags);
diff --git a/sys/dev/pci/drm/drm_linux.h b/sys/dev/pci/drm/drm_linux.h
index 571b5a189b1..f7d11876a3e 100644
--- a/sys/dev/pci/drm/drm_linux.h
+++ b/sys/dev/pci/drm/drm_linux.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: drm_linux.h,v 1.26 2015/04/18 11:41:28 jsg Exp $ */
+/* $OpenBSD: drm_linux.h,v 1.27 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright (c) 2013, 2014 Mark Kettenis
*
@@ -42,6 +42,8 @@ typedef bus_addr_t phys_addr_t;
#define __must_check
#define __init
+#define uninitialized_var(x) x
+
#if BYTE_ORDER == BIG_ENDIAN
#define __BIG_ENDIAN
#else
@@ -86,8 +88,17 @@ typedef bus_addr_t phys_addr_t;
#define pr_fmt(fmt) fmt
#endif
+#define printk_once(fmt, arg...) ({ \
+ static int __warned; \
+ if (!__warned) { \
+ printf(fmt, ## arg); \
+ __warned = 1; \
+ } \
+})
+
#define printk(fmt, arg...) printf(fmt, ## arg)
#define pr_warn(fmt, arg...) printf(pr_fmt(fmt), ## arg)
+#define pr_warn_once(fmt, arg...) printk_once(pr_fmt(fmt), ## arg)
#define pr_notice(fmt, arg...) printf(pr_fmt(fmt), ## arg)
#define pr_crit(fmt, arg...) printf(pr_fmt(fmt), ## arg)
#define pr_err(fmt, arg...) printf(pr_fmt(fmt), ## arg)
@@ -221,6 +232,7 @@ IS_ERR_OR_NULL(const void *ptr)
#define __DECONST(type, var) ((type)(__uintptr_t)(const void *)(var))
#endif
+typedef struct rwlock rwlock_t;
typedef struct mutex spinlock_t;
#define DEFINE_SPINLOCK(x) struct mutex x
@@ -279,6 +291,8 @@ extern struct timeval ns_to_timeval(const int64_t);
#define msecs_to_jiffies(x) (((int64_t)(x)) * hz / 1000)
#define time_after(a,b) ((long)(b) - (long)(a) < 0)
#define time_after_eq(a,b) ((long)(b) - (long)(a) <= 0)
+#define get_seconds() time_second
+#define getrawmonotonic(x) nanouptime(x)
static inline void
set_normalized_timespec(struct timespec *ts, time_t sec, int64_t nsec)
@@ -386,6 +400,12 @@ div_u64(uint64_t x, uint32_t y)
return (x / y);
}
+static inline uint64_t
+div64_u64(uint64_t x, uint64_t y)
+{
+ return (x / y);
+}
+
static inline int64_t
abs64(int64_t x)
{
@@ -532,6 +552,7 @@ iowrite32(u32 val, volatile void __iomem *addr)
#define page_to_phys(page) (VM_PAGE_TO_PHYS(page))
#define page_to_pfn(pp) (VM_PAGE_TO_PHYS(pp) / PAGE_SIZE)
#define offset_in_page(off) ((off) & PAGE_MASK)
+#define set_page_dirty(page) atomic_clearbits_int(&page->pg_flags, PG_CLEAN)
typedef int pgprot_t;
#define pgprot_val(v) (v)
@@ -597,6 +618,13 @@ in_dbg_master(void)
return (0);
}
+static inline int
+power_supply_is_system_supplied(void)
+{
+ /* XXX return 0 if on battery */
+ return (1);
+}
+
#ifdef __macppc__
static __inline int
of_machine_is_compatible(const char *model)
diff --git a/sys/dev/pci/drm/drm_mem_util.h b/sys/dev/pci/drm/drm_mem_util.h
index f9582b54144..bed42982663 100644
--- a/sys/dev/pci/drm/drm_mem_util.h
+++ b/sys/dev/pci/drm/drm_mem_util.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: drm_mem_util.h,v 1.3 2015/04/11 04:36:10 jsg Exp $ */
+/* $OpenBSD: drm_mem_util.h,v 1.4 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright © 2008 Intel Corporation
*
@@ -67,7 +67,7 @@ static __inline void drm_free_large(void *ptr)
free(ptr, M_DRM, 0);
#ifdef notyet
if (!is_vmalloc_addr(ptr))
- return free(ptr, M_DRM, 0);
+ return kfree(ptr);
vfree(ptr);
#endif
diff --git a/sys/dev/pci/drm/drm_mm.h b/sys/dev/pci/drm/drm_mm.h
index 24645f458bb..1651ee9142c 100644
--- a/sys/dev/pci/drm/drm_mm.h
+++ b/sys/dev/pci/drm/drm_mm.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: drm_mm.h,v 1.2 2013/09/12 13:03:31 jsg Exp $ */
+/* $OpenBSD: drm_mm.h,v 1.3 2015/04/18 14:47:34 jsg Exp $ */
/**************************************************************************
*
* Copyright 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX. USA.
@@ -65,7 +65,7 @@ struct drm_mm {
struct drm_mm_node head_node;
struct list_head unused_nodes;
int num_unused;
- struct mutex unused_lock;
+ spinlock_t unused_lock;
unsigned int scan_check_range : 1;
unsigned scan_alignment;
unsigned long scan_color;
diff --git a/sys/dev/pci/drm/i915/i915_dma.c b/sys/dev/pci/drm/i915/i915_dma.c
index cd6041a3a42..03820d86b71 100644
--- a/sys/dev/pci/drm/i915/i915_dma.c
+++ b/sys/dev/pci/drm/i915/i915_dma.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: i915_dma.c,v 1.20 2015/04/17 00:54:42 jsg Exp $ */
+/* $OpenBSD: i915_dma.c,v 1.21 2015/04/18 14:47:34 jsg Exp $ */
/* i915_dma.c -- DMA support for the I915 -*- linux-c -*-
*/
/*
@@ -334,6 +334,7 @@ i915_load_modeset_init(struct drm_device *dev)
if (ret)
goto cleanup_vga_switcheroo;
#endif
+
intel_modeset_init(dev);
ret = i915_gem_init(dev);
@@ -359,7 +360,7 @@ i915_load_modeset_init(struct drm_device *dev)
/* We're off and running w/KMS */
dev_priv->mm.suspended = 0;
- return (0);
+ return 0;
cleanup_irq:
drm_irq_uninstall(dev);
@@ -390,8 +391,7 @@ i915_driver_lastclose(struct drm_device *dev)
DRM_ERROR("failed to idle hardware: %d\n", ret);
}
-int
-i915_driver_open(struct drm_device *dev, struct drm_file *file)
+int i915_driver_open(struct drm_device *dev, struct drm_file *file)
{
struct drm_i915_file_private *file_priv;
diff --git a/sys/dev/pci/drm/i915/i915_drv.c b/sys/dev/pci/drm/i915/i915_drv.c
index a71a13b150d..c8b341f739e 100644
--- a/sys/dev/pci/drm/i915/i915_drv.c
+++ b/sys/dev/pci/drm/i915/i915_drv.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: i915_drv.c,v 1.82 2015/04/18 11:41:28 jsg Exp $ */
+/* $OpenBSD: i915_drv.c,v 1.83 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright (c) 2008-2009 Owain G. Ainsworth <oga@openbsd.org>
*
@@ -178,10 +178,6 @@ void inteldrm_timeout(void *);
void i915_alloc_ifp(struct inteldrm_softc *, struct pci_attach_args *);
void i965_alloc_ifp(struct inteldrm_softc *, struct pci_attach_args *);
-int i915_drm_freeze(struct drm_device *);
-int __i915_drm_thaw(struct drm_device *);
-int i915_drm_thaw(struct drm_device *);
-
#define INTEL_VGA_DEVICE(id, info) { \
.class = PCI_CLASS_DISPLAY << 16, \
.class_mask = 0xff0000, \
@@ -359,7 +355,7 @@ static const struct intel_device_info intel_haswell_m_info = {
.has_force_wake = 1,
};
-const static struct drm_pcidev inteldrm_pciidlist[] = { /* aka */
+static const struct drm_pcidev inteldrm_pciidlist[] = { /* aka */
INTEL_VGA_DEVICE(0x3577, &intel_i830_info), /* I830_M */
INTEL_VGA_DEVICE(0x2562, &intel_845g_info), /* 845_G */
INTEL_VGA_DEVICE(0x3582, &intel_i85x_info), /* I855_GM */
@@ -516,8 +512,7 @@ inteldrm_probe(struct device *parent, void *match, void *aux)
inteldrm_pciidlist));
}
-bool
-i915_semaphore_is_enabled(struct drm_device *dev)
+bool i915_semaphore_is_enabled(struct drm_device *dev)
{
if (INTEL_INFO(dev)->gen < 6)
return 0;
@@ -534,8 +529,7 @@ i915_semaphore_is_enabled(struct drm_device *dev)
return 1;
}
-int
-i915_drm_freeze(struct drm_device *dev)
+static int i915_drm_freeze(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
@@ -572,8 +566,7 @@ i915_drm_freeze(struct drm_device *dev)
return 0;
}
-int
-__i915_drm_thaw(struct drm_device *dev)
+static int __i915_drm_thaw(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
int error = 0;
@@ -604,8 +597,7 @@ __i915_drm_thaw(struct drm_device *dev)
return error;
}
-int
-i915_drm_thaw(struct drm_device *dev)
+static int i915_drm_thaw(struct drm_device *dev)
{
int error = 0;
@@ -1493,12 +1485,12 @@ int i915_reset(struct drm_device *dev)
i915_gem_reset(dev);
ret = -ENODEV;
- if (time_second - dev_priv->last_gpu_reset < 5)
+ if (get_seconds() - dev_priv->last_gpu_reset < 5)
DRM_ERROR("GPU hanging too fast, declaring wedged!\n");
else
ret = intel_gpu_reset(dev);
- dev_priv->last_gpu_reset = time_second;
+ dev_priv->last_gpu_reset = get_seconds();
if (ret) {
DRM_ERROR("Failed to reset chip.\n");
mutex_unlock(&dev->struct_mutex);
@@ -1780,3 +1772,49 @@ __i915_write(16, w)
__i915_write(32, l)
__i915_write(64, q)
#undef __i915_write
+
+static const struct register_whitelist {
+ uint64_t offset;
+ uint32_t size;
+ uint32_t gen_bitmask; /* support gens, 0x10 for 4, 0x30 for 4 and 5, etc. */
+} whitelist[] = {
+ { RING_TIMESTAMP(RENDER_RING_BASE), 8, 0xF0 },
+};
+
+int i915_reg_read_ioctl(struct drm_device *dev,
+ void *data, struct drm_file *file)
+{
+ struct drm_i915_private *dev_priv = dev->dev_private;
+ struct drm_i915_reg_read *reg = data;
+ struct register_whitelist const *entry = whitelist;
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(whitelist); i++, entry++) {
+ if (entry->offset == reg->offset &&
+ (1 << INTEL_INFO(dev)->gen & entry->gen_bitmask))
+ break;
+ }
+
+ if (i == ARRAY_SIZE(whitelist))
+ return -EINVAL;
+
+ switch (entry->size) {
+ case 8:
+ reg->val = I915_READ64(reg->offset);
+ break;
+ case 4:
+ reg->val = I915_READ(reg->offset);
+ break;
+ case 2:
+ reg->val = I915_READ16(reg->offset);
+ break;
+ case 1:
+ reg->val = I915_READ8(reg->offset);
+ break;
+ default:
+ WARN_ON(1);
+ return -EINVAL;
+ }
+
+ return 0;
+}
diff --git a/sys/dev/pci/drm/i915/i915_gem.c b/sys/dev/pci/drm/i915/i915_gem.c
index 4e5f4515520..013e2c67748 100644
--- a/sys/dev/pci/drm/i915/i915_gem.c
+++ b/sys/dev/pci/drm/i915/i915_gem.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: i915_gem.c,v 1.93 2015/04/18 11:41:28 jsg Exp $ */
+/* $OpenBSD: i915_gem.c,v 1.94 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright (c) 2008-2009 Owain G. Ainsworth <oga@openbsd.org>
*
@@ -488,13 +488,11 @@ i915_gem_shmem_pread(struct drm_device *dev,
#ifdef __linux__
page = sg_page(sg);
- page_do_bit17_swizzling = obj_do_bit17_swizzling &&
- (page_to_phys(page) & (1 << 17)) != 0;
#else
page = obj->pages[i];
- page_do_bit17_swizzling = obj_do_bit17_swizzling &&
- (VM_PAGE_TO_PHYS(page) & (1 << 17)) != 0;
#endif
+ page_do_bit17_swizzling = obj_do_bit17_swizzling &&
+ (page_to_phys(page) & (1 << 17)) != 0;
ret = shmem_pread_fast(page, shmem_page_offset, page_length,
user_data, page_do_bit17_swizzling,
@@ -854,13 +852,11 @@ i915_gem_shmem_pwrite(struct drm_device *dev,
#ifdef __linux__
page = sg_page(sg);
- page_do_bit17_swizzling = obj_do_bit17_swizzling &&
- (page_to_phys(page) & (1 << 17)) != 0;
#else
page = obj->pages[i];
- page_do_bit17_swizzling = obj_do_bit17_swizzling &&
- (VM_PAGE_TO_PHYS(page) & (1 << 17)) != 0;
#endif
+ page_do_bit17_swizzling = obj_do_bit17_swizzling &&
+ (page_to_phys(page) & (1 << 17)) != 0;
ret = shmem_pwrite_fast(page, shmem_page_offset, page_length,
user_data, page_do_bit17_swizzling,
@@ -879,11 +875,9 @@ i915_gem_shmem_pwrite(struct drm_device *dev,
mutex_lock(&dev->struct_mutex);
next_page:
-#ifdef __linux__
set_page_dirty(page);
+#ifdef __linux__
mark_page_accessed(page);
-#else
- atomic_clearbits_int(&page->pg_flags, PG_CLEAN);
#endif
if (ret)
@@ -1063,7 +1057,7 @@ static int __wait_seqno(struct intel_ring_buffer *ring, u32 seqno,
return -ENODEV;
/* Record current time in case interrupted by signal, or wedged * */
- nanouptime(&before);
+ getrawmonotonic(&before);
#define EXIT_COND \
(i915_seqno_passed(ring->get_seqno(ring, false), seqno) || \
@@ -1108,7 +1102,7 @@ static int __wait_seqno(struct intel_ring_buffer *ring, u32 seqno,
end = ret;
} while (end == 0 && wait_forever);
- nanouptime(&now);
+ getrawmonotonic(&now);
ring->irq_put(ring);
trace_i915_gem_request_wait_end(ring, seqno);
diff --git a/sys/dev/pci/drm/i915/i915_gem_tiling.c b/sys/dev/pci/drm/i915/i915_gem_tiling.c
index e579cd326df..f69ccbc1a32 100644
--- a/sys/dev/pci/drm/i915/i915_gem_tiling.c
+++ b/sys/dev/pci/drm/i915/i915_gem_tiling.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: i915_gem_tiling.c,v 1.17 2015/04/08 02:28:13 jsg Exp $ */
+/* $OpenBSD: i915_gem_tiling.c,v 1.18 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright (c) 2008-2009 Owain G. Ainsworth <oga@openbsd.org>
*
@@ -500,11 +500,11 @@ i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj)
for (i = 0; i < page_count; i++) {
struct vm_page *page = obj->pages[i];
- char new_bit_17 = VM_PAGE_TO_PHYS(page) >> 17;
+ char new_bit_17 = page_to_phys(page) >> 17;
if ((new_bit_17 & 0x1) !=
(test_bit(i, obj->bit_17) != 0)) {
i915_gem_swizzle_page(page);
- atomic_clearbits_int(&page->pg_flags, PG_CLEAN);
+ set_page_dirty(page);
}
}
}
@@ -531,7 +531,7 @@ i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj)
for (i = 0; i < page_count; i++) {
struct vm_page *page = obj->pages[i];
- if (VM_PAGE_TO_PHYS(page) & (1 << 17))
+ if (page_to_phys(page) & (1 << 17))
set_bit(i, obj->bit_17);
else
clear_bit(i, obj->bit_17);
diff --git a/sys/dev/pci/drm/i915/i915_suspend.c b/sys/dev/pci/drm/i915/i915_suspend.c
index 3feaebfd2f3..5e8b7f775dd 100644
--- a/sys/dev/pci/drm/i915/i915_suspend.c
+++ b/sys/dev/pci/drm/i915/i915_suspend.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: i915_suspend.c,v 1.5 2015/02/10 01:39:32 jsg Exp $ */
+/* $OpenBSD: i915_suspend.c,v 1.6 2015/04/18 14:47:34 jsg Exp $ */
/*
*
* Copyright 2008 (c) Intel Corporation
@@ -625,7 +625,7 @@ static void i915_save_display(struct drm_device *dev)
dev_priv->regfile.saveDSPARB = I915_READ(DSPARB);
/* This is only meaningful in non-KMS mode */
- /* Don't save them in KMS mode */
+ /* Don't regfile.save them in KMS mode */
i915_save_modeset_reg(dev);
/* LVDS state */
@@ -675,10 +675,10 @@ static void i915_save_display(struct drm_device *dev)
dev_priv->regfile.savePIPEA_DP_LINK_N = I915_READ(_PIPEA_DP_LINK_N);
dev_priv->regfile.savePIPEB_DP_LINK_N = I915_READ(_PIPEB_DP_LINK_N);
}
- /* FIXME: save TV & SDVO state */
+ /* FIXME: regfile.save TV & SDVO state */
}
- /* Only save FBC state on the platform that supports FBC */
+ /* Only regfile.save FBC state on the platform that supports FBC */
if (I915_HAS_FBC(dev)) {
if (HAS_PCH_SPLIT(dev)) {
dev_priv->regfile.saveDPFC_CB_BASE = I915_READ(ILK_DPFC_CB_BASE);
diff --git a/sys/dev/pci/drm/i915/intel_ddi.c b/sys/dev/pci/drm/i915/intel_ddi.c
index 98393624e3e..ce1dda6100c 100644
--- a/sys/dev/pci/drm/i915/intel_ddi.c
+++ b/sys/dev/pci/drm/i915/intel_ddi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: intel_ddi.c,v 1.13 2015/02/12 04:56:03 kettenis Exp $ */
+/* $OpenBSD: intel_ddi.c,v 1.14 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright © 2012 Intel Corporation
*
@@ -76,7 +76,8 @@ static enum port intel_ddi_get_encoder_port(struct intel_encoder *intel_encoder)
return PORT_E;
} else {
- panic("Invalid DDI encoder type %d\n", type);
+ DRM_ERROR("Invalid DDI encoder type %d\n", type);
+ BUG();
}
}
@@ -1375,8 +1376,8 @@ void intel_ddi_prepare_link_retrain(struct drm_encoder *encoder)
struct intel_dp *intel_dp = &intel_dig_port->dp;
struct drm_i915_private *dev_priv = encoder->dev->dev_private;
enum port port = intel_dig_port->port;
- uint32_t val;
bool wait = false;
+ uint32_t val;
if (I915_READ(DP_TP_CTL(port)) & DP_TP_CTL_ENABLE) {
val = I915_READ(DDI_BUF_CTL(port));
diff --git a/sys/dev/pci/drm/i915/intel_display.c b/sys/dev/pci/drm/i915/intel_display.c
index cafd3832228..22100a6892b 100644
--- a/sys/dev/pci/drm/i915/intel_display.c
+++ b/sys/dev/pci/drm/i915/intel_display.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: intel_display.c,v 1.49 2015/04/12 17:10:07 kettenis Exp $ */
+/* $OpenBSD: intel_display.c,v 1.50 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright © 2006-2007 Intel Corporation
*
@@ -1973,12 +1973,7 @@ intel_pin_and_fence_fb_obj(struct drm_device *dev,
DRM_ERROR("Y tiled not allowed for scan out buffers\n");
return -EINVAL;
default:
-#ifdef notyet
BUG();
-#else
- DRM_ERROR("invalid tiling mode %d", obj->tiling_mode);
- return -EINVAL;
-#endif
}
dev_priv->mm.interruptible = false;
@@ -7125,7 +7120,8 @@ static void do_intel_finish_page_flip(struct drm_device *dev,
obj = work->old_fb_obj;
- atomic_clear_int(&obj->pending_flip, 1 << intel_crtc->plane);
+ atomic_clear_mask(1 << intel_crtc->plane,
+ &obj->pending_flip);
wake_up(&dev_priv->pending_flip_queue);
task_add(systq, &work->task);
diff --git a/sys/dev/pci/drm/i915/intel_opregion.c b/sys/dev/pci/drm/i915/intel_opregion.c
index 2461c7a7382..39f51e4cdad 100644
--- a/sys/dev/pci/drm/i915/intel_opregion.c
+++ b/sys/dev/pci/drm/i915/intel_opregion.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: intel_opregion.c,v 1.7 2015/04/12 05:31:23 jsg Exp $ */
+/* $OpenBSD: intel_opregion.c,v 1.8 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright 2008 Intel Corporation <hong.liu@intel.com>
* Copyright 2008 Red Hat <mjg@redhat.com>
@@ -434,6 +434,27 @@ blind_set:
#endif
}
+static void intel_setup_cadls(struct drm_device *dev)
+{
+#ifdef notyet
+ struct drm_i915_private *dev_priv = dev->dev_private;
+ struct intel_opregion *opregion = &dev_priv->opregion;
+ int i = 0;
+ u32 disp_id;
+
+ /* Initialize the CADL field by duplicating the DIDL values.
+ * Technically, this is not always correct as display outputs may exist,
+ * but not active. This initialization is necessary for some Clevo
+ * laptops that check this field before processing the brightness and
+ * display switching hotkeys. Just like DIDL, CADL is NULL-terminated if
+ * there are less than eight devices. */
+ do {
+ disp_id = ioread32(&opregion->acpi->didl[i]);
+ iowrite32(disp_id, &opregion->acpi->cadl[i]);
+ } while (++i < 8 && disp_id != 0);
+#endif
+}
+
void intel_opregion_init(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
@@ -443,8 +464,10 @@ void intel_opregion_init(struct drm_device *dev)
return;
if (opregion->acpi) {
- if (drm_core_check_feature(dev, DRIVER_MODESET))
+ if (drm_core_check_feature(dev, DRIVER_MODESET)) {
intel_didl_outputs(dev);
+ intel_setup_cadls(dev);
+ }
/* Notify BIOS we are ready to handle ACPI video ext notifs.
* Right now, all the events are handled by the ACPI video module.
diff --git a/sys/dev/pci/drm/i915/intel_panel.c b/sys/dev/pci/drm/i915/intel_panel.c
index 9e316d4aaf6..13f36c874ec 100644
--- a/sys/dev/pci/drm/i915/intel_panel.c
+++ b/sys/dev/pci/drm/i915/intel_panel.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: intel_panel.c,v 1.9 2015/04/18 11:05:32 jsg Exp $ */
+/* $OpenBSD: intel_panel.c,v 1.10 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright © 2006-2010 Intel Corporation
* Copyright (c) 2006 Dave Airlie <airlied@linux.ie>
@@ -197,9 +197,7 @@ u32 intel_panel_get_max_backlight(struct drm_device *dev)
/* XXX add code here to query mode clock or hardware clock
* and program max PWM appropriately.
*/
-#ifdef notyet
pr_warn_once("fixme: max PWM is zero\n");
-#endif
return 1;
}
diff --git a/sys/dev/pci/drm/i915/intel_pm.c b/sys/dev/pci/drm/i915/intel_pm.c
index 5701329e1ab..6edc48d71fc 100644
--- a/sys/dev/pci/drm/i915/intel_pm.c
+++ b/sys/dev/pci/drm/i915/intel_pm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: intel_pm.c,v 1.33 2015/04/18 11:41:29 jsg Exp $ */
+/* $OpenBSD: intel_pm.c,v 1.34 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright © 2012 Intel Corporation
*
@@ -2402,7 +2402,7 @@ static void ironlake_enable_drps(struct drm_device *dev)
I915_READ(0x112e0);
dev_priv->ips.last_time1 = jiffies_to_msecs(ticks);
dev_priv->ips.last_count2 = I915_READ(0x112f4);
- nanouptime(&dev_priv->ips.last_time2);
+ getrawmonotonic(&dev_priv->ips.last_time2);
spin_unlock_irq(&mchdev_lock);
}
@@ -3113,7 +3113,7 @@ static void __i915_update_gfx_val(struct drm_i915_private *dev_priv)
assert_spin_locked(&mchdev_lock);
- nanouptime(&now);
+ getrawmonotonic(&now);
timespecsub(&now, &dev_priv->ips.last_time2, &diff1);
/* Don't divide by 0 */
diff --git a/sys/dev/pci/drm/radeon/atom.c b/sys/dev/pci/drm/radeon/atom.c
index e17fb457b58..8082801a89b 100644
--- a/sys/dev/pci/drm/radeon/atom.c
+++ b/sys/dev/pci/drm/radeon/atom.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: atom.c,v 1.6 2015/02/11 07:01:37 jsg Exp $ */
+/* $OpenBSD: atom.c,v 1.7 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
*
@@ -80,8 +80,6 @@ static int atom_dst_to_src[8][4] = {
};
static int atom_def_dst[8] = { 0, 0, 1, 2, 0, 1, 2, 3 };
-extern int ticks;
-
static int debug_depth = 0;
#ifdef ATOM_DEBUG
static void debug_print_spaces(int n)
diff --git a/sys/dev/pci/drm/radeon/atombios_dp.c b/sys/dev/pci/drm/radeon/atombios_dp.c
index 914273da807..1a08b611c3d 100644
--- a/sys/dev/pci/drm/radeon/atombios_dp.c
+++ b/sys/dev/pci/drm/radeon/atombios_dp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: atombios_dp.c,v 1.5 2015/04/06 10:56:37 jsg Exp $ */
+/* $OpenBSD: atombios_dp.c,v 1.6 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright 2007-8 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -46,8 +46,6 @@ static char *pre_emph_names[] = {
};
#endif
-void radeon_atom_copy_swap(u8 *, u8 *, u8, bool);
-
/***** radeon AUX functions *****/
/* Atom needs data in little endian format
diff --git a/sys/dev/pci/drm/radeon/atombios_encoders.c b/sys/dev/pci/drm/radeon/atombios_encoders.c
index 02789d46516..4d0cbe811c0 100644
--- a/sys/dev/pci/drm/radeon/atombios_encoders.c
+++ b/sys/dev/pci/drm/radeon/atombios_encoders.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: atombios_encoders.c,v 1.8 2014/08/08 16:35:56 jsg Exp $ */
+/* $OpenBSD: atombios_encoders.c,v 1.9 2015/04/18 14:47:34 jsg Exp $ */
/*
* Copyright 2007-11 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -32,12 +32,6 @@
extern int atom_debug;
-u8 atombios_get_backlight_level(struct radeon_encoder *);
-void atombios_set_backlight_level(struct radeon_encoder *, u8);
-void radeon_atom_backlight_init(struct radeon_encoder *);
-void radeon_add_atom_encoder(struct drm_device *, uint32_t,
- uint32_t, u16);
-
static u8
radeon_atom_get_backlight_level_from_reg(struct radeon_device *rdev)
{
diff --git a/sys/dev/pci/drm/radeon/evergreen.c b/sys/dev/pci/drm/radeon/evergreen.c
index e49eb39cf8b..b75f092b2ce 100644
--- a/sys/dev/pci/drm/radeon/evergreen.c
+++ b/sys/dev/pci/drm/radeon/evergreen.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: evergreen.c,v 1.18 2015/04/06 14:10:59 jsg Exp $ */
+/* $OpenBSD: evergreen.c,v 1.19 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2010 Advanced Micro Devices, Inc.
*
@@ -50,13 +50,6 @@ void evergreen_fini(struct radeon_device *rdev);
void evergreen_pcie_gen2_enable(struct radeon_device *rdev);
extern void cayman_cp_int_cntl_setup(struct radeon_device *rdev,
int ring, u32 cp_int_cntl);
-void evergreen_fix_pci_max_read_req_size(struct radeon_device *rdev);
-u32 evergreen_get_number_of_dram_channels(struct radeon_device *rdev);
-void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *save);
-void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *save);
-void evergreen_mc_program(struct radeon_device *rdev);
-int evergreen_mc_init(struct radeon_device *rdev);
-void evergreen_irq_suspend(struct radeon_device *rdev);
void evergreen_tiling_fields(unsigned tiling_flags, unsigned *bankw,
unsigned *bankh, unsigned *mtaspect,
diff --git a/sys/dev/pci/drm/radeon/evergreen_blit_kms.c b/sys/dev/pci/drm/radeon/evergreen_blit_kms.c
index 9936e7daef3..18d71bca599 100644
--- a/sys/dev/pci/drm/radeon/evergreen_blit_kms.c
+++ b/sys/dev/pci/drm/radeon/evergreen_blit_kms.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: evergreen_blit_kms.c,v 1.2 2015/04/08 04:03:06 jsg Exp $ */
+/* $OpenBSD: evergreen_blit_kms.c,v 1.3 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2010 Advanced Micro Devices, Inc.
*
@@ -34,8 +34,6 @@
#include "cayman_blit_shaders.h"
#include "radeon_blit_common.h"
-int evergreen_blit_init(struct radeon_device *rdev);
-
/* emits 17 */
static void
set_render_target(struct radeon_device *rdev, int format,
diff --git a/sys/dev/pci/drm/radeon/evergreen_cs.c b/sys/dev/pci/drm/radeon/evergreen_cs.c
index db27b9deafe..4b154bd2106 100644
--- a/sys/dev/pci/drm/radeon/evergreen_cs.c
+++ b/sys/dev/pci/drm/radeon/evergreen_cs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: evergreen_cs.c,v 1.5 2015/04/06 14:32:55 jsg Exp $ */
+/* $OpenBSD: evergreen_cs.c,v 1.6 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2010 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -39,10 +39,6 @@ int r600_dma_cs_next_reloc(struct radeon_cs_parser *p,
struct radeon_cs_reloc **cs_reloc);
static int evergreen_cs_packet_next_reloc(struct radeon_cs_parser *p,
struct radeon_cs_reloc **cs_reloc);
-int evergreen_cs_parse(struct radeon_cs_parser *p);
-int evergreen_dma_cs_parse(struct radeon_cs_parser *p);
-int evergreen_ib_parse(struct radeon_device *rdev, struct radeon_ib *ib);
-int evergreen_dma_ib_parse(struct radeon_device *rdev, struct radeon_ib *ib);
struct evergreen_cs_track {
u32 group_size;
diff --git a/sys/dev/pci/drm/radeon/ni.c b/sys/dev/pci/drm/radeon/ni.c
index 1948c992019..a98dd1f9db0 100644
--- a/sys/dev/pci/drm/radeon/ni.c
+++ b/sys/dev/pci/drm/radeon/ni.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ni.c,v 1.9 2015/02/11 07:01:37 jsg Exp $ */
+/* $OpenBSD: ni.c,v 1.10 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2010 Advanced Micro Devices, Inc.
*
@@ -41,7 +41,6 @@ extern void evergreen_fix_pci_max_read_req_size(struct radeon_device *rdev);
extern void evergreen_pcie_gen2_enable(struct radeon_device *rdev);
extern void si_rlc_fini(struct radeon_device *rdev);
extern int si_rlc_init(struct radeon_device *rdev);
-void cayman_cp_int_cntl_setup(struct radeon_device *rdev, int ring, u32 cp_int_cntl);
#define EVERGREEN_PFP_UCODE_SIZE 1120
#define EVERGREEN_PM4_UCODE_SIZE 1376
diff --git a/sys/dev/pci/drm/radeon/r600_blit_kms.c b/sys/dev/pci/drm/radeon/r600_blit_kms.c
index 6def0629d78..4a13c14580e 100644
--- a/sys/dev/pci/drm/radeon/r600_blit_kms.c
+++ b/sys/dev/pci/drm/radeon/r600_blit_kms.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: r600_blit_kms.c,v 1.2 2015/04/08 04:03:06 jsg Exp $ */
+/* $OpenBSD: r600_blit_kms.c,v 1.3 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2009 Advanced Micro Devices, Inc.
* Copyright 2009 Red Hat Inc.
@@ -32,18 +32,6 @@
#include "r600_blit_shaders.h"
#include "radeon_blit_common.h"
-int r600_blit_init(struct radeon_device *rdev);
-void r600_blit_fini(struct radeon_device *rdev);
-int r600_blit_prepare_copy(struct radeon_device *rdev, unsigned num_gpu_pages,
- struct radeon_fence **fence, struct radeon_sa_bo **vb,
- struct radeon_semaphore **sem);
-void r600_blit_done_copy(struct radeon_device *rdev, struct radeon_fence **fence,
- struct radeon_sa_bo *vb, struct radeon_semaphore *sem);
-void r600_kms_blit_copy(struct radeon_device *rdev,
- u64 src_gpu_addr, u64 dst_gpu_addr,
- unsigned num_gpu_pages,
- struct radeon_sa_bo *vb);
-
/* emits 21 on rv770+, 23 on r600 */
static void
set_render_target(struct radeon_device *rdev, int format,
diff --git a/sys/dev/pci/drm/radeon/r600_cs.c b/sys/dev/pci/drm/radeon/r600_cs.c
index dbafc402a80..8c4703222df 100644
--- a/sys/dev/pci/drm/radeon/r600_cs.c
+++ b/sys/dev/pci/drm/radeon/r600_cs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: r600_cs.c,v 1.6 2015/04/06 14:32:55 jsg Exp $ */
+/* $OpenBSD: r600_cs.c,v 1.7 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -39,13 +39,6 @@ typedef int (*next_reloc_t)(struct radeon_cs_parser*, struct radeon_cs_reloc**);
static next_reloc_t r600_cs_packet_next_reloc = &r600_cs_packet_next_reloc_mm;
extern void r600_cs_legacy_get_tiling_conf(struct drm_device *dev, u32 *npipes, u32 *nbanks, u32 *group_size);
-int r600_cs_parse(struct radeon_cs_parser *p);
-int r600_cs_legacy(struct drm_device *dev, void *data, struct drm_file *filp,
- unsigned family, u32 *ib, int *l);
-void r600_cs_legacy_init(void);
-int r600_dma_cs_next_reloc(struct radeon_cs_parser *p,
- struct radeon_cs_reloc **cs_reloc);
-int r600_dma_cs_parse(struct radeon_cs_parser *p);
struct r600_cs_track {
/* configuration we miror so that we use same code btw kms/ums */
diff --git a/sys/dev/pci/drm/radeon/radeon.h b/sys/dev/pci/drm/radeon/radeon.h
index 59a1fff9a43..47fbdcff9cc 100644
--- a/sys/dev/pci/drm/radeon/radeon.h
+++ b/sys/dev/pci/drm/radeon/radeon.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon.h,v 1.14 2015/04/12 03:54:10 jsg Exp $ */
+/* $OpenBSD: radeon.h,v 1.15 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -50,7 +50,7 @@
* situation the init path must succeed up to the memory controller
* initialization point. Failure before this point are considered as
* fatal error. Here is the init callchain :
- * radeon_device_init perform common structure, rwlock initialization
+ * radeon_device_init perform common structure, mutex initialization
* asic_init setup the GPU memory layout and perform all
* one time initialization (failure in this
* function are considered fatal)
diff --git a/sys/dev/pci/drm/radeon/radeon_atombios.c b/sys/dev/pci/drm/radeon/radeon_atombios.c
index 613c307abbf..fce538acbef 100644
--- a/sys/dev/pci/drm/radeon/radeon_atombios.c
+++ b/sys/dev/pci/drm/radeon/radeon_atombios.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_atombios.c,v 1.6 2014/04/07 06:43:11 jsg Exp $ */
+/* $OpenBSD: radeon_atombios.c,v 1.7 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2007-8 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -60,14 +60,6 @@ radeon_add_legacy_encoder(struct drm_device *dev, uint32_t encoder_enum,
/* local */
static int radeon_atom_get_max_vddc(struct radeon_device *rdev, u8 voltage_type,
u16 voltage_id, u16 *voltage);
-bool radeon_atom_get_tv_timings(struct radeon_device *rdev, int index,
- struct drm_display_mode *mode);
-uint32_t radeon_atom_get_engine_clock(struct radeon_device *rdev);
-uint32_t radeon_atom_get_memory_clock(struct radeon_device *rdev);
-void radeon_atom_set_engine_clock(struct radeon_device *rdev, uint32_t eng_clock);
-void radeon_atom_set_memory_clock(struct radeon_device *rdev, uint32_t mem_clock);
-void radeon_atombios_connected_scratch_regs(struct drm_connector *connector,
- struct drm_encoder *encoder, bool connected);
union atom_supported_devices {
struct _ATOM_SUPPORTED_DEVICES_INFO info;
diff --git a/sys/dev/pci/drm/radeon/radeon_benchmark.c b/sys/dev/pci/drm/radeon/radeon_benchmark.c
index 02be19ae255..d3d9118ccd6 100644
--- a/sys/dev/pci/drm/radeon/radeon_benchmark.c
+++ b/sys/dev/pci/drm/radeon/radeon_benchmark.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_benchmark.c,v 1.3 2015/04/06 07:38:49 jsg Exp $ */
+/* $OpenBSD: radeon_benchmark.c,v 1.4 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2009 Jerome Glisse.
*
@@ -33,8 +33,6 @@
#define RADEON_BENCHMARK_ITERATIONS 1024
#define RADEON_BENCHMARK_COMMON_MODES_N 17
-extern int ticks;
-
static int radeon_benchmark_do_move(struct radeon_device *rdev, unsigned size,
uint64_t saddr, uint64_t daddr,
int flag, int n)
diff --git a/sys/dev/pci/drm/radeon/radeon_clocks.c b/sys/dev/pci/drm/radeon/radeon_clocks.c
index 3d8d6044e00..a8aada55c7a 100644
--- a/sys/dev/pci/drm/radeon/radeon_clocks.c
+++ b/sys/dev/pci/drm/radeon/radeon_clocks.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_clocks.c,v 1.2 2014/07/03 18:58:21 kettenis Exp $ */
+/* $OpenBSD: radeon_clocks.c,v 1.3 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -36,10 +36,6 @@
#include <dev/ofw/openfirm.h>
#endif
-uint32_t radeon_legacy_get_engine_clock(struct radeon_device *);
-uint32_t radeon_legacy_get_memory_clock(struct radeon_device *);
-void radeon_legacy_set_engine_clock(struct radeon_device *, uint32_t);
-
/* 10 khz */
uint32_t radeon_legacy_get_engine_clock(struct radeon_device *rdev)
{
diff --git a/sys/dev/pci/drm/radeon/radeon_combios.c b/sys/dev/pci/drm/radeon/radeon_combios.c
index 1171892b1b5..add87b71431 100644
--- a/sys/dev/pci/drm/radeon/radeon_combios.c
+++ b/sys/dev/pci/drm/radeon/radeon_combios.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_combios.c,v 1.7 2015/04/08 03:21:13 jsg Exp $ */
+/* $OpenBSD: radeon_combios.c,v 1.8 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2004 ATI Technologies Inc., Markham, Ontario
* Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -51,11 +51,6 @@ extern void
radeon_add_legacy_encoder(struct drm_device *dev, uint32_t encoder_enum,
uint32_t supported_device);
-
-void radeon_combios_connected_scratch_regs(struct drm_connector *connector,
- struct drm_encoder *encoder,
- bool connected);
-
/* old legacy ATI BIOS routines */
/* COMBIOS table offsets */
diff --git a/sys/dev/pci/drm/radeon/radeon_connectors.c b/sys/dev/pci/drm/radeon/radeon_connectors.c
index 796ad1249f2..5705874cbf0 100644
--- a/sys/dev/pci/drm/radeon/radeon_connectors.c
+++ b/sys/dev/pci/drm/radeon/radeon_connectors.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_connectors.c,v 1.5 2015/04/06 09:23:19 jsg Exp $ */
+/* $OpenBSD: radeon_connectors.c,v 1.6 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2007-8 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -40,11 +40,6 @@ extern void
radeon_atombios_connected_scratch_regs(struct drm_connector *connector,
struct drm_encoder *encoder,
bool connected);
-void radeon_add_atom_connector(struct drm_device *, uint32_t, uint32_t, int,
- struct radeon_i2c_bus_rec *, uint32_t, uint16_t, struct radeon_hpd *,
- struct radeon_router *);
-void radeon_add_legacy_connector(struct drm_device *, uint32_t, uint32_t, int,
- struct radeon_i2c_bus_rec *, uint16_t, struct radeon_hpd *);
void radeon_connector_hotplug(struct drm_connector *connector)
{
diff --git a/sys/dev/pci/drm/radeon/radeon_encoders.c b/sys/dev/pci/drm/radeon/radeon_encoders.c
index 02d3d4c6a71..6d6a3b050dc 100644
--- a/sys/dev/pci/drm/radeon/radeon_encoders.c
+++ b/sys/dev/pci/drm/radeon/radeon_encoders.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_encoders.c,v 1.1 2013/08/12 04:11:53 jsg Exp $ */
+/* $OpenBSD: radeon_encoders.c,v 1.2 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2007-8 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -37,8 +37,6 @@ extern void
radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder,
struct drm_connector *drm_connector);
-uint32_t radeon_get_encoder_enum(struct drm_device *, uint32_t, uint8_t);
-void radeon_link_encoder_connector(struct drm_device *);
static uint32_t radeon_encoder_clones(struct drm_encoder *encoder)
{
diff --git a/sys/dev/pci/drm/radeon/radeon_fence.c b/sys/dev/pci/drm/radeon/radeon_fence.c
index c49495c1ca4..cbad412301e 100644
--- a/sys/dev/pci/drm/radeon/radeon_fence.c
+++ b/sys/dev/pci/drm/radeon/radeon_fence.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_fence.c,v 1.7 2015/04/18 11:41:29 jsg Exp $ */
+/* $OpenBSD: radeon_fence.c,v 1.8 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2009 Jerome Glisse.
* All Rights Reserved.
@@ -36,8 +36,6 @@
#include <dev/pci/drm/refcount.h>
-extern int ticks;
-
/*
* Fences
* Fences mark an event in the GPUs pipeline and are used
diff --git a/sys/dev/pci/drm/radeon/radeon_gem.c b/sys/dev/pci/drm/radeon/radeon_gem.c
index faba97ce27a..37ffed0dcab 100644
--- a/sys/dev/pci/drm/radeon/radeon_gem.c
+++ b/sys/dev/pci/drm/radeon/radeon_gem.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_gem.c,v 1.6 2015/02/11 07:01:37 jsg Exp $ */
+/* $OpenBSD: radeon_gem.c,v 1.7 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -30,12 +30,6 @@
#include <dev/pci/drm/radeon_drm.h>
#include "radeon.h"
-int radeon_gem_object_init(struct drm_gem_object *);
-void radeon_gem_object_free(struct drm_gem_object *);
-int radeon_gem_set_domain(struct drm_gem_object *, uint32_t, uint32_t);
-int radeon_gem_object_open(struct drm_gem_object *, struct drm_file *);
-void radeon_gem_object_close(struct drm_gem_object *, struct drm_file *);
-
int radeon_gem_object_init(struct drm_gem_object *obj)
{
BUG();
@@ -468,7 +462,8 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data,
}
if (args->offset < RADEON_VA_RESERVED_SIZE) {
- DRM_ERROR("offset 0x%lX is in reserved area 0x%X\n",
+ dev_err(&dev->pdev->dev,
+ "offset 0x%lX is in reserved area 0x%X\n",
(unsigned long)args->offset,
RADEON_VA_RESERVED_SIZE);
args->operation = RADEON_VA_RESULT_ERROR;
diff --git a/sys/dev/pci/drm/radeon/radeon_irq_kms.c b/sys/dev/pci/drm/radeon/radeon_irq_kms.c
index 1427d3729ad..53ffc6bbf09 100644
--- a/sys/dev/pci/drm/radeon/radeon_irq_kms.c
+++ b/sys/dev/pci/drm/radeon/radeon_irq_kms.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_irq_kms.c,v 1.8 2015/04/06 07:38:49 jsg Exp $ */
+/* $OpenBSD: radeon_irq_kms.c,v 1.9 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -44,8 +44,7 @@
* radeon_irq_process is a macro that points to the per-asic
* irq handler callback.
*/
-int
-radeon_driver_irq_handler_kms(void *arg)
+irqreturn_t radeon_driver_irq_handler_kms(void *arg)
{
struct drm_device *dev = arg;
struct radeon_device *rdev = dev->dev_private;
diff --git a/sys/dev/pci/drm/radeon/radeon_pm.c b/sys/dev/pci/drm/radeon/radeon_pm.c
index ca597b764b0..94514578f66 100644
--- a/sys/dev/pci/drm/radeon/radeon_pm.c
+++ b/sys/dev/pci/drm/radeon/radeon_pm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_pm.c,v 1.11 2015/04/06 07:38:49 jsg Exp $ */
+/* $OpenBSD: radeon_pm.c,v 1.12 2015/04/18 14:47:35 jsg Exp $ */
/*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -48,8 +48,6 @@ static bool radeon_pm_debug_check_in_vbl(struct radeon_device *rdev, bool finish
static void radeon_pm_update_profile(struct radeon_device *rdev);
static void radeon_pm_set_clocks(struct radeon_device *rdev);
-extern int ticks;
-
int radeon_pm_get_type_index(struct radeon_device *rdev,
enum radeon_pm_state_type ps_type,
int instance)
@@ -80,13 +78,6 @@ void radeon_pm_acpi_event_handler(struct radeon_device *rdev)
}
}
-static int
-power_supply_is_system_supplied(void)
-{
- /* XXX return 0 if on battery */
- return (1);
-}
-
static void radeon_pm_update_profile(struct radeon_device *rdev)
{
switch (rdev->pm.profile) {
diff --git a/sys/dev/pci/drm/radeon/radeon_ring.c b/sys/dev/pci/drm/radeon/radeon_ring.c
index bfc7a9a704e..47e66ff0ce5 100644
--- a/sys/dev/pci/drm/radeon/radeon_ring.c
+++ b/sys/dev/pci/drm/radeon/radeon_ring.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radeon_ring.c,v 1.6 2015/02/10 06:19:36 jsg Exp $ */
+/* $OpenBSD: radeon_ring.c,v 1.7 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -33,8 +33,6 @@
#include "radeon.h"
#include "atom.h"
-extern int ticks;
-
/*
* IB
* IBs (Indirect Buffers) and areas of GPU accessible memory where
diff --git a/sys/dev/pci/drm/radeon/rv770.c b/sys/dev/pci/drm/radeon/rv770.c
index d7ce0e6078c..5af24a28e57 100644
--- a/sys/dev/pci/drm/radeon/rv770.c
+++ b/sys/dev/pci/drm/radeon/rv770.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rv770.c,v 1.6 2015/04/06 14:10:59 jsg Exp $ */
+/* $OpenBSD: rv770.c,v 1.7 2015/04/18 14:47:35 jsg Exp $ */
/*
* Copyright 2008 Advanced Micro Devices, Inc.
* Copyright 2008 Red Hat Inc.
@@ -1229,7 +1229,7 @@ static void rv770_pcie_gen2_enable(struct radeon_device *rdev)
/* x2 cards have a special sequence */
if (ASIC_IS_X2(rdev))
return;
-
+
ret = drm_pcie_get_speed_cap_mask(rdev->ddev, &mask);
if (ret != 0)
return;
diff --git a/sys/dev/pci/drm/ttm/ttm_bo_api.h b/sys/dev/pci/drm/ttm/ttm_bo_api.h
index f69e1af99d6..36b0b351a7a 100644
--- a/sys/dev/pci/drm/ttm/ttm_bo_api.h
+++ b/sys/dev/pci/drm/ttm/ttm_bo_api.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ttm_bo_api.h,v 1.3 2015/04/12 03:54:10 jsg Exp $ */
+/* $OpenBSD: ttm_bo_api.h,v 1.4 2015/04/18 14:47:35 jsg Exp $ */
/**************************************************************************
*
* Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
@@ -138,7 +138,7 @@ struct ttm_tt;
*
* @bdev: Pointer to the buffer object device structure.
* @type: The bo type.
- * @destroy: Destruction function. If NULL, free is used.
+ * @destroy: Destruction function. If NULL, kfree is used.
* @num_pages: Actual number of pages.
* @addr_space_offset: Address space offset.
* @acc_size: Accounted size for this object.
@@ -473,7 +473,7 @@ size_t ttm_bo_dma_acc_size(struct ttm_bo_device *bdev,
* point to the shmem object backing a GEM object if TTM is used to back a
* GEM user interface.
* @acc_size: Accounted size for this object.
- * @destroy: Destroy function. Use NULL for free().
+ * @destroy: Destroy function. Use NULL for kfree().
*
* This function initializes a pre-allocated struct ttm_buffer_object.
* As this object may be part of a larger structure, this function,
@@ -481,7 +481,7 @@ size_t ttm_bo_dma_acc_size(struct ttm_bo_device *bdev,
* enables driver-specific objects derived from a ttm_buffer_object.
* On successful return, the object kref and list_kref are set to 1.
* If a failure occurs, the function will call the @destroy function, or
- * free() if @destroy is NULL. Thus, after a failure, dereferencing @bo is
+ * kfree() if @destroy is NULL. Thus, after a failure, dereferencing @bo is
* illegal and will likely cause memory corruption.
*
* Returns
@@ -521,7 +521,7 @@ extern int ttm_bo_init(struct ttm_bo_device *bdev,
* @p_bo: On successful completion *p_bo points to the created object.
*
* This function allocates a ttm_buffer_object, and then calls ttm_bo_init
- * on that object. The destroy function is set to free().
+ * on that object. The destroy function is set to kfree().
* Returns
* -ENOMEM: Out of memory.
* -EINVAL: Invalid placement flags.
diff --git a/sys/dev/pci/drm/ttm/ttm_bo_driver.h b/sys/dev/pci/drm/ttm/ttm_bo_driver.h
index 0b7b3aa31c9..fbf083a2b53 100644
--- a/sys/dev/pci/drm/ttm/ttm_bo_driver.h
+++ b/sys/dev/pci/drm/ttm/ttm_bo_driver.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ttm_bo_driver.h,v 1.4 2015/04/08 02:28:13 jsg Exp $ */
+/* $OpenBSD: ttm_bo_driver.h,v 1.5 2015/04/18 14:47:35 jsg Exp $ */
/**************************************************************************
*
* Copyright (c) 2006-2009 Vmware, Inc., Palo Alto, CA., USA
@@ -485,7 +485,7 @@ struct ttm_bo_global {
struct vm_page *dummy_read_page;
struct ttm_mem_shrink shrink;
struct rwlock device_list_mutex;
- struct mutex lru_lock;
+ spinlock_t lru_lock;
/**
* Protected by device_list_mutex.
@@ -534,9 +534,9 @@ struct ttm_bo_device {
struct list_head device_list;
struct ttm_bo_global *glob;
struct ttm_bo_driver *driver;
- struct rwlock vm_lock;
+ rwlock_t vm_lock;
struct ttm_mem_type_manager man[TTM_NUM_MEM_TYPES];
- struct mutex fence_lock;
+ spinlock_t fence_lock;
bus_space_tag_t iot;
bus_space_tag_t memt;
@@ -795,9 +795,9 @@ extern void ttm_mem_io_unlock(struct ttm_mem_type_manager *man);
* to make room for a buffer already reserved. (Buffers are reserved before
* they are evicted). The following algorithm prevents such deadlocks from
* occurring:
- * 1) Buffers are reserved with the lru mutex held. Upon successful
+ * 1) Buffers are reserved with the lru spinlock held. Upon successful
* reservation they are removed from the lru list. This stops a reserved buffer
- * from being evicted. However the lru mutex is released between the time
+ * from being evicted. However the lru spinlock is released between the time
* a buffer is selected for eviction and the time it is reserved.
* Therefore a check is made when a buffer is reserved for eviction, that it
* is still the first buffer in the lru list, before it is removed from the
@@ -847,7 +847,7 @@ extern int ttm_bo_reserve(struct ttm_buffer_object *bo,
*
* Must be called with struct ttm_bo_global::lru_lock held,
* and will not remove reserved buffers from the lru lists.
- * The function may release the LRU mutex if it needs to sleep.
+ * The function may release the LRU spinlock if it needs to sleep.
* Otherwise identical to ttm_bo_reserve.
*
* Returns:
diff --git a/sys/dev/pci/drm/ttm/ttm_lock.h b/sys/dev/pci/drm/ttm/ttm_lock.h
index 52341b64aaf..60a8d2bfb55 100644
--- a/sys/dev/pci/drm/ttm/ttm_lock.h
+++ b/sys/dev/pci/drm/ttm/ttm_lock.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ttm_lock.h,v 1.2 2015/04/12 03:54:10 jsg Exp $ */
+/* $OpenBSD: ttm_lock.h,v 1.3 2015/04/18 14:47:35 jsg Exp $ */
/**************************************************************************
*
* Copyright (c) 2007-2009 VMware, Inc., Palo Alto, CA., USA
@@ -69,7 +69,7 @@
struct ttm_lock {
struct ttm_base_object base;
wait_queue_head_t queue;
- struct mutex lock;
+ spinlock_t lock;
int32_t rw;
uint32_t flags;
bool kill_takers;
diff --git a/sys/dev/pci/drm/ttm/ttm_memory.h b/sys/dev/pci/drm/ttm/ttm_memory.h
index 50dd163ea83..d0103a9d211 100644
--- a/sys/dev/pci/drm/ttm/ttm_memory.h
+++ b/sys/dev/pci/drm/ttm/ttm_memory.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ttm_memory.h,v 1.3 2015/02/10 10:50:49 jsg Exp $ */
+/* $OpenBSD: ttm_memory.h,v 1.4 2015/04/18 14:47:35 jsg Exp $ */
/**************************************************************************
*
* Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
@@ -75,7 +75,7 @@ struct ttm_mem_global {
struct taskq *swap_queue;
struct task task;
bool task_queued;
- struct mutex lock;
+ spinlock_t lock;
struct ttm_mem_zone *zones[TTM_MEM_MAX_ZONES];
unsigned int num_zones;
struct ttm_mem_zone *zone_kernel;
diff --git a/sys/dev/pci/drm/ttm/ttm_object.c b/sys/dev/pci/drm/ttm/ttm_object.c
index 376fc70fad4..bdc978fe8c2 100644
--- a/sys/dev/pci/drm/ttm/ttm_object.c
+++ b/sys/dev/pci/drm/ttm/ttm_object.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ttm_object.c,v 1.7 2015/04/11 05:10:13 jsg Exp $ */
+/* $OpenBSD: ttm_object.c,v 1.8 2015/04/18 14:47:35 jsg Exp $ */
/**************************************************************************
*
* Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA
@@ -59,7 +59,7 @@
struct ttm_object_file {
struct ttm_object_device *tdev;
- struct rwlock lock;
+ rwlock_t lock;
struct list_head ref_list;
struct drm_open_hash ref_hash[TTM_REF_NUM];
int refcount;
diff --git a/sys/dev/pci/drm/ttm/ttm_object.h b/sys/dev/pci/drm/ttm/ttm_object.h
index a164850d455..2a49fe36536 100644
--- a/sys/dev/pci/drm/ttm/ttm_object.h
+++ b/sys/dev/pci/drm/ttm/ttm_object.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ttm_object.h,v 1.1 2013/08/12 04:11:53 jsg Exp $ */
+/* $OpenBSD: ttm_object.h,v 1.2 2015/04/18 14:47:35 jsg Exp $ */
/**************************************************************************
*
* Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
@@ -270,6 +270,6 @@ extern struct ttm_object_device *ttm_object_device_init
extern void ttm_object_device_release(struct ttm_object_device **p_tdev);
-#define ttm_base_object_free(__object, __base)\
+#define ttm_base_object_kfree(__object, __base)\
kfree_rcu(__object, __base.rhead)
#endif