Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp4629062rwb; Tue, 20 Sep 2022 17:27:44 -0700 (PDT) X-Google-Smtp-Source: AMsMyM50dTeo+p36S7V4pMDGIY7tvPLEWHBd1REU24Zmpj1eRukQWQQT918rZYYcauakDujhkZrf X-Received: by 2002:a05:6402:4d9:b0:451:f433:dced with SMTP id n25-20020a05640204d900b00451f433dcedmr22671385edw.42.1663720064452; Tue, 20 Sep 2022 17:27:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663720064; cv=none; d=google.com; s=arc-20160816; b=e5YNBZXpJcD+gE6d1pPzL1ELHFP8RHaerY7EvLu2QYne9Lai03kgM+OB49PcSOIRyP z25abOkvw0aE/E3UNnUW84HOJgC2GPYrkIM7ho7V7OBWMLGuniGZknuLNgp6JnfrSss4 a6ZL4rW5JAI/mEJoAIg4pLnEk0LYWDf3XTR0Xi2RlQ6GpWJ6bFMuu8HBk4ULc5HRfSn3 K7m8J3k3au+DmN8szgU30jdo0+kPSFlD0x/T/lokan/cNVTK4EqXYg14FUqUgwFhs+Sl UsXyX7eVSG/J1KO0s3gnLT8BmM8jqWmkunxk4uePMKOZCVFWdNz23g+1WDsKI/xecm71 Pfww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=pfQVdkWyA15kiqbqghPH8gkFZzTT5jpqdm68cBDOr14=; b=yMBx4h3hIQDVvzWXNSGC9+/D5WhVCG2TcPh1YR9YgGKAx+mUhHO1lUNAqJkjQR5aUq 4n+J1Pt/Iibvq3+9kcfxNYYUImnyqvOmrKnPUV6jWnanNcBrU4NPjlVWDwH3dweVMZaz tC7mKtRFAgdNrL4Q4IwH3sQJS595kd2YNW4cU2Zgd4ncwfaiswHOMzflX2tGsytikzlB ym7P8RzvCsxkA9m+7lTGcu0BEzsMBIPyK4lcnwBce3/PBELSWUcX26poSyEsobTJ2vD4 LR5ktTg52FpfKUmO6qmHMtNn54yMw+PyZU0DdqmuHjZ3hyjH/WLZOB642uR/Jg13O+pM NQcA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i9-20020a1709061e4900b0073da0ce043csi958260ejj.619.2022.09.20.17.27.18; Tue, 20 Sep 2022 17:27:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230142AbiIUAQq (ORCPT + 99 others); Tue, 20 Sep 2022 20:16:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48704 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229631AbiIUAQk (ORCPT ); Tue, 20 Sep 2022 20:16:40 -0400 Received: from m-r2.th.seeweb.it (m-r2.th.seeweb.it [5.144.164.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A50D36EF25 for ; Tue, 20 Sep 2022 17:16:39 -0700 (PDT) Received: from localhost.localdomain (95.49.29.188.neoplus.adsl.tpnet.pl [95.49.29.188]) by m-r2.th.seeweb.it (Postfix) with ESMTPA id 4824C3F63D; Wed, 21 Sep 2022 02:16:36 +0200 (CEST) From: Konrad Dybcio To: ~postmarketos/upstreaming@lists.sr.ht Cc: martin.botka@somainline.org, angelogioacchino.delregno@somainline.org, marijn.suijten@somainline.org, jamipkettunen@somainline.org, Konrad Dybcio , Arend van Spriel , Franky Lin , Hante Meuleman , Kalle Valo , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Linus Walleij , Hector Martin , =?UTF-8?q?Alvin=20=C5=A0ipraga?= , Marek Vasut , "Zhao, Jiaqing" , "Russell King (Oracle)" , Soontak Lee , linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, SHA-cyfmac-dev-list@infineon.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] brcmfmac: Add support for BCM43596 PCIe Wi-Fi Date: Wed, 21 Sep 2022 02:16:27 +0200 Message-Id: <20220921001630.56765-1-konrad.dybcio@somainline.org> X-Mailer: git-send-email 2.37.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add support for BCM43596 dual-band AC chip, found in SONY Xperia X Performance, XZ and XZs smartphones (and *possibly* other devices from other manufacturers). The chip doesn't require any special handling and seems to work just fine OOTB. PCIe IDs taken from: https://github.com/sonyxperiadev/kernel/commit/9e43fefbac8e43c3d7792e73ca52a052dd86d7e3.patch Signed-off-by: Konrad Dybcio --- Changes since v1: - rebased the patch against -next drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 2 ++ drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 4 ++++ drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c index 3026166a56c1..6234e7475a1a 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c @@ -727,6 +727,7 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci) case BRCM_CC_43666_CHIP_ID: return 0x200000; case BRCM_CC_4359_CHIP_ID: + case BRCM_CC_43596_CHIP_ID: return (ci->pub.chiprev < 9) ? 0x180000 : 0x160000; case BRCM_CC_4364_CHIP_ID: case CY_CC_4373_CHIP_ID: @@ -1430,6 +1431,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub) reg = chip->ops->read32(chip->ctx, addr); return (reg & CC_SR_CTL0_ENABLE_MASK) != 0; case BRCM_CC_4359_CHIP_ID: + case BRCM_CC_43596_CHIP_ID: case CY_CC_43752_CHIP_ID: case CY_CC_43012_CHIP_ID: addr = CORE_CC_REG(pmu->base, retention_ctl); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c index f98641bb1528..2e7fc66adf31 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c @@ -81,6 +81,7 @@ static const struct brcmf_firmware_mapping brcmf_pcie_fwnames[] = { BRCMF_FW_ENTRY(BRCM_CC_43570_CHIP_ID, 0xFFFFFFFF, 43570), BRCMF_FW_ENTRY(BRCM_CC_4358_CHIP_ID, 0xFFFFFFFF, 4358), BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359), + BRCMF_FW_ENTRY(BRCM_CC_43596_CHIP_ID, 0xFFFFFFFF, 4359), BRCMF_FW_ENTRY(BRCM_CC_4364_CHIP_ID, 0xFFFFFFFF, 4364), BRCMF_FW_ENTRY(BRCM_CC_4365_CHIP_ID, 0x0000000F, 4365B), BRCMF_FW_ENTRY(BRCM_CC_4365_CHIP_ID, 0xFFFFFFF0, 4365C), @@ -2451,6 +2452,9 @@ static const struct pci_device_id brcmf_pcie_devid_table[] = { BRCMF_PCIE_DEVICE(BRCM_PCIE_43570_RAW_DEVICE_ID), BRCMF_PCIE_DEVICE(BRCM_PCIE_4358_DEVICE_ID), BRCMF_PCIE_DEVICE(BRCM_PCIE_4359_DEVICE_ID), + BRCMF_PCIE_DEVICE(BRCM_PCIE_43596_DEVICE_ID), + BRCMF_PCIE_DEVICE(BRCM_PCIE_43596_2G_DEVICE_ID), + BRCMF_PCIE_DEVICE(BRCM_PCIE_43596_5G_DEVICE_ID), BRCMF_PCIE_DEVICE(BRCM_PCIE_43602_DEVICE_ID), BRCMF_PCIE_DEVICE(BRCM_PCIE_43602_2G_DEVICE_ID), BRCMF_PCIE_DEVICE(BRCM_PCIE_43602_5G_DEVICE_ID), diff --git a/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h b/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h index 1003f123ec25..c9c8701039c5 100644 --- a/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h +++ b/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h @@ -44,6 +44,7 @@ #define BRCM_CC_43570_CHIP_ID 43570 #define BRCM_CC_4358_CHIP_ID 0x4358 #define BRCM_CC_4359_CHIP_ID 0x4359 +#define BRCM_CC_43596_CHIP_ID 43596 #define BRCM_CC_43602_CHIP_ID 43602 #define BRCM_CC_4364_CHIP_ID 0x4364 #define BRCM_CC_4365_CHIP_ID 0x4365 @@ -77,6 +78,9 @@ #define BRCM_PCIE_43570_RAW_DEVICE_ID 0xaa31 #define BRCM_PCIE_4358_DEVICE_ID 0x43e9 #define BRCM_PCIE_4359_DEVICE_ID 0x43ef +#define BRCM_PCIE_43596_DEVICE_ID 0x4415 +#define BRCM_PCIE_43596_2G_DEVICE_ID 0x4416 +#define BRCM_PCIE_43596_5G_DEVICE_ID 0x4417 #define BRCM_PCIE_43602_DEVICE_ID 0x43ba #define BRCM_PCIE_43602_2G_DEVICE_ID 0x43bb #define BRCM_PCIE_43602_5G_DEVICE_ID 0x43bc -- 2.37.3