[RoLUG] Modifica device driver

ciarez ciarez@inwind.it
Ven 13 Giu 2003 11:30:59 CEST


Salve a tutti. In anticipo i miei complimenti per l'evoluzione del sito! :)
Per la mailing list... ehm... l'ho letta un po' meno... scusate :p
Ora passo ai discorsi seri: sono ancora in lavoro presso la FIMM (PDA con Cirrus
Logic EP7311 e Linux) ma ho un problema piuttosto grosso.
Il PDA è dotato di interfaccia USB (moduli usbcore, hc_sl811) al quale abbiamo
collegato una webcam creative CT6840. Per il suo funzionamento, ho caricato i
moduli videodev (penso sia l'implementazione dei v4l) e ov511.
Ho poi utilizzato vidcat per catturare una immagine su disco.
Da PC funziona perfettamente.
Sul PDA, vidcat rimane in attesa e finchè non si preme ctrl-c non esce e non fa
nulla: rimane li.
Debuggando il modulo ov511 versione 1.48a (il kernel è un 2.4.18 patchato x
arm), ho scoperto che si blocca alla riga 5160:
interruptible_sleep_on(&ov511->wq);

Commentandola, si blocca ancora alla riga 5212:
rc = wait_event_interruptible(frame->wq,
                (frame->grabstate == FRAME_DONE)
                || (frame->grabstate == FRAME_ERROR));

La prima chiamata penso faccia parte dello scheduler di sistema ma non ne sono
certo.
Qualcuno di voi mi sa aiutare?
Grazie, Cristian

PS: il supporto per l'interfaccia dovrebbe essere OK visto che funziona il
collegamento di un pen-drive USB (modulo usb-storage) e anche  di un mouse
(modulo usbmouse).



Maggiori informazioni sulla lista RoLUG