diff options
author | Marin Mitov | 2010-05-09 13:50:40 +0200 |
---|---|---|
committer | Greg Kroah-Hartman | 2010-05-12 00:16:08 +0200 |
commit | b8aab1278147e3b067903983a835ef3c68281b13 (patch) | |
tree | be0b5331674e5572b3bac8a633da055e9838c302 /drivers/staging/dt3155v4l/dt3155v4l.c | |
parent | Staging: panel: change asm/uaccess.h to linux/uaccess.h (diff) | |
download | kernel-qcow2-linux-b8aab1278147e3b067903983a835ef3c68281b13.tar.gz kernel-qcow2-linux-b8aab1278147e3b067903983a835ef3c68281b13.tar.xz kernel-qcow2-linux-b8aab1278147e3b067903983a835ef3c68281b13.zip |
Staging: dt3155v4l: correcting a bug
dt3155v4l driver, as in -rc6-next-20100506 has a BUG.
When it modifies q->int_ops structure in videobuf-dma-contig
module the change is visible for all other modules using it.
Make a local copy of this structure and use its modification
to solve the bug.
Signed-off-by: Marin Mitov <mitov@issp.bas.bg>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/dt3155v4l/dt3155v4l.c')
-rw-r--r-- | drivers/staging/dt3155v4l/dt3155v4l.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/staging/dt3155v4l/dt3155v4l.c b/drivers/staging/dt3155v4l/dt3155v4l.c index b1695ad9b56e..a5e409170418 100644 --- a/drivers/staging/dt3155v4l/dt3155v4l.c +++ b/drivers/staging/dt3155v4l/dt3155v4l.c @@ -612,9 +612,14 @@ dt3155_queue_dma_contig_init(struct videobuf_queue *q, unsigned int msize, void *priv) { + struct dt3155_priv *pd = q->priv_data; + videobuf_queue_dma_contig_init(q, ops, dev, irqlock, type, field, msize, priv); - /* overwrite with our methods */ + /* replace with local copy */ + pd->qt_ops = *q->int_ops; + q->int_ops = &pd->qt_ops; + /* and overwrite with our methods */ q->int_ops->iolock = dt3155_iolock; q->int_ops->mmap_mapper = dt3155_mmap_mapper; q->int_ops->sync = dt3155_sync_for_cpu; |