Mailing List archive

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

[linux-dvb] Re: ttusb on MIPS - fake ISO transfers?



Petr Nejedly wrote:
Problem summary:
When running dvb-ttusb-budget driver on a mipsel platform with ohci, the isochronous
USB buffers come back from the hcd driver untouched although the period and size is probably OK.

Details:
I have Hauppage USB DVB-T. It works for me correctly on a PC (x86 notebook), but I want to use
it with a special embedded platform.
The hardware is Asus WL500g - a mipsel/Broadcom BCM4710 based linux router/AP with USB port - the toy
It runs patched kernel 2.4.20
I have compiled the drivers and utils for the platform and everything seems to work.
(hmmm... interesting geek setup -- what exactly do you try to achieve... DVB/IP Routing?;)

I can insmod everything on the toy, I can even tune according to copied channels file
and it gets lock, low BER and everything, but no packet gets through.
I've tried to add debugging to the driver and realized that the state machine can't move.
Then I've realized only zeros are ever comming from the device.
And finally I've realized that the USB subsystem doesn't touch the buffers at all
(I've modified the memset in ttusb_alloc.. to 0x33 and 0x33 come back to iso_irq)
So you get IRQs? fine so far.


Now I don't know where to look for the problem further.
Can the problem even be in the ttusb driver?
Can there be some endianness problem in OHCI driver?
Isochronous transfers are not too common, only USB audio drivers use them as well. Have you tried a USB audio device, does this works on OHCI/MIPS?

I don't know whether the OHCI driver in 2.4 supports isochronous transfers at all -- in the days when I started the ttusb code there have been some big TODOs left in the OHCI code. Maybe you want to check for open issues there or try a 2.6 kernel instead.


Where the data actually went (URBs were finished OK,
there probably was the transfer on the bus, ohci had to DMA the data somewhere, but I got no oops ;-)

Any ideas?
I would first try whether isochronous transfers are supported at all, then add some debug code in the OHCI driver. If the 2.4 code doesn't yet supports them it may or may not be easier to switch to 2.6 -- depends on how many drivers for your particular hardware need to get ported. As alternative you can also backport the 2.6 isochronous code to the 2.4 OHCI driver.

Have you asked on the linux-usb mailing list regarding the actual state of the OHCI driver?

Holger




Home | Main Index | Thread Index