V4L/DVB (6238): bw-qcam: use data_reverse instead of manually poking 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>
This commit is contained in:
parent
0b67f5c568
commit
9e19db5b6d
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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 */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue