CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2014-03-05 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Mar  6 00:32:39 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
Take the vmobjlock in i915_gem_release_mmap around pmap_page_protect.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.21 -r1.1.1.1.2.22 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.21 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.22
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.21	Wed Mar  5 22:18:10 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Thu Mar  6 00:32:39 2014
@@ -1774,10 +1774,12 @@ i915_gem_release_mmap(struct drm_i915_ge
 	{
 		struct vm_page *page;
 
+		mutex_enter(obj->base.gemo_shm_uao->vmobjlock);
 		KASSERT(obj->pages != NULL);
 		/* Force a fresh fault for each page.  */
 		TAILQ_FOREACH(page, &obj->igo_pageq, pageq.queue)
 			pmap_page_protect(page, VM_PROT_NONE);
+		mutex_exit(obj->base.gemo_shm_uao->vmobjlock);
 	}
 #else
 	if (obj->base.dev->dev_mapping)



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2014-01-22 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 22 14:58:29 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_buffer.c

Log Message:
Remove spurious newline to reduce diff from upstream.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/drm_buffer.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/drm_buffer.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_buffer.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/drm_buffer.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/drm_buffer.c:1.1.1.1.2.4	Sun Sep  8 16:09:35 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_buffer.c	Wed Jan 22 14:58:29 2014
@@ -171,7 +171,6 @@ void *drm_buffer_read_object(struct drm_
 	} else {
 		/* The object is split which forces copy to temporary object.*/
 		int beginsz = PAGE_SIZE - idx;
-
 		memcpy(stack_obj, &buf->data[page][idx], beginsz);
 
 		memcpy((char *)stack_obj + beginsz, &buf->data[page + 1][0],



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2014-01-22 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 22 14:58:12 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_irq.c

Log Message:
Take irq_lock before waking up irq_queue in i915_handle_error.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.8 -r1.1.1.1.2.9 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.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/i915/i915_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.8 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.9
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.8	Wed Jan 15 13:53:32 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c	Wed Jan 22 14:58:12 2014
@@ -1497,8 +1497,13 @@ void i915_handle_error(struct drm_device
 		 */
 		for_each_ring(ring, dev_priv, i)
 #ifdef __NetBSD__
+		{
+			unsigned long flags;
+			spin_lock_irqsave(&dev_priv->irq_lock, flags);
 			DRM_SPIN_WAKEUP_ALL(&ring->irq_queue,
 			&dev_priv->irq_lock);
+			spin_unlock_irqrestore(&dev_priv->irq_lock, flags);
+		}
 #else
 			wake_up_all(&ring->irq_queue);
 #endif



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2014-01-21 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Jan 21 20:57:00 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
Return EINTR too in __wait_seqno.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.19 -r1.1.1.1.2.20 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.19 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.20
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.19	Tue Jan 21 20:56:11 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Tue Jan 21 20:57:00 2014
@@ -1234,6 +1234,7 @@ static int __wait_seqno(struct intel_rin
 	case -EIO:
 	case -EAGAIN: /* Wedged */
 	case -ERESTARTSYS: /* Signal */
+	case -EINTR:
 		return (int)end;
 	case 0: /* Timeout */
 		if (timeout)



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2014-01-21 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Jan 21 20:56:11 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
uobj->pgops->pgo_put requires uobj->vmobjlock.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.18 -r1.1.1.1.2.19 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.18 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.19
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.18	Tue Jan 21 20:49:01 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Tue Jan 21 20:56:11 2014
@@ -1987,10 +1987,12 @@ i915_gem_object_truncate(struct drm_i915
 	{
 		struct uvm_object *const uobj = obj->base.gemo_shm_uao;
 
-		if (uobj != NULL)
+		if (uobj != NULL) {
 			/* XXX Calling pgo_put like this is bogus.  */
+			mutex_enter(uobj->vmobjlock);
 			(*uobj->pgops->pgo_put)(uobj, 0, obj->base.size,
 			(PGO_ALLPAGES | PGO_FREE));
+		}
 	}
 #else
 	if (obj->base.filp == NULL)



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2014-01-21 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Jan 21 20:49:01 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.h
i915_gem.c

Log Message:
i915_gem_object_get_page takes a page number, not byte offset.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.17 -r1.1.1.1.2.18 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.17 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.18
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.17	Wed Jan 15 13:52:09 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Tue Jan 21 20:49:01 2014
@@ -1457,7 +1457,8 @@ i915_gem_object_get_page(struct drm_i915
 	 */
 	KASSERT(obj->pages != NULL);
 	mutex_enter(obj->base.gemo_shm_uao->vmobjlock);
-	struct vm_page *const page = uvm_pagelookup(obj->base.gemo_shm_uao, n);
+	struct vm_page *const page = uvm_pagelookup(obj->base.gemo_shm_uao,
+	ptoa(n));
 	mutex_exit(obj->base.gemo_shm_uao->vmobjlock);
 
 	return container_of(page, struct page, p_vmp);
Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.17 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.18
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.17	Wed Jan 15 13:53:32 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Tue Jan 21 20:49:01 2014
@@ -500,7 +500,7 @@ i915_gem_shmem_pread(struct drm_device *
 		KASSERT(shmem_page_offset < PAGE_SIZE);
 		page_length = MIN(remain, (PAGE_SIZE - shmem_page_offset));
 		struct page *const page = i915_gem_object_get_page(obj,
-		(offset & ~(PAGE_SIZE-1)));
+		atop(offset));
 
 		/* Decide whether to swizzle bit 17.  */
 		page_do_bit17_swizzling = obj_do_bit17_swizzling &&
@@ -885,7 +885,7 @@ i915_gem_shmem_pwrite(struct drm_device 
 		KASSERT(shmem_page_offset < PAGE_SIZE);
 		page_length = MIN(remain, (PAGE_SIZE - shmem_page_offset));
 		struct page *const page = i915_gem_object_get_page(obj,
-		(offset & ~(PAGE_SIZE-1)));
+		atop(offset));
 
 		/* Decide whether to flush the cache or swizzle bit 17.  */
 		const bool partial_cacheline_write = needs_clflush_before &&



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2014-01-15 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 15 17:42:18 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_ioctl.c

Log Message:
Pesky ampersands!


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.5 -r1.1.1.1.2.6 \
src/sys/external/bsd/drm2/dist/drm/drm_ioctl.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/drm_ioctl.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.5 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.6
--- src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.5	Wed Jan 15 13:55:40 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c	Wed Jan 15 17:42:18 2014
@@ -254,10 +254,10 @@ int drm_getstats(struct drm_device *dev,
 
 	for (i = 0; i < dev->counters; i++) {
 		if (dev->types[i] == _DRM_STAT_LOCK) {
-			spin_lock(file_priv->master->lock.spinlock);
+			spin_lock(&file_priv->master->lock.spinlock);
 			stats->data[i].value =
 			(file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0);
-			spin_unlock(file_priv->master->lock.spinlock);
+			spin_unlock(&file_priv->master->lock.spinlock);
 		} else {
 			stats->data[i].value = atomic_read(&dev->counts[i]);
 		}



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2014-01-15 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 15 13:55:40 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_ioctl.c

Log Message:
Take master->lock.spinlock to read master->lock.hw_lock.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/drm_ioctl.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/drm_ioctl.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.4	Wed Jan 15 13:52:20 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c	Wed Jan 15 13:55:40 2014
@@ -253,11 +253,14 @@ int drm_getstats(struct drm_device *dev,
 	memset(stats, 0, sizeof(*stats));
 
 	for (i = 0; i < dev->counters; i++) {
-		if (dev->types[i] == _DRM_STAT_LOCK)
+		if (dev->types[i] == _DRM_STAT_LOCK) {
+			spin_lock(file_priv->master->lock.spinlock);
 			stats->data[i].value =
 			(file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0);
-		else
+			spin_unlock(file_priv->master->lock.spinlock);
+		} else {
 			stats->data[i].value = atomic_read(&dev->counts[i]);
+		}
 		stats->data[i].type = dev->types[i];
 	}
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2014-01-15 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 15 13:53:32 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c
i915_gem.c i915_irq.c

Log Message:
Use dev_priv->irq_lock for ring->irq_queue, not dev->struct_mutex.

We need to use a spin lock here, because we need to exclude interrupt
handlers.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.34 -r1.1.1.1.2.35 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c
cvs rdiff -u -r1.1.1.1.2.16 -r1.1.1.1.2.17 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
cvs rdiff -u -r1.1.1.1.2.7 -r1.1.1.1.2.8 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.34 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.35
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.34	Mon Dec 30 04:52:02 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Wed Jan 15 13:53:32 2014
@@ -795,9 +795,13 @@ static int i915_wait_irq(struct drm_devi
 
 	if (ring->irq_get(ring)) {
 #ifdef __NetBSD__
-		DRM_TIMED_WAIT_UNTIL(ret, &ring->irq_queue, &dev->struct_mutex,
+		unsigned long flags;
+		spin_lock_irqsave(&dev_priv->irq_lock, flags);
+		DRM_SPIN_TIMED_WAIT_UNTIL(ret, &ring->irq_queue,
+		&dev_priv->irq_lock,
 		3 * DRM_HZ,
 		READ_BREADCRUMB(dev_priv) >= irq_nr);
+		spin_unlock_irqrestore(&dev_priv->irq_lock, flags);
 #else
 		DRM_WAIT_ON(ret, ring->irq_queue, 3 * DRM_HZ,
 			READ_BREADCRUMB(dev_priv) >= irq_nr);

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.16 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.17
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.16	Mon Dec 30 04:51:35 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Wed Jan 15 13:53:32 2014
@@ -1193,14 +1193,17 @@ static int __wait_seqno(struct intel_rin
 	atomic_read(&dev_priv->mm.wedged))
 	do {
 #ifdef __NetBSD__
+		unsigned long flags;
+		spin_lock_irqsave(&dev_priv->irq_lock, flags);
 		/*
 		 * XXX This wait is always interruptible; we should
 		 * heed the flag `interruptible'.
 		 */
-		DRM_TIMED_WAIT_UNTIL(end, &ring->irq_queue,
-		&ring->dev->struct_mutex,
+		DRM_SPIN_TIMED_WAIT_UNTIL(end, &ring->irq_queue,
+		&dev_priv->irq_lock,
 		timeout_jiffies,
 		EXIT_COND);
+		spin_unlock_irqrestore(&dev_priv->irq_lock, flags);
 #else
 		if (interruptible)
 			end = wait_event_interruptible_timeout(ring->irq_queue,

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.7 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.8
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.7	Sun Sep  8 16:03:21 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c	Wed Jan 15 13:53:32 2014
@@ -355,7 +355,12 @@ static void notify_ring(struct drm_devic
 	trace_i915_gem_request_complete(ring, ring->get_seqno(ring, false));
 
 #ifdef __NetBSD__
-	DRM_WAKEUP_ALL(&ring->irq_queue, &dev->struct_mutex);
+{
+	unsigned long flags;
+	spin_lock_irqsave(&dev_priv->irq_lock, flags);
+	DRM_SPIN_WAKEUP_ALL(&ring->irq_queue, &dev_priv->irq_lock);
+	spin_unlock_irqrestore(&dev_priv->irq_lock, flags);
+}
 #else
 	wake_up_all(&ring->irq_queue);
 #endif
@@ -1167,8 +1172,13 @@ static void i915_record_ring_state(struc
 	}
 
 #ifdef __NetBSD__
-	error->waiting[ring->id] = DRM_WAITERS_P(&ring->irq_queue,
-	&dev->struct_mutex);
+{
+	unsigned long flags;
+	spin_lock_irqsave(&dev_priv->irq_lock, flags);
+	error->waiting[ring->id] = DRM_SPIN_WAITERS_P(&ring->irq_queue,
+	&dev_priv->irq_lock);
+	spin_unlock_irqrestore(&dev_priv->irq_lock, flags);
+}
 #else
 	error->waiting[ring->id] = waitqueue_active(&ring->irq_queue);
 #endif
@@ -1487,7 +1497,8 @@ void i915_handle_error(struct drm_device
 		 */
 		for_each_ring(ring, dev_priv, i)
 #ifdef __NetBSD__
-			DRM_WAKEUP_ALL(&ring->irq_queue, &dev->struct_mutex);
+			DRM_SPIN_WAKEUP_ALL(&ring->irq_queue,
+			&dev_priv->irq_lock);
 #else
 			wake_up_all(&ring->irq_queue);
 #endif
@@ -1697,20 +1708,20 @@ static bool i915_hangcheck_ring_idle(str
 		/* Issue a wake-up to catch stuck h/w. */
 #ifdef __NetBSD__
 		/*
-		 * XXX mutex_lock here is a load of bollocks, but I'm
-		 * not sure what invariants the irq_queue is actually
-		 * relying on.
+		 * XXX What invariants is the irq_queue relying on?
 		 */
-		mutex_lock(&ring->dev->struct_mutex);
-		if (DRM_WAITERS_P(&ring->irq_queue,
-			&ring->dev->struct_mutex)) {
+		struct drm_i915_private *dev_priv = ring->dev->dev_private;
+		unsigned long flags;
+		spin_lock_irqsave(&dev_priv->irq_lock, flags);
+		if (DRM

CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2014-01-15 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 15 13:52:49 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_ringbuffer.c

Log Message:
Destroy the waitqueue ring->irq_queue in intel_cleanup_ring_buffer.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.10 -r1.1.1.1.2.11 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.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/i915/intel_ringbuffer.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.10 src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.11
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.10	Sun Sep  8 16:12:26 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c	Wed Jan 15 13:52:49 2014
@@ -1294,6 +1294,10 @@ void intel_cleanup_ring_buffer(struct in
 		ring->cleanup(ring);
 
 	cleanup_status_page(ring);
+
+#ifdef __NetBSD__
+DRM_DESTROY_WAITQUEUE(&ring->irq_queue);
+#endif
 }
 
 static int intel_ring_wait_seqno(struct intel_ring_buffer *ring, u32 seqno)



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2014-01-15 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 15 13:52:59 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_mm.c

Log Message:
Make it a bug to drm_mm_takedown when there remain allocated blocks.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/drm_mm.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/drm_mm.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_mm.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/drm_mm.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/drm_mm.c:1.1.1.1.2.4	Wed Jul 24 03:55:32 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_mm.c	Wed Jan 15 13:52:59 2014
@@ -671,10 +671,7 @@ void drm_mm_takedown(struct drm_mm * mm)
 {
 	struct drm_mm_node *entry, *next;
 
-	if (!list_empty(&mm->head_node.node_list)) {
-		DRM_ERROR("Memory manager not clean. Delaying takedown\n");
-		return;
-	}
+	BUG_ON(!list_empty(&mm->head_node.node_list));
 
 	spin_lock(&mm->unused_lock);
 	list_for_each_entry_safe(entry, next, &mm->unused_nodes, node_list) {



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2014-01-15 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 15 13:53:09 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
i915_gem_context.c

Log Message:
Drop another reference in do_destroy if the context is current.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_context.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/i915/i915_gem_context.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_context.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_context.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_context.c:1.1.1.1.2.3	Wed Jul 24 03:08:55 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_context.c	Wed Jan 15 13:53:09 2014
@@ -135,6 +135,13 @@ static void do_destroy(struct i915_hw_co
 	else
 		BUG_ON(ctx != dev_priv->ring[RCS].default_context);
 
+	/*
+	 * If we are currently switched to this context, there's an
+	 * extra reference to it, so drop that too.
+	 */
+	if (ctx->ring->last_context_obj == ctx->obj)
+		drm_gem_object_unreference(&ctx->obj->base);
+
 	drm_gem_object_unreference(&ctx->obj->base);
 	kfree(ctx);
 }



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2014-01-15 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 15 13:52:20 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_ioctl.c

Log Message:
Make DRM_IOCTL_GET_CLIENT work except for pid and uid.

The pid and uid don't make sense because the client is associated
with a file descriptor, which may be held by multiple processes, and
even if only one holds it (which is probably the only sensible state
of affairs), there's no index.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/drm_ioctl.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/drm_ioctl.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.3	Wed Jul 24 02:26:23 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c	Wed Jan 15 13:52:20 2014
@@ -203,7 +203,6 @@ int drm_getmap(struct drm_device *dev, v
 int drm_getclient(struct drm_device *dev, void *data,
 		  struct drm_file *file_priv)
 {
-#ifndef __NetBSD__		/* XXX Too scary to contemplate.  */
 	struct drm_client *client = data;
 	struct drm_file *pt;
 	int idx;
@@ -216,8 +215,13 @@ int drm_getclient(struct drm_device *dev
 	list_for_each_entry(pt, &dev->filelist, lhead) {
 		if (i++ >= idx) {
 			client->auth = pt->authenticated;
+#ifdef __NetBSD__		/* XXX Too scary to contemplate.  */
+			client->pid = -1;
+			client->uid = -1;
+#else
 			client->pid = pid_vnr(pt->pid);
 			client->uid = from_kuid_munged(current_user_ns(), pt->uid);
+#endif
 			client->magic = pt->magic;
 			client->iocs = pt->ioctl_count;
 			mutex_unlock(&dev->struct_mutex);
@@ -226,7 +230,6 @@ int drm_getclient(struct drm_device *dev
 		}
 	}
 	mutex_unlock(&dev->struct_mutex);
-#endif
 
 	return -EINVAL;
 }



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2014-01-15 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jan 15 13:52:09 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.h

Log Message:
Lock the right uvmobject for uvm_pagelookup.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.16 -r1.1.1.1.2.17 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/drm2/dist/drm/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.16 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.17
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.16	Sun Sep  8 16:00:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Wed Jan 15 13:52:09 2014
@@ -1456,9 +1456,9 @@ i915_gem_object_get_page(struct drm_i915
 	 * prevent them from disappearing.
 	 */
 	KASSERT(obj->pages != NULL);
-	mutex_enter(obj->base.gemo_uvmobj.vmobjlock);
+	mutex_enter(obj->base.gemo_shm_uao->vmobjlock);
 	struct vm_page *const page = uvm_pagelookup(obj->base.gemo_shm_uao, n);
-	mutex_exit(obj->base.gemo_uvmobj.vmobjlock);
+	mutex_exit(obj->base.gemo_shm_uao->vmobjlock);
 
 	return container_of(page, struct page, p_vmp);
 }



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-12-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Dec 30 04:52:02 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
flush_workqueue should work now, so don't work around it i915 unload.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.33 -r1.1.1.1.2.34 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.33 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.34
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.33	Mon Dec 30 04:51:53 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Mon Dec 30 04:52:02 2013
@@ -1853,18 +1853,7 @@ int i915_driver_unload(struct drm_device
 
 	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
 		/* Flush any outstanding unpin_work. */
-#ifdef __NetBSD__
-		/*
-		 * XXX Keep this updated!  (XXX How?)
-		 * (XXX Well, do work queues for real...)
-		 */
-		cancel_work_sync(&dev_priv->l3_parity.error_work);
-#  if 0/* XXX How do we get the CRTCs? */
-		cancel_work_sync(&...intel_crtc->unpin_work);
-#  endif
-#else
 		flush_workqueue(dev_priv->wq);
-#endif
 
 		mutex_lock(&dev->struct_mutex);
 		i915_gem_free_all_phys_object(dev);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-12-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Dec 30 04:51:16 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_fb_helper.c

Log Message:
Tweak drm_fb_helper_single_fb_probe so we needn't reconnect the screen.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.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/drm_fb_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.1.1.1.2.3	Sun Sep  8 16:38:51 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c	Mon Dec 30 04:51:15 2013
@@ -855,6 +855,12 @@ int drm_fb_helper_single_fb_probe(struct
 		dev_info(fb_helper->dev->dev, "fb%d: %s frame buffer device\n",
 info->node, info->fix.id);
 
+#else
+		/*
+		 * XXX Not sure this is right, but this logic will get
+		 * cleaned up in a newer import of drm2.
+		 */
+		drm_fb_helper_set_config(fb_helper);
 #endif
 	} else {
 #ifdef __NetBSD__		/* XXX fb info */



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-12-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Dec 30 04:51:53 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
i915_gem_context_close destroys the idr; i915_driver_postclose needn't.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.32 -r1.1.1.1.2.33 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.32 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.33
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.32	Mon Dec 30 04:51:35 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Mon Dec 30 04:51:53 2013
@@ -1983,7 +1983,6 @@ void i915_driver_postclose(struct drm_de
 	struct drm_i915_file_private *file_priv = file->driver_priv;
 
 #ifdef __NetBSD__
-	idr_destroy(&file_priv->context_idr);
 	spin_lock_destroy(&file_priv->mm.lock);
 #endif
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-12-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Dec 30 04:51:35 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c
i915_gem.c

Log Message:
Initialize and destroy the pending flip lock.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.31 -r1.1.1.1.2.32 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c
cvs rdiff -u -r1.1.1.1.2.15 -r1.1.1.1.2.16 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.31 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.32
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.31	Sun Sep  8 16:28:27 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Mon Dec 30 04:51:35 2013
@@ -1750,6 +1750,7 @@ out_gem_unload:
 	spin_lock_destroy(&dev_priv->dpio_lock);
 	linux_mutex_destroy(&dev_priv->rps.hw_lock);
 	DRM_DESTROY_WAITQUEUE(&dev_priv->pending_flip_queue);
+	linux_mutex_destroy(&dev_priv->pending_flip_lock);
 	destroy_completion(&dev_priv->error_completion);
 #endif
 
@@ -1884,6 +1885,7 @@ int i915_driver_unload(struct drm_device
 #ifdef __NetBSD__
 	/* XXX Not sure this is the right place, but it looks safe.  */
 	DRM_DESTROY_WAITQUEUE(&dev_priv->pending_flip_queue);
+	linux_mutex_destroy(&dev_priv->pending_flip_lock);
 	destroy_completion(&dev_priv->error_completion);
 #endif
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.15 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.16
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.15	Sun Sep  8 16:28:27 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Mon Dec 30 04:51:35 2013
@@ -4633,6 +4633,7 @@ i915_gem_load(struct drm_device *dev)
 	i915_gem_detect_bit_6_swizzle(dev);
 #ifdef __NetBSD__
 	DRM_INIT_WAITQUEUE(&dev_priv->pending_flip_queue, "i915flip");
+	linux_mutex_init(&dev_priv->pending_flip_lock);
 #else
 	init_waitqueue_head(&dev_priv->pending_flip_queue);
 #endif



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:27:15 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Hook up some GTT logic again in i915_driver_load.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.29 -r1.1.1.1.2.30 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.29 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.30
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.29	Sun Sep  8 16:22:29 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Sun Sep  8 16:27:15 2013
@@ -1432,7 +1432,6 @@ void i915_master_destroy(struct drm_devi
 	master->driver_priv = NULL;
 }
 
-#ifndef __NetBSD__		/* XXX gtt */
 static void
 i915_mtrr_setup(struct drm_i915_private *dev_priv, unsigned long base,
 		unsigned long size)
@@ -1455,7 +1454,6 @@ i915_mtrr_setup(struct drm_i915_private 
 			 "performance may suffer.\n");
 	}
 }
-#endif
 
 #ifndef __NetBSD__		/* XXX fb */
 static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv)
@@ -1511,9 +1509,7 @@ int i915_driver_load(struct drm_device *
 	struct drm_i915_private *dev_priv;
 	struct intel_device_info *info;
 	int ret = 0, mmio_bar, mmio_size;
-#ifndef __NetBSD__		/* XXX gtt */
 	uint32_t aperture_size;
-#endif
 
 	info = (struct intel_device_info *) flags;
 
@@ -1624,7 +1620,6 @@ int i915_driver_load(struct drm_device *
 	}
 #endif
 
-#ifndef __NetBSD__		/* XXX gtt */
 	aperture_size = dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT;
 	dev_priv->mm.gtt_base_addr = dev_priv->mm.gtt->gma_bus_addr;
 
@@ -1644,7 +1639,6 @@ int i915_driver_load(struct drm_device *
 
 	i915_mtrr_setup(dev_priv, dev_priv->mm.gtt_base_addr,
 			aperture_size);
-#endif	/* __NetBSD__ */
 
 	/* The i915 workqueue is primarily used for batched retirement of
 	 * requests (and thus managing bo) once the task has been completed
@@ -1769,7 +1763,6 @@ out_gem_unload:
 #endif
 	destroy_workqueue(dev_priv->wq);
 out_mtrrfree:
-#ifndef __NetBSD__		/* XXX gtt */
 	if (dev_priv->mm.gtt_mtrr >= 0) {
 		mtrr_del(dev_priv->mm.gtt_mtrr,
 			 dev_priv->mm.gtt_base_addr,
@@ -1778,7 +1771,6 @@ out_mtrrfree:
 	}
 	io_mapping_free(dev_priv->mm.gtt_mapping);
 out_rmmap:
-#endif
 #ifdef __NetBSD__
 	(void)drm_rmmap(dev, dev_priv->regs_map);
 #else



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:22:29 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Use the cached mmio bar information to map the GTT.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.28 -r1.1.1.1.2.29 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.28 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.29
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.28	Sun Sep  8 16:03:21 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Sun Sep  8 16:22:29 2013
@@ -1599,23 +1599,21 @@ int i915_driver_load(struct drm_device *
 		mmio_size = 2*1024*1024;
 
 #ifdef __NetBSD__
-	/* XXX Maybe it would be better to just use pci_mapreg_map...  */
-	{
-		bus_addr_t addr;
-		bus_size_t size;
-
-		if (pci_mapreg_info(dev->pdev->pd_pa.pa_pc,
-			dev->pdev->pd_pa.pa_tag, PCI_BAR(mmio_bar),
-			PCI_MAPREG_TYPE_MEM,
-			&addr, &size, NULL /* XXX flags? */)) {
-			ret = -EIO;	/* XXX */
-			goto put_gmch;
-		}
+	if (dev->bus_maps[mmio_bar].bm_size < mmio_size) {
+		DRM_ERROR("MMIO BAR %d is too small"
+		": %"PRIxMAX" < %"PRIxMAX"\n",
+		mmio_bar,
+		(uintmax_t)dev->bus_maps[mmio_bar].bm_size,
+		(uintmax_t)mmio_size);
+		ret = -EIO;
+		goto put_gmch;
+	}
 
-		ret = drm_addmap(dev, addr, size, _DRM_REGISTERS,
-		(_DRM_KERNEL | _DRM_DRIVER), &dev_priv->regs_map);
-		if (ret)
-			goto put_gmch;
+	ret = drm_addmap(dev, dev->bus_maps[mmio_bar].bm_base, mmio_size,
+	_DRM_REGISTERS, (_DRM_KERNEL | _DRM_DRIVER), &dev_priv->regs_map);
+	if (ret) {
+		DRM_ERROR("Failed to map MMIO BAR %d: %d\n", mmio_bar, ret);
+		goto put_gmch;
 	}
 #else
 	dev_priv->regs = pci_iomap(dev->pdev, mmio_bar, mmio_size);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:20:45 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
i915_gem_stolen.c

Log Message:
i915_gem_cleanup_stolen need not take down mm.stolen after all.

The one caller, i915_driver_unload, already takes care of this.
Having i915_gem_cleanup_stolen do it is obviously the right thing,
but this state of affairs reduces diffs to upstream.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.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/i915/i915_gem_stolen.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c:1.1.1.1.2.3	Sun Sep  8 16:00:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c	Sun Sep  8 16:20:45 2013
@@ -171,11 +171,8 @@ static void i915_cleanup_compression(str
 
 void i915_gem_cleanup_stolen(struct drm_device *dev)
 {
-	struct drm_i915_private *dev_priv = dev->dev_private;
-
 	if (I915_HAS_FBC(dev) && i915_powersave)
 		i915_cleanup_compression(dev);
-	drm_mm_takedown(&dev_priv->mm.stolen);
 }
 
 int i915_gem_init_stolen(struct drm_device *dev)



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:12:26 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_ringbuffer.c

Log Message:
Specify the ring map type as _DRM_REGISTERS.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.9 -r1.1.1.1.2.10 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.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/i915/intel_ringbuffer.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.9 src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.10
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.9	Sun Sep  8 16:02:21 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c	Sun Sep  8 16:12:26 2013
@@ -1209,6 +1209,7 @@ static int intel_init_ring_buffer(struct
 	ring->virtual_start_map.offset = (dev_priv->mm.gtt->gma_bus_addr +
 	obj->gtt_offset);
 	ring->virtual_start_map.size = ring->size;
+	ring->virtual_start_map.type = _DRM_REGISTERS;
 	ring->virtual_start_map.flags = 0;
 	ring->virtual_start_map.flags |= _DRM_RESTRICTED;
 	ring->virtual_start_map.flags |= _DRM_KERNEL;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:10:23 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_bufs.c

Log Message:
Unconditionally avoid arithmetic on void * in drm_bufs.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.12 -r1.1.1.1.2.13 \
src/sys/external/bsd/drm2/dist/drm/drm_bufs.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/drm_bufs.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_bufs.c:1.1.1.1.2.12 src/sys/external/bsd/drm2/dist/drm/drm_bufs.c:1.1.1.1.2.13
--- src/sys/external/bsd/drm2/dist/drm/drm_bufs.c:1.1.1.1.2.12	Wed Jul 24 03:11:06 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_bufs.c	Sun Sep  8 16:10:23 2013
@@ -942,11 +942,7 @@ int drm_addbufs_pci(struct drm_device * 
 			buf->order = order;
 			buf->used = 0;
 			buf->offset = (dma->byte_count + byte_count + offset);
-#ifdef __NetBSD__
 			buf->address = (void *)((char *)dmah->vaddr + offset);
-#else
-			buf->address = (void *)(dmah->vaddr + offset);
-#endif
 			buf->bus_address = dmah->busaddr + offset;
 			buf->next = NULL;
 			buf->waiting = 0;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:09:35 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_buffer.c

Log Message:
Unconditionally avoid arithmetic on void * in drm_buffer.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/drm_buffer.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/drm_buffer.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_buffer.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/drm_buffer.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/drm_buffer.c:1.1.1.1.2.3	Wed Jul 24 02:00:58 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_buffer.c	Sun Sep  8 16:09:35 2013
@@ -115,11 +115,7 @@ int drm_buffer_copy_from_user(struct drm
 	for (idx = 0; idx < nr_pages; ++idx) {
 
 		if (DRM_COPY_FROM_USER(buf->data[idx],
-#ifdef __NetBSD__
-			/* Pointer arithmetic on void * is not kosher...  */
-			(const char *)
-#endif
-			user_data + idx * PAGE_SIZE,
+			(const char *)user_data + idx * PAGE_SIZE,
 			min(PAGE_SIZE, size - idx * PAGE_SIZE))) {
 			DRM_ERROR("Failed to copy user data (%p) to drm buffer"
 	" (%p) %dth page.\n",
@@ -178,13 +174,8 @@ void *drm_buffer_read_object(struct drm_
 
 		memcpy(stack_obj, &buf->data[page][idx], beginsz);
 
-#ifdef __NetBSD__
 		memcpy((char *)stack_obj + beginsz, &buf->data[page + 1][0],
 objsize - beginsz);
-#else
-		memcpy(stack_obj + beginsz, &buf->data[page + 1][0],
-objsize - beginsz);
-#endif
 
 		obj = stack_obj;
 	}



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:08:38 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_auth.c

Log Message:
Use Linux atomics, not spinlocks or NetBSD atomics in drm_auth.c.

Removes an #ifdef __NetBSD__.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/drm_auth.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/drm_auth.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_auth.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/drm_auth.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/drm_auth.c:1.1.1.1.2.3	Wed Jul 24 02:00:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_auth.c	Sun Sep  8 16:08:38 2013
@@ -141,10 +141,7 @@ int drm_remove_magic(struct drm_master *
  */
 int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv)
 {
-	static drm_magic_t sequence = 0;
-#ifndef __NetBSD__
-	static DEFINE_SPINLOCK(lock);
-#endif
+	static atomic_t sequence = ATOMIC_INIT(0);
 	struct drm_auth *auth = data;
 
 	/* Find unique magic */
@@ -152,15 +149,7 @@ int drm_getmagic(struct drm_device *dev,
 		auth->magic = file_priv->magic;
 	} else {
 		do {
-#ifdef __NetBSD__
-			auth->magic = atomic_inc_uint_nv(&sequence);
-#else
-			spin_lock(&lock);
-			if (!sequence)
-++sequence;	/* reserve 0 */
-			auth->magic = sequence++;
-			spin_unlock(&lock);
-#endif
+			auth->magic = atomic_inc_return(&sequence);
 		} while (drm_find_file(file_priv->master, auth->magic));
 		file_priv->magic = auth->magic;
 		drm_add_magic(file_priv->master, file_priv, auth->magic);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:06:35 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: dvo_ch7xxx.c

Log Message:
Remove #ifdef __NetBSD__ from const fixes in dvo_ch7xxx.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/dvo_ch7xxx.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/i915/dvo_ch7xxx.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/dvo_ch7xxx.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/dvo_ch7xxx.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/dvo_ch7xxx.c:1.1.1.1.2.3	Wed Jul 24 03:02:35 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/dvo_ch7xxx.c	Sun Sep  8 16:06:35 2013
@@ -84,11 +84,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN
 
 static struct ch7xxx_id_struct {
 	uint8_t vid;
-#ifdef __NetBSD__
 	const char *name;
-#else
-	char *name;
-#endif
 } ch7xxx_ids[] = {
 	{ CH7011_VID, "CH7011" },
 	{ CH7009A_VID, "CH7009A" },
@@ -100,11 +96,7 @@ struct ch7xxx_priv {
 	bool quiet;
 };
 
-#ifdef __NetBSD__
 static const char *ch7xxx_get_id(uint8_t vid)
-#else
-static char *ch7xxx_get_id(uint8_t vid)
-#endif
 {
 	int i;
 
@@ -187,11 +179,7 @@ static bool ch7xxx_init(struct intel_dvo
 	/* this will detect the CH7xxx chip on the specified i2c bus */
 	struct ch7xxx_priv *ch7xxx;
 	uint8_t vendor, device;
-#ifdef __NetBSD__
 	const char *name;
-#else
-	char *name;
-#endif
 
 	ch7xxx = kzalloc(sizeof(struct ch7xxx_priv), GFP_KERNEL);
 	if (ch7xxx == NULL)



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:04:09 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
The bus_dmamap_load_raw got moved to i915_gem_gtt but not committed.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.12 -r1.1.1.1.2.13 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.12 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.13
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.12	Sun Sep  8 16:03:21 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Sun Sep  8 16:04:09 2013
@@ -2034,7 +2034,6 @@ i915_gem_object_put_pages_gtt(struct drm
 
 	/* XXX Maintain dirty flag?  */
 
-	bus_dmamap_unload(dev->dmat, obj->igo_dmamap);
 	bus_dmamap_destroy(dev->dmat, obj->igo_dmamap);
 	bus_dmamem_unwire_uvm_object(dev->dmat, obj->base.gemo_shm_uao, 0,
 	obj->base.size, obj->pages, obj->igo_nsegs);
@@ -2198,12 +2197,6 @@ i915_gem_object_get_pages_gtt(struct drm
 	if (error)
 		goto fail2;
 
-	/* XXX errno NetBSD->Linux */
-	error = -bus_dmamap_load_raw(dev->dmat, obj->igo_dmamap, obj->pages,
-	obj->igo_nsegs, obj->base.size, BUS_DMA_NOWAIT);
-	if (error)
-		goto fail3;
-
 	/* XXX Cargo-culted from the Linux code.  */
 	if (i915_gem_object_needs_bit17_swizzle(obj))
 		i915_gem_object_do_bit_17_swizzle(obj);
@@ -2211,7 +2204,6 @@ i915_gem_object_get_pages_gtt(struct drm
 	/* Success!  */
 	return 0;
 
-fail3:	bus_dmamap_destroy(dev->dmat, obj->igo_dmamap);
 fail2:	bus_dmamem_unwire_uvm_object(dev->dmat, obj->base.gemo_shm_uao, 0,
 	obj->base.size, obj->pages, (obj->base.size / PAGE_SIZE));
 fail1:	kfree(obj->pages);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:05:07 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
Check that GEM wired pages use at most 40 bits of physical addresses.

Can't express this constraint to uvm_obj_wirepages at the moment, so
at least fail early and noisily if we violate it.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.13 -r1.1.1.1.2.14 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.13 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.14
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.13	Sun Sep  8 16:04:09 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Sun Sep  8 16:05:06 2013
@@ -2166,6 +2166,7 @@ static int
 i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
 {
 	struct drm_device *const dev = obj->base.dev;
+	struct vm_page *page;
 	int error;
 
 	/* XXX Cargo-culted from the Linux code.  */
@@ -2191,6 +2192,21 @@ i915_gem_object_get_pages_gtt(struct drm
 	KASSERT(0 < obj->igo_nsegs);
 	KASSERT(obj->igo_nsegs <= (obj->base.size / PAGE_SIZE));
 
+	/*
+	 * Check that the paddrs will fit in 40 bits.
+	 *
+	 * XXX This is wrong; we ought to pass this constraint to
+	 * bus_dmamem_wire_uvm_object instead.
+	 */
+	TAILQ_FOREACH(page, &obj->igo_pageq, pageq.queue) {
+		if (VM_PAGE_TO_PHYS(page) & ~0xffULL) {
+			DRM_ERROR("GEM physical address exceeds 40 bits"
+			": %"PRIxMAX"\n",
+			(uintmax_t)VM_PAGE_TO_PHYS(page));
+			goto fail2;
+		}
+	}
+
 	/* XXX errno NetBSD->Linux */
 	error = -bus_dmamap_create(dev->dmat, obj->base.size, obj->igo_nsegs,
 	PAGE_SIZE, 0, BUS_DMA_NOWAIT, &obj->igo_dmamap);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:03:21 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c
i915_gem.c i915_irq.c

Log Message:
Use dev->struct_mutex, not drm_global_mutex, for ring->irq_queue.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.27 -r1.1.1.1.2.28 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c
cvs rdiff -u -r1.1.1.1.2.11 -r1.1.1.1.2.12 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
cvs rdiff -u -r1.1.1.1.2.6 -r1.1.1.1.2.7 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.27 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.28
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.27	Sun Sep  8 16:01:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Sun Sep  8 16:03:21 2013
@@ -795,7 +795,7 @@ static int i915_wait_irq(struct drm_devi
 
 	if (ring->irq_get(ring)) {
 #ifdef __NetBSD__
-		DRM_TIMED_WAIT_UNTIL(ret, &ring->irq_queue, &drm_global_mutex,
+		DRM_TIMED_WAIT_UNTIL(ret, &ring->irq_queue, &dev->struct_mutex,
 		3 * DRM_HZ,
 		READ_BREADCRUMB(dev_priv) >= irq_nr);
 #else

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.11 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.12
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.11	Sun Sep  8 16:00:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Sun Sep  8 16:03:21 2013
@@ -1197,7 +1197,8 @@ static int __wait_seqno(struct intel_rin
 		 * XXX This wait is always interruptible; we should
 		 * heed the flag `interruptible'.
 		 */
-		DRM_TIMED_WAIT_UNTIL(end, &ring->irq_queue, &drm_global_mutex,
+		DRM_TIMED_WAIT_UNTIL(end, &ring->irq_queue,
+		&ring->dev->struct_mutex,
 		timeout_jiffies,
 		EXIT_COND);
 #else

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.6 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.7
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.6	Wed Jul 24 04:01:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c	Sun Sep  8 16:03:21 2013
@@ -355,7 +355,7 @@ static void notify_ring(struct drm_devic
 	trace_i915_gem_request_complete(ring, ring->get_seqno(ring, false));
 
 #ifdef __NetBSD__
-	DRM_WAKEUP_ALL(&ring->irq_queue, &drm_global_mutex);
+	DRM_WAKEUP_ALL(&ring->irq_queue, &dev->struct_mutex);
 #else
 	wake_up_all(&ring->irq_queue);
 #endif
@@ -1168,7 +1168,7 @@ static void i915_record_ring_state(struc
 
 #ifdef __NetBSD__
 	error->waiting[ring->id] = DRM_WAITERS_P(&ring->irq_queue,
-	&drm_global_mutex);
+	&dev->struct_mutex);
 #else
 	error->waiting[ring->id] = waitqueue_active(&ring->irq_queue);
 #endif
@@ -1487,7 +1487,7 @@ void i915_handle_error(struct drm_device
 		 */
 		for_each_ring(ring, dev_priv, i)
 #ifdef __NetBSD__
-			DRM_WAKEUP_ALL(&ring->irq_queue, &drm_global_mutex);
+			DRM_WAKEUP_ALL(&ring->irq_queue, &dev->struct_mutex);
 #else
 			wake_up_all(&ring->irq_queue);
 #endif
@@ -1696,12 +1696,21 @@ static bool i915_hangcheck_ring_idle(str
 			  ring_last_seqno(ring))) {
 		/* Issue a wake-up to catch stuck h/w. */
 #ifdef __NetBSD__
-		if (DRM_WAITERS_P(&ring->irq_queue, &drm_global_mutex)) {
+		/*
+		 * XXX mutex_lock here is a load of bollocks, but I'm
+		 * not sure what invariants the irq_queue is actually
+		 * relying on.
+		 */
+		mutex_lock(&ring->dev->struct_mutex);
+		if (DRM_WAITERS_P(&ring->irq_queue,
+			&ring->dev->struct_mutex)) {
 			DRM_ERROR("Hangcheck timer elapsed... %s idle\n",
   ring->name);
-			DRM_WAKEUP_ALL(&ring->irq_queue, &drm_global_mutex);
+			DRM_WAKEUP_ALL(&ring->irq_queue,
+			&ring->dev->struct_mutex);
 			*err = true;
 		}
+		mutex_unlock(&ring->dev->struct_mutex);
 #else
 		if (waitqueue_active(&ring->irq_queue)) {
 			DRM_ERROR("Hangcheck timer elapsed... %s idle\n",



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:02:21 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_ringbuffer.c

Log Message:
More error branch cleanup.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.8 -r1.1.1.1.2.9 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.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/i915/intel_ringbuffer.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.9
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.8	Sun Sep  8 15:54:20 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c	Sun Sep  8 16:02:21 2013
@@ -1180,12 +1180,12 @@ static int intel_init_ring_buffer(struct
 	if (I915_NEED_GFX_HWS(dev)) {
 		ret = init_status_page(ring);
 		if (ret)
-			return ret;
+			goto err_waitqueue;
 	} else {
 		BUG_ON(ring->id != RCS);
 		ret = init_phys_hws_pga(ring);
 		if (ret)
-			return ret;
+			goto err_waitqueue;
 	}
 
 	obj = i915_gem_alloc_object(dev, ring->size);
@@ -1254,6 +1254,10 @@ err_unref:
 	ring->obj = NULL;
 err_hws:
 	cleanup_status_page(ring);
+err_waitqueue:
+#ifdef __NetBSD__
+	DRM_DESTROY_WAITQUEUE(&ring->irq_queue);
+#endif
 	return ret;
 }
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 16:01:22 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
More little error branch cleanup.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.26 -r1.1.1.1.2.27 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.26 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.27
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.26	Sun Sep  8 16:00:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Sun Sep  8 16:01:22 2013
@@ -1757,6 +1757,8 @@ out_gem_unload:
 	spin_lock_destroy(&dev_priv->rps.lock);
 	spin_lock_destroy(&dev_priv->dpio_lock);
 	linux_mutex_destroy(&dev_priv->rps.hw_lock);
+	DRM_DESTROY_WAITQUEUE(&dev_priv->pending_flip_queue);
+	destroy_completion(&dev_priv->error_completion);
 #endif
 
 	if (dev->pdev->msi_enabled)
@@ -1891,6 +1893,12 @@ int i915_driver_unload(struct drm_device
 	}
 
 #ifdef __NetBSD__
+	/* XXX Not sure this is the right place, but it looks safe.  */
+	DRM_DESTROY_WAITQUEUE(&dev_priv->pending_flip_queue);
+	destroy_completion(&dev_priv->error_completion);
+#endif
+
+#ifdef __NetBSD__
 	if (dev_priv->regs_map != NULL)
 		(void)drm_rmmap(dev, dev_priv->regs_map);
 #else



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 15:58:53 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_pm.c

Log Message:
Add missing includes to intel_pm.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.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/i915/intel_pm.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c:1.1.1.1.2.3	Wed Jul 24 02:58:56 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c	Sun Sep  8 15:58:53 2013
@@ -32,6 +32,11 @@
 #include "../../../platform/x86/intel_ips.h"
 #endif
 #include 
+#include 
+#include 
+#include 
+#include 
+#include 
 
 #define FORCEWAKE_ACK_TIMEOUT_MS 2
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 15:55:23 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
Use pmap_enter_default, not pmap_enter.

Seems to be a problem with modules referring to weak aliases?


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.8 -r1.1.1.1.2.9 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.8 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.9
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.8	Sun Sep  8 15:52:20 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Sun Sep  8 15:55:23 2013
@@ -1555,7 +1555,12 @@ out:
 
 /*
  * XXX i915_udv_fault is copypasta of udv_fault from uvm_device.c.
+ *
+ * XXX pmap_enter_default instead of pmap_enter because of a problem
+ * with using weak aliases in kernel modules or something.
  */
+int	pmap_enter_default(pmap_t, vaddr_t, paddr_t, vm_prot_t, unsigned);
+
 static int
 i915_udv_fault(struct uvm_faultinfo *ufi, vaddr_t vaddr, struct vm_page **pps,
 int npages, int centeridx, vm_prot_t access_type, int flags,
@@ -1615,7 +1620,7 @@ i915_udv_fault(struct uvm_faultinfo *ufi
 		UVMHIST_LOG(maphist,
 		"  MAPPING: device: pm=0x%x, va=0x%x, pa=0x%lx, at=%d",
 		ufi->orig_map->pmap, curr_va, paddr, mapprot);
-		if (pmap_enter(ufi->orig_map->pmap, curr_va, paddr, mapprot,
+		if (pmap_enter_default(ufi->orig_map->pmap, curr_va, paddr, mapprot,
 		PMAP_CANFAIL | mapprot | mmapflags) != 0) {
 			/*
 			 * pmap_enter() didn't have the resource to



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 15:56:02 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c
i915_gem.c

Log Message:
Hook up the i915_gem uvm pager ops.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.13 -r1.1.1.1.2.14 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c
cvs rdiff -u -r1.1.1.1.2.9 -r1.1.1.1.2.10 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.13 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.14
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.13	Wed Jul 24 04:00:35 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Sun Sep  8 15:56:02 2013
@@ -915,7 +915,16 @@ int i915_reset(struct drm_device *dev)
 	return 0;
 }
 
-#ifndef __NetBSD__
+#ifdef __NetBSD__
+
+static const struct uvm_pagerops i915_gem_uvm_ops = {
+	.pgo_reference = drm_gem_pager_reference,
+	.pgo_detach = drm_gem_pager_detach,
+	.pgo_fault = i915_gem_fault,
+};
+
+#else
+
 static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
 	struct intel_device_info *intel_info =
@@ -1048,6 +1057,7 @@ static const struct file_operations i915
 #endif
 	.llseek = noop_llseek,
 };
+
 #endif	/* defined(__NetBSD__) */
 
 static struct drm_driver driver = {
@@ -1078,7 +1088,7 @@ static struct drm_driver driver = {
 	.gem_init_object = i915_gem_init_object,
 	.gem_free_object = i915_gem_free_object,
 #ifdef __NetBSD__
-	.gem_uvm_ops = NULL,
+	.gem_uvm_ops = &i915_gem_uvm_ops,
 #else
 	.gem_vm_ops = &i915_gem_vm_ops,
 #endif

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.9 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.10
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.9	Sun Sep  8 15:55:23 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Sun Sep  8 15:56:02 2013
@@ -34,6 +34,7 @@
 #include 
 
 #include 
+#include 
 #include 
 #include 
 #include 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 15:42:48 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_ringbuffer.c

Log Message:
intel_ringbuffer.c needs  for HZ.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.6 -r1.1.1.1.2.7 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.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/i915/intel_ringbuffer.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.6 src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.7
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.6	Wed Jul 24 03:43:10 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c	Sun Sep  8 15:42:48 2013
@@ -27,6 +27,7 @@
  *
  */
 
+#include 
 #include 
 #include "i915_drv.h"
 #include 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 15:42:12 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
i915_gem_execbuffer.c

Log Message:
Add missing includes to i915_gem_execbuffer.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.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/i915/i915_gem_execbuffer.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c	Sun Sep  8 15:42:12 2013
@@ -32,6 +32,8 @@
 #include "i915_trace.h"
 #include "intel_drv.h"
 #include 
+#include 
+#include 
 
 struct eb_objects {
 	int and;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 15:41:41 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
Add missing includes to i915_gem.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.6 -r1.1.1.1.2.7 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.6 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.7
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.6	Wed Jul 24 03:28:59 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Sun Sep  8 15:41:41 2013
@@ -35,6 +35,9 @@
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
 #include 
 
 static void i915_gem_object_flush_gtt_write_domain(struct drm_i915_gem_object *obj);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-09-08 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  8 15:34:06 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Destroy context_idr and mm.lock in i915_driver_postclose.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.23 -r1.1.1.1.2.24 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.23 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.24
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.23	Wed Jul 24 04:05:34 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Sun Sep  8 15:34:06 2013
@@ -1989,6 +1989,11 @@ void i915_driver_postclose(struct drm_de
 {
 	struct drm_i915_file_private *file_priv = file->driver_priv;
 
+#ifdef __NetBSD__
+	idr_destroy(&file_priv->context_idr);
+	spin_lock_destroy(&file_priv->mm.lock);
+#endif
+
 	kfree(file_priv);
 }
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:05:18 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Don't cancel rps.work or hotplug_work in i915_driver_unload.

These are cancelled in intel_modeset_cleanup.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.21 -r1.1.1.1.2.22 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.21 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.22
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.21	Wed Jul 24 04:04:16 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Wed Jul 24 04:05:18 2013
@@ -1876,8 +1876,6 @@ int i915_driver_unload(struct drm_device
 		 * (XXX Well, do work queues for real...)
 		 */
 		cancel_work_sync(&dev_priv->l3_parity.error_work);
-		cancel_work_sync(&dev_priv->rps.work);
-		cancel_work_sync(&dev_priv->hotplug_work);
 #  if 0/* XXX How do we get the CRTCs? */
 		cancel_work_sync(&...intel_crtc->unpin_work);
 #  endif



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:04:16 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Destroy locks in i915_driver_unload.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.20 -r1.1.1.1.2.21 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.20 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.21
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.20	Wed Jul 24 04:04:01 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Wed Jul 24 04:04:16 2013
@@ -1908,6 +1908,14 @@ int i915_driver_unload(struct drm_device
 		pci_iounmap(dev->pdev, dev_priv->regs);
 #endif
 
+#ifdef __NetBSD__
+	spin_lock_destroy(&dev_priv->irq_lock);
+	spin_lock_destroy(&dev_priv->error_lock);
+	spin_lock_destroy(&dev_priv->rps.lock);
+	spin_lock_destroy(&dev_priv->dpio_lock);
+	linux_mutex_destroy(&dev_priv->rps.hw_lock);
+#endif
+
 	intel_teardown_gmbus(dev);
 	intel_teardown_mchbar(dev);
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:03:45 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_stub.c

Log Message:
Enable drm_debug by default for now.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.9 -r1.1.1.1.2.10 \
src/sys/external/bsd/drm2/dist/drm/drm_stub.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/drm_stub.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.1.1.1.2.9 src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.1.1.1.2.10
--- src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.1.1.1.2.9	Wed Jul 24 02:41:44 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_stub.c	Wed Jul 24 04:03:45 2013
@@ -39,7 +39,7 @@
 #include 
 #include 
 
-unsigned int drm_debug = 0;	/* 1 to enable debug output */
+unsigned int drm_debug = 0xf;	/* 1 to enable debug output */
 EXPORT_SYMBOL(drm_debug);
 
 unsigned int drm_vblank_offdelay = 5000;/* Default to 5000 msecs. */



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:03:15 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_crtc.c

Log Message:
Destroy mode config locks in drm_mode_config_cleanup.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.15 -r1.1.1.1.2.16 \
src/sys/external/bsd/drm2/dist/drm/drm_crtc.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/drm_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.1.1.1.2.15 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.1.1.1.2.16
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.1.1.1.2.15	Wed Jul 24 03:40:10 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Wed Jul 24 04:03:15 2013
@@ -1145,6 +1145,11 @@ void drm_mode_config_cleanup(struct drm_
 
 	idr_remove_all(&dev->mode_config.crtc_idr);
 	idr_destroy(&dev->mode_config.crtc_idr);
+
+#ifdef __NetBSD__
+	linux_mutex_destroy(&dev->mode_config.mutex);
+	linux_mutex_destroy(&dev->mode_config.idr_mutex);
+#endif
 }
 EXPORT_SYMBOL(drm_mode_config_cleanup);
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:03:32 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_irq.c

Log Message:
Clean up the waitqueue and locks in drm_vblank_cleanup.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.8 -r1.1.1.1.2.9 \
src/sys/external/bsd/drm2/dist/drm/drm_irq.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/drm_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.1.1.1.2.8 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.1.1.1.2.9
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.1.1.1.2.8	Wed Jul 24 03:23:46 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Wed Jul 24 04:03:31 2013
@@ -205,6 +205,14 @@ void drm_vblank_cleanup(struct drm_devic
 
 	vblank_disable_fn((unsigned long)dev);
 
+#ifdef __NetBSD__
+{
+	unsigned int i;
+	for (i = 0; i < dev->num_crtcs; i++)
+		DRM_DESTROY_WAITQUEUE(&dev->vbl_queue[i]);
+}
+#endif
+
 	kfree(dev->vbl_queue);
 	kfree(dev->_vblank_count);
 	kfree(dev->vblank_refcount);
@@ -215,6 +223,11 @@ void drm_vblank_cleanup(struct drm_devic
 	kfree(dev->_vblank_time);
 
 	dev->num_crtcs = 0;
+
+#ifdef __NetBSD__
+	spin_lock_destroy(&dev->vblank_time_lock);
+	spin_lock_destroy(&dev->vbl_lock);
+#endif
 }
 EXPORT_SYMBOL(drm_vblank_cleanup);
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:04:01 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Ifdef out gtt unmapping for now in i915_driver_unload.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.19 -r1.1.1.1.2.20 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.19 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.20
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.19	Wed Jul 24 04:02:28 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Wed Jul 24 04:04:01 2013
@@ -1823,6 +1823,7 @@ int i915_driver_unload(struct drm_device
 	/* Cancel the retire work handler, which should be idle now. */
 	cancel_delayed_work_sync(&dev_priv->mm.retire_work);
 
+#ifndef __NetBSD__
 	io_mapping_free(dev_priv->mm.gtt_mapping);
 	if (dev_priv->mm.gtt_mtrr >= 0) {
 		mtrr_del(dev_priv->mm.gtt_mtrr,
@@ -1830,6 +1831,7 @@ int i915_driver_unload(struct drm_device
 			 dev_priv->mm.gtt->gtt_mappable_entries * PAGE_SIZE);
 		dev_priv->mm.gtt_mtrr = -1;
 	}
+#endif
 
 	acpi_video_unregister();
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:02:28 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Don't redundantly cancel mm.retire_work or error_work.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.18 -r1.1.1.1.2.19 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.18 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.19
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.18	Wed Jul 24 04:00:51 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Wed Jul 24 04:02:28 2013
@@ -1873,11 +1873,9 @@ int i915_driver_unload(struct drm_device
 		 * XXX Keep this updated!  (XXX How?)
 		 * (XXX Well, do work queues for real...)
 		 */
-		cancel_delayed_work_sync(&dev_priv->mm.retire_work);
 		cancel_work_sync(&dev_priv->l3_parity.error_work);
 		cancel_work_sync(&dev_priv->rps.work);
 		cancel_work_sync(&dev_priv->hotplug_work);
-		cancel_work_sync(&dev_priv->error_work);
 #  if 0/* XXX How do we get the CRTCs? */
 		cancel_work_sync(&...intel_crtc->unpin_work);
 #  endif



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:01:23 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_irq.c

Log Message:
Convert i915_irq.c to use DRM_IRQ_ARGS in irq handlers.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.5 -r1.1.1.1.2.6 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.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/i915/i915_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.5 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.6
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.5	Wed Jul 24 03:51:19 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c	Wed Jul 24 04:01:22 2013
@@ -533,7 +533,7 @@ static void gen6_queue_rps_work(struct d
 	queue_work(dev_priv->wq, &dev_priv->rps.work);
 }
 
-static irqreturn_t valleyview_irq_handler(int irq, void *arg)
+static irqreturn_t valleyview_irq_handler(DRM_IRQ_ARGS)
 {
 	struct drm_device *dev = (struct drm_device *) arg;
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
@@ -689,7 +689,7 @@ static void cpt_irq_handler(struct drm_d
 	 I915_READ(FDI_RX_IIR(pipe)));
 }
 
-static irqreturn_t ivybridge_irq_handler(int irq, void *arg)
+static irqreturn_t ivybridge_irq_handler(DRM_IRQ_ARGS)
 {
 	struct drm_device *dev = (struct drm_device *) arg;
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
@@ -762,7 +762,7 @@ static void ilk_gt_irq_handler(struct dr
 		notify_ring(dev, &dev_priv->ring[VCS]);
 }
 
-static irqreturn_t ironlake_irq_handler(int irq, void *arg)
+static irqreturn_t ironlake_irq_handler(DRM_IRQ_ARGS)
 {
 	struct drm_device *dev = (struct drm_device *) arg;
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
@@ -2179,7 +2179,7 @@ static int i8xx_irq_postinstall(struct d
 	return 0;
 }
 
-static irqreturn_t i8xx_irq_handler(int irq, void *arg)
+static irqreturn_t i8xx_irq_handler(DRM_IRQ_ARGS)
 {
 	struct drm_device *dev = (struct drm_device *) arg;
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
@@ -2357,7 +2357,7 @@ static int i915_irq_postinstall(struct d
 	return 0;
 }
 
-static irqreturn_t i915_irq_handler(int irq, void *arg)
+static irqreturn_t i915_irq_handler(DRM_IRQ_ARGS)
 {
 	struct drm_device *dev = (struct drm_device *) arg;
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
@@ -2595,7 +2595,7 @@ static int i965_irq_postinstall(struct d
 	return 0;
 }
 
-static irqreturn_t i965_irq_handler(int irq, void *arg)
+static irqreturn_t i965_irq_handler(DRM_IRQ_ARGS)
 {
 	struct drm_device *dev = (struct drm_device *) arg;
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:00:35 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c

Log Message:
Stub out the content, not definition, of intel_console_resume.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.12 -r1.1.1.1.2.13 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.12 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.13
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.12	Wed Jul 24 03:28:42 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Wed Jul 24 04:00:35 2013
@@ -562,9 +562,9 @@ int i915_suspend(struct drm_device *dev,
 	return 0;
 }
 
-#ifndef __NetBSD__		/* XXX fb */
 void intel_console_resume(struct work_struct *work)
 {
+#ifndef __NetBSD__		/* XXX fb */
 	struct drm_i915_private *dev_priv =
 		container_of(work, struct drm_i915_private,
 			 console_resume_work);
@@ -573,8 +573,8 @@ void intel_console_resume(struct work_st
 	console_lock();
 	intel_fbdev_set_suspend(dev, 0);
 	console_unlock();
-}
 #endif
+}
 
 static int __i915_drm_thaw(struct drm_device *dev)
 {



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 04:00:51 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Stub out intel_gtt initialization until we' ready for gem stuff.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.17 -r1.1.1.1.2.18 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.17 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.18
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.17	Wed Jul 24 03:57:49 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Wed Jul 24 04:00:51 2013
@@ -1446,6 +1446,7 @@ void i915_master_destroy(struct drm_devi
 	master->driver_priv = NULL;
 }
 
+#ifndef __NetBSD__		/* XXX gtt */
 static void
 i915_mtrr_setup(struct drm_i915_private *dev_priv, unsigned long base,
 		unsigned long size)
@@ -1468,6 +1469,7 @@ i915_mtrr_setup(struct drm_i915_private 
 			 "performance may suffer.\n");
 	}
 }
+#endif
 
 #ifndef __NetBSD__		/* XXX fb */
 static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv)
@@ -1523,7 +1525,9 @@ int i915_driver_load(struct drm_device *
 	struct drm_i915_private *dev_priv;
 	struct intel_device_info *info;
 	int ret = 0, mmio_bar, mmio_size;
+#ifndef __NetBSD__		/* XXX gtt */
 	uint32_t aperture_size;
+#endif
 
 	info = (struct intel_device_info *) flags;
 
@@ -1636,6 +1640,7 @@ int i915_driver_load(struct drm_device *
 	}
 #endif
 
+#ifndef __NetBSD__		/* XXX gtt */
 	aperture_size = dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT;
 	dev_priv->mm.gtt_base_addr = dev_priv->mm.gtt->gma_bus_addr;
 
@@ -1655,6 +1660,7 @@ int i915_driver_load(struct drm_device *
 
 	i915_mtrr_setup(dev_priv, dev_priv->mm.gtt_base_addr,
 			aperture_size);
+#endif	/* __NetBSD__ */
 
 	/* The i915 workqueue is primarily used for batched retirement of
 	 * requests (and thus managing bo) once the task has been completed
@@ -1771,6 +1777,7 @@ out_gem_unload:
 	intel_teardown_mchbar(dev);
 	destroy_workqueue(dev_priv->wq);
 out_mtrrfree:
+#ifndef __NetBSD__		/* XXX gtt */
 	if (dev_priv->mm.gtt_mtrr >= 0) {
 		mtrr_del(dev_priv->mm.gtt_mtrr,
 			 dev_priv->mm.gtt_base_addr,
@@ -1779,6 +1786,7 @@ out_mtrrfree:
 	}
 	io_mapping_free(dev_priv->mm.gtt_mapping);
 out_rmmap:
+#endif
 #ifdef __NetBSD__
 	(void)drm_rmmap(dev, dev_priv->regs_map);
 #else



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:57:49 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Offset mmio_bar by PCI_MAPREG_START in i915_dma_attach.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.16 -r1.1.1.1.2.17 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.16 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.17
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.16	Wed Jul 24 03:24:21 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Wed Jul 24 03:57:49 2013
@@ -1615,7 +1615,8 @@ int i915_driver_load(struct drm_device *
 		bus_size_t size;
 
 		if (pci_mapreg_info(dev->pdev->pd_pa.pa_pc,
-			dev->pdev->pd_pa.pa_tag, mmio_bar, PCI_MAPREG_TYPE_MEM,
+			dev->pdev->pd_pa.pa_tag, (PCI_MAPREG_START + mmio_bar),
+			PCI_MAPREG_TYPE_MEM,
 			&addr, &size, NULL /* XXX flags? */)) {
 			ret = -EIO;	/* XXX */
 			goto put_gmch;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:55:48 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_context.c

Log Message:
Destroy the idr in drm_ctxbitmap_cleanup.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.5 -r1.1.1.1.2.6 \
src/sys/external/bsd/drm2/dist/drm/drm_context.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/drm_context.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_context.c:1.1.1.1.2.5 src/sys/external/bsd/drm2/dist/drm/drm_context.c:1.1.1.1.2.6
--- src/sys/external/bsd/drm2/dist/drm/drm_context.c:1.1.1.1.2.5	Wed Jul 24 02:09:07 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_context.c	Wed Jul 24 03:55:48 2013
@@ -121,6 +121,9 @@ void drm_ctxbitmap_cleanup(struct drm_de
 {
 	mutex_lock(&dev->struct_mutex);
 	idr_remove_all(&dev->ctx_idr);
+#ifdef __NetBSD__
+	idr_destroy(&dev->ctx_idr);
+#endif
 	mutex_unlock(&dev->struct_mutex);
 }
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:55:32 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_mm.c

Log Message:
Destroy mm->unused_lock in drm_mm_takedown.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/drm_mm.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/drm_mm.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_mm.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/drm_mm.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/drm_mm.c:1.1.1.1.2.3	Wed Jul 24 02:38:39 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_mm.c	Wed Jul 24 03:55:32 2013
@@ -684,6 +684,12 @@ void drm_mm_takedown(struct drm_mm * mm)
 	}
 	spin_unlock(&mm->unused_lock);
 
+	/*
+	 * XXX The locking above can't be right -- either it is
+	 * unnecessary or it is insufficient.
+	 */
+	spin_lock_destroy(&mm->unused_lock);
+
 	BUG_ON(mm->num_unused != 0);
 }
 EXPORT_SYMBOL(drm_mm_takedown);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:54:28 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_i2c.c

Log Message:
Destroy gmbus_mutex in intel_teardown_gmbus.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.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/i915/intel_i2c.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.1.1.1.2.4	Wed Jul 24 03:41:01 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c	Wed Jul 24 03:54:28 2013
@@ -552,4 +552,8 @@ void intel_teardown_gmbus(struct drm_dev
 		struct intel_gmbus *bus = &dev_priv->gmbus[i];
 		i2c_del_adapter(&bus->adapter);
 	}
+
+#ifdef __NetBSD__
+	linux_mutex_destroy(&dev_priv->gmbus_mutex);
+#endif
 }



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:51:19 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_irq.c

Log Message:
Provisionally ifdef out some kobject_uevent stuff in i915_irq.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.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/i915/i915_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.4	Wed Jul 24 03:51:04 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c	Wed Jul 24 03:51:19 2013
@@ -416,7 +416,9 @@ static void ivybridge_parity_work(struct
 	drm_i915_private_t *dev_priv = container_of(work, drm_i915_private_t,
 		l3_parity.error_work);
 	u32 error_status, row, bank, subbank;
+#ifndef __NetBSD__		/* XXX kobject uevent...? */
 	char *parity_event[5];
+#endif
 	uint32_t misccpctl;
 	unsigned long flags;
 
@@ -448,6 +450,7 @@ static void ivybridge_parity_work(struct
 
 	mutex_unlock(&dev_priv->dev->struct_mutex);
 
+#ifndef __NetBSD__		/* XXX kobject uevent...? */
 	parity_event[0] = "L3_PARITY_ERROR=1";
 	parity_event[1] = kasprintf(GFP_KERNEL, "ROW=%d", row);
 	parity_event[2] = kasprintf(GFP_KERNEL, "BANK=%d", bank);
@@ -463,6 +466,7 @@ static void ivybridge_parity_work(struct
 	kfree(parity_event[3]);
 	kfree(parity_event[2]);
 	kfree(parity_event[1]);
+#endif
 }
 
 static void ivybridge_handle_parity_error(struct drm_device *dev)
@@ -846,18 +850,24 @@ static void i915_error_work_func(struct 
 	drm_i915_private_t *dev_priv = container_of(work, drm_i915_private_t,
 		error_work);
 	struct drm_device *dev = dev_priv->dev;
+#ifndef __NetBSD__		/* XXX kobject uevent...? */
 	char *error_event[] = { "ERROR=1", NULL };
 	char *reset_event[] = { "RESET=1", NULL };
 	char *reset_done_event[] = { "ERROR=0", NULL };
 
 	kobject_uevent_env(&dev->primary->kdev.kobj, KOBJ_CHANGE, error_event);
+#endif
 
 	if (atomic_read(&dev_priv->mm.wedged)) {
 		DRM_DEBUG_DRIVER("resetting chip\n");
+#ifndef __NetBSD__		/* XXX kobject uevent...? */
 		kobject_uevent_env(&dev->primary->kdev.kobj, KOBJ_CHANGE, reset_event);
+#endif
 		if (!i915_reset(dev)) {
 			atomic_set(&dev_priv->mm.wedged, 0);
+#ifndef __NetBSD__		/* XXX kobject uevent...? */
 			kobject_uevent_env(&dev->primary->kdev.kobj, KOBJ_CHANGE, reset_done_event);
+#endif
 		}
 		complete_all(&dev_priv->error_completion);
 	}



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:48:42 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_tv.c

Log Message:
Constify intel_tv.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.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/i915/intel_tv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c:1.1.1.1.2.3	Wed Jul 24 03:48:26 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c	Wed Jul 24 03:48:42 2013
@@ -1555,7 +1555,11 @@ intel_tv_init(struct drm_device *dev)
 	struct intel_encoder *intel_encoder;
 	struct intel_connector *intel_connector;
 	u32 tv_dac_on, tv_dac_off, save_tv_dac;
+#ifdef __NetBSD__		/* XXX const */
+	const char *tv_format_names[ARRAY_SIZE(tv_modes)];
+#else
 	char *tv_format_names[ARRAY_SIZE(tv_modes)];
+#endif
 	int i, initial_mode = 0;
 
 	if ((I915_READ(TV_CTL) & TV_FUSE_STATE_MASK) == TV_FUSE_STATE_DISABLED)
@@ -1651,7 +1655,11 @@ intel_tv_init(struct drm_device *dev)
 
 	/* Create TV properties then attach current values */
 	for (i = 0; i < ARRAY_SIZE(tv_modes); i++)
+#ifdef __NetBSD__		/* XXX const */
+		tv_format_names[i] = (const char *)tv_modes[i].name;
+#else
 		tv_format_names[i] = (char *)tv_modes[i].name;
+#endif
 	drm_mode_create_tv_properties(dev,
   ARRAY_SIZE(tv_modes),
   tv_format_names);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:48:11 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_sdvo.c

Log Message:
Use a static const, not `= {0}', to zero-initialize in intel_sdvo.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.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/i915/intel_sdvo.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.1.1.1.2.4	Wed Jul 24 03:47:55 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c	Wed Jul 24 03:48:11 2013
@@ -621,7 +621,12 @@ intel_sdvo_get_value(struct intel_sdvo *
 
 static bool intel_sdvo_set_target_input(struct intel_sdvo *intel_sdvo)
 {
+#ifdef __NetBSD__
+	static const struct intel_sdvo_set_target_input_args zero_targets;
+	struct intel_sdvo_set_target_input_args targets = zero_targets;
+#else
 	struct intel_sdvo_set_target_input_args targets = {0};
+#endif
 	return intel_sdvo_set_value(intel_sdvo,
 SDVO_CMD_SET_TARGET_INPUT,
 &targets, sizeof(targets));



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:48:26 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_tv.c

Log Message:
intel_tv.c needs .


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.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/i915/intel_tv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c	Wed Jul 24 03:48:26 2013
@@ -30,6 +30,7 @@
  * Integrated TV-out support for the 915GM and 945GM.
  */
 
+#include 
 #include 
 #include 
 #include 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:47:55 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_sdvo.c

Log Message:
Fix const casts in intel_sdvo.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.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/i915/intel_sdvo.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.1.1.1.2.3	Wed Jul 24 03:47:39 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c	Wed Jul 24 03:47:55 2013
@@ -419,7 +419,11 @@ static void intel_sdvo_debug_write(struc
 	DRM_DEBUG_KMS("%s: W: %02X ",
 SDVO_NAME(intel_sdvo), cmd);
 	for (i = 0; i < args_len; i++)
+#ifdef __NetBSD__		/* XXX const */
+		DRM_LOG_KMS("%02X ", ((const u8 *)args)[i]);
+#else
 		DRM_LOG_KMS("%02X ", ((u8 *)args)[i]);
+#endif
 	for (; i < 8; i++)
 		DRM_LOG_KMS("   ");
 	for (i = 0; i < ARRAY_SIZE(sdvo_cmd_names); i++) {
@@ -469,7 +473,11 @@ static bool intel_sdvo_write_cmd(struct 
 		msgs[i].len = 2;
 		msgs[i].buf = buf + 2 *i;
 		buf[2*i + 0] = SDVO_I2C_ARG_0 - i;
+#ifdef __NetBSD__		/* XXX const */
+		buf[2*i + 1] = ((const u8*)args)[i];
+#else
 		buf[2*i + 1] = ((u8*)args)[i];
+#endif
 	}
 	msgs[i].addr = intel_sdvo->slave_addr;
 	msgs[i].flags = 0;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:47:40 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_sdvo.c

Log Message:
intel_sdvo.c needs  and .


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.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/i915/intel_sdvo.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c	Wed Jul 24 03:47:39 2013
@@ -29,6 +29,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 #include 
 #include 
 #include 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:47:24 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_panel.c

Log Message:
Provisionally add kludgerific ioread32 to intel_panel.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.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/i915/intel_panel.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.1.1.1.2.4	Wed Jul 24 03:47:07 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c	Wed Jul 24 03:47:23 2013
@@ -382,6 +382,17 @@ static void intel_panel_init_backlight(s
 	dev_priv->backlight_enabled = dev_priv->backlight_level != 0;
 }
 
+#ifdef __NetBSD__		/* XXX This is worse than the others!  */
+static inline uint32_t
+ioread32(const uint32_t __acpi_iomem *ptr)
+{
+	const uint32_t value = *ptr;
+
+	__insn_barrier();
+	return value;
+}
+#endif
+
 enum drm_connector_status
 intel_panel_detect(struct drm_device *dev)
 {



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:47:07 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_panel.c

Log Message:
Kludge around max as a local variable in intel_panel.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.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/i915/intel_panel.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.1.1.1.2.3	Wed Jul 24 03:46:52 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c	Wed Jul 24 03:47:07 2013
@@ -166,6 +166,10 @@ static u32 i915_read_blc_pwm_ctl(struct 
 	return val;
 }
 
+#ifdef __NetBSD__		/* XXX max kludge */
+#  define	max	max_hack
+#endif
+
 static u32 _intel_panel_get_max_backlight(struct drm_device *dev)
 {
 	u32 max;
@@ -284,6 +288,10 @@ static void intel_panel_actually_set_bac
 	I915_WRITE(BLC_PWM_CTL, tmp | level);
 }
 
+#ifdef __NetBSD__		/* XXX max hack */
+#  undef	max
+#endif
+
 void intel_panel_set_backlight(struct drm_device *dev, u32 level)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:46:52 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_panel.c

Log Message:
intel_panel.c needs  and .


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.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/i915/intel_panel.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c	Wed Jul 24 03:46:52 2013
@@ -31,6 +31,8 @@
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include 
+#include 
+#include 
 #include "intel_drv.h"
 
 #define PCI_LBPC 0xf4 /* legacy/combination backlight modes */



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:43:10 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_ringbuffer.c

Log Message:
Fix typo in intel_ringbuffer: drm_iounmap takes dev_priv->dev, not dev.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.5 -r1.1.1.1.2.6 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.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/i915/intel_ringbuffer.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.5 src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.6
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c:1.1.1.1.2.5	Wed Jul 24 03:06:00 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c	Wed Jul 24 03:43:10 2013
@@ -1260,7 +1260,7 @@ void intel_cleanup_ring_buffer(struct in
 	I915_WRITE_CTL(ring, 0);
 
 #ifdef __NetBSD__
-	drm_iounmap(dev, &ring->virtual_start_map);
+	drm_iounmap(dev_priv->dev, &ring->virtual_start_map);
 	ring->virtual_start_mapped = false;
 #else
 	iounmap(ring->virtual_start);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:42:21 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_opregion.c

Log Message:
Use acpi_os_iounmap in intel_opregion.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.5 -r1.1.1.1.2.6 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.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/i915/intel_opregion.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.5 src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.6
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.5	Wed Jul 24 03:42:05 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c	Wed Jul 24 03:42:21 2013
@@ -593,6 +593,10 @@ int intel_opregion_setup(struct drm_devi
 	return 0;
 
 err_out:
+#ifdef __NetBSD__
+	acpi_os_iounmap(base, OPREGION_SIZE);
+#else
 	iounmap(base);
+#endif
 	return err;
 }



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:42:05 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_opregion.c

Log Message:
Avoid void * arithmetic in intel_opregion.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.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/i915/intel_opregion.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.4	Wed Jul 24 03:41:49 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c	Wed Jul 24 03:42:05 2013
@@ -551,23 +551,43 @@ int intel_opregion_setup(struct drm_devi
 		goto err_out;
 	}
 	opregion->header = base;
+#ifdef __NetBSD__
+	opregion->vbt = (char *)base + OPREGION_VBT_OFFSET;
+#else
 	opregion->vbt = base + OPREGION_VBT_OFFSET;
+#endif
 
+#ifdef __NetBSD__
+	opregion->lid_state = (void *)((char *)base + ACPI_CLID);
+#else
 	opregion->lid_state = base + ACPI_CLID;
+#endif
 
 	mboxes = ioread32(&opregion->header->mboxes);
 	if (mboxes & MBOX_ACPI) {
 		DRM_DEBUG_DRIVER("Public ACPI methods supported\n");
+#ifdef __NetBSD__
+		opregion->acpi = (void *)((char *)base + OPREGION_ACPI_OFFSET);
+#else
 		opregion->acpi = base + OPREGION_ACPI_OFFSET;
+#endif
 	}
 
 	if (mboxes & MBOX_SWSCI) {
 		DRM_DEBUG_DRIVER("SWSCI supported\n");
+#ifdef __NetBSD__
+		opregion->swsci = (void *)((char *)base + OPREGION_SWSCI_OFFSET);
+#else
 		opregion->swsci = base + OPREGION_SWSCI_OFFSET;
+#endif
 	}
 	if (mboxes & MBOX_ASLE) {
 		DRM_DEBUG_DRIVER("ASLE supported\n");
+#ifdef __NetBSD__
+		opregion->asle = (void *)((char *)base + OPREGION_ASLE_OFFSET);
+#else
 		opregion->asle = base + OPREGION_ASLE_OFFSET;
+#endif
 	}
 
 	return 0;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:41:32 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_lvds.c

Log Message:
Provisionally ifdef out dmi hacks in intel_lvds.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.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/i915/intel_lvds.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c:1.1.1.1.2.3	Wed Jul 24 03:41:17 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c	Wed Jul 24 03:41:32 2013
@@ -473,6 +473,7 @@ static int intel_lvds_get_modes(struct d
 	return 1;
 }
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 static int intel_no_modeset_on_lid_dmi_callback(const struct dmi_system_id *id)
 {
 	DRM_INFO("Skipping forced modeset for %s\n", id->ident);
@@ -492,6 +493,7 @@ static const struct dmi_system_id intel_
 
 	{ }	/* terminating entry */
 };
+#endif
 
 /*
  * Lid events. Note the use of 'modeset_on_lid':
@@ -520,9 +522,11 @@ static int intel_lid_notify(struct notif
 	 */
 	connector->status = connector->funcs->detect(connector, false);
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 	/* Don't force modeset on machines where it causes a GPU lockup */
 	if (dmi_check_system(intel_no_modeset_on_lid))
 		return NOTIFY_OK;
+#endif
 	if (!acpi_lid_open()) {
 		dev_priv->modeset_on_lid = 1;
 		return NOTIFY_OK;
@@ -625,6 +629,7 @@ static const struct drm_encoder_funcs in
 	.destroy = intel_encoder_destroy,
 };
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 static int __init intel_no_lvds_dmi_callback(const struct dmi_system_id *id)
 {
 	DRM_INFO("Skipping LVDS initialization for %s\n", id->ident);
@@ -795,6 +800,7 @@ static const struct dmi_system_id intel_
 
 	{ }	/* terminating entry */
 };
+#endif
 
 /**
  * intel_find_lvds_downclock - find the reduced downclock for LVDS in EDID
@@ -936,9 +942,11 @@ bool intel_lvds_init(struct drm_device *
 	if (!intel_lvds_supported(dev))
 		return false;
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 	/* Skip init on machines we know falsely report LVDS */
 	if (dmi_check_system(intel_no_lvds))
 		return false;
+#endif
 
 	pin = GMBUS_PORT_PANEL;
 	if (!lvds_is_present_in_vbt(dev, &pin)) {



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:41:17 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_lvds.c

Log Message:
intel_lvds.c needs  and .


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.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/i915/intel_lvds.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c	Wed Jul 24 03:41:17 2013
@@ -38,6 +38,8 @@
 #include 
 #include "i915_drv.h"
 #include 
+#include 
+#include 
 
 /* Private structure for the integrated LVDS support */
 struct intel_lvds_connector {



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:41:49 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_opregion.c

Log Message:
intel_opregion.c needs .


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.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/i915/intel_opregion.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.3	Wed Jul 24 03:27:35 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c	Wed Jul 24 03:41:49 2013
@@ -29,6 +29,7 @@
 
 #include 
 #include 
+#include 
 #include 
 
 #include 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:40:10 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_crtc.c

Log Message:
Constify drm_mode_create_tv_properties.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.14 -r1.1.1.1.2.15 \
src/sys/external/bsd/drm2/dist/drm/drm_crtc.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/drm_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.1.1.1.2.14 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.1.1.1.2.15
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.1.1.1.2.14	Wed Jul 24 02:46:11 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Wed Jul 24 03:40:10 2013
@@ -858,8 +858,13 @@ EXPORT_SYMBOL(drm_mode_create_dvi_i_prop
  * responsible for allocating a list of format names and passing them to
  * this routine.
  */
+#ifdef __NetBSD__		/* XXX const */
+int drm_mode_create_tv_properties(struct drm_device *dev, int num_modes,
+  const char *modes[])
+#else
 int drm_mode_create_tv_properties(struct drm_device *dev, int num_modes,
   char *modes[])
+#endif
 {
 	struct drm_property *tv_selector;
 	struct drm_property *tv_subconnector;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:41:01 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_i2c.c

Log Message:
Convert intel_i2c.c to linux_mutex_init.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.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/i915/intel_i2c.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.1.1.1.2.3	Wed Jul 24 03:40:46 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c	Wed Jul 24 03:41:01 2013
@@ -469,7 +469,11 @@ int intel_setup_gmbus(struct drm_device 
 	else
 		dev_priv->gpio_mmio_base = 0;
 
+#ifdef __NetBSD__
+	linux_mutex_init(&dev_priv->gmbus_mutex);
+#else
 	mutex_init(&dev_priv->gmbus_mutex);
+#endif
 
 	for (i = 0; i < GMBUS_NUM_PORTS; i++) {
 		struct intel_gmbus *bus = &dev_priv->gmbus[i];



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:40:46 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_i2c.c

Log Message:
intel_i2c.c needs .


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.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/i915/intel_i2c.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c	Wed Jul 24 03:40:46 2013
@@ -29,6 +29,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include "intel_drv.h"
 #include 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:39:38 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_dp.c

Log Message:
intel_dp.c needs , , and .


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.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/i915/intel_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.1.1.1.2.3	Wed Jul 24 03:38:48 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c	Wed Jul 24 03:39:38 2013
@@ -28,6 +28,9 @@
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
 #include 
 #include 
 #include 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:39:23 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_display.c

Log Message:
NetBSDify (bus_spaceify) i915_disable_vga.  (XXX Move elsewhere?)


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.7 -r1.1.1.1.2.8 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.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/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.7 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.8
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.7	Wed Jul 24 03:39:05 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Wed Jul 24 03:39:23 2013
@@ -8986,11 +8986,32 @@ static void i915_disable_vga(struct drm_
 	else
 		vga_reg = VGACNTRL;
 
+#ifdef __NetBSD__
+{
+	const bus_size_t vgabase = 0x3c0;
+	const bus_space_tag_t iot = dev->pdev->pd_pa.pa_iot;
+	bus_space_handle_t ioh;
+
+	if (bus_space_map(iot, vgabase, 0x10, 0, &ioh)) {
+		aprint_error_dev(dev->pdev->pd_dev,
+		"unable to map VGA registers");
+	} else {
+		CTASSERT(vgabase <= VGA_SR_INDEX);
+		CTASSERT(vgabase <= VGA_SR_DATA);
+		bus_space_write_1(iot, ioh, VGA_SR_INDEX - vgabase, SR01);
+		sr1 = bus_space_read_1(iot, ioh, VGA_SR_DATA - vgabase);
+		bus_space_write_1(iot, ioh, VGA_SR_DATA - vgabase,
+		(sr1 | __BIT(5)));
+		bus_space_unmap(iot, ioh, 0x10);
+	}
+}
+#else
 	vga_get_uninterruptible(dev->pdev, VGA_RSRC_LEGACY_IO);
 	outb(SR01, VGA_SR_INDEX);
 	sr1 = inb(VGA_SR_DATA);
 	outb(sr1 | 1<<5, VGA_SR_DATA);
 	vga_put(dev->pdev, VGA_RSRC_LEGACY_IO);
+#endif
 	udelay(300);
 
 	I915_WRITE(vga_reg, VGA_DISP_DISABLE);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:39:06 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.h
intel_display.c

Log Message:
Half-arsed conversion of i915 pending flip queue to drm_waitqueues.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.12 -r1.1.1.1.2.13 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.1.1.1.2.6 -r1.1.1.1.2.7 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.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/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.12 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.13
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.12	Wed Jul 24 03:27:35 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Wed Jul 24 03:39:05 2013
@@ -890,7 +890,13 @@ typedef struct drm_i915_private {
 
 	struct drm_crtc *plane_to_crtc_mapping[3];
 	struct drm_crtc *pipe_to_crtc_mapping[3];
+#ifdef __NetBSD__
+	/* XXX The locking scheme looks broken.  This mutex is a stop-gap.  */
+	struct mutex pending_flip_lock;
+	drm_waitqueue_t pending_flip_queue;
+#else
 	wait_queue_head_t pending_flip_queue;
+#endif
 
 	struct intel_pch_pll pch_plls[I915_NUM_PLLS];
 	struct intel_ddi_plls ddi_plls;

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.6 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.7
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.6	Wed Jul 24 03:38:33 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Wed Jul 24 03:39:05 2013
@@ -2960,12 +2960,25 @@ static void intel_crtc_wait_for_pending_
 {
 	struct drm_device *dev = crtc->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
+#ifdef __NetBSD__		/* XXX DRM_WAIT_UNINTERRUPTIBLE_UNTIL */
+	int error = 0;
+#endif
 
 	if (crtc->fb == NULL)
 		return;
 
+#ifdef __NetBSD__		/* XXX DRM_WAIT_UNINTERRUPTIBLE_UNTIL */
+	mutex_lock(&dev_priv->pending_flip_lock);
+	do {
+		DRM_WAIT_UNTIL(error, &dev_priv->pending_flip_queue,
+		&dev_priv->pending_flip_lock,
+		!intel_crtc_has_pending_flip(crtc));
+	} while (error);
+	mutex_unlock(&dev_priv->pending_flip_lock);
+#else
 	wait_event(dev_priv->pending_flip_queue,
 		   !intel_crtc_has_pending_flip(crtc));
+#endif
 
 	mutex_lock(&dev->struct_mutex);
 	intel_finish_fb(crtc->fb);
@@ -7149,9 +7162,17 @@ static void do_intel_finish_page_flip(st
 
 	obj = work->old_fb_obj;
 
+#ifdef __NetBSD__		/* XXX */
+	atomic_clear_mask(1 << intel_crtc->plane, &obj->pending_flip);
+	mutex_lock(&dev_priv->pending_flip_lock);
+	DRM_WAKEUP_ONE(&dev_priv->pending_flip_queue,
+	&dev_priv->pending_flip_lock);
+	mutex_unlock(&dev_priv->pending_flip_lock);
+#else
 	atomic_clear_mask(1 << intel_crtc->plane,
 			  &obj->pending_flip.counter);
 	wake_up(&dev_priv->pending_flip_queue);
+#endif
 
 	queue_work(dev_priv->wq, &work->work);
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:38:33 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_display.c

Log Message:
Avoid {0} struct initializer in ironlake_set_m_n in intel_display.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.5 -r1.1.1.1.2.6 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.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/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.5 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.6
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.5	Wed Jul 24 03:38:08 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Wed Jul 24 03:38:33 2013
@@ -5414,7 +5414,12 @@ static void ironlake_set_m_n(struct drm_
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
 	enum transcoder cpu_transcoder = intel_crtc->cpu_transcoder;
 	struct intel_encoder *intel_encoder, *edp_encoder = NULL;
+#ifdef __NetBSD__
+	static const struct fdi_m_n zero_m_n;
+	struct fdi_m_n m_n = zero_m_n;
+#else
 	struct fdi_m_n m_n = {0};
+#endif
 	int target_clock, pixel_multiplier, lane, link_bw;
 	bool is_dp = false, is_cpu_edp = false;
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:38:48 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_dp.c

Log Message:
Avoid {0} struct initializer in intel_dp_init_connector.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.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/i915/intel_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c	Wed Jul 24 03:38:48 2013
@@ -2711,7 +2711,12 @@ intel_dp_init_connector(struct intel_dig
 	struct drm_device *dev = intel_encoder->base.dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct drm_display_mode *fixed_mode = NULL;
+#ifdef __NetBSD__
+	static const struct edp_power_seq zero_power_seq;
+	struct edp_power_seq power_seq = zero_power_seq;
+#else
 	struct edp_power_seq power_seq = { 0 };
+#endif
 	enum port port = intel_dig_port->port;
 	const char *name = NULL;
 	int type;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:38:08 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_display.c

Log Message:
Ifdef out Linux framebuffer stuff in i915 intel_display.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.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/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.4	Wed Jul 24 03:37:47 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Wed Jul 24 03:38:08 2013
@@ -2240,6 +2240,13 @@ intel_pipe_set_base_atomic(struct drm_cr
 	return dev_priv->display.update_plane(crtc, fb, x, y);
 }
 
+#ifdef __NetBSD__		/* XXX fb */
+static int
+intel_finish_fb(struct drm_framebuffer *old_fb __unused)
+{
+	return 0;
+}
+#else
 static int
 intel_finish_fb(struct drm_framebuffer *old_fb)
 {
@@ -2266,6 +2273,7 @@ intel_finish_fb(struct drm_framebuffer *
 
 	return ret;
 }
+#endif
 
 static void intel_crtc_update_sarea_pos(struct drm_crtc *crtc, int x, int y)
 {
@@ -6612,6 +6620,7 @@ intel_framebuffer_create(struct drm_devi
 	return &intel_fb->base;
 }
 
+#ifndef __NetBSD__		/* XXX fb */
 static u32
 intel_framebuffer_pitch_for_width(int width, int bpp)
 {
@@ -6625,7 +6634,17 @@ intel_framebuffer_size_for_mode(struct d
 	u32 pitch = intel_framebuffer_pitch_for_width(mode->hdisplay, bpp);
 	return ALIGN(pitch * mode->vdisplay, PAGE_SIZE);
 }
+#endif
 
+#ifdef __NetBSD__		/* XXX fb */
+static struct drm_framebuffer *
+intel_framebuffer_create_for_mode(struct drm_device *dev __unused,
+struct drm_display_mode *mode __unused,
+int depth __unused, int bpp __unused)
+{
+	return NULL;
+}
+#else
 static struct drm_framebuffer *
 intel_framebuffer_create_for_mode(struct drm_device *dev,
   struct drm_display_mode *mode,
@@ -6647,7 +,16 @@ intel_framebuffer_create_for_mode(struct
 
 	return intel_framebuffer_create(dev, &mode_cmd, obj);
 }
+#endif
 
+#ifdef __NetBSD__		/* XXX fb */
+static struct drm_framebuffer *
+mode_fits_in_fbdev(struct drm_device *dev __unused,
+struct drm_display_mode *mode __unused)
+{
+	return NULL;
+}
+#else
 static struct drm_framebuffer *
 mode_fits_in_fbdev(struct drm_device *dev,
 		   struct drm_display_mode *mode)
@@ -6673,6 +6701,7 @@ mode_fits_in_fbdev(struct drm_device *de
 
 	return fb;
 }
+#endif
 
 bool intel_get_load_detect_pipe(struct drm_connector *connector,
 struct drm_display_mode *mode,



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:37:47 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_display.c

Log Message:
i915 intel_display.c needs  and Linux .


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.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/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.3	Wed Jul 24 03:35:19 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Wed Jul 24 03:37:47 2013
@@ -40,6 +40,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 
 bool intel_pipe_has_type(struct drm_crtc *crtc, int type);
 static void intel_increase_pllclock(struct drm_crtc *crtc);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:35:19 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]:
intel_display.c

Log Message:
Ifdef out dmi hacks in i915 intel_display.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.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/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Wed Jul 24 03:35:19 2013
@@ -472,6 +472,7 @@ static void vlv_init_dpio(struct drm_dev
 	POSTING_READ(DPIO_CTL);
 }
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 static int intel_dual_link_lvds_callback(const struct dmi_system_id *id)
 {
 	DRM_INFO("Forcing lvds to dual link mode on %s\n", id->ident);
@@ -489,6 +490,7 @@ static const struct dmi_system_id intel_
 	},
 	{ }	/* terminating entry */
 };
+#endif
 
 static bool is_dual_link_lvds(struct drm_i915_private *dev_priv,
 			  unsigned int reg)
@@ -499,8 +501,10 @@ static bool is_dual_link_lvds(struct drm
 	if (i915_lvds_channel_mode > 0)
 		return i915_lvds_channel_mode == 2;
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 	if (dmi_check_system(intel_dual_link_lvds))
 		return true;
+#endif
 
 	if (dev_priv->lvds_val)
 		val = dev_priv->lvds_val;
@@ -8797,6 +8801,7 @@ static void intel_init_display(struct dr
 	}
 }
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 /*
  * Some BIOSes insist on assuming the GPU's pipe A is enabled at suspend,
  * resume, or other times.  This quirk makes sure that's the case for
@@ -8910,6 +8915,7 @@ static void intel_init_quirks(struct drm
 			intel_dmi_quirks[i].hook(dev);
 	}
 }
+#endif
 
 /* Disable the VGA plane that we never use */
 static void i915_disable_vga(struct drm_device *dev)
@@ -8965,7 +8971,9 @@ void intel_modeset_init(struct drm_devic
 
 	dev->mode_config.funcs = &intel_mode_funcs;
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 	intel_init_quirks(dev);
+#endif
 
 	intel_init_pm(dev);
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:34:58 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_ddi.c

Log Message:
Make intel_prepare_ddi_buffers static in intel_ddi.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.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/i915/intel_ddi.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c	Wed Jul 24 03:34:58 2013
@@ -84,6 +84,9 @@ static enum port intel_ddi_get_encoder_p
  * in either FDI or DP modes only, as HDMI connections will work with both
  * of those
  */
+#ifdef __NetBSD__
+static
+#endif
 void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port, bool use_fdi_mode)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:34:36 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_crt.c

Log Message:
Ifdef out dmi hack in intel_crt.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.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/i915/intel_crt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c	Wed Jul 24 03:34:36 2013
@@ -706,6 +706,7 @@ static const struct drm_encoder_funcs in
 	.destroy = intel_encoder_destroy,
 };
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 static int __init intel_no_crt_dmi_callback(const struct dmi_system_id *id)
 {
 	DRM_INFO("Skipping CRT initialization for %s\n", id->ident);
@@ -723,6 +724,7 @@ static const struct dmi_system_id intel_
 	},
 	{ }
 };
+#endif
 
 void intel_crt_init(struct drm_device *dev)
 {
@@ -731,9 +733,11 @@ void intel_crt_init(struct drm_device *d
 	struct intel_connector *intel_connector;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 	/* Skip machines without VGA that falsely report hotplug events */
 	if (dmi_check_system(intel_no_crt))
 		return;
+#endif
 
 	crt = kzalloc(sizeof(struct intel_crt), GFP_KERNEL);
 	if (!crt)



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:34:21 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_edid.c

Log Message:
Restore use of print_hex_dump in drm_edid.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.9 -r1.1.1.1.2.10 \
src/sys/external/bsd/drm2/dist/drm/drm_edid.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/drm_edid.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_edid.c:1.1.1.1.2.9 src/sys/external/bsd/drm2/dist/drm/drm_edid.c:1.1.1.1.2.10
--- src/sys/external/bsd/drm2/dist/drm/drm_edid.c:1.1.1.1.2.9	Wed Jul 24 03:13:27 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_edid.c	Wed Jul 24 03:34:21 2013
@@ -220,18 +220,8 @@ bool drm_edid_block_valid(u8 *raw_edid, 
 bad:
 	if (raw_edid && print_bad_edid) {
 		printk(KERN_ERR "Raw EDID:\n");
-#ifdef __NetBSD__
-		for (i = 0; i < EDID_LENGTH; i++) {
-			printf("%02x", raw_edid[i]);
-			if ((i % 16) == 15)
-printf("\n");
-			else
-printf(" ");
-		}
-#else
 		print_hex_dump(KERN_ERR, " \t", DUMP_PREFIX_NONE, 16, 1,
 			   raw_edid, EDID_LENGTH, false);
-#endif
 	}
 	return 0;
 }



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:32:41 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_bios.c

Log Message:
Use __pci_rom_iomem marker in intel_parse_bios.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.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/i915/intel_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.1.1.1.2.4	Wed Jul 24 03:32:02 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c	Wed Jul 24 03:32:41 2013
@@ -693,6 +693,9 @@ static const struct dmi_system_id intel_
  *
  * Returns 0 on success, nonzero on failure.
  */
+#ifdef __NetBSD__
+#  define	__iomem	__pci_rom_iomem
+#endif
 int
 intel_parse_bios(struct drm_device *dev)
 {
@@ -757,6 +760,9 @@ intel_parse_bios(struct drm_device *dev)
 
 	return 0;
 }
+#ifdef __NetBSD__
+#  undef	__iomem
+#endif
 
 /* Ensure that vital registers have been initialised, even if the BIOS
  * is absent or just failing to do its job.



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:33:03 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_dp_helper.c

Log Message:
drm_dp_helper.c needs .


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.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/drm_dp_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.1.1.1.2.2	Tue Jul 23 21:28:21 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c	Wed Jul 24 03:33:03 2013
@@ -27,6 +27,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:32:02 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_bios.c

Log Message:
Disable dmi hacks in i915/intel_bios.c for now.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.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/i915/intel_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.1.1.1.2.3	Wed Jul 24 03:31:45 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c	Wed Jul 24 03:32:02 2013
@@ -662,6 +662,7 @@ init_vbt_defaults(struct drm_i915_privat
 	DRM_DEBUG_KMS("Set default to SSC at %dMHz\n", dev_priv->lvds_ssc_freq);
 }
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 static int __init intel_no_opregion_vbt_callback(const struct dmi_system_id *id)
 {
 	DRM_DEBUG_KMS("Falling back to manually reading VBT from "
@@ -681,6 +682,7 @@ static const struct dmi_system_id intel_
 	},
 	{ }
 };
+#endif
 
 /**
  * intel_parse_bios - find VBT and initialize settings from the BIOS
@@ -701,6 +703,7 @@ intel_parse_bios(struct drm_device *dev)
 
 	init_vbt_defaults(dev_priv);
 
+#ifndef __NetBSD__		/* XXX dmi hack */
 	/* XXX Should this validation be moved to intel_opregion.c? */
 	if (!dmi_check_system(intel_no_opregion_vbt) && dev_priv->opregion.vbt) {
 		struct vbt_header *vbt = dev_priv->opregion.vbt;
@@ -711,6 +714,7 @@ intel_parse_bios(struct drm_device *dev)
 		} else
 			dev_priv->opregion.vbt = NULL;
 	}
+#endif
 
 	if (bdb == NULL) {
 		struct vbt_header *vbt = NULL;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:31:45 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: intel_bios.c

Log Message:
Fix const in get_lvds_dvo_timing.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.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/i915/intel_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c	Wed Jul 24 03:31:45 2013
@@ -168,9 +168,16 @@ get_lvds_dvo_timing(const struct bdb_lvd
 	int dvo_timing_offset =
 		lvds_lfp_data_ptrs->ptr[0].dvo_timing_offset -
 		lvds_lfp_data_ptrs->ptr[0].fp_timing_offset;
+#ifdef __NetBSD__
+	const char *entry = (const char *)lvds_lfp_data->data +
+	lfp_data_size * index;
+
+	return (const struct lvds_dvo_timing *)(entry + dvo_timing_offset);
+#else
 	char *entry = (char *)lvds_lfp_data->data + lfp_data_size * index;
 
 	return (struct lvds_dvo_timing *)(entry + dvo_timing_offset);
+#endif
 }
 
 /* get lvds_fp_timing entry



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:28:42 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c

Log Message:
Ifdef out drm prime stuff from i915_drv.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.11 -r1.1.1.1.2.12 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.11 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.12
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.11	Wed Jul 24 03:26:53 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Wed Jul 24 03:28:42 2013
@@ -1083,10 +1083,12 @@ static struct drm_driver driver = {
 	.gem_vm_ops = &i915_gem_vm_ops,
 #endif
 
+#ifndef __NetBSD__		/* XXX drm prime */
 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
 	.gem_prime_export = i915_gem_prime_export,
 	.gem_prime_import = i915_gem_prime_import,
+#endif
 
 	.dumb_create = i915_gem_dumb_create,
 	.dumb_map_offset = i915_gem_mmap_gtt,



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:28:59 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
Replace ALIGN by round_up in i915_gem.c.

ALIGN means something else in NetBSD.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.5 -r1.1.1.1.2.6 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.5 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.6
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.5	Wed Jul 24 03:21:56 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Wed Jul 24 03:28:59 2013
@@ -241,7 +241,11 @@ i915_gem_dumb_create(struct drm_file *fi
 		 struct drm_mode_create_dumb *args)
 {
 	/* have to work out size/pitch and return them */
+#ifdef __NetBSD__		/* ALIGN already means something.  */
+	args->pitch = round_up(args->width * ((args->bpp + 7) / 8), 64);
+#else
 	args->pitch = ALIGN(args->width * ((args->bpp + 7) / 8), 64);
+#endif
 	args->size = args->pitch * args->height;
 	return i915_gem_create(file, dev,
 			   args->size, &args->handle);
@@ -283,7 +287,11 @@ __copy_to_user_swizzled(char __user *cpu
 	int ret, cpu_offset = 0;
 
 	while (length > 0) {
+#ifdef __NetBSD__
+		int cacheline_end = round_up(gpu_offset + 1, 64);
+#else
 		int cacheline_end = ALIGN(gpu_offset + 1, 64);
+#endif
 		int this_length = min(cacheline_end - gpu_offset, length);
 		int swizzled_gpu_offset = gpu_offset ^ 64;
 
@@ -309,7 +317,11 @@ __copy_from_user_swizzled(char *gpu_vadd
 	int ret, cpu_offset = 0;
 
 	while (length > 0) {
+#ifdef __NetBSD__
+		int cacheline_end = round_up(gpu_offset + 1, 64);
+#else
 		int cacheline_end = ALIGN(gpu_offset + 1, 64);
+#endif
 		int this_length = min(cacheline_end - gpu_offset, length);
 		int swizzled_gpu_offset = gpu_offset ^ 64;
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:27:35 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.h
intel_opregion.c

Log Message:
Hack up ACPI memory-mapped I/O for intel_opregion.c.

This is absolutely the wrong thing, but

. it will probably work for now,

. it is much more expedient than rewriting all this code with NetBSD
bus space access or drm maps, and

. the problem remains marked so that it is easily greppable.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.11 -r1.1.1.1.2.12 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.1.1.1.2.2 -r1.1.1.1.2.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.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/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.11 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.12
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.11	Wed Jul 24 03:21:23 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Wed Jul 24 03:27:35 2013
@@ -145,6 +145,11 @@ struct opregion_swsci;
 struct opregion_asle;
 struct drm_i915_private;
 
+#ifdef __NetBSD__		/* XXX acpi iomem */
+#  define	__acpi_iomem
+#  define	__iomem			__acpi_iomem
+#endif
+
 struct intel_opregion {
 	struct opregion_header __iomem *header;
 	struct opregion_acpi __iomem *acpi;
@@ -155,6 +160,11 @@ struct intel_opregion {
 };
 #define OPREGION_SIZE(8*1024)
 
+#ifdef __NetBSD__		/* XXX acpi iomem */
+#  undef	__acpi_iomem
+#  undef	__iomem
+#endif
+
 struct intel_overlay;
 struct intel_overlay_error_state;
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.2 src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.3
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.1.1.1.2.2	Tue Jul 23 21:28:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c	Wed Jul 24 03:27:35 2013
@@ -52,6 +52,27 @@
 #define MBOX_SWSCI (1<<1)
 #define MBOX_ASLE  (1<<2)
 
+#ifdef __NetBSD__		/* XXX acpi iomem */
+#  define	__iomem	__acpi_iomem
+
+static inline uint32_t
+ioread32(const uint32_t __acpi_iomem *ptr)
+{
+	const uint32_t value = *ptr;
+
+	__insn_barrier();
+	return value;
+}
+
+static inline void
+iowrite32(uint32_t value, uint32_t __acpi_iomem *ptr)
+{
+
+	__insn_barrier();
+	*ptr = value;
+}
+#endif
+
 struct opregion_header {
 	u8 signature[16];
 	u32 size;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:26:36 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c

Log Message:
Ifdef out Linux-specific stuff in i915_drv.c.

PCI driver attachment goop, VM hooks, power management operations,
file operations.  We'll do this all in another file for NetBSD.

Ifdef out the now-unused i915_modeset parameter for now, too.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.9 -r1.1.1.1.2.10 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.9 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.10
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.9	Wed Jul 24 03:21:07 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Wed Jul 24 03:26:36 2013
@@ -40,11 +40,13 @@
 #include 
 #include 
 
+#ifndef __NetBSD__		/* XXX Use i915_modeset somewhere.  */
 static int i915_modeset __read_mostly = -1;
 module_param_named(modeset, i915_modeset, int, 0400);
 MODULE_PARM_DESC(modeset,
 		"Use kernel modesetting [KMS] (0=DRM_I915_KMS from .config, "
 		"1=on, -1=force vga console preference [default])");
+#endif
 
 unsigned int i915_fbpercrtc __always_unused = 0;
 module_param_named(fbpercrtc, i915_fbpercrtc, int, 0400);
@@ -607,6 +609,7 @@ static int __i915_drm_thaw(struct drm_de
 	return error;
 }
 
+#ifndef __NetBSD__		/* XXX freeze/thaw */
 static int i915_drm_thaw(struct drm_device *dev)
 {
 	int error = 0;
@@ -623,6 +626,7 @@ static int i915_drm_thaw(struct drm_devi
 
 	return error;
 }
+#endif
 
 int i915_resume(struct drm_device *dev)
 {
@@ -900,6 +904,7 @@ int i915_reset(struct drm_device *dev)
 	return 0;
 }
 
+#ifndef __NetBSD__
 static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
 	struct intel_device_info *intel_info =
@@ -960,10 +965,8 @@ static int i915_pm_suspend(struct device
 	if (error)
 		return error;
 
-#ifndef __NetBSD__		/* pmf handles this for us.  */
 	pci_disable_device(pdev);
 	pci_set_power_state(pdev, PCI_D3hot);
-#endif
 
 	return 0;
 }
@@ -1034,6 +1037,7 @@ static const struct file_operations i915
 #endif
 	.llseek = noop_llseek,
 };
+#endif	/* defined(__NetBSD__) */
 
 static struct drm_driver driver = {
 	/* Don't use MTRRs here; the Xserver or userspace app should
@@ -1062,7 +1066,11 @@ static struct drm_driver driver = {
 #endif
 	.gem_init_object = i915_gem_init_object,
 	.gem_free_object = i915_gem_free_object,
+#ifdef __NetBSD__
+	.gem_uvm_ops = NULL,
+#else
 	.gem_vm_ops = &i915_gem_vm_ops,
+#endif
 
 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
@@ -1073,7 +1081,11 @@ static struct drm_driver driver = {
 	.dumb_map_offset = i915_gem_mmap_gtt,
 	.dumb_destroy = i915_gem_dumb_destroy,
 	.ioctls = i915_ioctls,
+#ifdef __NetBSD__
+	.fops = NULL,
+#else
 	.fops = &i915_driver_fops,
+#endif
 	.name = DRIVER_NAME,
 	.desc = DRIVER_DESC,
 	.date = DRIVER_DATE,
@@ -1082,6 +1094,7 @@ static struct drm_driver driver = {
 	.patchlevel = DRIVER_PATCHLEVEL,
 };
 
+#ifndef __NetBSD__
 static struct pci_driver i915_pci_driver = {
 	.name = DRIVER_NAME,
 	.id_table = pciidlist,
@@ -1089,7 +1102,9 @@ static struct pci_driver i915_pci_driver
 	.remove = i915_pci_remove,
 	.driver.pm = &i915_pm_ops,
 };
+#endif
 
+#ifndef __NetBSD__
 static int __init i915_init(void)
 {
 	driver.num_ioctls = i915_max_ioctl;
@@ -1128,6 +1143,7 @@ static void __exit i915_exit(void)
 
 module_init(i915_init);
 module_exit(i915_exit);
+#endif
 
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:26:53 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c

Log Message:
Expose the i915 struct drm_driver and PCI id list from i915_drv.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.10 -r1.1.1.1.2.11 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.10 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.11
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.10	Wed Jul 24 03:26:36 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Wed Jul 24 03:26:53 2013
@@ -132,6 +132,11 @@ MODULE_PARM_DESC(preliminary_hw_support,
 static struct drm_driver driver;
 extern int intel_agp_enabled;
 
+#ifdef __NetBSD__
+/* XXX Kludge to expose this to NetBSD driver attachment goop.  */
+struct drm_driver *const i915_drm_driver = &driver;
+#endif
+
 #define INTEL_VGA_DEVICE(id, info) {		\
 	.class = PCI_BASE_CLASS_DISPLAY << 16,	\
 	.class_mask = 0xff,			\
@@ -404,6 +409,12 @@ static const struct pci_device_id pciidl
 MODULE_DEVICE_TABLE(pci, pciidlist);
 #endif
 
+#ifdef __NetBSD__
+/* XXX Kludge to expose this to NetBSD driver attachment goop.  */
+const struct pci_device_id *const i915_device_ids = pciidlist;
+const size_t i915_n_device_ids = __arraycount(pciidlist);
+#endif
+
 void intel_detect_pch(struct drm_device *dev)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:24:21 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c

Log Message:
Restore usage of pci_get_bus_and_slot in i915_get_bridge_dev.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.15 -r1.1.1.1.2.16 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.15 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.16
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.15	Wed Jul 24 03:19:18 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Wed Jul 24 03:24:21 2013
@@ -1160,11 +1160,7 @@ static int i915_get_bridge_dev(struct dr
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
 
-#ifdef __NetBSD__
-	dev_priv->bridge_dev = pci_kludgey_find_dev(dev->pdev, 0, 0, 0);
-#else
 	dev_priv->bridge_dev = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0));
-#endif
 	if (!dev_priv->bridge_dev) {
 		DRM_ERROR("bridge device not found\n");
 		return -1;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:23:46 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_irq.c

Log Message:
Constify string irqname in drm_irq_install.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.7 -r1.1.1.1.2.8 \
src/sys/external/bsd/drm2/dist/drm/drm_irq.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/drm_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.1.1.1.2.7 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.1.1.1.2.8
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.1.1.1.2.7	Wed Jul 24 02:32:26 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Wed Jul 24 03:23:46 2013
@@ -333,7 +333,11 @@ int drm_irq_install(struct drm_device *d
 {
 	int ret;
 	unsigned long sh_flags = 0;
+#ifdef __NetBSD__
+	const char *irqname;
+#else
 	char *irqname;
+#endif
 
 	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
 		return -EINVAL;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:21:56 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
Don't mess with guts of struct completion in i915_gem.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.4	Wed Jul 24 03:21:40 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Wed Jul 24 03:21:56 2013
@@ -92,7 +92,9 @@ i915_gem_wait_for_error(struct drm_devic
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct completion *x = &dev_priv->error_completion;
+#ifndef __NetBSD__
 	unsigned long flags;
+#endif
 	int ret;
 
 	if (!atomic_read(&dev_priv->mm.wedged))
@@ -117,9 +119,14 @@ i915_gem_wait_for_error(struct drm_devic
 		 * end up waiting upon a subsequent completion event that
 		 * will never happen.
 		 */
+#ifdef __NetBSD__
+		/* XXX Hope it's not a problem that we might wake someone.  */
+		complete(x);
+#else
 		spin_lock_irqsave(&x->wait.lock, flags);
 		x->done++;
 		spin_unlock_irqrestore(&x->wait.lock, flags);
+#endif
 	}
 	return 0;
 }



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:21:40 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_gem.c

Log Message:
i915_gem.c needs  for HZ.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.3	Wed Jul 24 03:06:00 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Wed Jul 24 03:21:40 2013
@@ -35,6 +35,7 @@
 #include 
 #include 
 #include 
+#include 
 
 static void i915_gem_object_flush_gtt_write_domain(struct drm_i915_gem_object *obj);
 static void i915_gem_object_flush_cpu_write_domain(struct drm_i915_gem_object *obj);



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:21:23 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.h

Log Message:
Use time_t, not unsigned long, for i915 last_gpu_reset.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.10 -r1.1.1.1.2.11 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/drm2/dist/drm/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.10 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.11
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.1.1.1.2.10	Wed Jul 24 03:15:44 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Wed Jul 24 03:21:23 2013
@@ -910,7 +910,11 @@ typedef struct drm_i915_private {
 	struct drm_mm_node *compressed_fb;
 	struct drm_mm_node *compressed_llb;
 
+#ifdef __NetBSD__
+	time_t last_gpu_reset;
+#else
 	unsigned long last_gpu_reset;
+#endif
 
 	/* list of fbdev register on this device */
 	struct intel_fbdev *fbdev;



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:21:07 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c

Log Message:
Omit more stuff that pmf does for us in i915_drv.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.8 -r1.1.1.1.2.9 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.8 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.9
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.8	Wed Jul 24 03:20:52 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Wed Jul 24 03:21:07 2013
@@ -538,11 +538,13 @@ int i915_suspend(struct drm_device *dev,
 	if (error)
 		return error;
 
+#ifndef __NetBSD__		/* pmf handles this for us.  */
 	if (state.event == PM_EVENT_SUSPEND) {
 		/* Shut down the device */
 		pci_disable_device(dev->pdev);
 		pci_set_power_state(dev->pdev, PCI_D3hot);
 	}
+#endif
 
 	return 0;
 }
@@ -630,8 +632,10 @@ int i915_resume(struct drm_device *dev)
 	if (dev->switch_power_state == DRM_SWITCH_POWER_OFF)
 		return 0;
 
+#ifndef __NetBSD__		/* pmf handles this for us.  */
 	if (pci_enable_device(dev->pdev))
 		return -EIO;
+#endif
 
 	pci_set_master(dev->pdev);
 
@@ -956,8 +960,10 @@ static int i915_pm_suspend(struct device
 	if (error)
 		return error;
 
+#ifndef __NetBSD__		/* pmf handles this for us.  */
 	pci_disable_device(pdev);
 	pci_set_power_state(pdev, PCI_D3hot);
+#endif
 
 	return 0;
 }



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:20:22 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c

Log Message:
Omit needless pci_save_state from i915_drm_freeze, courtesy pmf.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.5 -r1.1.1.1.2.6 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.5 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.6
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.5	Wed Jul 24 03:19:49 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Wed Jul 24 03:20:22 2013
@@ -476,7 +476,9 @@ static int i915_drm_freeze(struct drm_de
 
 	drm_kms_helper_poll_disable(dev);
 
+#ifndef __NetBSD__		/* pmf handles this for us.  */
 	pci_save_state(dev->pdev);
+#endif
 
 	/* If KMS is active, we do the leavevt stuff here */
 	if (drm_core_check_feature(dev, DRIVER_MODESET)) {



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:20:37 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c

Log Message:
Use pci_dev_dev to get at a pci_dev's device_t in i915_drm_freeze.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.6 -r1.1.1.1.2.7 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.6 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.7
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.6	Wed Jul 24 03:20:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Wed Jul 24 03:20:37 2013
@@ -484,8 +484,13 @@ static int i915_drm_freeze(struct drm_de
 	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
 		int error = i915_gem_idle(dev);
 		if (error) {
+#ifdef __NetBSD__
+			dev_err(pci_dev_dev(dev->pdev),
+			"GEM idle failed, resume might fail\n");
+#else
 			dev_err(&dev->pdev->dev,
 "GEM idle failed, resume might fail\n");
+#endif
 			return error;
 		}
 



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:20:52 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c

Log Message:
Omit Linux framebuffer stuff from i915_drv.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.7 -r1.1.1.1.2.8 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.7 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.8
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.7	Wed Jul 24 03:20:37 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Wed Jul 24 03:20:52 2013
@@ -508,9 +508,11 @@ static int i915_drm_freeze(struct drm_de
 	/* Modeset on resume, not lid events */
 	dev_priv->modeset_on_lid = 0;
 
+#ifndef __NetBSD__		/* XXX fb */
 	console_lock();
 	intel_fbdev_set_suspend(dev, 1);
 	console_unlock();
+#endif
 
 	return 0;
 }
@@ -545,6 +547,7 @@ int i915_suspend(struct drm_device *dev,
 	return 0;
 }
 
+#ifndef __NetBSD__		/* XXX fb */
 void intel_console_resume(struct work_struct *work)
 {
 	struct drm_i915_private *dev_priv =
@@ -556,6 +559,7 @@ void intel_console_resume(struct work_st
 	intel_fbdev_set_suspend(dev, 0);
 	console_unlock();
 }
+#endif
 
 static int __i915_drm_thaw(struct drm_device *dev)
 {
@@ -584,6 +588,7 @@ static int __i915_drm_thaw(struct drm_de
 
 	dev_priv->modeset_on_lid = 0;
 
+#ifndef __NetBSD__		/* XXX fb */
 	/*
 	 * The console lock can be pretty contented on resume due
 	 * to all the printk activity.  Try to keep it out of the hot
@@ -595,6 +600,7 @@ static int __i915_drm_thaw(struct drm_de
 	} else {
 		schedule_work(&dev_priv->console_resume_work);
 	}
+#endif
 
 	return error;
 }



CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915

2013-07-23 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 24 03:19:49 UTC 2013

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_drv.c

Log Message:
Need more zeros for struct pci_device_id initializer in i915_drv.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.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/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.1.1.1.2.4	Wed Jul 24 03:19:33 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Wed Jul 24 03:19:49 2013
@@ -391,7 +391,11 @@ static const struct pci_device_id pciidl
 	INTEL_VGA_DEVICE(0x0f30, &intel_valleyview_m_info),
 	INTEL_VGA_DEVICE(0x0157, &intel_valleyview_m_info),
 	INTEL_VGA_DEVICE(0x0155, &intel_valleyview_d_info),
+#ifdef __NetBSD__
+	{0, 0, 0, 0, 0, 0, 0}
+#else
 	{0, 0, 0}
+#endif
 };
 
 #if defined(CONFIG_DRM_I915_KMS)



  1   2   >