Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8aab127 authored by Marin Mitov's avatar Marin Mitov Committed by Greg Kroah-Hartman
Browse files

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: default avatarMarin Mitov <mitov@issp.bas.bg>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 48f658bb
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -185,6 +185,7 @@ struct dt3155_stats {
 * @curr_buf:		pointer to curren buffer
 * @thread		pointer to worker thraed
 * @irq_handler:	irq handler for the driver
 * @qt_ops		local copy of dma-contig qtype_ops
 * @dmaq		queue for dma buffers
 * @do_dma		wait queue of the kernel thread
 * @mux:		mutex to protect the instance
@@ -204,6 +205,7 @@ struct dt3155_priv {
	struct videobuf_buffer *curr_buf;
	struct task_struct *thread;
	irq_handler_t irq_handler;
	struct videobuf_qtype_ops qt_ops;
	struct list_head dmaq;
	wait_queue_head_t do_dma;
	struct mutex mux;