Skip to content

Commit

Permalink
V4L/DVB (6238): bw-qcam: use data_reverse instead of manually poking …
Browse files Browse the repository at this point in the history
…the control register

Fixes use of parport_write_control() to match the newer interface that
requires explicit parport_data_reverse() and parport_data_forward() calls.
This eliminates the following error message and restores the original
intended behavior:

parport0 (bw-qcam): use data_reverse for this!

Also increases threshold in qc_detect() from 300 to 400, as my camera often
results in a count of approx 330.  Added a kernel error message to indicate
detection failure.

Thanks Ray and Randy for your comments, and for pointing out that I
needed to reset the port to forward mode!

Signed-off-by: Brett T. Warden <brett.warden@gmail.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Brett Warden authored and Mauro Carvalho Chehab committed Oct 10, 2007
1 parent 0b67f5c commit 9e19db5
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions drivers/media/video/bw-qcam.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,17 @@ static inline void write_lpdata(struct qcam_device *q, int d)

static inline void write_lpcontrol(struct qcam_device *q, int d)
{
if(0x20 & d) {
/* Set bidirectional mode to reverse (data in) */
parport_data_reverse(q->pport);
} else {
/* Set bidirectional mode to forward (data out) */
parport_data_forward(q->pport);
}

/* Now issue the regular port command, but strip out the
* direction flag */
d &= ~0x20;
parport_write_control(q->pport, d);
}

Expand Down Expand Up @@ -344,10 +355,13 @@ static int qc_detect(struct qcam_device *q)
/* Be (even more) liberal in what you accept... */

/* if (count > 30 && count < 200) */
if (count > 20 && count < 300)
if (count > 20 && count < 400)
{
return 1; /* found */
else
} else {
printk(KERN_ERR "No Quickcam found on port %s\n", q->pport->name);
return 0; /* not found */
}
}


Expand Down

0 comments on commit 9e19db5

Please sign in to comment.