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@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb