[linux-dvb] Afatech 9015 & QT1010 *was* Unbranded USB DVB device
luca at ventoso.org
Thu Jan 25 15:28:53 CET 2007
En/na Andrew Leech ha escrit:
> Well I'm making some progress here, but I feel I'm shooting in the dark
> a bit. I've got the firmware loading, using the firmware that was in the
> sample code (it's a big array of data packets to be sent). So replacing
> the AF9005 firmware code with new stuff to copy the firmware on,
I suggest that you convert the firmware.h to a binary firmware
> I get
> it loading fine and the dongle responds that it has switched to firmware
> mode. Obviously I've got the basic low level usb communicaton working,
> which in itself was a bit of a chore. Afatech didn't keep much the same
> between the old and the new chip, but the 9005 still seems more similar
> to my 9015 than other chips source files I've been browsing.
> But now I'm getting lost....there's just so much to do I don't know
> where to start. Is there any documentation around describing what needs
> to be implemented where to fit into the dvb-usb framework? I can't seem
> to find much, and wading through the header files feels like I'm just
> hitting things at random.
I know the feeling ;-) You just need a lot of patience. It's not easy to
follow things but you have the source for all of the dvb framework.
You also have sample code from afactech (which may or may not be 100%
correct, but it should help making sense of the documentation).
What I did is copy another driver as a skeleton, then looked at the
other files in the dvb subdirectories to see what function the driver
had to implement.
Besides, the af9015 documentation is better than the af9005 one ;-)
(In fact, when things didn't work, I had to analyze the usb traffic
under windows to find the differences with the sample code, a slow and
painful process, as you may imagine).
> I've been trying to focus on getting the i2c working, the AF9015 chip
> has got a different interface to the AF9005, so that needs a
> considerable re-write, but again I don't know what interfaces need to be
> written to handle what information.
I didn't know either, but I looked at what other drivers are doing and
(specifically) how the mt2060 uses the i2c adapter.
Look at af9005_i2c_xfer and af9005_i2c_algo, these are what an i2c
adapter should do (in fact I just implemented what is needed by the
mt2060, but it should also work with the qt1010). Once the device
emulates an i2c adapter (by providing the appropriate functions, filling
the i2c_algo field in dvb_usb_device_properties and telling in caps that
DVB_USB_IS_AN_I2C_ADAPTER), the tuner code can use it to talk to the tuner.
More information about the linux-dvb