[linux-dvb] usb-dvb and endpoints question
Dennis Noordsij
dennis.noordsij at movial.fi
Sat May 31 15:12:40 CEST 2008
Hi list,
I am writing a driver for the TerraTec Piranha DVB-T USB stick (actually
the Sanio SMS-1000 chipset). From reading USB logs I have a working
libusb prototype which can tune and receive the transport stream, and
use the hardware PID filter.
Porting it to a proper linux DVB driver I have the following question:
This device has exactly 2 bulk endpoints, as follows:
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
All control messages go out over EP2. All responses, as well as the
transport stream, come in over EP1.
All incoming packets have a small header which allows it to be mapped
back to the corresponding request (excepting TS data which can be read
spontaneously, but which is still marked with an additional header).
Does this mean that I can not really use the dvb-usb framework ? (since
there is no generic_bulk_ctrl_endpoint, and since the TS stream also
does not come on its own endpoint and even needs additional depackatizing).
Since incoming data is mixed with TS packets, you can no longer just
write a command and read the next response. TS data will be streaming in
and every time you make some request you will probably get some TS data
first, and only then your response. How to solve?
Any pointers in the right direction? :-)
Cheers,
Dennis
More information about the linux-dvb
mailing list