Hi BBUK,
Some serious work there.
I'd love patches thank you. I've not got much spare time to throw at
this any more, so patches are most welcome in any form.
Readelf is a really good idea, I'll have a look at that in the next few
days or so if I can find a free few hours in the evening.
Getting the right firmware for the device is nearly always the sticking
point, so anything that makes this better is a big win.
Thank you for your work, already been most helpful and that's before any
possible patches. :-)
Joe
On 31/08/14 21:09, BBUK wrote:
Dear all
I managed to get this driver and Sergio's userspace one working on an
A20 tablet (a A70x). I thought to post back with my findings.
First of all although fw_extractor does a great job, there is not a
lot of consistency in how firmwares in the Android kernel driver start
and finish and so it is natural that it is going to be misguided for
some firmwares (I found firmwares that started f0 00 00 00 97 00 00
00, f0 00 00 00 03 00 00 00 and f0 00 00 00 00 00 00 00 and I found
firmwares that ended both 7c 00 00 00 00 00 00 00 as well as 7c 00 00
00 16 ff ff ff). The most reliable way I found of identifying the
start and end of each firmware was to use "readelf -s" to extract the
lengths of the objects directly (I used "readelf -s | grep -i fw" but
bear in mind that I was running on an arm system and readelf may not
necessarily produce correct results with arm binaries on an x86 system
unless you tell it that you are dealing with an arm binary. Actually,
that might be an idea to update fw_extractor to use readelf ... hmm.
When working out which firmware to use, the gslx680 does not seem to
like being uploaded with different firmwares and will stop responding
(neither driver will, however, report any errors). It took me about
20 hours to work this out! If you try a firmware the device must be
fully switched off (a reboot is not sufficient) before trying another one.
For me, non-working firmwares just produced no output.
Fourthly, as identified earlier, the i2c incomplete xfer stuff is
caused by a recent(ish) patch to the 3.4 sunxi kernel changing the
default transfer speed to 100khz. The file to change is
arch/arm/plat-sunxi/include/plat/i2c.h (towards the end). I think the
patch should be reverted. This certainly affected Joe's driver
(kernel). I did not investigate whether the change to the default
speed was needed for Sergio's (user space) driver.
Fifthly, for Joe's driver, the previous comment about 'With A20, I
think you should remove "IRQF_TRIGGER_FALLING |"' is important.
Finally, thanks to both Joe and Sergio. Great work, saved me a bunch
of time. In passing, I identified some possibly useful changes to
both drivers, are you accepting pull requests?
Have fun
BBUK
--
You received this message because you are subscribed to a topic in the
Google Groups "linux-sunxi" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/linux-sunxi/SZGxiTQcFyY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
[email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.