pvr250 and MythTV
Greg 'groggy' Lehey
grog at FreeBSD.org
Mon Feb 26 03:59:06 UTC 2007
On Sunday, 25 February 2007 at 12:54:27 +1030, Greg 'groggy' Lehey wrote:
> On Saturday, 24 February 2007 at 10:35:37 +0100, usleepless at gmail.com wrote:
>> List, Torfinn, Greg, Joe,
>> On 2/24/07, Joe Auty <joe at netmusician.org> wrote:
>>> Does the driver work with the 250? Didn't want to track down the
>>> required CD file and install this to replace my working driver if
>>> this wasn't going to bear any fruit...
>> it does. files are attached. place the pvrxxx_gpl.tgz in
>> /usr/ports/distfiles, extract pvrxxx_port.tgz to
>> let me know.
> I've tried this with a PVR 250. It panics out of cxm_read with a call
> to msleep holding a mutex (IIRC). I'm having difficulty getting a
> dump of this machine, so it may take a little longer to localize.
OK, the reason for the dump was a non-intuitive requirement of
msleep(): if you want to sleep forever, you need to be holding a
mutex. I'm trying to clarify the reasons for this, but for the moment
the following patch works around the "feature":
--- cxm.c~ Sun Feb 25 11:17:46 2007
+++ cxm.c Mon Feb 26 10:46:21 2007
@@ -2640,7 +2640,14 @@
if(!sc->encoding || sc->encoding_eos)
- error = tsleep(&sc->enc_pool.read, PZERO | PCATCH, "cmxrd", 0);
+ * We're not allowed to give a 0 timeout without holding
+ * a mutex, so work around this "feature" like this.
+ while ((error = tsleep(&sc->enc_pool.read,
+ PZERO | PCATCH, "cmxrd",
+ 3600 * hz))
+ == EWOULDBLOCK );
Why has nobody else seen this? It only happens if you set the
INVARIANTS option in the kernel build.
I have some other minor issues, but on the whole things seem to work
in my environment (PVR 250, Pentium, 6.2-STABLE).
See complete headers for address and phone numbers.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-multimedia/attachments/20070226/ece5e39b/attachment.pgp
More information about the freebsd-multimedia