[Letux-kernel] Pandora WiFi / wl1251 driver

Andreas Kemnade andreas at kemnade.info
Tue Oct 8 20:06:59 CEST 2019


On Tue, 8 Oct 2019 17:24:18 +0200
"H. Nikolaus Schaller" <hns at goldelico.com> wrote:

> > 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.
> 
ok, played around with git bisect a bit more.
I think you should start where the earlierst branches which get merged
into v4.11 start, so it is v4.10-rc1.

I started between them and my good/bad test is
grep '#define SDIO_VENDOR_ID_TI' drivers/mmc/core/quirks.*

The ressult:
$ git bisect log
git bisect start
# good: [7ce7d89f48834cefece7804d38fc5d85382edf77] Linux 4.10-rc1
git bisect good 7ce7d89f48834cefece7804d38fc5d85382edf77
# bad: [a351e9b9fc24e982ec2f0e76379a49826036da12] Linux 4.11
git bisect bad a351e9b9fc24e982ec2f0e76379a49826036da12
# bad: [37c85961c3f87f2141c84e53df31e59db072fd2e] Merge tag 'tty-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
git bisect bad 37c85961c3f87f2141c84e53df31e59db072fd2e
# bad: [0f002fddbe150ec3f2afce3fc09de5bda3096c72] Merge tag 'mips_4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips
git bisect bad 0f002fddbe150ec3f2afce3fc09de5bda3096c72
# bad: [884f38607897cb4a963ea8a65296f0973a2828d0] mmc: core: move some sdio IDs out of quirks file
git bisect bad 884f38607897cb4a963ea8a65296f0973a2828d0
# good: [4c9eff7af69c61749b9eb09141f18f35edbf2210] Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
git bisect good 4c9eff7af69c61749b9eb09141f18f35edbf2210
# good: [c325b3533730016ca5cdaf902d62550b4243fe43] Merge tag 'pinctrl-v4.10-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
git bisect good c325b3533730016ca5cdaf902d62550b4243fe43
# good: [3b802c9455f973fa786eafb4d5bd4634a7dd5130] Revert "hwrng: core - zeroize buffers with random data"
git bisect good 3b802c9455f973fa786eafb4d5bd4634a7dd5130
# good: [95cc4df716a210a19f0611215c49484d460250fd] mmc: sh_mmcif: Remove unused use_cd_gpio/cd_gpio from platform data
git bisect good 95cc4df716a210a19f0611215c49484d460250fd
# good: [e3fffc1f0b4750a2d6efc9a674b62c58477b8d20] devicetree: document new marvell-8xxx and pwrseq-sd8787 options
git bisect good e3fffc1f0b4750a2d6efc9a674b62c58477b8d20
# good: [43c15e962c1240356a7e1aeca450d783dd903c55] mmc: sunxi: Add more debug informations
git bisect good 43c15e962c1240356a7e1aeca450d783dd903c55
# good: [37dac0681e2be4f3c32b090a8c0591d4ce57e6f0] mmc: core: start to break apart mmc_start_areq()
git bisect good 37dac0681e2be4f3c32b090a8c0591d4ce57e6f0
# good: [62d721a646a9d515bd7b13bede78a1c02890b956] mmc: meson-gx: remove unneeded checks in remove
git bisect good 62d721a646a9d515bd7b13bede78a1c02890b956
# good: [efff8e7879b8b7f8a077f495262f0bb9cfaa0b06] mmc: Adding AUTO_BKOPS_EN bit set for Auto BKOPS support
git bisect good efff8e7879b8b7f8a077f495262f0bb9cfaa0b06
# good: [006cac8262987981fb10a0360726875b48123b73] Merge branch 'fixes' into next
git bisect good 006cac8262987981fb10a0360726875b48123b73
# good: [28fc64af63488d701184977481b263f31d856984] mmc: core: change quirks.c to be a header file
git bisect good 28fc64af63488d701184977481b263f31d856984
# first bad commit: [884f38607897cb4a963ea8a65296f0973a2828d0] mmc: core: move some sdio IDs out of quirks file

Regards,
Andreas


More information about the Letux-kernel mailing list