Letux Kernel

Issue 849: Pandora WiFi

Reported by Nikolaus Schaller, Nov 10, 2017

it appears as if WiFi support broke between 4.6 and 4.7 and 
something additional happened around 4.12.

Comment 1 by Nikolaus Schaller, Sep 24, 2019

New analysis shows that the (first) problem occurs between letux-4.6 
and letux-4.7-rc1.

Probably one line in one of ca. 9500 changed files.

Comment 2 by Nikolaus Schaller, Sep 25, 2019

The problematic commit between letux-4.6 and letux-4.7-rc1 has been 
identified:

#81eef6ca92014845d40e3f1310e42b7010303acc is the first bad commit
commit #81eef6ca92014845d40e3f1310e42b7010303acc
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Fri Apr 29 16:06:18 2016 +0300

   mmc: omap_hsmmc: Use dma_request_chan() for requesting DMA 
channel

The reason for the problem is that this change assumes that 
dma_request_chan() has a dev->of_node pointer to the device tree 
node.

This is not the case on the OpenPandora where a pdata-quirk 
initializes a special omap_hsmmc.2 interface instead of taking what 
the device tree defines as mmc3.

Hence, dev->of_node is NULL in dma_request_chan() and the dma 
driver can't be found.

Comment 3 by Nikolaus Schaller, Sep 26, 2019

A revert of the offending commit makes it work with 4.7-rc1 but here 
is a better solution:

http://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=refs/heads/
letux-base-4.7/pandora-wifi

This eliminates the pdata-quirks and replaces them with proper 
device tree entries and a hack in omap_hsmmc.c

It is planned to port this to 4.14, 4.19, 5.2, 5.3 and upstream.

For that we have to find out if it can be ported or if there are 
additional bugs (around 4.12?).

Comment 4 by Nikolaus Schaller, Sep 27, 2019

The reason why it was formulated as "and something additional 
happened around 4.12" is that the letux kernel did not boot at 
all (no activity after Starting Kernel...) between letux-4.11-rc1 
and letux-4.12-rc4.

Before that (letux-4.10), there was some w1251 activity and after 
(letux-4.12-rc5) there was none.

So the exact location where something happened to the mmc3 /wl1251 
subsystem was hidden by some bigger problem.

Comment 5 by Nikolaus Schaller, Sep 29, 2019

There was a bug (at least since letux-4.5) in the pandora device 
tree which did mix the pincontrol multiplexer domains. That was 
fixed by a patch which we introduced in letux-4.12-rc5:

http://git.goldelico.com/?p=letux-kernel.git;a=commit;h=a03e288dee841
ee35ef5d4c1c841652ba07cd854

This should/could be backported to earlier kernels.

The exact reason why it did not break before letux-4.11-rc1 is not 
known (maybe the code before was a little more robust).

Anyways, we can now bisect the WiFi problem which was hidden between 
letux-4.11-rc1 and letux-4.12-rc4 so far.
Status: Started
Owner: hns

Comment 6 by Nikolaus Schaller, Oct 11, 2019

Bisect has finally found the issue. There was a mixup of the 
sdio-quirks which did not take into account that there are different 
VENDOR_ID for wl1251 and wl1271.

A patch set has been developed and applied to the letux kernel tree.

Now it is ready for upstreaming.
Status: Ready

Comment 7 by Nikolaus Schaller, Apr 10, 2020

Has been fixed and upstreamed. Also applied to linux/stable
Status: Fixed

Created: 6 years 11 months ago by Nikolaus Schaller

Updated: 4 years 6 months ago

Status: Fixed

Owner: Nikolaus Schaller

Labels:
Type:Defect
Priority:Critical