Re: [BISECTED REGRESSION] b43legacy broken on G4 PowerBook

From: Larry Finger
Date: Wed Jun 05 2019 - 23:10:51 EST

On 6/5/19 5:50 PM, Aaro Koskinen wrote:

When upgrading from v5.0 -> v5.1 on G4 PowerBook, I noticed WLAN does
not work anymore:

[ 42.004303] b43legacy-phy0: Loading firmware version 0x127, patch level 14 (2005-04-18 02:36:27)
[ 42.184837] b43legacy-phy0 debug: Chip initialized
[ 42.184873] b43legacy-phy0 ERROR: The machine/kernel does not support the required 30-bit DMA mask

The same happens with the current mainline.

Bisected to:

commit 65a21b71f948406201e4f62e41f06513350ca390
Author: Christoph Hellwig <hch@xxxxxx>
Date: Wed Feb 13 08:01:26 2019 +0100

powerpc/dma: remove dma_nommu_dma_supported

This function is largely identical to the generic version used
everywhere else. Replace it with the generic version.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Tested-by: Christian Zigotzky <chzigotzky@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>


First of all, you have my sympathy for the laborious bisection on a PowerBook G4. I have done several myself. Thank you.

I confirm your results.

The ppc code has a maximum DMA size of 31 bits, thus a 32-bit request will fail. Why the 30-bit fallback fails in b43legacy fails while it works in b43 is a mystery.

Although dma_nommu_dma_supported() may be "largely identical" to dma_direct_supported(), they obviously differ. Routine dma_nommu_dma_supported() returns 1 for 32-bit systems, but I do not know what dma_direct_supported() returns.

I am trying to find a patch.