From 6c8712ba8a3c3c2c2fd9dd1ff5ab71e30ecdf50a Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 19 Dec 2006 16:58:48 +1100 Subject: use spin_lock_init in via dmablit --- linux-core/via_dmablit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'linux-core/via_dmablit.c') diff --git a/linux-core/via_dmablit.c b/linux-core/via_dmablit.c index fdc2bd67..cbb73711 100644 --- a/linux-core/via_dmablit.c +++ b/linux-core/via_dmablit.c @@ -562,7 +562,7 @@ via_init_dmablit(drm_device_t *dev) blitq->num_outstanding = 0; blitq->is_active = 0; blitq->aborting = 0; - blitq->blit_lock = SPIN_LOCK_UNLOCKED; + spin_lock_init(&blitq->blit_lock); for (j=0; jblit_queue + j); } -- cgit v1.2.3 From 3b47b27558915a3a28591209e324b977e09d7c03 Mon Sep 17 00:00:00 2001 From: Thomas Hellstrom Date: Wed, 20 Dec 2006 13:04:21 +0100 Subject: Some via PCI posting flushes. --- linux-core/via_dmablit.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'linux-core/via_dmablit.c') diff --git a/linux-core/via_dmablit.c b/linux-core/via_dmablit.c index cbb73711..1fb902cb 100644 --- a/linux-core/via_dmablit.c +++ b/linux-core/via_dmablit.c @@ -217,7 +217,9 @@ via_fire_dmablit(drm_device_t *dev, drm_via_sg_info_t *vsg, int engine) VIA_WRITE(VIA_PCI_DMA_MR0 + engine*0x04, VIA_DMA_MR_CM | VIA_DMA_MR_TDIE); VIA_WRITE(VIA_PCI_DMA_BCR0 + engine*0x10, 0); VIA_WRITE(VIA_PCI_DMA_DPR0 + engine*0x10, vsg->chain_start); + DRM_WRITEMEMORYBARRIER(); VIA_WRITE(VIA_PCI_DMA_CSR0 + engine*0x04, VIA_DMA_CSR_DE | VIA_DMA_CSR_TS); + VIA_READ(VIA_PCI_DMA_CSR0 + engine*0x04); } /* -- cgit v1.2.3 From 2dcbf6a59918761cffb27e027b1235c551ed03dd Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 1 Jan 2007 11:30:38 +1100 Subject: make build against 2.6.20 hopefully --- linux-core/via_dmablit.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'linux-core/via_dmablit.c') diff --git a/linux-core/via_dmablit.c b/linux-core/via_dmablit.c index 1fb902cb..2f508374 100644 --- a/linux-core/via_dmablit.c +++ b/linux-core/via_dmablit.c @@ -498,10 +498,18 @@ via_dmablit_timer(unsigned long data) static void +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) via_dmablit_workqueue(void *data) +#else +via_dmablit_workqueue(struct work_struct *work) +#endif { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) drm_via_blitq_t *blitq = (drm_via_blitq_t *) data; - drm_device_t *dev = blitq->dev; +#else + drm_via_blitq_t *blitq = container_of(work, drm_via_blitq_t, wq); +#endif + drm_device_t *dev = blitq->dev; unsigned long irqsave; drm_via_sg_info_t *cur_sg; int cur_released; @@ -569,7 +577,11 @@ via_init_dmablit(drm_device_t *dev) DRM_INIT_WAITQUEUE(blitq->blit_queue + j); } DRM_INIT_WAITQUEUE(&blitq->busy_queue); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) INIT_WORK(&blitq->wq, via_dmablit_workqueue, blitq); +#else + INIT_WORK(&blitq->wq, via_dmablit_workqueue); +#endif init_timer(&blitq->poll_timer); blitq->poll_timer.function = &via_dmablit_timer; blitq->poll_timer.data = (unsigned long) blitq; -- cgit v1.2.3