Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp635383ybi; Fri, 14 Jun 2019 00:25:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqxzKs4966xfzD8ofBzKWQrBe1KA6vIqCG8yms9SE1ZMOxFsFzfB7IaSmZCI+sFTzcxj4Xvg X-Received: by 2002:a17:90a:26e4:: with SMTP id m91mr9606092pje.93.1560497145271; Fri, 14 Jun 2019 00:25:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560497145; cv=none; d=google.com; s=arc-20160816; b=B1lJOuZvSR9enrpBnYYm7UMF6jwYx1UgsPVQA96juB+NJF/BpO0Pj4z+FciURh5gLX lUfjZl5supmFEO7hjwCMDOp5m1pIUwZntrsnQ1+gMxgViMWPzquyAW+todXRyK4FIvAj fV0mOG8pXnwyLm0afw0mFv2FcXlktqHt65hx96fUceAf2Gpq5PDY0w76IMvTUH8qp4W+ 5ZMwtxXLElBqBLlRq2Ap9qV5jbmaejcpKYn2kqiGkExKeJfZFNoQ6eJuaRh89G73mrAM QAw4juwAYMb22VLXLEAscudzrQiMLsign1WYJZDzIurBYPs3eTSLCRqTmA+rqFqjyDnO cFNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=5uCR24TBOk3OIH8vvM2+dQIPnKS4Tb63WZTvRttfMKk=; b=G1MFKMMqbFaKz2kzXgoiSRTd5q1Llmyfq1/LRCCyxYY9DirUPNYvYlHSUoZkrym18L ey5qINu9sIvRWMjZc+72kY7xhdP0IXNAQ/Dsy8wLBbDvnTK+6UhgICldL5hvOWy4/X3f 0Xlnp5zSdBxB4NNbZ7s889IZEn97hTItcLhq7DHTqiq7HFt5vmHpFODzpNZ7MQ6JFIPz 2QaELk2fUXSusZxqaWFeR6a+iFHDyuhjnsxVifx7aOmSr2yNqBGLfjpv+k3kGaGEKgiN +ykNvKtLF2LAg2Yn4ThZ3/SkpmbVVxfbMLYmeC/9Ze/TUrZfp1vEhkRFCk9Z/H/VdSc6 glqA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b14si1617585pjq.0.2019.06.14.00.25.28; Fri, 14 Jun 2019 00:25:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726652AbfFNHY3 (ORCPT + 99 others); Fri, 14 Jun 2019 03:24:29 -0400 Received: from mail-ot1-f65.google.com ([209.85.210.65]:42002 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726596AbfFNHY2 (ORCPT ); Fri, 14 Jun 2019 03:24:28 -0400 Received: by mail-ot1-f65.google.com with SMTP id l15so1713625otn.9 for ; Fri, 14 Jun 2019 00:24:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5uCR24TBOk3OIH8vvM2+dQIPnKS4Tb63WZTvRttfMKk=; b=S4silnyzcvKLBiyu0lRCyTMQHeBSOHFIxvGFxpdqr4ESQEMn2LVL4EBWZGHwfvPg42 lUrSxu7w7uygnK8+3CNyUs7gsv9ILpKC6WAkSL3mSbtKuW86R9VtOA2tUxQ0fFHonQ0O 0YppPbCJ/swPQpHMwZfljbOMJMjalqTiSCmrROTrR7Y11zPdgPr1hy7tDoeuUH1NTd// mUxXauwBEdRDB9a9SCJRsi4Aw5OVA3VZfa8JrzMCayLuXelqZZBRGtePlXXAce0Bnxyx s+At8i54mnCVI7b1n6LJBZyvW6g2fAMkFGHSj/Ten4iZJ9ck6ht3nZ5S59t/76otIvRc F2Pg== X-Gm-Message-State: APjAAAVJcD7P2FwuCa+5RSNlFsKZvdEZUEIpNL/kYP2qjAw82BovCQyz iEnr3F65EM+B4Fe0AsnyI5PWSovru3EBy+I1Yb4= X-Received: by 2002:a9d:3b76:: with SMTP id z109mr44758163otb.335.1560497067686; Fri, 14 Jun 2019 00:24:27 -0700 (PDT) MIME-Version: 1.0 References: <20190613082446.18685-1-hch@lst.de> In-Reply-To: <20190613082446.18685-1-hch@lst.de> From: Mathieu Malaterre Date: Fri, 14 Jun 2019 09:24:16 +0200 Message-ID: Subject: Re: [PATCH] powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac To: Christoph Hellwig Cc: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Larry Finger , linuxppc-dev , LKML , aaro.koskinen@iki.fi Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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, 0x7fffffffUL >> 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 >