Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
On Thu, 2019-06-13 at 08:24:46 UTC, Christoph Hellwig wrote: > With the strict dma mask checking introduced with the switch to > the generic DMA direct code common wifi chips on 32-bit powerbooks > stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds > to allow them to reliably allocate dma coherent memory. > > Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported") > Reported-by: Aaro Koskinen > Signed-off-by: Christoph Hellwig > Tested-by: Larry Finger > Acked-by: Larry Finger > Tested-by: Aaro Koskinen Applied to powerpc fixes, thanks. https://git.kernel.org/powerpc/c/9739ab7eda459f0669ec9807e0d9be5020bab88c cheers
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
Benjamin Herrenschmidt writes: > On Wed, 2019-06-19 at 22:32 +1000, Michael Ellerman wrote: >> Christoph Hellwig writes: >> > Any chance this could get picked up to fix the regression? >> >> Was hoping Ben would Ack it. He's still powermac maintainer :) >> >> I guess he OK'ed it in the other thread, will add it to my queue. > > Yeah ack. If I had written it myself, I would have made the DMA bits a > variable and only set it down to 30 if I see that device in the DT > early on, but I can't be bothered now, if it works, ship it :-) OK, we can do that next release if someone's motivated. > Note: The patch affects all ppc32, though I don't think it will cause > any significant issue on those who don't need it. Yeah. We could always hide it behind CONFIG_PPC_PMAC if it becomes a problem. cheers
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
On Wed, Jun 19, 2019 at 4:18 PM Benjamin Herrenschmidt wrote: > > On Wed, 2019-06-19 at 22:32 +1000, Michael Ellerman wrote: > > Christoph Hellwig writes: > > > Any chance this could get picked up to fix the regression? > > > > Was hoping Ben would Ack it. He's still powermac maintainer :) > > > > I guess he OK'ed it in the other thread, will add it to my queue. > > Yeah ack. If I had written it myself, I would have made the DMA bits a > variable and only set it down to 30 if I see that device in the DT > early on, but I can't be bothered now, if it works, ship it :-) > > Note: The patch affects all ppc32, though I don't think it will cause > any significant issue on those who don't need it. Thanks, that answer my earlier question. > Cheers, > Ben. > > > cheers > > > > > On Thu, Jun 13, 2019 at 10:24:46AM +0200, Christoph Hellwig wrote: > > > > With the strict dma mask checking introduced with the switch to > > > > the generic DMA direct code common wifi chips on 32-bit > > > > powerbooks > > > > stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds > > > > to allow them to reliably allocate dma coherent memory. > > > > > > > > Fixes: 65a21b71f948 ("powerpc/dma: remove > > > > dma_nommu_dma_supported") > > > > Reported-by: Aaro Koskinen > > > > Signed-off-by: Christoph Hellwig > > > > --- > > > > arch/powerpc/include/asm/page.h | 7 +++ > > > > arch/powerpc/mm/mem.c | 3 ++- > > > > arch/powerpc/platforms/powermac/Kconfig | 1 + > > > > 3 files changed, 10 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/arch/powerpc/include/asm/page.h > > > > b/arch/powerpc/include/asm/page.h > > > > index b8286a2013b4..0d52f57fca04 100644 > > > > --- a/arch/powerpc/include/asm/page.h > > > > +++ b/arch/powerpc/include/asm/page.h > > > > @@ -319,6 +319,13 @@ struct vm_area_struct; > > > > #endif /* __ASSEMBLY__ */ > > > > #include > > > > > > > > +/* > > > > + * Allow 30-bit DMA for very limited Broadcom wifi chips on many > > > > powerbooks. > > > > + */ > > > > +#ifdef CONFIG_PPC32 > > > > +#define ARCH_ZONE_DMA_BITS 30 > > > > +#else > > > > #define ARCH_ZONE_DMA_BITS 31 > > > > +#endif > > > > > > > > #endif /* _ASM_POWERPC_PAGE_H */ > > > > diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c > > > > index cba29131bccc..2540d3b2588c 100644 > > > > --- a/arch/powerpc/mm/mem.c > > > > +++ b/arch/powerpc/mm/mem.c > > > > @@ -248,7 +248,8 @@ void __init paging_init(void) > > > > (long int)((top_of_ram - total_ram) >> 20)); > > > > > > > > #ifdef CONFIG_ZONE_DMA > > > > - max_zone_pfns[ZONE_DMA] = min(max_low_pfn, 0x7fffUL > > > > >> PAGE_SHIFT); > > > > + max_zone_pfns[ZONE_DMA] = min(max_low_pfn, > > > > + ((1UL << ARCH_ZONE_DMA_BITS) - 1) >> > > > > PAGE_SHIFT); > > > > #endif > > > > max_zone_pfns[ZONE_NORMAL] = max_low_pfn; > > > > #ifdef CONFIG_HIGHMEM > > > > diff --git a/arch/powerpc/platforms/powermac/Kconfig > > > > b/arch/powerpc/platforms/powermac/Kconfig > > > > index f834a19ed772..c02d8c503b29 100644 > > > > --- a/arch/powerpc/platforms/powermac/Kconfig > > > > +++ b/arch/powerpc/platforms/powermac/Kconfig > > > > @@ -7,6 +7,7 @@ config PPC_PMAC > > > > select PPC_INDIRECT_PCI if PPC32 > > > > select PPC_MPC106 if PPC32 > > > > select PPC_NATIVE > > > > + select ZONE_DMA if PPC32 > > > > default y > > > > > > > > config PPC_PMAC64 > > > > -- > > > > 2.20.1 > > > > > > ---end quoted text--- >
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
On Wed, 2019-06-19 at 22:32 +1000, Michael Ellerman wrote: > Christoph Hellwig writes: > > Any chance this could get picked up to fix the regression? > > Was hoping Ben would Ack it. He's still powermac maintainer :) > > I guess he OK'ed it in the other thread, will add it to my queue. Yeah ack. If I had written it myself, I would have made the DMA bits a variable and only set it down to 30 if I see that device in the DT early on, but I can't be bothered now, if it works, ship it :-) Note: The patch affects all ppc32, though I don't think it will cause any significant issue on those who don't need it. Cheers, Ben. > cheers > > > On Thu, Jun 13, 2019 at 10:24:46AM +0200, Christoph Hellwig wrote: > > > With the strict dma mask checking introduced with the switch to > > > the generic DMA direct code common wifi chips on 32-bit > > > powerbooks > > > stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds > > > to allow them to reliably allocate dma coherent memory. > > > > > > Fixes: 65a21b71f948 ("powerpc/dma: remove > > > dma_nommu_dma_supported") > > > Reported-by: Aaro Koskinen > > > Signed-off-by: Christoph Hellwig > > > --- > > > arch/powerpc/include/asm/page.h | 7 +++ > > > arch/powerpc/mm/mem.c | 3 ++- > > > arch/powerpc/platforms/powermac/Kconfig | 1 + > > > 3 files changed, 10 insertions(+), 1 deletion(-) > > > > > > diff --git a/arch/powerpc/include/asm/page.h > > > b/arch/powerpc/include/asm/page.h > > > index b8286a2013b4..0d52f57fca04 100644 > > > --- a/arch/powerpc/include/asm/page.h > > > +++ b/arch/powerpc/include/asm/page.h > > > @@ -319,6 +319,13 @@ struct vm_area_struct; > > > #endif /* __ASSEMBLY__ */ > > > #include > > > > > > +/* > > > + * Allow 30-bit DMA for very limited Broadcom wifi chips on many > > > powerbooks. > > > + */ > > > +#ifdef CONFIG_PPC32 > > > +#define ARCH_ZONE_DMA_BITS 30 > > > +#else > > > #define ARCH_ZONE_DMA_BITS 31 > > > +#endif > > > > > > #endif /* _ASM_POWERPC_PAGE_H */ > > > diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c > > > index cba29131bccc..2540d3b2588c 100644 > > > --- a/arch/powerpc/mm/mem.c > > > +++ b/arch/powerpc/mm/mem.c > > > @@ -248,7 +248,8 @@ void __init paging_init(void) > > > (long int)((top_of_ram - total_ram) >> 20)); > > > > > > #ifdef CONFIG_ZONE_DMA > > > - max_zone_pfns[ZONE_DMA] = min(max_low_pfn, 0x7fffUL > > > >> PAGE_SHIFT); > > > + max_zone_pfns[ZONE_DMA] = min(max_low_pfn, > > > + ((1UL << ARCH_ZONE_DMA_BITS) - 1) >> > > > PAGE_SHIFT); > > > #endif > > > max_zone_pfns[ZONE_NORMAL] = max_low_pfn; > > > #ifdef CONFIG_HIGHMEM > > > diff --git a/arch/powerpc/platforms/powermac/Kconfig > > > b/arch/powerpc/platforms/powermac/Kconfig > > > index f834a19ed772..c02d8c503b29 100644 > > > --- a/arch/powerpc/platforms/powermac/Kconfig > > > +++ b/arch/powerpc/platforms/powermac/Kconfig > > > @@ -7,6 +7,7 @@ config PPC_PMAC > > > select PPC_INDIRECT_PCI if PPC32 > > > select PPC_MPC106 if PPC32 > > > select PPC_NATIVE > > > + select ZONE_DMA if PPC32 > > > default y > > > > > > config PPC_PMAC64 > > > -- > > > 2.20.1 > > > > ---end quoted text---
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
Christoph Hellwig writes: > Any chance this could get picked up to fix the regression? Was hoping Ben would Ack it. He's still powermac maintainer :) I guess he OK'ed it in the other thread, will add it to my queue. cheers > On Thu, Jun 13, 2019 at 10:24:46AM +0200, Christoph Hellwig wrote: >> With the strict dma mask checking introduced with the switch to >> the generic DMA direct code common wifi chips on 32-bit powerbooks >> stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds >> to allow them to reliably allocate dma coherent memory. >> >> Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported") >> Reported-by: Aaro Koskinen >> Signed-off-by: Christoph Hellwig >> --- >> arch/powerpc/include/asm/page.h | 7 +++ >> arch/powerpc/mm/mem.c | 3 ++- >> arch/powerpc/platforms/powermac/Kconfig | 1 + >> 3 files changed, 10 insertions(+), 1 deletion(-) >> >> diff --git a/arch/powerpc/include/asm/page.h >> b/arch/powerpc/include/asm/page.h >> index b8286a2013b4..0d52f57fca04 100644 >> --- a/arch/powerpc/include/asm/page.h >> +++ b/arch/powerpc/include/asm/page.h >> @@ -319,6 +319,13 @@ struct vm_area_struct; >> #endif /* __ASSEMBLY__ */ >> #include >> >> +/* >> + * Allow 30-bit DMA for very limited Broadcom wifi chips on many powerbooks. >> + */ >> +#ifdef CONFIG_PPC32 >> +#define ARCH_ZONE_DMA_BITS 30 >> +#else >> #define ARCH_ZONE_DMA_BITS 31 >> +#endif >> >> #endif /* _ASM_POWERPC_PAGE_H */ >> diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c >> index cba29131bccc..2540d3b2588c 100644 >> --- a/arch/powerpc/mm/mem.c >> +++ b/arch/powerpc/mm/mem.c >> @@ -248,7 +248,8 @@ void __init paging_init(void) >> (long int)((top_of_ram - total_ram) >> 20)); >> >> #ifdef CONFIG_ZONE_DMA >> -max_zone_pfns[ZONE_DMA] = min(max_low_pfn, 0x7fffUL >> PAGE_SHIFT); >> +max_zone_pfns[ZONE_DMA] = min(max_low_pfn, >> +((1UL << ARCH_ZONE_DMA_BITS) - 1) >> PAGE_SHIFT); >> #endif >> max_zone_pfns[ZONE_NORMAL] = max_low_pfn; >> #ifdef CONFIG_HIGHMEM >> diff --git a/arch/powerpc/platforms/powermac/Kconfig >> b/arch/powerpc/platforms/powermac/Kconfig >> index f834a19ed772..c02d8c503b29 100644 >> --- a/arch/powerpc/platforms/powermac/Kconfig >> +++ b/arch/powerpc/platforms/powermac/Kconfig >> @@ -7,6 +7,7 @@ config PPC_PMAC >> select PPC_INDIRECT_PCI if PPC32 >> select PPC_MPC106 if PPC32 >> select PPC_NATIVE >> +select ZONE_DMA if PPC32 >> default y >> >> config PPC_PMAC64 >> -- >> 2.20.1 > ---end quoted text---
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
Any chance this could get picked up to fix the regression? On Thu, Jun 13, 2019 at 10:24:46AM +0200, Christoph Hellwig wrote: > With the strict dma mask checking introduced with the switch to > the generic DMA direct code common wifi chips on 32-bit powerbooks > stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds > to allow them to reliably allocate dma coherent memory. > > Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported") > Reported-by: Aaro Koskinen > Signed-off-by: Christoph Hellwig > --- > arch/powerpc/include/asm/page.h | 7 +++ > arch/powerpc/mm/mem.c | 3 ++- > arch/powerpc/platforms/powermac/Kconfig | 1 + > 3 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h > index b8286a2013b4..0d52f57fca04 100644 > --- a/arch/powerpc/include/asm/page.h > +++ b/arch/powerpc/include/asm/page.h > @@ -319,6 +319,13 @@ struct vm_area_struct; > #endif /* __ASSEMBLY__ */ > #include > > +/* > + * Allow 30-bit DMA for very limited Broadcom wifi chips on many powerbooks. > + */ > +#ifdef CONFIG_PPC32 > +#define ARCH_ZONE_DMA_BITS 30 > +#else > #define ARCH_ZONE_DMA_BITS 31 > +#endif > > #endif /* _ASM_POWERPC_PAGE_H */ > diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c > index cba29131bccc..2540d3b2588c 100644 > --- a/arch/powerpc/mm/mem.c > +++ b/arch/powerpc/mm/mem.c > @@ -248,7 +248,8 @@ void __init paging_init(void) > (long int)((top_of_ram - total_ram) >> 20)); > > #ifdef CONFIG_ZONE_DMA > - max_zone_pfns[ZONE_DMA] = min(max_low_pfn, 0x7fffUL >> PAGE_SHIFT); > + max_zone_pfns[ZONE_DMA] = min(max_low_pfn, > + ((1UL << ARCH_ZONE_DMA_BITS) - 1) >> PAGE_SHIFT); > #endif > max_zone_pfns[ZONE_NORMAL] = max_low_pfn; > #ifdef CONFIG_HIGHMEM > diff --git a/arch/powerpc/platforms/powermac/Kconfig > b/arch/powerpc/platforms/powermac/Kconfig > index f834a19ed772..c02d8c503b29 100644 > --- a/arch/powerpc/platforms/powermac/Kconfig > +++ b/arch/powerpc/platforms/powermac/Kconfig > @@ -7,6 +7,7 @@ config PPC_PMAC > select PPC_INDIRECT_PCI if PPC32 > select PPC_MPC106 if PPC32 > select PPC_NATIVE > + select ZONE_DMA if PPC32 > default y > > config PPC_PMAC64 > -- > 2.20.1 ---end quoted text---
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
On 6/14/19 2:15 PM, Aaro Koskinen wrote: Hi, On Fri, Jun 14, 2019 at 09:24:16AM +0200, Mathieu Malaterre wrote: On Thu, Jun 13, 2019 at 10:27 AM Christoph Hellwig wrote: With the strict dma mask checking introduced with the switch to the generic DMA direct code common wifi chips on 32-bit powerbooks stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds to allow them to reliably allocate dma coherent memory. Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported") Reported-by: Aaro Koskinen Signed-off-by: Christoph Hellwig --- arch/powerpc/include/asm/page.h | 7 +++ arch/powerpc/mm/mem.c | 3 ++- arch/powerpc/platforms/powermac/Kconfig | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h index b8286a2013b4..0d52f57fca04 100644 --- a/arch/powerpc/include/asm/page.h +++ b/arch/powerpc/include/asm/page.h @@ -319,6 +319,13 @@ struct vm_area_struct; #endif /* __ASSEMBLY__ */ #include +/* + * Allow 30-bit DMA for very limited Broadcom wifi chips on many powerbooks. nit: would it be possible to mention explicit reference to b43-legacy. Using b43 on my macmini g4 never showed those symptoms (using 5.2.0-rc2+) According to Wikipedia Mac mini G4 is limited to 1 GB RAM, so that's why you don't see the issue. He wouldn't see it with b43. Those cards have 32-bit DMA. Larry
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
Hi, On Fri, Jun 14, 2019 at 09:24:16AM +0200, Mathieu Malaterre wrote: > On Thu, Jun 13, 2019 at 10:27 AM Christoph Hellwig wrote: > > With the strict dma mask checking introduced with the switch to > > the generic DMA direct code common wifi chips on 32-bit powerbooks > > stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds > > to allow them to reliably allocate dma coherent memory. > > > > Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported") > > Reported-by: Aaro Koskinen > > Signed-off-by: Christoph Hellwig > > --- > > arch/powerpc/include/asm/page.h | 7 +++ > > arch/powerpc/mm/mem.c | 3 ++- > > arch/powerpc/platforms/powermac/Kconfig | 1 + > > 3 files changed, 10 insertions(+), 1 deletion(-) > > > > diff --git a/arch/powerpc/include/asm/page.h > > b/arch/powerpc/include/asm/page.h > > index b8286a2013b4..0d52f57fca04 100644 > > --- a/arch/powerpc/include/asm/page.h > > +++ b/arch/powerpc/include/asm/page.h > > @@ -319,6 +319,13 @@ struct vm_area_struct; > > #endif /* __ASSEMBLY__ */ > > #include > > > > +/* > > + * Allow 30-bit DMA for very limited Broadcom wifi chips on many > > powerbooks. > > nit: would it be possible to mention explicit reference to b43-legacy. > Using b43 on my macmini g4 never showed those symptoms (using > 5.2.0-rc2+) According to Wikipedia Mac mini G4 is limited to 1 GB RAM, so that's why you don't see the issue. A.
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
Hi, On Thu, Jun 13, 2019 at 10:24:46AM +0200, Christoph Hellwig wrote: > With the strict dma mask checking introduced with the switch to > the generic DMA direct code common wifi chips on 32-bit powerbooks > stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds > to allow them to reliably allocate dma coherent memory. > > Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported") > Reported-by: Aaro Koskinen > Signed-off-by: Christoph Hellwig Tested-by: Aaro Koskinen A. > --- > arch/powerpc/include/asm/page.h | 7 +++ > arch/powerpc/mm/mem.c | 3 ++- > arch/powerpc/platforms/powermac/Kconfig | 1 + > 3 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h > index b8286a2013b4..0d52f57fca04 100644 > --- a/arch/powerpc/include/asm/page.h > +++ b/arch/powerpc/include/asm/page.h > @@ -319,6 +319,13 @@ struct vm_area_struct; > #endif /* __ASSEMBLY__ */ > #include > > +/* > + * Allow 30-bit DMA for very limited Broadcom wifi chips on many powerbooks. > + */ > +#ifdef CONFIG_PPC32 > +#define ARCH_ZONE_DMA_BITS 30 > +#else > #define ARCH_ZONE_DMA_BITS 31 > +#endif > > #endif /* _ASM_POWERPC_PAGE_H */ > diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c > index cba29131bccc..2540d3b2588c 100644 > --- a/arch/powerpc/mm/mem.c > +++ b/arch/powerpc/mm/mem.c > @@ -248,7 +248,8 @@ void __init paging_init(void) > (long int)((top_of_ram - total_ram) >> 20)); > > #ifdef CONFIG_ZONE_DMA > - max_zone_pfns[ZONE_DMA] = min(max_low_pfn, 0x7fffUL >> PAGE_SHIFT); > + max_zone_pfns[ZONE_DMA] = min(max_low_pfn, > + ((1UL << ARCH_ZONE_DMA_BITS) - 1) >> PAGE_SHIFT); > #endif > max_zone_pfns[ZONE_NORMAL] = max_low_pfn; > #ifdef CONFIG_HIGHMEM > diff --git a/arch/powerpc/platforms/powermac/Kconfig > b/arch/powerpc/platforms/powermac/Kconfig > index f834a19ed772..c02d8c503b29 100644 > --- a/arch/powerpc/platforms/powermac/Kconfig > +++ b/arch/powerpc/platforms/powermac/Kconfig > @@ -7,6 +7,7 @@ config PPC_PMAC > select PPC_INDIRECT_PCI if PPC32 > select PPC_MPC106 if PPC32 > select PPC_NATIVE > + select ZONE_DMA if PPC32 > default y > > config PPC_PMAC64 > -- > 2.20.1 >
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
On Thu, Jun 13, 2019 at 10:27 AM Christoph Hellwig wrote: > > With the strict dma mask checking introduced with the switch to > the generic DMA direct code common wifi chips on 32-bit powerbooks > stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds > to allow them to reliably allocate dma coherent memory. > > Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported") > Reported-by: Aaro Koskinen > Signed-off-by: Christoph Hellwig > --- > arch/powerpc/include/asm/page.h | 7 +++ > arch/powerpc/mm/mem.c | 3 ++- > arch/powerpc/platforms/powermac/Kconfig | 1 + > 3 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h > index b8286a2013b4..0d52f57fca04 100644 > --- a/arch/powerpc/include/asm/page.h > +++ b/arch/powerpc/include/asm/page.h > @@ -319,6 +319,13 @@ struct vm_area_struct; > #endif /* __ASSEMBLY__ */ > #include > > +/* > + * Allow 30-bit DMA for very limited Broadcom wifi chips on many powerbooks. nit: would it be possible to mention explicit reference to b43-legacy. Using b43 on my macmini g4 never showed those symptoms (using 5.2.0-rc2+) $ dmesg | grep b43 [ 14.327189] bus: 'pci': add driver b43-pci-bridge [ 14.345354] bus: 'pci': driver_probe_device: matched device 0001:10:12.0 with driver b43-pci-bridge [ 14.380110] bus: 'pci': really_probe: probing driver b43-pci-bridge with device 0001:10:12.0 [ 14.440295] b43-pci-bridge 0001:10:12.0: enabling device (0004 -> 0006) [ 14.637223] b43-pci-bridge 0001:10:12.0: Sonics Silicon Backplane found on PCI device 0001:10:12.0 [ 14.644858] driver: 'b43-pci-bridge': driver_bound: bound to device '0001:10:12.0' [ 14.743341] bus: 'pci': really_probe: bound device 0001:10:12.0 to driver b43-pci-bridge [ 18.724343] bus: 'bcma': add driver b43 [ 18.728635] bus: 'ssb': add driver b43 [ 18.734305] bus: 'ssb': driver_probe_device: matched device ssb0:0 with driver b43 [ 18.743155] bus: 'ssb': really_probe: probing driver b43 with device ssb0:0 [ 18.747782] b43-phy0: Broadcom 4306 WLAN found (core revision 5) [ 18.767439] b43-phy0: Found PHY: Analog 2, Type 2 (G), Revision 2 [ 18.771759] b43-phy0: Found Radio: Manuf 0x17F, ID 0x2050, Revision 2, Version 0 [ 18.795467] driver: 'b43': driver_bound: bound to device 'ssb0:0' [ 18.801533] bus: 'ssb': really_probe: bound device ssb0:0 to driver b43 [ 22.143084] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07) [ 25.133011] b43 ssb0:0 wlan0: disabling HT as WMM/QoS is not supported by the AP [ 25.140221] b43 ssb0:0 wlan0: disabling VHT as WMM/QoS is not supported by the AP > + */ > +#ifdef CONFIG_PPC32 > +#define ARCH_ZONE_DMA_BITS 30 > +#else > #define ARCH_ZONE_DMA_BITS 31 > +#endif > > #endif /* _ASM_POWERPC_PAGE_H */ > diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c > index cba29131bccc..2540d3b2588c 100644 > --- a/arch/powerpc/mm/mem.c > +++ b/arch/powerpc/mm/mem.c > @@ -248,7 +248,8 @@ void __init paging_init(void) >(long int)((top_of_ram - total_ram) >> 20)); > > #ifdef CONFIG_ZONE_DMA > - max_zone_pfns[ZONE_DMA] = min(max_low_pfn, 0x7fffUL >> > PAGE_SHIFT); > + max_zone_pfns[ZONE_DMA] = min(max_low_pfn, > + ((1UL << ARCH_ZONE_DMA_BITS) - 1) >> PAGE_SHIFT); > #endif > max_zone_pfns[ZONE_NORMAL] = max_low_pfn; > #ifdef CONFIG_HIGHMEM > diff --git a/arch/powerpc/platforms/powermac/Kconfig > b/arch/powerpc/platforms/powermac/Kconfig > index f834a19ed772..c02d8c503b29 100644 > --- a/arch/powerpc/platforms/powermac/Kconfig > +++ b/arch/powerpc/platforms/powermac/Kconfig > @@ -7,6 +7,7 @@ config PPC_PMAC > select PPC_INDIRECT_PCI if PPC32 > select PPC_MPC106 if PPC32 > select PPC_NATIVE > + select ZONE_DMA if PPC32 > default y > > config PPC_PMAC64 > -- > 2.20.1 >
Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
On 6/13/19 3:24 AM, Christoph Hellwig wrote: With the strict dma mask checking introduced with the switch to the generic DMA direct code common wifi chips on 32-bit powerbooks stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds to allow them to reliably allocate dma coherent memory. Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported") Reported-by: Aaro Koskinen Signed-off-by: Christoph Hellwig As expected, it works. The patch needs Cc: Stable # v5.1+ Tested-by: Larry Finger Acked-by: Larry Finger Thanks for the help, and the patience with my debugging problems with u64 variables. Larry