[Letux-kernel] Pandora WiFi / wl1251 driver

H. Nikolaus Schaller hns at goldelico.com
Tue Oct 8 17:24:18 CEST 2019


> Am 01.10.2019 um 11:50 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> 
>> Am 26.09.2019 um 14:59 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>> 
>> 
>>> Am 25.09.2019 um 18:31 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>>> 
>>> Now let's check if a revert fixes the issue for 4.7-rc1 or even 4.7.
>>> 
>>> But there may be follow-up fixes for this patch to consider.
>>> 
>>> Then we have to find out what the real problem is. Maybe some component
>>> doesn't support deferred probing. Or the DMA setup for omap3 mmc3
>>> has a bug that nobody else did notice (the mmc3 interface is rarely
>>> used by boards - as far as I can see only omap3-zoom3 and pandora).
>> 
>> Ok, the key reason is that the patch introduced in 4.7 assumes that
>> mmc3 is instantiated through device tree because it now searches the
>> dma channel through device tree.
>> 
>> But the pdata-quirk for OpenPandora doesn't have a device tree entry.
>> 
>> So we have to get rid of the pdata-quirk code, let DT create the
>> mmc3 device and driver and have the w1251 as a child node.
>> 
>> This works!
>> 
>> http://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=refs/heads/letux-base-4.7/pandora-wifi
>> 
>> Next, I have to check if we can forward-port this to 4.14, 4.19
>> and to the tip of the letux development.
> 
> Yes, it can be forward-ported and is in the queue.
> 
> But WiFi is now breaking around v4.11. It was difficult to debug
> because there was another bug on the OpenPandora device tree that
> did manifest itself for the first time in letux-4.11-rc1 and was fixed
> in letux-4.12-rc5. After fixing that as well, I did now run a bisect
> between 4.10-rc1 (where WiFi is working) and 4.11-rc1 (where WiFi is broken),
> but the result is not clear:
> 
> # first bad commit: [37c85961c3f87f2141c84e53df31e59db072fd2e] Merge tag 'tty-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

Ok, I have redone the bisect and indeed git bisect has a bug (or a weak
heuristic in this case) so that it did not find the really first bad
commit which was another merge 27 commits before this one. It was a
merge of patches for the mmc subsystem. This turned out to be bisectable.

And finally I found a commit that has changed the vendor_id definitions
and some quirks tables. The end result of further analysis was that
the wl1251 and the wl1271 have different vendor ids but were treated
as the same by the new code.

So I have fixed it and now, we get the wlan interface up not only for
letux-4.11 but up to letux-5.4-rc2.

What I have not yet tested is if it works well. At first glance it
did not find a base station, but the kernel did not report errors
while trying. So I assume the antenna in the Pandora is not the best
one (which is a known hardware weakness).

So I will backport these patches to 4.14, 4.19 etc. soon and upstream
the fixes.

BR,
Nikolaus



More information about the Letux-kernel mailing list