[Gta04-owner] Wi-Fi issues and workarounds

Lukas Maerdian luk at slyon.de
Sun Jun 1 23:57:21 CEST 2014


I've integrated the relevant kernel patches, and adopted the Goldelico
Replicant userspace accordingly. Overall Replicant on the GTA04 feels
pretty solid right now and I hope to get a new test/beta release out
soon, so all community members can test (and use!) the current state.


On 25.05.2014 22:09 UTC+0200, Paul Kocialkowski wrote:
> Next up on my list was bringing Wi-Fi support to the upstream Replicant
> 4.2. Thankfully, Lukas already did most of the work on the
> userspace-side, but some work was left on the kernel side.
> First, suspend/resume was (and still is) broken. I think everyone is
> aware of that. It seems to be the last remaining piece to fix to have
> every component properly suspending and resuming, which would be a nice
> thing to have.
> Perhaps I'll try to debug it some time later, though I kinda doubt I'll
> succeed. To workaround this issue, I added a kernel wakelock to the
> driver, so that the device doesn't suspend when the driver is loaded. I
> suppose it makes sense anyway, else it might cut a long download or so
> (it went to suspend when downloading an application on F-Droid, which is
> probably not what we want).
> The related commit[0] is:
> commit b73f8dfdc7c2baccd3e7327b4006ee44ccc146ed
> Author: Paul Kocialkowski <contact at paulk.fr>
> Date:   Sun May 25 19:04:34 2014 +0200
>     libertas_sdio: Prevent going to sleep when the driver is loaded
>     Signed-off-by: Paul Kocialkowski <contact at paulk.fr>
> Most importantly, I also switched the firmware loading from async to
> sync. First because Android expects the interface to be fully usable
> right after loading the module and I didn't want to keep it loaded all
> the time, but also because it can cause a kernel oops if the module is
> unloaded before the firmware request callback kicks in. That happened
> when lacking the proper configuration for wpa_supplicant, which
> triggered a module unload right after loading it. The problem is that
> the resources used by the callback are freed when unloading the module.
> Relevant commit[1]:
> commit c05fa8a302e2bf9d42dd6353c0ada136426d249f
> Author: Paul Kocialkowski <contact at paulk.fr>
> Date:   Sun May 25 18:43:58 2014 +0200
>     libertas_sdio: Load firmware during probe
>     Signed-off-by: Paul Kocialkowski <contact at paulk.fr>
> There was also an issue with speed (about 4 times slower than another
> Wi-Fi device), which was solved by integrating back Neil Brown's patch
> (which was originally for 3.7). I adapted as well as I could and it
> seems to work as expected (the speed is now normal), however, it
> completely breaks resume (the phone doesn't resume at all). Thankfully,
> the wakelock ensures it never goes to sleep when the module is loaded,
> so the problem doesn't appear. Still, that's something to look at.
> The modified commit[2] for 3.12 is:
> commit 17e1064b21a0dc8e8c03c0e6ffd7167edaa8eac4
> Author: NeilBrown <neilb at suse.de>
> Date:   Fri Oct 18 20:06:43 2013 +1100
>     omap_hsmmc: enable sdio_irq.
>     There are some horrible hacks in here, particularly
>     the fact that we still poll.  surprisingly this adds
>     20% to throughput.
>     Signed-off-by: NeilBrown <neilb at suse.de>
> In order to make it possible to load only the libertas_sdio module, I
> set its dependencies as builtin[3]:
> commit d129095a296ddc38bfec4c5af019fe54f0c88855
> Author: Paul Kocialkowski <contact at paulk.fr>
> Date:   Sun May 25 19:06:22 2014 +0200
>     gta04_defconfig: Builtin Wi-Fi dependencies
>     Signed-off-by: Paul Kocialkowski <contact at paulk.fr>
> I do not suggest any of this is valid for mainline or even for the
> non-android kernel, but it gets the job done here ;)
> By the way, what's the status of the libertas_tf driver? It seems rather
> incomplete in mainline but should bring advantages over the other
> libertas driver. Mostly, the firmware is thinner with libertas_tf and
> most of the work is left to the kernel instead of the firmware, which is
> nice. It permits to have access point feature. Getting it to work
> reliably with the GTA04's chip would be something good to have in the
> future!
> [0]:
> https://gitorious.org/replicant/kernel_goldelico_gta04/commit/b73f8dfdc7c2baccd3e7327b4006ee44ccc146ed
> [1]:
> https://gitorious.org/replicant/kernel_goldelico_gta04/commit/c05fa8a302e2bf9d42dd6353c0ada136426d249f
> [2]:
> https://gitorious.org/replicant/kernel_goldelico_gta04/commit/17e1064b21a0dc8e8c03c0e6ffd7167edaa8eac4
> [3]:
> https://gitorious.org/replicant/kernel_goldelico_gta04/commit/d129095a296ddc38bfec4c5af019fe54f0c88855
> _______________________________________________
> Gta04-owner mailing list
> Gta04-owner at goldelico.com
> http://lists.goldelico.com/mailman/listinfo.cgi/gta04-owner

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.goldelico.com/pipermail/gta04-owner/attachments/20140601/a10efa2f/attachment-0001.asc>

More information about the Gta04-owner mailing list