CVS commit: [riastradh-drm2] src/sys/external/bsd/drm2/dist/drm/i915
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)