diff options
Diffstat (limited to 'brcmfmac-Remove-firmware-loading-code-duplication.patch')
-rw-r--r-- | brcmfmac-Remove-firmware-loading-code-duplication.patch | 1028 |
1 files changed, 0 insertions, 1028 deletions
diff --git a/brcmfmac-Remove-firmware-loading-code-duplication.patch b/brcmfmac-Remove-firmware-loading-code-duplication.patch deleted file mode 100644 index 724ad1699..000000000 --- a/brcmfmac-Remove-firmware-loading-code-duplication.patch +++ /dev/null @@ -1,1028 +0,0 @@ -From patchwork Wed Oct 10 11:00:58 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Hans de Goede <hdegoede@redhat.com> -X-Patchwork-Id: 10634355 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: <linux-wireless-owner@kernel.org> -Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org - [172.30.200.125]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 176D8679F - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:11 +0000 (UTC) -Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 130EB29A62 - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:10 +0000 (UTC) -Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) - id 05F4129AD0; Wed, 10 Oct 2018 11:01:10 +0000 (UTC) -X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on - pdx-wl-mail.web.codeaurora.org -X-Spam-Level: -X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, - RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6244B29A5D - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:09 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1726568AbeJJSWo (ORCPT - <rfc822;patchwork-linux-wireless@patchwork.kernel.org>); - Wed, 10 Oct 2018 14:22:44 -0400 -Received: from mx1.redhat.com ([209.132.183.28]:41994 "EHLO mx1.redhat.com" - rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP - id S1726022AbeJJSWo (ORCPT <rfc822;linux-wireless@vger.kernel.org>); - Wed, 10 Oct 2018 14:22:44 -0400 -Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com - [10.5.11.23]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by mx1.redhat.com (Postfix) with ESMTPS id 66FEBA4D29; - Wed, 10 Oct 2018 11:01:07 +0000 (UTC) -Received: from shalem.localdomain.com (ovpn-116-109.ams2.redhat.com - [10.36.116.109]) - by smtp.corp.redhat.com (Postfix) with ESMTP id 8A0D658772; - Wed, 10 Oct 2018 11:01:05 +0000 (UTC) -From: Hans de Goede <hdegoede@redhat.com> -To: Arend van Spriel <arend.vanspriel@broadcom.com>, - Franky Lin <franky.lin@broadcom.com>, - Hante Meuleman <hante.meuleman@broadcom.com>, - Kalle Valo <kvalo@codeaurora.org>, - Chi-Hsien Lin <chi-hsien.lin@cypress.com>, - Wright Feng <wright.feng@cypress.com> -Cc: Hans de Goede <hdegoede@redhat.com>, - linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com -Subject: [PATCH v2 1/6] brcmfmac: Remove firmware-loading code duplication -Date: Wed, 10 Oct 2018 13:00:58 +0200 -Message-Id: <20181010110103.21857-1-hdegoede@redhat.com> -MIME-Version: 1.0 -X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 -X-Greylist: Sender IP whitelisted, - not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); - Wed, 10 Oct 2018 11:01:07 +0000 (UTC) -Sender: linux-wireless-owner@vger.kernel.org -Precedence: bulk -List-ID: <linux-wireless.vger.kernel.org> -X-Mailing-List: linux-wireless@vger.kernel.org -X-Virus-Scanned: ClamAV using ClamSMTP - -brcmf_fw_request_next_item and brcmf_fw_request_done both have identical -code to complete the fw-request depending on the item-type. - -This commit adds a new brcmf_fw_complete_request helper removing this code -duplication. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - .../broadcom/brcm80211/brcmfmac/firmware.c | 62 +++++++++---------- - 1 file changed, 31 insertions(+), 31 deletions(-) - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -index 9095b830ae4d..784c84f0e9e7 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -@@ -504,6 +504,34 @@ static int brcmf_fw_request_nvram_done(const struct firmware *fw, void *ctx) - return -ENOENT; - } - -+static int brcmf_fw_complete_request(const struct firmware *fw, -+ struct brcmf_fw *fwctx) -+{ -+ struct brcmf_fw_item *cur = &fwctx->req->items[fwctx->curpos]; -+ int ret = 0; -+ -+ brcmf_dbg(TRACE, "firmware %s %sfound\n", cur->path, fw ? "" : "not "); -+ -+ switch (cur->type) { -+ case BRCMF_FW_TYPE_NVRAM: -+ ret = brcmf_fw_request_nvram_done(fw, fwctx); -+ break; -+ case BRCMF_FW_TYPE_BINARY: -+ if (fw) -+ cur->binary = fw; -+ else -+ ret = -ENOENT; -+ break; -+ default: -+ /* something fishy here so bail out early */ -+ brcmf_err("unknown fw type: %d\n", cur->type); -+ release_firmware(fw); -+ ret = -EINVAL; -+ } -+ -+ return (cur->flags & BRCMF_FW_REQF_OPTIONAL) ? 0 : ret; -+} -+ - static int brcmf_fw_request_next_item(struct brcmf_fw *fwctx, bool async) - { - struct brcmf_fw_item *cur; -@@ -525,15 +553,7 @@ static int brcmf_fw_request_next_item(struct brcmf_fw *fwctx, bool async) - if (ret < 0) { - brcmf_fw_request_done(NULL, fwctx); - } else if (!async && fw) { -- brcmf_dbg(TRACE, "firmware %s %sfound\n", cur->path, -- fw ? "" : "not "); -- if (cur->type == BRCMF_FW_TYPE_BINARY) -- cur->binary = fw; -- else if (cur->type == BRCMF_FW_TYPE_NVRAM) -- brcmf_fw_request_nvram_done(fw, fwctx); -- else -- release_firmware(fw); -- -+ brcmf_fw_complete_request(fw, fwctx); - return -EAGAIN; - } - return 0; -@@ -547,28 +567,8 @@ static void brcmf_fw_request_done(const struct firmware *fw, void *ctx) - - cur = &fwctx->req->items[fwctx->curpos]; - -- brcmf_dbg(TRACE, "enter: firmware %s %sfound\n", cur->path, -- fw ? "" : "not "); -- -- if (!fw) -- ret = -ENOENT; -- -- switch (cur->type) { -- case BRCMF_FW_TYPE_NVRAM: -- ret = brcmf_fw_request_nvram_done(fw, fwctx); -- break; -- case BRCMF_FW_TYPE_BINARY: -- cur->binary = fw; -- break; -- default: -- /* something fishy here so bail out early */ -- brcmf_err("unknown fw type: %d\n", cur->type); -- release_firmware(fw); -- ret = -EINVAL; -- goto fail; -- } -- -- if (ret < 0 && !(cur->flags & BRCMF_FW_REQF_OPTIONAL)) -+ ret = brcmf_fw_complete_request(fw, fwctx); -+ if (ret < 0) - goto fail; - - do { - -From patchwork Wed Oct 10 11:00:59 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Hans de Goede <hdegoede@redhat.com> -X-Patchwork-Id: 10634357 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: <linux-wireless-owner@kernel.org> -Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org - [172.30.200.125]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AA07F933 - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:14 +0000 (UTC) -Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9109229A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:14 +0000 (UTC) -Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) - id 851B229A62; Wed, 10 Oct 2018 11:01:14 +0000 (UTC) -X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on - pdx-wl-mail.web.codeaurora.org -X-Spam-Level: -X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, - RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1D41829A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:14 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1726617AbeJJSWt (ORCPT - <rfc822;patchwork-linux-wireless@patchwork.kernel.org>); - Wed, 10 Oct 2018 14:22:49 -0400 -Received: from mx1.redhat.com ([209.132.183.28]:46618 "EHLO mx1.redhat.com" - rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP - id S1726022AbeJJSWt (ORCPT <rfc822;linux-wireless@vger.kernel.org>); - Wed, 10 Oct 2018 14:22:49 -0400 -Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com - [10.5.11.23]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by mx1.redhat.com (Postfix) with ESMTPS id B5295307D912; - Wed, 10 Oct 2018 11:01:12 +0000 (UTC) -Received: from shalem.localdomain.com (ovpn-116-109.ams2.redhat.com - [10.36.116.109]) - by smtp.corp.redhat.com (Postfix) with ESMTP id A3EDA44FBF; - Wed, 10 Oct 2018 11:01:07 +0000 (UTC) -From: Hans de Goede <hdegoede@redhat.com> -To: Arend van Spriel <arend.vanspriel@broadcom.com>, - Franky Lin <franky.lin@broadcom.com>, - Hante Meuleman <hante.meuleman@broadcom.com>, - Kalle Valo <kvalo@codeaurora.org>, - Chi-Hsien Lin <chi-hsien.lin@cypress.com>, - Wright Feng <wright.feng@cypress.com> -Cc: Hans de Goede <hdegoede@redhat.com>, - linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com -Subject: [PATCH v2 2/6] brcmfmac: Remove recursion from firmware load error - handling -Date: Wed, 10 Oct 2018 13:00:59 +0200 -Message-Id: <20181010110103.21857-2-hdegoede@redhat.com> -In-Reply-To: <20181010110103.21857-1-hdegoede@redhat.com> -References: <20181010110103.21857-1-hdegoede@redhat.com> -MIME-Version: 1.0 -X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 -X-Greylist: Sender IP whitelisted, - not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); - Wed, 10 Oct 2018 11:01:13 +0000 (UTC) -Sender: linux-wireless-owner@vger.kernel.org -Precedence: bulk -List-ID: <linux-wireless.vger.kernel.org> -X-Mailing-List: linux-wireless@vger.kernel.org -X-Virus-Scanned: ClamAV using ClamSMTP - -Before this commit brcmf_fw_request_done would call -brcmf_fw_request_next_item to load the next item, which on an error would -call brcmf_fw_request_done, which if the error is recoverable (*) will -then continue calling brcmf_fw_request_next_item for the next item again -which on an error will call brcmf_fw_request_done again... - -This does not blow up because we only have a limited number of items so -we never recurse too deep. But the recursion is still quite ugly and -frankly is giving me a headache, so lets fix this. - -This commit fixes this by removing brcmf_fw_request_next_item and by -making brcmf_fw_get_firmwares and brcmf_fw_request_done directly call -firmware_request_nowait resp. firmware_request themselves. - -*) brcmf_fw_request_nvram_done fallback path succeeds or - BRCMF_FW_REQF_OPTIONAL is set - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - .../broadcom/brcm80211/brcmfmac/firmware.c | 65 ++++++------------- - 1 file changed, 19 insertions(+), 46 deletions(-) - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -index 784c84f0e9e7..08aaf99fee34 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -@@ -532,33 +532,6 @@ static int brcmf_fw_complete_request(const struct firmware *fw, - return (cur->flags & BRCMF_FW_REQF_OPTIONAL) ? 0 : ret; - } - --static int brcmf_fw_request_next_item(struct brcmf_fw *fwctx, bool async) --{ -- struct brcmf_fw_item *cur; -- const struct firmware *fw = NULL; -- int ret; -- -- cur = &fwctx->req->items[fwctx->curpos]; -- -- brcmf_dbg(TRACE, "%srequest for %s\n", async ? "async " : "", -- cur->path); -- -- if (async) -- ret = request_firmware_nowait(THIS_MODULE, true, cur->path, -- fwctx->dev, GFP_KERNEL, fwctx, -- brcmf_fw_request_done); -- else -- ret = request_firmware(&fw, cur->path, fwctx->dev); -- -- if (ret < 0) { -- brcmf_fw_request_done(NULL, fwctx); -- } else if (!async && fw) { -- brcmf_fw_complete_request(fw, fwctx); -- return -EAGAIN; -- } -- return 0; --} -- - static void brcmf_fw_request_done(const struct firmware *fw, void *ctx) - { - struct brcmf_fw *fwctx = ctx; -@@ -568,26 +541,19 @@ static void brcmf_fw_request_done(const struct firmware *fw, void *ctx) - cur = &fwctx->req->items[fwctx->curpos]; - - ret = brcmf_fw_complete_request(fw, fwctx); -- if (ret < 0) -- goto fail; -- -- do { -- if (++fwctx->curpos == fwctx->req->n_items) { -- ret = 0; -- goto done; -- } - -- ret = brcmf_fw_request_next_item(fwctx, false); -- } while (ret == -EAGAIN); -- -- return; -+ while (ret == 0 && ++fwctx->curpos < fwctx->req->n_items) { -+ cur = &fwctx->req->items[fwctx->curpos]; -+ request_firmware(&fw, cur->path, fwctx->dev); -+ ret = brcmf_fw_complete_request(fw, ctx); -+ } - --fail: -- brcmf_dbg(TRACE, "failed err=%d: dev=%s, fw=%s\n", ret, -- dev_name(fwctx->dev), cur->path); -- brcmf_fw_free_request(fwctx->req); -- fwctx->req = NULL; --done: -+ if (ret) { -+ brcmf_dbg(TRACE, "failed err=%d: dev=%s, fw=%s\n", ret, -+ dev_name(fwctx->dev), cur->path); -+ brcmf_fw_free_request(fwctx->req); -+ fwctx->req = NULL; -+ } - fwctx->done(fwctx->dev, ret, fwctx->req); - kfree(fwctx); - } -@@ -611,7 +577,9 @@ int brcmf_fw_get_firmwares(struct device *dev, struct brcmf_fw_request *req, - void (*fw_cb)(struct device *dev, int err, - struct brcmf_fw_request *req)) - { -+ struct brcmf_fw_item *first = &req->items[0]; - struct brcmf_fw *fwctx; -+ int ret; - - brcmf_dbg(TRACE, "enter: dev=%s\n", dev_name(dev)); - if (!fw_cb) -@@ -628,7 +596,12 @@ int brcmf_fw_get_firmwares(struct device *dev, struct brcmf_fw_request *req, - fwctx->req = req; - fwctx->done = fw_cb; - -- brcmf_fw_request_next_item(fwctx, true); -+ ret = request_firmware_nowait(THIS_MODULE, true, first->path, -+ fwctx->dev, GFP_KERNEL, fwctx, -+ brcmf_fw_request_done); -+ if (ret < 0) -+ brcmf_fw_request_done(NULL, fwctx); -+ - return 0; - } - - -From patchwork Wed Oct 10 11:01:00 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Hans de Goede <hdegoede@redhat.com> -X-Patchwork-Id: 10634359 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: <linux-wireless-owner@kernel.org> -Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org - [172.30.200.125]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 25C2D69B4 - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:17 +0000 (UTC) -Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1A0EE29A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:17 +0000 (UTC) -Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) - id 0E72C29A62; Wed, 10 Oct 2018 11:01:17 +0000 (UTC) -X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on - pdx-wl-mail.web.codeaurora.org -X-Spam-Level: -X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, - RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A6B3D29A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:16 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1726647AbeJJSWw (ORCPT - <rfc822;patchwork-linux-wireless@patchwork.kernel.org>); - Wed, 10 Oct 2018 14:22:52 -0400 -Received: from mx1.redhat.com ([209.132.183.28]:35014 "EHLO mx1.redhat.com" - rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP - id S1726479AbeJJSWw (ORCPT <rfc822;linux-wireless@vger.kernel.org>); - Wed, 10 Oct 2018 14:22:52 -0400 -Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com - [10.5.11.23]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by mx1.redhat.com (Postfix) with ESMTPS id C2E0030820D3; - Wed, 10 Oct 2018 11:01:14 +0000 (UTC) -Received: from shalem.localdomain.com (ovpn-116-109.ams2.redhat.com - [10.36.116.109]) - by smtp.corp.redhat.com (Postfix) with ESMTP id 0495169608; - Wed, 10 Oct 2018 11:01:12 +0000 (UTC) -From: Hans de Goede <hdegoede@redhat.com> -To: Arend van Spriel <arend.vanspriel@broadcom.com>, - Franky Lin <franky.lin@broadcom.com>, - Hante Meuleman <hante.meuleman@broadcom.com>, - Kalle Valo <kvalo@codeaurora.org>, - Chi-Hsien Lin <chi-hsien.lin@cypress.com>, - Wright Feng <wright.feng@cypress.com> -Cc: Hans de Goede <hdegoede@redhat.com>, - linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com -Subject: [PATCH v2 3/6] brcmfmac: Add support for first trying to get a board - specific nvram file -Date: Wed, 10 Oct 2018 13:01:00 +0200 -Message-Id: <20181010110103.21857-3-hdegoede@redhat.com> -In-Reply-To: <20181010110103.21857-1-hdegoede@redhat.com> -References: <20181010110103.21857-1-hdegoede@redhat.com> -MIME-Version: 1.0 -X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 -X-Greylist: Sender IP whitelisted, - not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); - Wed, 10 Oct 2018 11:01:15 +0000 (UTC) -Sender: linux-wireless-owner@vger.kernel.org -Precedence: bulk -List-ID: <linux-wireless.vger.kernel.org> -X-Mailing-List: linux-wireless@vger.kernel.org -X-Virus-Scanned: ClamAV using ClamSMTP - -The nvram files which some brcmfmac chips need are board-specific. To be -able to distribute these as part of linux-firmware, so that devices with -such a wifi chip will work OOTB, multiple (one per board) versions must -co-exist under /lib/firmware. - -This commit adds support for callers of the brcmfmac/firmware.c code to -pass in a board_type parameter through the request structure. - -If that parameter is set then the code will first try to load -chipmodel.board_type.txt before falling back to the old chipmodel.txt name. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - .../broadcom/brcm80211/brcmfmac/firmware.c | 27 ++++++++++++++++++- - .../broadcom/brcm80211/brcmfmac/firmware.h | 1 + - 2 files changed, 27 insertions(+), 1 deletion(-) - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -index 08aaf99fee34..6755b2388fbc 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -@@ -532,6 +532,31 @@ static int brcmf_fw_complete_request(const struct firmware *fw, - return (cur->flags & BRCMF_FW_REQF_OPTIONAL) ? 0 : ret; - } - -+static int brcmf_fw_request_firmware(const struct firmware **fw, -+ struct brcmf_fw *fwctx) -+{ -+ struct brcmf_fw_item *cur = &fwctx->req->items[fwctx->curpos]; -+ int ret; -+ -+ /* nvram files are board-specific, first try a board-specific path */ -+ if (cur->type == BRCMF_FW_TYPE_NVRAM && fwctx->req->board_type) { -+ char alt_path[BRCMF_FW_NAME_LEN]; -+ -+ strlcpy(alt_path, cur->path, BRCMF_FW_NAME_LEN); -+ /* strip .txt at the end */ -+ alt_path[strlen(alt_path) - 4] = 0; -+ strlcat(alt_path, ".", BRCMF_FW_NAME_LEN); -+ strlcat(alt_path, fwctx->req->board_type, BRCMF_FW_NAME_LEN); -+ strlcat(alt_path, ".txt", BRCMF_FW_NAME_LEN); -+ -+ ret = request_firmware(fw, alt_path, fwctx->dev); -+ if (ret == 0) -+ return ret; -+ } -+ -+ return request_firmware(fw, cur->path, fwctx->dev); -+} -+ - static void brcmf_fw_request_done(const struct firmware *fw, void *ctx) - { - struct brcmf_fw *fwctx = ctx; -@@ -544,7 +569,7 @@ static void brcmf_fw_request_done(const struct firmware *fw, void *ctx) - - while (ret == 0 && ++fwctx->curpos < fwctx->req->n_items) { - cur = &fwctx->req->items[fwctx->curpos]; -- request_firmware(&fw, cur->path, fwctx->dev); -+ brcmf_fw_request_firmware(&fw, fwctx); - ret = brcmf_fw_complete_request(fw, ctx); - } - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h -index 2893e56910f0..a0834be8864e 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.h -@@ -70,6 +70,7 @@ struct brcmf_fw_request { - u16 domain_nr; - u16 bus_nr; - u32 n_items; -+ const char *board_type; - struct brcmf_fw_item items[0]; - }; - - -From patchwork Wed Oct 10 11:01:01 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Hans de Goede <hdegoede@redhat.com> -X-Patchwork-Id: 10634361 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: <linux-wireless-owner@kernel.org> -Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org - [172.30.200.125]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EE2A514DB - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:18 +0000 (UTC) -Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E298329A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:18 +0000 (UTC) -Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) - id D5CD929A62; Wed, 10 Oct 2018 11:01:18 +0000 (UTC) -X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on - pdx-wl-mail.web.codeaurora.org -X-Spam-Level: -X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, - RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6E6F329A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:18 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1726689AbeJJSWy (ORCPT - <rfc822;patchwork-linux-wireless@patchwork.kernel.org>); - Wed, 10 Oct 2018 14:22:54 -0400 -Received: from mx1.redhat.com ([209.132.183.28]:32633 "EHLO mx1.redhat.com" - rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP - id S1726479AbeJJSWy (ORCPT <rfc822;linux-wireless@vger.kernel.org>); - Wed, 10 Oct 2018 14:22:54 -0400 -Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com - [10.5.11.23]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by mx1.redhat.com (Postfix) with ESMTPS id D2E7630DF6F1; - Wed, 10 Oct 2018 11:01:16 +0000 (UTC) -Received: from shalem.localdomain.com (ovpn-116-109.ams2.redhat.com - [10.36.116.109]) - by smtp.corp.redhat.com (Postfix) with ESMTP id 0DBC544FBF; - Wed, 10 Oct 2018 11:01:14 +0000 (UTC) -From: Hans de Goede <hdegoede@redhat.com> -To: Arend van Spriel <arend.vanspriel@broadcom.com>, - Franky Lin <franky.lin@broadcom.com>, - Hante Meuleman <hante.meuleman@broadcom.com>, - Kalle Valo <kvalo@codeaurora.org>, - Chi-Hsien Lin <chi-hsien.lin@cypress.com>, - Wright Feng <wright.feng@cypress.com> -Cc: Hans de Goede <hdegoede@redhat.com>, - linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com -Subject: [PATCH v2 4/6] brcmfmac: Set board_type used for nvram file selection - to machine-compatible -Date: Wed, 10 Oct 2018 13:01:01 +0200 -Message-Id: <20181010110103.21857-4-hdegoede@redhat.com> -In-Reply-To: <20181010110103.21857-1-hdegoede@redhat.com> -References: <20181010110103.21857-1-hdegoede@redhat.com> -MIME-Version: 1.0 -X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 -X-Greylist: Sender IP whitelisted, - not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); - Wed, 10 Oct 2018 11:01:17 +0000 (UTC) -Sender: linux-wireless-owner@vger.kernel.org -Precedence: bulk -List-ID: <linux-wireless.vger.kernel.org> -X-Mailing-List: linux-wireless@vger.kernel.org -X-Virus-Scanned: ClamAV using ClamSMTP - -For of/devicetree using machines, set the board_type used for nvram file -selection to the first string listed in the top-level's node compatible -string, aka the machine-compatible as used by of_machine_is_compatible(). - -The board_type setting is used to load the board-specific nvram file with -a board-specific name so that we can ship files for each supported board -in linux-firmware. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - .../net/wireless/broadcom/brcm80211/brcmfmac/common.h | 1 + - drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c | 11 ++++++++++- - .../net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 1 + - .../net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 1 + - 4 files changed, 13 insertions(+), 1 deletion(-) - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h -index a34642cb4d2f..e63a273642e9 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h -@@ -59,6 +59,7 @@ struct brcmf_mp_device { - bool iapp; - bool ignore_probe_fail; - struct brcmfmac_pd_cc *country_codes; -+ const char *board_type; - union { - struct brcmfmac_sdio_pd sdio; - } bus; -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c -index aee6e5937c41..84e3373289eb 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c -@@ -27,11 +27,20 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, - struct brcmf_mp_device *settings) - { - struct brcmfmac_sdio_pd *sdio = &settings->bus.sdio; -- struct device_node *np = dev->of_node; -+ struct device_node *root, *np = dev->of_node; -+ struct property *prop; - int irq; - u32 irqf; - u32 val; - -+ /* Set board-type to the first string of the machine compatible prop */ -+ root = of_find_node_by_path("/"); -+ if (root) { -+ prop = of_find_property(root, "compatible", NULL); -+ settings->board_type = of_prop_next_string(prop, NULL); -+ of_node_put(root); -+ } -+ - if (!np || bus_type != BRCMF_BUSTYPE_SDIO || - !of_device_is_compatible(np, "brcm,bcm4329-fmac")) - return; -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c -index 4fffa6988087..b12f3e0ee69c 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c -@@ -1785,6 +1785,7 @@ brcmf_pcie_prepare_fw_request(struct brcmf_pciedev_info *devinfo) - fwreq->items[BRCMF_PCIE_FW_CODE].type = BRCMF_FW_TYPE_BINARY; - fwreq->items[BRCMF_PCIE_FW_NVRAM].type = BRCMF_FW_TYPE_NVRAM; - fwreq->items[BRCMF_PCIE_FW_NVRAM].flags = BRCMF_FW_REQF_OPTIONAL; -+ fwreq->board_type = devinfo->settings->board_type; - /* NVRAM reserves PCI domain 0 for Broadcom's SDK faked bus */ - fwreq->domain_nr = pci_domain_nr(devinfo->pdev->bus) + 1; - fwreq->bus_nr = devinfo->pdev->bus->number; -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -index a907d7b065fa..3dbbbb117563 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c -@@ -4177,6 +4177,7 @@ brcmf_sdio_prepare_fw_request(struct brcmf_sdio *bus) - - fwreq->items[BRCMF_SDIO_FW_CODE].type = BRCMF_FW_TYPE_BINARY; - fwreq->items[BRCMF_SDIO_FW_NVRAM].type = BRCMF_FW_TYPE_NVRAM; -+ fwreq->board_type = bus->sdiodev->settings->board_type; - - return fwreq; - } - -From patchwork Wed Oct 10 11:01:02 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Hans de Goede <hdegoede@redhat.com> -X-Patchwork-Id: 10634363 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: <linux-wireless-owner@kernel.org> -Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org - [172.30.200.125]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1CCB3679F - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:21 +0000 (UTC) -Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0CFFD29A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:21 +0000 (UTC) -Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) - id 0058529A62; Wed, 10 Oct 2018 11:01:20 +0000 (UTC) -X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on - pdx-wl-mail.web.codeaurora.org -X-Spam-Level: -X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, - RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5CC2D29A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:20 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1726712AbeJJSW4 (ORCPT - <rfc822;patchwork-linux-wireless@patchwork.kernel.org>); - Wed, 10 Oct 2018 14:22:56 -0400 -Received: from mx1.redhat.com ([209.132.183.28]:25991 "EHLO mx1.redhat.com" - rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP - id S1726479AbeJJSW4 (ORCPT <rfc822;linux-wireless@vger.kernel.org>); - Wed, 10 Oct 2018 14:22:56 -0400 -Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com - [10.5.11.23]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by mx1.redhat.com (Postfix) with ESMTPS id DCA9130821FF; - Wed, 10 Oct 2018 11:01:18 +0000 (UTC) -Received: from shalem.localdomain.com (ovpn-116-109.ams2.redhat.com - [10.36.116.109]) - by smtp.corp.redhat.com (Postfix) with ESMTP id 1EAEF2E03B; - Wed, 10 Oct 2018 11:01:16 +0000 (UTC) -From: Hans de Goede <hdegoede@redhat.com> -To: Arend van Spriel <arend.vanspriel@broadcom.com>, - Franky Lin <franky.lin@broadcom.com>, - Hante Meuleman <hante.meuleman@broadcom.com>, - Kalle Valo <kvalo@codeaurora.org>, - Chi-Hsien Lin <chi-hsien.lin@cypress.com>, - Wright Feng <wright.feng@cypress.com> -Cc: Hans de Goede <hdegoede@redhat.com>, - linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com -Subject: [PATCH v2 5/6] brcmfmac: Set board_type from DMI on x86 based - machines -Date: Wed, 10 Oct 2018 13:01:02 +0200 -Message-Id: <20181010110103.21857-5-hdegoede@redhat.com> -In-Reply-To: <20181010110103.21857-1-hdegoede@redhat.com> -References: <20181010110103.21857-1-hdegoede@redhat.com> -MIME-Version: 1.0 -X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 -X-Greylist: Sender IP whitelisted, - not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); - Wed, 10 Oct 2018 11:01:19 +0000 (UTC) -Sender: linux-wireless-owner@vger.kernel.org -Precedence: bulk -List-ID: <linux-wireless.vger.kernel.org> -X-Mailing-List: linux-wireless@vger.kernel.org -X-Virus-Scanned: ClamAV using ClamSMTP - -For x86 based machines, set the board_type used for nvram file selection -based on the DMI sys-vendor and product-name strings. - -Since on some models these strings are too generic, this commit also adds -a quirk table overriding the strings for models listed in that table. - -The board_type setting is used to load the board-specific nvram file with -a board-specific name so that we can ship files for each supported board -in linux-firmware. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- -Changes in v2: --Use full ISC text for now instead of SPDX tag, because the ISC is not - yet listed under LICENSES ---- - .../broadcom/brcm80211/brcmfmac/Makefile | 2 + - .../broadcom/brcm80211/brcmfmac/common.c | 3 +- - .../broadcom/brcm80211/brcmfmac/common.h | 7 ++ - .../broadcom/brcm80211/brcmfmac/dmi.c | 116 ++++++++++++++++++ - 4 files changed, 127 insertions(+), 1 deletion(-) - create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/Makefile b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/Makefile -index 1f5a9b948abf..22fd95a736a8 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/Makefile -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/Makefile -@@ -54,3 +54,5 @@ brcmfmac-$(CONFIG_BRCM_TRACING) += \ - tracepoint.o - brcmfmac-$(CONFIG_OF) += \ - of.o -+brcmfmac-$(CONFIG_DMI) += \ -+ dmi.o -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c -index cd3651069d0c..a4bcbd1a57ac 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c -@@ -450,8 +450,9 @@ struct brcmf_mp_device *brcmf_get_module_param(struct device *dev, - } - } - if (!found) { -- /* No platform data for this device, try OF (Open Firwmare) */ -+ /* No platform data for this device, try OF and DMI data */ - brcmf_of_probe(dev, bus_type, settings); -+ brcmf_dmi_probe(settings, chip, chiprev); - } - return settings; - } -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h -index e63a273642e9..4ce56be90b74 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h -@@ -75,4 +75,11 @@ void brcmf_release_module_param(struct brcmf_mp_device *module_param); - /* Sets dongle media info (drv_version, mac address). */ - int brcmf_c_preinit_dcmds(struct brcmf_if *ifp); - -+#ifdef CONFIG_DMI -+void brcmf_dmi_probe(struct brcmf_mp_device *settings, u32 chip, u32 chiprev); -+#else -+static inline void -+brcmf_dmi_probe(struct brcmf_mp_device *settings, u32 chip, u32 chiprev) {} -+#endif -+ - #endif /* BRCMFMAC_COMMON_H */ -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c -new file mode 100644 -index 000000000000..51d76ac45075 ---- /dev/null -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c -@@ -0,0 +1,116 @@ -+/* -+ * Copyright 2018 Hans de Goede <hdegoede@redhat.com> -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+#include <linux/dmi.h> -+#include <linux/mod_devicetable.h> -+#include "core.h" -+#include "common.h" -+#include "brcm_hw_ids.h" -+ -+/* The DMI data never changes so we can use a static buf for this */ -+static char dmi_board_type[128]; -+ -+struct brcmf_dmi_data { -+ u32 chip; -+ u32 chiprev; -+ const char *board_type; -+}; -+ -+/* NOTE: Please keep all entries sorted alphabetically */ -+ -+static const struct brcmf_dmi_data gpd_win_pocket_data = { -+ BRCM_CC_4356_CHIP_ID, 2, "gpd-win-pocket" -+}; -+ -+static const struct brcmf_dmi_data jumper_ezpad_mini3_data = { -+ BRCM_CC_43430_CHIP_ID, 0, "jumper-ezpad-mini3" -+}; -+ -+static const struct brcmf_dmi_data meegopad_t08_data = { -+ BRCM_CC_43340_CHIP_ID, 2, "meegopad-t08" -+}; -+ -+static const struct dmi_system_id dmi_platform_data[] = { -+ { -+ /* Match for the GPDwin which unfortunately uses somewhat -+ * generic dmi strings, which is why we test for 4 strings. -+ * Comparing against 23 other byt/cht boards, board_vendor -+ * and board_name are unique to the GPDwin, where as only one -+ * other board has the same board_serial and 3 others have -+ * the same default product_name. Also the GPDwin is the -+ * only device to have both board_ and product_name not set. -+ */ -+ .matches = { -+ DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), -+ DMI_MATCH(DMI_BOARD_NAME, "Default string"), -+ DMI_MATCH(DMI_BOARD_SERIAL, "Default string"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "Default string"), -+ }, -+ .driver_data = (void *)&gpd_win_pocket_data, -+ }, -+ { -+ /* Jumper EZpad mini3 */ -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "Insyde"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "CherryTrail"), -+ /* jumperx.T87.KFBNEEA02 with the version-nr dropped */ -+ DMI_MATCH(DMI_BIOS_VERSION, "jumperx.T87.KFBNEEA"), -+ }, -+ .driver_data = (void *)&jumper_ezpad_mini3_data, -+ }, -+ { -+ /* Meegopad T08 */ -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "Default string"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "Default string"), -+ DMI_MATCH(DMI_BOARD_NAME, "T3 MRD"), -+ DMI_MATCH(DMI_BOARD_VERSION, "V1.1"), -+ }, -+ .driver_data = (void *)&meegopad_t08_data, -+ }, -+ {} -+}; -+ -+void brcmf_dmi_probe(struct brcmf_mp_device *settings, u32 chip, u32 chiprev) -+{ -+ const struct dmi_system_id *match; -+ const struct brcmf_dmi_data *data; -+ const char *sys_vendor; -+ const char *product_name; -+ -+ /* Some models have DMI strings which are too generic, e.g. -+ * "Default string", we use a quirk table for these. -+ */ -+ for (match = dmi_first_match(dmi_platform_data); -+ match; -+ match = dmi_first_match(match + 1)) { -+ data = match->driver_data; -+ -+ if (data->chip == chip && data->chiprev == chiprev) { -+ settings->board_type = data->board_type; -+ return; -+ } -+ } -+ -+ /* Not found in the quirk-table, use sys_vendor-product_name */ -+ sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR); -+ product_name = dmi_get_system_info(DMI_PRODUCT_NAME); -+ if (sys_vendor && product_name) { -+ snprintf(dmi_board_type, sizeof(dmi_board_type), "%s-%s", -+ sys_vendor, product_name); -+ settings->board_type = dmi_board_type; -+ } -+} - -From patchwork Wed Oct 10 11:01:03 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Hans de Goede <hdegoede@redhat.com> -X-Patchwork-Id: 10634365 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: <linux-wireless-owner@kernel.org> -Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org - [172.30.200.125]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9513614DB - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:22 +0000 (UTC) -Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 873E929A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:22 +0000 (UTC) -Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) - id 7B56829A62; Wed, 10 Oct 2018 11:01:22 +0000 (UTC) -X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on - pdx-wl-mail.web.codeaurora.org -X-Spam-Level: -X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, - RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 312D329A3C - for <patchwork-linux-wireless@patchwork.kernel.org>; - Wed, 10 Oct 2018 11:01:22 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1726721AbeJJSW6 (ORCPT - <rfc822;patchwork-linux-wireless@patchwork.kernel.org>); - Wed, 10 Oct 2018 14:22:58 -0400 -Received: from mx1.redhat.com ([209.132.183.28]:50166 "EHLO mx1.redhat.com" - rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP - id S1726479AbeJJSW6 (ORCPT <rfc822;linux-wireless@vger.kernel.org>); - Wed, 10 Oct 2018 14:22:58 -0400 -Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com - [10.5.11.23]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by mx1.redhat.com (Postfix) with ESMTPS id E53875F793; - Wed, 10 Oct 2018 11:01:20 +0000 (UTC) -Received: from shalem.localdomain.com (ovpn-116-109.ams2.redhat.com - [10.36.116.109]) - by smtp.corp.redhat.com (Postfix) with ESMTP id 274442E199; - Wed, 10 Oct 2018 11:01:19 +0000 (UTC) -From: Hans de Goede <hdegoede@redhat.com> -To: Arend van Spriel <arend.vanspriel@broadcom.com>, - Franky Lin <franky.lin@broadcom.com>, - Hante Meuleman <hante.meuleman@broadcom.com>, - Kalle Valo <kvalo@codeaurora.org>, - Chi-Hsien Lin <chi-hsien.lin@cypress.com>, - Wright Feng <wright.feng@cypress.com> -Cc: Hans de Goede <hdegoede@redhat.com>, - linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com -Subject: [PATCH v2 6/6] brcmfmac: Cleanup brcmf_fw_request_done() -Date: Wed, 10 Oct 2018 13:01:03 +0200 -Message-Id: <20181010110103.21857-6-hdegoede@redhat.com> -In-Reply-To: <20181010110103.21857-1-hdegoede@redhat.com> -References: <20181010110103.21857-1-hdegoede@redhat.com> -MIME-Version: 1.0 -X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 -X-Greylist: Sender IP whitelisted, - not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); - Wed, 10 Oct 2018 11:01:21 +0000 (UTC) -Sender: linux-wireless-owner@vger.kernel.org -Precedence: bulk -List-ID: <linux-wireless.vger.kernel.org> -X-Mailing-List: linux-wireless@vger.kernel.org -X-Virus-Scanned: ClamAV using ClamSMTP - -The "cur" variable is now only used for a debug print and we already -print the same info from brcmf_fw_complete_request(), so the debug print -does not provide any extra info and we can remove it. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - .../net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 8 +------- - 1 file changed, 1 insertion(+), 7 deletions(-) - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -index 6755b2388fbc..b38c4b40b235 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -@@ -560,22 +560,16 @@ static int brcmf_fw_request_firmware(const struct firmware **fw, - static void brcmf_fw_request_done(const struct firmware *fw, void *ctx) - { - struct brcmf_fw *fwctx = ctx; -- struct brcmf_fw_item *cur; -- int ret = 0; -- -- cur = &fwctx->req->items[fwctx->curpos]; -+ int ret; - - ret = brcmf_fw_complete_request(fw, fwctx); - - while (ret == 0 && ++fwctx->curpos < fwctx->req->n_items) { -- cur = &fwctx->req->items[fwctx->curpos]; - brcmf_fw_request_firmware(&fw, fwctx); - ret = brcmf_fw_complete_request(fw, ctx); - } - - if (ret) { -- brcmf_dbg(TRACE, "failed err=%d: dev=%s, fw=%s\n", ret, -- dev_name(fwctx->dev), cur->path); - brcmf_fw_free_request(fwctx->req); - fwctx->req = NULL; - } |