[Letux-kernel] Pandora WiFi / wl1251 driver

H. Nikolaus Schaller hns at goldelico.com
Wed Sep 25 14:00:27 CEST 2019


> Am 25.09.2019 um 08:52 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> 
>> Am 24.09.2019 um 21:55 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>> 
>> WiFi on Pandora is broken for a long time. It is known that
>> it did stop working with letux-4.7. And something additional
>> became worse around letux-4.12 (not clear what that was - maybe
>> some dmesg log):
>> 
>> http://projects.goldelico.com/p/gta04-kernel/issues/849/
>> 
>> I have rebuilt these old kernels and found out that the
>> problem starts to occur with letux-4.7-rc1.
>> 
>> This means we need to bisect between letux-4.6..letux-4.7-rc1
>> 
>> Unfortunately git bisect can't do that because there is
>> no fast-forward path between both. Both are derived from
>> the linear history v4.6..v4.7 but add (different) set
>> of feature branches.
>> 
>> So it is like trying to interpolate (walk) between the tips
>> of branches in a tree. There is only gap in between...

Basically I have found a new method.

To walk between the tips you have to glue a copy of a branch to
some intermediate point at the trunk.

Let's try to describe by formulae (+ means a git merge):

	letux(version) = mainline(version) + feature-branches(version)

good:	letux(4.6) = v(4.6) + feature-branches(v4.6)

bad:	letux(4.7-rc1) = v(4.7-rc1) + feature-branches(v4.7-rc1)

Note that feature-branches(v4.6) and feature-branches(v4.7-rc1)
are not necessarily the same. They have been rebased, new features
have been added, bugs have been fixed and API changes covered during
the development of feature-branches(v4.7-rc1).

bisect:	walks commits between v4.6 and v4.7-rc1 i.e.

	v(4.6) < v(bisect) < v(4.7-rc1)

What we want is

	letux(4.6) < letux(bisect) < letux(4.7-rc1)

The problem is that

	letux(bisect) = v(bisect) + feature-branches(bisect)

does not exist and can't be provided (unless someone manually rebases, fixes bugs and APU changes).

So we try this:

	letux(bisect) = v(4.6) + feature-branches(bisect) - cleanup

by a simple git merge. This almost succeeds since letux(4.7-rc1) includes
both, v4.6 and v4.7-rc1.

We may need some cleanup to fix irrelevant merge conflicts and compile errors
by checking out individual files from letux(4.6).

This allows to have a full letux(bisect) for testing.

Since it is not exactly interpolated, there may be strange effects by this
but they are unlikely. Here in the WiFi example, I just have to disable w2sg0004
and twl6040 config. They are not used on the Pandora and therefore should not
influence anything.

> 
> Ok, first bisect attempt reports:
> 
> f4c80d5a16eb4b08a0d9ade154af1ebdc63f5752 is the first bad commit
> HEAD ist jetzt bei f4c80d5a16eb Merge tag 'sound-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
> 
> Well, this is a "merge". And a merge may hide the real reason
> due to history that may have separate before the first good
> commit.
> 
> So what I have to do is to restart/redo the bisect starting
> earlier...
> 
> Let's try again with letux-4.6-rc1..letux-4.7-rc1

well, it appears as if letux-4.6-rc1 .. rc3 do not even
start the kernel on the Pandora.

So let's see if a bisect letux-4.6-rc4..f4c80d5a16eb finds something.

BR,
Nikolaus




More information about the Letux-kernel mailing list