From patchwork Tue Nov 29 13:54:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arend van Spriel X-Patchwork-Id: 13058587 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00A60C4321E for ; Tue, 29 Nov 2022 13:55:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229840AbiK2NzN (ORCPT ); Tue, 29 Nov 2022 08:55:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60908 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233282AbiK2NzL (ORCPT ); Tue, 29 Nov 2022 08:55:11 -0500 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C70751C15 for ; Tue, 29 Nov 2022 05:55:09 -0800 (PST) Received: by mail-wr1-x42e.google.com with SMTP id d1so22207642wrs.12 for ; Tue, 29 Nov 2022 05:55:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=K6BxC9Few1unoYyEXS7ken2ZfO5fb2GBQ1okhO96VMI=; b=HsS/+s+6iRC++8iMVshLhVTq0/PWkWtSIG++WJkKKv4tkaKOE6n3sFr8/kCg66Xtag YTRJ1azyL9Pd9Z1Dz5KWReQAe/NgUKsU/CqxxUqh0fjQOyeZHxmRvcpPjqspuRa7EX3K Qanca+hcl5J4N6cbj607isJg5xzXYhkjWdAvQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=K6BxC9Few1unoYyEXS7ken2ZfO5fb2GBQ1okhO96VMI=; b=PrwLQnYnV1gUlHg4kIfRUy1mrtXkJ3pMk2N3V+YAlbZUWpq4Kz+L7IAEYnCsYaoQil 93Dz5Bc2SBpBZIosHzc9pQR3StmiEp/ovnp2MXuqZcY/naS3UjZNhQiH6KeuXpueaSEn nnt2817opE/m3RYQaI4zc4NaG/Q9sIHjWbw27uOXkgtDlVT4GUbYvQ1nv07vRwL835rt 2Iyw/aGpWRV++e50lGX1tF9fP2cUs7cjjbCa2tgNcbrvTtDhw6sNChFset+95wXq4x/p CSe68H6FGux8j7CXVwRpQ6mXIsz8ZwJFZxghzPkNJydNqA6KRVjeomZe5gjnuyArEw1J owaw== X-Gm-Message-State: ANoB5pma1i3pGaMk+ReJYaxyLLp+Vts2kL+UYjXN9hTV3S9Gmh/FNXcI oU5iiHTbNZ4pjaGaKshgvDKWsw== X-Google-Smtp-Source: AA0mqf7tycQ08NQXyWtWPLMBKiyo2QZBSy7Tcu05qN6Co8XESEwprHEN48E2ILFzQlkcNJeLAw7Y3A== X-Received: by 2002:a5d:5611:0:b0:241:cfa5:20d9 with SMTP id l17-20020a5d5611000000b00241cfa520d9mr28223918wrv.451.1669730108052; Tue, 29 Nov 2022 05:55:08 -0800 (PST) Received: from bld-bun-02.bun.broadcom.com ([192.19.148.250]) by smtp.gmail.com with ESMTPSA id hn25-20020a05600ca39900b003b4935f04a4sm2472005wmb.5.2022.11.29.05.55.06 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Nov 2022 05:55:07 -0800 (PST) From: Arend van Spriel To: kvalo@kernel.org Cc: linux-wireless@vger.kernel.org, Arend van Spriel Subject: [PATCH V2 0/7] brcmfmac: support devices from multiple vendors Date: Tue, 29 Nov 2022 14:54:39 +0100 Message-Id: <20221129135446.151065-1-arend.vanspriel@broadcom.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Took my sweet time coming with this follow-up series, but here it is. Hopefully, sending patches is working for me now. The bcm43xx family of wifi chipsets found its way to different groups inside and outside Broadcom. For the fullmac devices this means that in those difference groups firmware is being developed and the firmware api is bound to diverge. This series introduces a design change to accomodate supporting multiple firmware api's. The vender-specific support can be compiled in brcmfmac or built as a separate module. Currently the vendor-specific support does not have any real effect. At the momemt looking into SAE support which appear to be different for Cypress devices so that might be a first use-case. The patches apply to the main branch of the wireless-next repository. Arend van Spriel (7): brcmfmac: add function to unbind device to bus layer api brcmfmac: add firmware vendor info in driver data brcmfmac: add support for vendor-specific firmware api brcmfmac: add support for Cypress firmware api brcmfmac: add support Broadcom BCA firmware api brcmfmac: add vendor name in revinfo debugfs file brcmfmac: introduce BRCMFMAC exported symbols namespace .../broadcom/brcm80211/brcmfmac/Makefile | 11 + .../broadcom/brcm80211/brcmfmac/bca/Makefile | 12 ++ .../broadcom/brcm80211/brcmfmac/bca/core.c | 27 +++ .../broadcom/brcm80211/brcmfmac/bca/module.c | 27 +++ .../broadcom/brcm80211/brcmfmac/bca/vops.h | 11 + .../broadcom/brcm80211/brcmfmac/bcmsdh.c | 52 ++--- .../broadcom/brcm80211/brcmfmac/bus.h | 30 ++- .../broadcom/brcm80211/brcmfmac/core.c | 12 +- .../broadcom/brcm80211/brcmfmac/core.h | 8 + .../broadcom/brcm80211/brcmfmac/cyw/Makefile | 12 ++ .../broadcom/brcm80211/brcmfmac/cyw/core.c | 27 +++ .../broadcom/brcm80211/brcmfmac/cyw/module.c | 27 +++ .../broadcom/brcm80211/brcmfmac/cyw/vops.h | 11 + .../broadcom/brcm80211/brcmfmac/fwvid.c | 199 ++++++++++++++++++ .../broadcom/brcm80211/brcmfmac/fwvid.h | 47 +++++ .../broadcom/brcm80211/brcmfmac/pcie.c | 70 +++--- .../broadcom/brcm80211/brcmfmac/sdio.c | 12 +- .../broadcom/brcm80211/brcmfmac/usb.c | 27 ++- .../broadcom/brcm80211/brcmfmac/wcc/Makefile | 12 ++ .../broadcom/brcm80211/brcmfmac/wcc/core.c | 27 +++ .../broadcom/brcm80211/brcmfmac/wcc/module.c | 27 +++ .../broadcom/brcm80211/brcmfmac/wcc/vops.h | 11 + 22 files changed, 634 insertions(+), 65 deletions(-) create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/Makefile create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/module.c create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/vops.h create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/Makefile create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/module.c create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/vops.h create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.c create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/Makefile create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/module.c create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/vops.h