summaryrefslogtreecommitdiffstats
path: root/drivers/staging/dt3155v4l/dt3155v4l.c
diff options
context:
space:
mode:
authorMarin Mitov <mitov@issp.bas.bg>2010-05-09 14:50:40 +0300
committerGreg Kroah-Hartman <gregkh@suse.de>2010-05-11 15:16:08 -0700
commitb8aab1278147e3b067903983a835ef3c68281b13 (patch)
treebe0b5331674e5572b3bac8a633da055e9838c302 /drivers/staging/dt3155v4l/dt3155v4l.c
parent48f658bb3d582c13b5d0b86b0295d5e0050e60c9 (diff)
downloadop-kernel-dev-b8aab1278147e3b067903983a835ef3c68281b13.zip
op-kernel-dev-b8aab1278147e3b067903983a835ef3c68281b13.tar.gz
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.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/staging/dt3155v4l/dt3155v4l.c b/drivers/staging/dt3155v4l/dt3155v4l.c
index b1695ad..a5e4091 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;
OpenPOWER on IntegriCloud