Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: More thoughts on coldboot driver crash



Hello Andrew,

> I temporarily commented out the following line:
> 	saa7146_ext[i]->irq_handler(saa, isr, saa->data[i]);
> 
> Sure enough, I no longer get the oopses.... but, of course, I receive no
> data in userspace because the IRQs ain't being handled any more :)

Apparantely, something really goes wrong here.

 > I will keep going; hope this helps shed light on the problem.

1) It might be that somehow the irq_handler is not accessible. By 
looking at the code, I cannot find an error, though.

Ok, perhaps you can add some additional printk() here and there. It 
would be interesting in this case to add:

printk("%d: %p\n",i,(saa7146_ext[i]!=0?saa7146_ext->irq_handler:-1);

> By the way, I find I have to leave the machine off for 2 or 3 minutes to
> reliably get this affect, which agrees with what Chris Pitchford said.

2) Strange. It seems as if some part of the saa7146 engine is not 
initialised correctly. After reboot, some "usable" configuration is 
there, and the stuff works. After a cold reboot, "random" stuff is 
inside the registers.

Perhaps a register dump is useful: please add the following lines to the
driver in saa7146_core.c

 >static
 >void remove_saa7146(struct saa7146 *saa)
 >{
 >	dump_registers(saa->mem);

This will dump the contents of the registers to the syslog when the 
driver is removed. (This will only work, of course, if the driver does 
not oops.

You can add the dump_registers() call to the irq-handler, too, right 
before the function call.

Copy the two register dumps from the syslog and post them on the mailing 
list, please.

CU
Michael.



-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index