Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp286212pxb; Sat, 18 Sep 2021 02:52:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwNR+blUmRhVz2iYRhmrzOAAQi8H/fEqxaZvh8BO9+QUoL+YIJlVUz7U3rd4m6djFauoMQW X-Received: by 2002:a02:1942:: with SMTP id b63mr12344132jab.49.1631958760320; Sat, 18 Sep 2021 02:52:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631958760; cv=none; d=google.com; s=arc-20160816; b=LPZ4ACMhLdc0DkFwkV7RQXwYKp1AcK6SbyueEePXbO4LbOoWe907KZqfnKP0Xurm1l TfwAh3A0Qbfk+nYANbG79UUiblvttxTUPtIvt/adzQ1WjcdfpxASUA7QSDYpmpSx2wLk Brri1pMVuoXsFZ6SITRspL7Kfj5QxIxwDORQMZu5kZQ5ucvFHntNaYtVib7AdSJ72f3t xOV3ebPV7RA0oVn2i/v2QBxv90rxjnabTJm5sSPOhG+IS+EziLHILm8eS0v34gR3MKKB BehRzloU34tw3jVDvT8EZxbd0l3/QHrM5MlEKn8+Ot6lWsSaR365fGntQhiIqd5rS0jQ yVqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=EOCms3UMCX4qRymM9trLQAd72gMixBNGr2Mhej9+wy8=; b=QPEiX1ED5melC1SVs5E+6DzHQqHM26WHjGv9N3BJoiYoikRIQPz8lya+MSpI2svS9i 1ss8ICAF+14fERafZXHvHsjxVMJkP79pNPbS0zuThUFYMxsB1iOHwonFPLc8uEo1uQAK ws25LlEPqpEFMDR5MZgPrb20z8qDw9x7nfpxnXIuzVV/keqT0t1+7F9uRm0BgkRgD9AU 9Pq81CdOk0HzyQBmyeSYpS/KwaVJthXnXkcqmhhj0uppwyhJxtESnLq3oSByNBH+DSNV 6+5SweTJjDO/mAqyFoqaX7MQcXIhWX08VGBN9e/sV5r3LWya+jbacLn4DZSV/hpwzMBQ 54sw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i14si7496056ilb.141.2021.09.18.02.52.20; Sat, 18 Sep 2021 02:52:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240965AbhIQXzy (ORCPT + 78 others); Fri, 17 Sep 2021 19:55:54 -0400 Received: from mailgw02.mediatek.com ([216.200.240.185]:61155 "EHLO mailgw02.mediatek.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240970AbhIQXzw (ORCPT ); Fri, 17 Sep 2021 19:55:52 -0400 X-UUID: 96c2bb51248b4501825f47f7b92266b9-20210917 X-UUID: 96c2bb51248b4501825f47f7b92266b9-20210917 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 346231390; Fri, 17 Sep 2021 16:54:25 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 17 Sep 2021 16:54:24 -0700 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 18 Sep 2021 07:54:22 +0800 From: To: , CC: , , , , , , , , , , , , , , , , Subject: [PATCH] mt76: not accounting the MCU header size in __mt76_mcu_send_firmware for mt7915/21 Date: Sat, 18 Sep 2021 07:54:21 +0800 Message-ID: X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Sean Wang Each firmware piece with mt7915 and mt7921 do not have the MCU header to reroute the packet to the internal RAM. So we do not need to consider the MCU header size in __mt76_mcu_send_firmware. Fixes: e57b7901469f ("mt76: add mac80211 driver for MT7915 PCIe-based chipsets") Fixes: 1c099ab44727 ("mt76: mt7921: add MCU support") Signed-off-by: Sean Wang --- The patch is developed based on ("mt76: introduce __mt76_mcu_send_firmware routine") --- drivers/net/wireless/mediatek/mt76/mcu.c | 2 +- drivers/net/wireless/mediatek/mt76/mt76.h | 4 +++- drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mcu.c b/drivers/net/wireless/mediatek/mt76/mcu.c index 946694af5dcc..3f94c37251df 100644 --- a/drivers/net/wireless/mediatek/mt76/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mcu.c @@ -112,7 +112,7 @@ int __mt76_mcu_send_firmware(struct mt76_dev *dev, int cmd, const void *data, int err, cur_len; while (len > 0) { - cur_len = min_t(int, max_len - dev->mcu_ops->headroom, len); + cur_len = min_t(int, max_len, len); err = mt76_mcu_send_msg(dev, cmd, data, cur_len, false); if (err) diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h index 644d1417ecdc..274f1d2466e4 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76.h +++ b/drivers/net/wireless/mediatek/mt76/mt76.h @@ -1263,7 +1263,9 @@ static inline int mt76_mcu_send_firmware(struct mt76_dev *dev, int cmd, const void *data, int len) { - return __mt76_mcu_send_firmware(dev, cmd, data, len, 4096); + int max_len = 4096 - dev->mcu_ops->headroom; + + return __mt76_mcu_send_firmware(dev, cmd, data, len, max_len); } static inline int diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c index 39cba8210242..17dd6881eef0 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c @@ -2692,8 +2692,8 @@ static int mt7915_load_patch(struct mt7915_dev *dev) goto out; } - ret = mt76_mcu_send_firmware(&dev->mt76, MCU_CMD(FW_SCATTER), - dl, len); + ret = __mt76_mcu_send_firmware(&dev->mt76, MCU_CMD(FW_SCATTER), + dl, len, 4096); if (ret) { dev_err(dev->mt76.dev, "Failed to send patch\n"); goto out; @@ -2761,8 +2761,8 @@ mt7915_mcu_send_ram_firmware(struct mt7915_dev *dev, return err; } - err = mt76_mcu_send_firmware(&dev->mt76, MCU_CMD(FW_SCATTER), - data + offset, len); + err = __mt76_mcu_send_firmware(&dev->mt76, MCU_CMD(FW_SCATTER), + data + offset, len, 4096); if (err) { dev_err(dev->mt76.dev, "Failed to send firmware.\n"); return err; -- 2.25.1