Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[pandora-kernel.git] / drivers / ieee1394 / video1394.c
index 598b19f..bd28adf 100644 (file)
@@ -39,7 +39,6 @@
 #include <linux/pci.h>
 #include <linux/fs.h>
 #include <linux/poll.h>
-#include <linux/smp_lock.h>
 #include <linux/delay.h>
 #include <linux/bitops.h>
 #include <linux/types.h>
@@ -489,6 +488,9 @@ static void wakeup_dma_ir_ctx(unsigned long l)
                        reset_ir_status(d, i);
                        d->buffer_status[d->buffer_prg_assignment[i]] = VIDEO1394_BUFFER_READY;
                        do_gettimeofday(&d->buffer_time[d->buffer_prg_assignment[i]]);
+                       dma_region_sync_for_cpu(&d->dma,
+                               d->buffer_prg_assignment[i] * d->buf_size,
+                               d->buf_size);
                }
        }
 
@@ -1096,6 +1098,8 @@ static long video1394_ioctl(struct file *file,
                        DBGMSG(ohci->host->id, "Starting iso transmit DMA ctx=%d",
                               d->ctx);
                        put_timestamp(ohci, d, d->last_buffer);
+                       dma_region_sync_for_device(&d->dma,
+                               v.buffer * d->buf_size, d->buf_size);
 
                        /* Tell the controller where the first program is */
                        reg_write(ohci, d->cmdPtr,
@@ -1111,6 +1115,9 @@ static long video1394_ioctl(struct file *file,
                                      "Waking up iso transmit dma ctx=%d",
                                      d->ctx);
                                put_timestamp(ohci, d, d->last_buffer);
+                               dma_region_sync_for_device(&d->dma,
+                                       v.buffer * d->buf_size, d->buf_size);
+
                                reg_write(ohci, d->ctrlSet, 0x1000);
                        }
                }
@@ -1269,7 +1276,7 @@ static long video1394_compat_ioctl(struct file *f, unsigned cmd, unsigned long a
 #endif
 
 static struct cdev video1394_cdev;
-static struct file_operations video1394_fops=
+static const struct file_operations video1394_fops=
 {
        .owner =        THIS_MODULE,
        .unlocked_ioctl = video1394_ioctl,
@@ -1333,9 +1340,9 @@ static void video1394_add_host (struct hpsb_host *host)
        hpsb_set_hostinfo_key(&video1394_highlevel, host, ohci->host->id);
 
        minor = IEEE1394_MINOR_BLOCK_VIDEO1394 * 16 + ohci->host->id;
-       class_device_create(hpsb_protocol_class, NULL, MKDEV(
-               IEEE1394_MAJOR, minor), 
-               NULL, "%s-%d", VIDEO1394_DRIVER_NAME, ohci->host->id);
+       device_create(hpsb_protocol_class, NULL,
+                     MKDEV(IEEE1394_MAJOR, minor),
+                     "%s-%d", VIDEO1394_DRIVER_NAME, ohci->host->id);
 }
 
 
@@ -1344,8 +1351,8 @@ static void video1394_remove_host (struct hpsb_host *host)
        struct ti_ohci *ohci = hpsb_get_hostinfo(&video1394_highlevel, host);
 
        if (ohci)
-               class_device_destroy(hpsb_protocol_class, MKDEV(IEEE1394_MAJOR,
-                       IEEE1394_MINOR_BLOCK_VIDEO1394 * 16 + ohci->host->id));
+               device_destroy(hpsb_protocol_class, MKDEV(IEEE1394_MAJOR,
+                              IEEE1394_MINOR_BLOCK_VIDEO1394 * 16 + ohci->host->id));
        return;
 }