Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: CVS MythTV and DEC2000-t kernel panic: oops dump included
On Wednesday 07 January 2004 8:13 pm, Des Herriott wrote:
> Here's the problem I mailed about a few days ago. Got a bit more info
> now. Basically, this happens every time I try to watch live TV with
> mythtv (i.e. as soon as I press the "Watch TV" button) - it's triggering
> a panic in the DEC2000-t driver. It also panics when mythbackend starts
> a scheduled recording.
>
> I've also seen it happen with other kernel versions: 2.4.23 and
> 2.6.0-mm2 (with all the dvb-kernel patches).
>
> Interestingly, it only started happening when I upgraded to the latest
> MythTV CVS code last weekend (and I hadn't changed dvb-kernel version).
> I don't know what changed in MythTV regarding DVB (my email to the
> myth-users list didn't get a response), but something's obviously
> tickled a bug somewhere...
Thanks, I think you've confirmed a suspicion I was beginning to have. Please
try the attached patch, and let me know the results.
Cheers,
Alex
Index: linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c,v
retrieving revision 1.30
diff -u -r1.30 ttusb_dec.c
--- linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c 4 Jan 2004 22:07:57 -0000 1.30
+++ linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c 7 Jan 2004 21:05:38 -0000
@@ -125,6 +125,7 @@
struct tasklet_struct urb_tasklet;
spinlock_t urb_frame_list_lock;
+ struct dvb_demux_filter *av_filter;
struct list_head filter_info_list;
spinlock_t filter_info_list_lock;
@@ -285,9 +286,10 @@
static int ttusb_dec_av_pes2ts_cb(void *priv, unsigned char *data)
{
- struct dvb_demux_feed *dvbdmxfeed = (struct dvb_demux_feed *)priv;
+ struct ttusb_dec *dec = (struct ttusb_dec *)priv;
- dvbdmxfeed->cb.ts(data, 188, 0, 0, &dvbdmxfeed->feed.ts, DMX_OK);
+ dec->av_filter->feed->cb.ts(data, 188, 0, 0,
+ &dec->av_filter->feed->feed.ts, DMX_OK);
return 0;
}
@@ -311,9 +313,9 @@
ttusb_dec_send_command(dec, 0x50, sizeof(b), b, NULL, NULL);
dvb_filter_pes2ts_init(&dec->a_pes2ts, dec->pid[DMX_PES_AUDIO],
- ttusb_dec_av_pes2ts_cb, dec->demux.feed);
+ ttusb_dec_av_pes2ts_cb, dec);
dvb_filter_pes2ts_init(&dec->v_pes2ts, dec->pid[DMX_PES_VIDEO],
- ttusb_dec_av_pes2ts_cb, dec->demux.feed);
+ ttusb_dec_av_pes2ts_cb, dec);
dec->v_pes_length = 0;
dec->v_pes_postbytes = 0;
}
@@ -805,6 +807,8 @@
dprintk("\n");
+ dec->av_filter = dvbdmxfeed->filter;
+
switch (dvbdmxfeed->pes_type) {
case DMX_TS_PES_VIDEO:
@@ -1224,7 +1228,8 @@
dprintk("%s\n", __FUNCTION__);
- if ((result = dvb_register_adapter(&dec->adapter, dec->model_name)) < 0) {
+ if ((result = dvb_register_adapter(&dec->adapter,
+ dec->model_name)) < 0) {
printk("%s: dvb_register_adapter failed: error %d\n",
__FUNCTION__, result);
Home |
Main Index |
Thread Index