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.

Bye
--
Luca


_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

Reply via email to