From patchwork Sun Feb 9 01:18:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Razvan Grigore X-Patchwork-Id: 864056 Received: from mail-wm1-f100.google.com (mail-wm1-f100.google.com [209.85.128.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C62FC243386 for ; Sun, 9 Feb 2025 01:19:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.100 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739063993; cv=none; b=cQzx3Mf2S+XmmpvbWhxQPP/gItA5Yd9jQwvdorE6r9fiNf8yCvkNiVVgezNAtoZLBthYdRkJaC28H+OSfdHBoje02unQ582EXCuB6CrRGyZR6DfaKCJw8Mxs4WhHEBhlkLaKrYbTfU3nu4lZlwXPDiVdUMReDng/fWdTGWLwDwI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739063993; c=relaxed/simple; bh=Alo24JfScDYu0KUPK2MdwjY+Qd52SHQa7YBsObOa23g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WeFIXuw10u2ZVq3m6M4atPFnddclGPRXCMAjPWbaM314fAcYffw0kdjorVOBXbn5Q9q/Yzrog4k+VSn8Xj9IR6nfZWE/Am/L3Cb54K4pDkFRt9MRhnpcuPiFPxd+6dQ6GISawTc/BDlbdUVLKokNJedygmb84c38UVEXWSwss+s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=vampirebyte.ro; spf=pass smtp.mailfrom=vampirebyte.ro; dkim=pass (2048-bit key) header.d=vampirebyte-ro.20230601.gappssmtp.com header.i=@vampirebyte-ro.20230601.gappssmtp.com header.b=eu+0WMt9; arc=none smtp.client-ip=209.85.128.100 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=vampirebyte.ro Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vampirebyte.ro Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vampirebyte-ro.20230601.gappssmtp.com header.i=@vampirebyte-ro.20230601.gappssmtp.com header.b="eu+0WMt9" Received: by mail-wm1-f100.google.com with SMTP id 5b1f17b1804b1-4393f6a2c1bso109305e9.1 for ; Sat, 08 Feb 2025 17:19:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vampirebyte-ro.20230601.gappssmtp.com; s=20230601; t=1739063990; x=1739668790; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=K8BBnPAzjKUysaikDDjAj3wAwJVVzR5ozu0VghxN9PU=; b=eu+0WMt9ZfI3mA+AUS6H4ZFfhxuUYhHUhv5nXNefs+vJOCqH7qQMdauv8CaEwWpN/L s6guxZ/KqSLoU4K1OETBnJ9uojDBYandWri5b+Dku6azx2UpR/+VXjLzETRIAigfGNCJ L1VHsv3NL1AePn174I7KwI8xyPsH/40OUix6i/nZQhwO/1ko74I8uyTfLUrMtm0yjSF8 2x/HuMYLON9VZNGQDjfX/e+dIz8WGYTcp90rPcmfPm9lNIc7SBAkPm0IAD7mDhpSHSUg D66hyDy9Me5ykc5kUuSJbTUM6CfGHNUCudsHl3Uv/6hNaoyQek0Cu4gTmn/JNCh6NdlL sdTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739063990; x=1739668790; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=K8BBnPAzjKUysaikDDjAj3wAwJVVzR5ozu0VghxN9PU=; b=oXaUghEWXotKqu9mKHR0OfDkiWBRFISYN7EVBoJKrUPIFXpYecS8+17EoX1a0Ng5+b nxe+3f3k/vjeOYujGqYJI3wyelIIq7vskCAoRLKHK5WRaItxqpuwUgbKhcy13Q6WACRV l9gHXxJ69mhGw+2tPYe0H2Er3CFPfAdXyIXudP8+2OL0EPIWTIwStIMUP4WXvD52/ycB LngQ0P6SMcUzLXqadlEWp7lVxbGLxbHjoX8wKX0bx3S0un5x+YV1z2Wpxne8hbeCni38 xVaCEQItpP5OU/WUu7W5MKdaQk16VYa4urGpelL4pnJkH2NQ7te1cvDhxm+qMEz76RuJ 7jbQ== X-Gm-Message-State: AOJu0Yys7RhM0tko67t9ckDu/J6lMOsl9saGMaTkfJMxFOt0Juz8DKnZ 8l8xIvzV7QxxtcWAP/5sG7cH+2RSGt9nivOB5roh3EJR99CXiRwAnH00AoomAJ4QbSy6UNeBcHK QBgmJSo5sVjFt0bSZdn1TO2F/tVMhhitdhf09TWS2 X-Gm-Gg: ASbGncvhRDvnJmYGRvsJNJVrdYD63BGc9oHx5JSNtyd+0MY/1d3oaZATiJ8K/dU7fe4 pj3mVbFfSWs9PkrCBPdPGLqzNQA5IptzNislm3tmTst1rTRlslxsxuLl0n/YMDvK1s376enUYcw uUe43uluChSmrwZUIVIq8ah0mdZ7TjhboiKqHWd7824Vx+TMbeUTsInSEtgz7hQ8hHXJ7qstLtN NWV10b1JK5I4MeudBAq3GW8XmMJ69dGxcFCLJd2En4rUoAe8GHPO+1g8kNhcHM8UZcn5NLHMnyX PLYflpphqdN1qrw/sJQR4LRWOByzAw== X-Google-Smtp-Source: AGHT+IF3RUwGlec9Zhsh94CaXW/wx9KKvZccyA1Fw/9jHlszajcWuoRNvemdwPNijSsFkSH/w+H2PIm/n6IO X-Received: by 2002:a5d:6da9:0:b0:38b:ee01:ae2 with SMTP id ffacd0b85a97d-38dbb233181mr8979755f8f.10.1739063989574; Sat, 08 Feb 2025 17:19:49 -0800 (PST) Received: from orin60.vampirebyte.net ([82.77.132.211]) by smtp-relay.gmail.com with ESMTPS id ffacd0b85a97d-38dd6880056sm149536f8f.16.2025.02.08.17.19.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:19:49 -0800 (PST) X-Relaying-Domain: vampirebyte.ro From: Razvan Grigore To: linux-wireless@vger.kernel.org, Felix Fietkau , Lorenzo Bianconi , Ryder Lee Cc: Shayne Chen , Sean Wang , Razvan Grigore Subject: [PATCH 1/4] wifi: mt76: add mt76_get_power_bound helper function Date: Sun, 9 Feb 2025 01:18:53 +0000 Message-Id: <20250209011856.6726-2-razvan.grigore@vampirebyte.ro> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250209011856.6726-1-razvan.grigore@vampirebyte.ro> References: <20250209011856.6726-1-razvan.grigore@vampirebyte.ro> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This will replace mt7915_get_power_bound function from b/mt7915/mcu.h, since we will need it also for mt7921 and mt7925 Signed-off-by: Razvan Grigore --- drivers/net/wireless/mediatek/mt76/mac80211.c | 11 +++++++++++ drivers/net/wireless/mediatek/mt76/mt76.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mac80211.c b/drivers/net/wireless/mediatek/mt76/mac80211.c index 508b472408c2..2c98cc42cd7e 100644 --- a/drivers/net/wireless/mediatek/mt76/mac80211.c +++ b/drivers/net/wireless/mediatek/mt76/mac80211.c @@ -1697,6 +1697,17 @@ void mt76_wcid_add_poll(struct mt76_dev *dev, struct mt76_wcid *wcid) } EXPORT_SYMBOL_GPL(mt76_wcid_add_poll); +s8 mt76_get_power_bound(struct mt76_phy *phy, s8 txpower) +{ + int n_chains = hweight16(phy->chainmask); + + txpower = mt76_get_sar_power(phy, phy->chandef.chan, txpower * 2); + txpower -= mt76_tx_power_nss_delta(n_chains); + + return txpower; +} +EXPORT_SYMBOL_GPL(mt76_get_power_bound); + int mt76_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif, unsigned int link_id, int *dbm) { diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h index 132148f7b107..96f98a0d55a8 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76.h +++ b/drivers/net/wireless/mediatek/mt76/mt76.h @@ -1482,6 +1482,8 @@ void mt76_sta_pre_rcu_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int mt76_get_min_avg_rssi(struct mt76_dev *dev, u8 phy_idx); +s8 mt76_get_power_bound(struct mt76_phy *phy, s8 txpower); + int mt76_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif, unsigned int link_id, int *dbm); int mt76_init_sar_power(struct ieee80211_hw *hw, From patchwork Sun Feb 9 01:18:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Razvan Grigore X-Patchwork-Id: 863744 Received: from mail-wm1-f98.google.com (mail-wm1-f98.google.com [209.85.128.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D3456FB0 for ; Sun, 9 Feb 2025 01:19:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.98 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739063994; cv=none; b=r9oP/lMjPIpQBwsaXhgbhhBC2Mx0kfZNCpbh0HxvPsD3hz8CmUfHEgAmwOkj0yrh+PN2piQVq+XWr9Z8gpG87ygAKqiH3xQ3MzoaqNnUfoos0d52cLIZ3M/jB5D0Uw3RvGZRWYD5hmY99eC8jKpDwFVO/IHIPc72yI4SwYUOn5s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739063994; c=relaxed/simple; bh=RSH7iZQ08CGiYxlazczvCAD1uUZ+E9pBNwrIDrs/gx8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=YpRqISgPfA5sAAHYao9p9W3lwhxR1Co0Be2vAIvfp604/+3HjjKPhJRw3jZoDcyB8MhK2UdQihRrirMFjqyN/prstO3O1UB5hrC3XMjJrY+S6aSUQq4tCr5f3ujj8nDQJrjd+XnDbRoei4gov73vnJvW3MzIphu5/LrTJ/5iFUs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=vampirebyte.ro; spf=pass smtp.mailfrom=vampirebyte.ro; dkim=pass (2048-bit key) header.d=vampirebyte-ro.20230601.gappssmtp.com header.i=@vampirebyte-ro.20230601.gappssmtp.com header.b=rrPs/ogG; arc=none smtp.client-ip=209.85.128.98 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=vampirebyte.ro Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vampirebyte.ro Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vampirebyte-ro.20230601.gappssmtp.com header.i=@vampirebyte-ro.20230601.gappssmtp.com header.b="rrPs/ogG" Received: by mail-wm1-f98.google.com with SMTP id 5b1f17b1804b1-43621d27adeso21696775e9.2 for ; Sat, 08 Feb 2025 17:19:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vampirebyte-ro.20230601.gappssmtp.com; s=20230601; t=1739063992; x=1739668792; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nGia9R3CLZOMOH3MyriTzmbtc0AB7bby0pB+e9OzNCE=; b=rrPs/ogGoQsAtJsQi332ADDEm+pnN443MSBrLikzAitiHftJ39VQ/QcvECv5KwJhh9 F6XjW+5zwzu4d4EfwV7HfxiLfjd/3HRDtKH1vAcm0d+j6/GEfGbWBUU5xeJPjZgY+m0A nJ8lQMPtvTvHznWQKn7FGnav9cHkVUb80PI5R1CGvYtc7ys+dDvSBf1VapDgOWRV5GnO XrVtqqdDYZoUr0REgBcCWs11kUeaBwq6N+uD1zfymrL5OrHHlNJEB9Wx4ie9AQQhSUUv WLHcQELf92qem7YNCmqEyuQCrnmrk/luN52YIm5z9VFEup5PxIBfx2HyAHzPWKOjWom8 /m8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739063992; x=1739668792; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nGia9R3CLZOMOH3MyriTzmbtc0AB7bby0pB+e9OzNCE=; b=owp8QEddv02OlILv+NXQMg6cAf6ilkZV1BGmzOLx/QyWxrDaj0ArcXv9/3WevZt9Mk yqZXDAfBbr5vTNLDR9TDldz/fnpyxss65sc1/4MJAJKREfAtucmrCvPMOusr0MxvuEYP BwzHTxF0fmJETVxXpyotF8WCkNjTNhtt9kke0PQhjldOEwte9/kgHbRkpZnKzCEQrDlK HYbREXQzB/Y12IpVaTsFdrEntaJoxdk9xb7oe5RAKRHuQb6P16jwb+1fGaw6ugxZfwhV 5pvK2VcLtavC9m4f2NncMv966Prae74/2KOHQd2t29Gc2uKj44dkO+AQUp9T//0v+/08 UqXw== X-Gm-Message-State: AOJu0Yzx3yxKJGknk8hV3OIr2D/vGI3IXWrn+oFsIgXZPY9WWIWScqHc kh1KYBHY92vSw9qZTzPiBELFN7BLnfVeXc3U9WLSzprlgz8eoc+HXeacu5EZ6GLvow/295wNIqc fG0CyOcVr7Ab+mr0XfjMuEfiRBaq1EyiEdq4D3xZS X-Gm-Gg: ASbGncvxzMtOu7hjasjNxWdEYpSystMMywfETWiGNKPUi2l3d0VGMxnuzd5qv6U/orH rPJ2GFbte30gxAXTxorvL+tA9/1E6QP7QW0hch4DaTSqyytNWbqIY2cm/WjHo9b/5pT5djVJCs+ JbgPbj+6Y5GUANHZdnHkC0DImxRY7DxttFk4R6GqGRFqyQxLcOMIDF7ntVUrqa4UcXoLb4MR4tT T6aopGMhIktLRTPWjakPtMWastGnj723RaR14zTgxgY4ysQR0mnbAjxiCxBHfhsWZQL+3BQOzkT FhxiRQ+ICTWOTrOEeofFwU4CsJ2WyQ== X-Google-Smtp-Source: AGHT+IEPLwl2LgXrlPom96yKFBQCQwPboziJbNjY4H44ZGhDK7kjNSk2vxC8tHk0nMuT+c5ZFds3mojI+pnO X-Received: by 2002:a05:600c:1911:b0:439:34d3:63c0 with SMTP id 5b1f17b1804b1-43934d365ebmr24417125e9.16.1739063991611; Sat, 08 Feb 2025 17:19:51 -0800 (PST) Received: from orin60.vampirebyte.net ([82.77.132.211]) by smtp-relay.gmail.com with ESMTPS id ffacd0b85a97d-38dd6880056sm149536f8f.16.2025.02.08.17.19.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:19:51 -0800 (PST) X-Relaying-Domain: vampirebyte.ro From: Razvan Grigore To: linux-wireless@vger.kernel.org, Felix Fietkau , Lorenzo Bianconi , Ryder Lee Cc: Shayne Chen , Sean Wang , Razvan Grigore Subject: [PATCH 2/4] wifi: mt76: mt7921: fix returned txpower Date: Sun, 9 Feb 2025 01:18:54 +0000 Message-Id: <20250209011856.6726-3-razvan.grigore@vampirebyte.ro> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250209011856.6726-1-razvan.grigore@vampirebyte.ro> References: <20250209011856.6726-1-razvan.grigore@vampirebyte.ro> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This bug was noticed by me and confirmed by many more people using this chipset with openwrt: https://github.com/openwrt/mt76/issues/783 It seems that for this particular chipset the mt76_phy->txpower_cur is never set, like in the case of other chipsets like mt7603, mt7615, etc. The driver is correctly calculating the TX power adjustment based on the number of antennas. However, the base TX power (phy->txpower_cur) is not being properly initialized or set to a meaningful value. It's starting at 0, so the final result is just the antenna gain compensation divided by 2. Signed-off-by: Razvan Grigore --- drivers/net/wireless/mediatek/mt76/mt7921/main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c b/drivers/net/wireless/mediatek/mt76/mt7921/main.c index 13e58c328aff..9e8961533fd1 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c @@ -1251,6 +1251,8 @@ int mt7921_set_tx_sar_pwr(struct ieee80211_hw *hw, const struct cfg80211_sar_specs *sar) { struct mt76_phy *mphy = hw->priv; + int tx_power; + struct mt76_power_limits limits_array; if (sar) { int err = mt76_init_sar_power(hw, sar); @@ -1260,6 +1262,11 @@ int mt7921_set_tx_sar_pwr(struct ieee80211_hw *hw, } mt792x_init_acpi_sar_power(mt792x_hw_phy(hw), !sar); + tx_power = mt76_get_power_bound(mphy, hw->conf.power_level); + tx_power = mt76_get_rate_power_limits(mphy, mphy->chandef.chan, + &limits_array, tx_power); + mphy->txpower_cur = tx_power; + return mt76_connac_mcu_set_rate_txpower(mphy); } From patchwork Sun Feb 9 01:18:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Razvan Grigore X-Patchwork-Id: 864055 Received: from mail-wm1-f97.google.com (mail-wm1-f97.google.com [209.85.128.97]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 69ACF8467 for ; Sun, 9 Feb 2025 01:19:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.97 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739063997; cv=none; b=iC8xX8WATTEBLa2bUS1Ah6DSUpRv43t457odyLXChe5PKdcLymYPGiikCbC2oT4Oa9xdRYTVXHSW+ptWxiDqPS6OqkZP91x0nD4KwS55NzskwgdITn9tdxsiauhg8g7+ujZgRG0cj2yrJSW1YqjZdxAb/9tQu9+OVNLERyjptzc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739063997; c=relaxed/simple; bh=aJVzLIVlswT72PYcwwWsvPPYuG1mhAmn1IlVBp8O61k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=cknl0IwuyGTy0Q/mBk++PO2aPpcvCJefzqwGS/p1f7Eo3fBKLCxJ/C1ykq86OgsXz8d4A3Tg9dsM+wGRjXqILdkZFU5/AkgiiMXegfE4SuSQbG4rbKMtK36kKR6+VNKRSHqABe8zBv3aemVSDIvC9bVu2fTtukMe61QK2uLWudw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=vampirebyte.ro; spf=pass smtp.mailfrom=vampirebyte.ro; dkim=pass (2048-bit key) header.d=vampirebyte-ro.20230601.gappssmtp.com header.i=@vampirebyte-ro.20230601.gappssmtp.com header.b=i3oqIRYG; arc=none smtp.client-ip=209.85.128.97 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=vampirebyte.ro Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vampirebyte.ro Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vampirebyte-ro.20230601.gappssmtp.com header.i=@vampirebyte-ro.20230601.gappssmtp.com header.b="i3oqIRYG" Received: by mail-wm1-f97.google.com with SMTP id 5b1f17b1804b1-436202dd7f6so36397845e9.0 for ; Sat, 08 Feb 2025 17:19:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vampirebyte-ro.20230601.gappssmtp.com; s=20230601; t=1739063994; x=1739668794; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5DtBQi3EvMzJm8DJY2Hn0bkfuTjo/bqg1QW1G8D+G/c=; b=i3oqIRYGjdCRhsy+885zhfAyNHV/jhV0cZr9hlV0RDOU15C0wJfOvM8Rq8rx3UhfEx vic6ZyNv60EWtN0ercnx3nCW/umbXgjQ9Hci+SI0s4XzLXoyuPTyterSNoYTFk1/d1QP RrLuvquOfhSfqqa2GeOCMWEuH2CnFJPUrWgXPFrBuugnnFEAlasoo6sPZO8BfQ0dN+qv MNpF7izdNscGmO8RBmUfOxwK3GjYO1ltXFCtVIGNA9Yap3dTC1o6N0m2T01t8feDUuBw DmcoYDLCpxcseCmSHZPGEwEHDvU+niRvhhcxE4HzeRNt1/ZkHpEUBhBCJzcD3n7qCaGz 9E9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739063994; x=1739668794; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5DtBQi3EvMzJm8DJY2Hn0bkfuTjo/bqg1QW1G8D+G/c=; b=F1aSWu+VNlWWI5V2P2RuT2uBG7wyd1IhoRHdfQ4Z39UlP/AFy/CfZDKNOaLhSHybmb lsl+Dj/zQJc0QErDgb9JufeeG/pYXn5o82mdNmvR0eQhjHYYqqOmFSCO26FIDMzfaVfB TNhwQhD910V2WBpqo5wsqz6eucj2hrmRZ6FUCplfD6q+6xkLhpiLWHVR21y94WoNAfMv 064Z+kM93BxhupTPp3O7/Gqdg4LJuyBOIDc+6MA4G5qJf7wrIMpKSzNRpWkNQeFisy04 8Mz+zTZqQIcUBKUOg2pHHp3umfBztt6WqCQ2pL4dypb5W3KnTebIMQTSnyR9DJMXB2Nx 8ksQ== X-Gm-Message-State: AOJu0YxM7IPHZMRK07KCtFrfm3+biVlVBdjFbIhir2yc1qeum73addAc 0bE0PhCzIkYJ64da85oByy8+gDXTpwDscHG+jhyHKiUoM5BptJF4GwzJ7i6ik0BIrosk52ITlMQ Xn6EdnNaGJaCvYVewUzQebvXSVB/19faeDTuFIEck X-Gm-Gg: ASbGncsfdpy8ycyz9z2RKru9Gzh4ybybVB0p6NIDuLQJqFMNJytKRQRYrsGlG8JjXUJ 8WRM6YTH2aJjcSvisKBg2jhNl5afarm5nTCpvfTSBiswqevhkmpWCNgBCMCDxRbQVkGuaVg3C8i 1m2ltG63k2KM6zz7OBwD2cqfjhSEWMkyCxq7AAhONuKpYR60StbmShk9f1qyOzMj7t3Py/FoecQ BiEArqJZ2i6LIgJfEsj6KVmApqtT70r8yzr43ksYmu7YtDFgkTQNcmkfg1r8heNyKDpde7V+OzS VaUvy3a8G4dqzuZ+xrjFQsvU7rU6WQ== X-Google-Smtp-Source: AGHT+IEY/DxaLC5DqptHxyKKI2NCtaq1VN7ZPhBpMsACsOMasP84fUMO+tdq31IU5ntQCPnGXuBUQ9R+zoWL X-Received: by 2002:a05:6000:400f:b0:38c:5bfa:a961 with SMTP id ffacd0b85a97d-38dc8d9840fmr4966400f8f.4.1739063993656; Sat, 08 Feb 2025 17:19:53 -0800 (PST) Received: from orin60.vampirebyte.net ([82.77.132.211]) by smtp-relay.gmail.com with ESMTPS id ffacd0b85a97d-38dd6880056sm149536f8f.16.2025.02.08.17.19.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:19:53 -0800 (PST) X-Relaying-Domain: vampirebyte.ro From: Razvan Grigore To: linux-wireless@vger.kernel.org, Felix Fietkau , Lorenzo Bianconi , Ryder Lee Cc: Shayne Chen , Sean Wang , Razvan Grigore Subject: [PATCH 3/4] wifi: mt76: mt7925: fix returned txpower Date: Sun, 9 Feb 2025 01:18:55 +0000 Message-Id: <20250209011856.6726-4-razvan.grigore@vampirebyte.ro> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250209011856.6726-1-razvan.grigore@vampirebyte.ro> References: <20250209011856.6726-1-razvan.grigore@vampirebyte.ro> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Similar to the mt7921, seems the code was copy-paste from there. This bug was noticed by me and confirmed by many more people using this chipset with openwrt: https://github.com/openwrt/mt76/issues/783 It seems that for this particular chipset the mt76_phy->txpower_cur is never set, like in the case of other chipsets like mt7603, mt7615, etc. The driver is correctly calculating the TX power adjustment based on the number of antennas. However, the base TX power (phy->txpower_cur) is not being properly initialized or set to a meaningful value. It's starting at 0, so the final result is just the antenna gain compensation divided by 2. Signed-off-by: Razvan Grigore --- drivers/net/wireless/mediatek/mt76/mt7925/main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/main.c b/drivers/net/wireless/mediatek/mt76/mt7925/main.c index 98daf80ac131..9da7897c0267 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/main.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/main.c @@ -1656,6 +1656,8 @@ int mt7925_set_tx_sar_pwr(struct ieee80211_hw *hw, const struct cfg80211_sar_specs *sar) { struct mt76_phy *mphy = hw->priv; + int tx_power; + struct mt76_power_limits limits_array; if (sar) { int err = mt76_init_sar_power(hw, sar); @@ -1665,6 +1667,11 @@ int mt7925_set_tx_sar_pwr(struct ieee80211_hw *hw, } mt792x_init_acpi_sar_power(mt792x_hw_phy(hw), !sar); + tx_power = mt76_get_power_bound(mphy, hw->conf.power_level); + tx_power = mt76_get_rate_power_limits(mphy, mphy->chandef.chan, + &limits_array, tx_power); + mphy->txpower_cur = tx_power; + return mt7925_mcu_set_rate_txpower(mphy); } From patchwork Sun Feb 9 01:18:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Razvan Grigore X-Patchwork-Id: 863743 Received: from mail-wr1-f99.google.com (mail-wr1-f99.google.com [209.85.221.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3BD65C2FA for ; Sun, 9 Feb 2025 01:19:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064000; cv=none; b=t3Au3EDms63slAJgZ1DDE2X0XC4H7VeW88k7jih4cHX86P2uK1PgkhSbwwtZM2eIL2a819tfiKPVY0oMrgi4YMSo7unAzhPU5f7VKxrJdLgFpFjvMq2sSfgnBkfbosV42+19J1CtrQ3DrcCsMoG+Ievc1n2fDqyLmSZAr0Cwpys= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064000; c=relaxed/simple; bh=t8pRwyb5iqsvgi8w7U/f1jiK1/gjNAJI+lhEKoc8inU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=duju+ui7O++0u9TZgUdTwq2T4Avpt1PZs320oBScb427kOMZmdYzvRtDY8jL6b3h0H70y/mh1e2bLnUQV54k0Xt6RQouncwUs+Tn/XcCZl4Tb8LtYD6d/3GO0w4N9f1i5p8PTTcaJuC93vxGqAb5xcV5UL1kCFQI497l1c61Ut4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=vampirebyte.ro; spf=pass smtp.mailfrom=vampirebyte.ro; dkim=pass (2048-bit key) header.d=vampirebyte-ro.20230601.gappssmtp.com header.i=@vampirebyte-ro.20230601.gappssmtp.com header.b=a9nYADgO; arc=none smtp.client-ip=209.85.221.99 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=vampirebyte.ro Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vampirebyte.ro Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vampirebyte-ro.20230601.gappssmtp.com header.i=@vampirebyte-ro.20230601.gappssmtp.com header.b="a9nYADgO" Received: by mail-wr1-f99.google.com with SMTP id ffacd0b85a97d-38dcb33cba1so892121f8f.2 for ; Sat, 08 Feb 2025 17:19:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vampirebyte-ro.20230601.gappssmtp.com; s=20230601; t=1739063996; x=1739668796; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lZJKFXpmv9049aKXNRWNUIQUMoQOSvys/GDmEYCaXYU=; b=a9nYADgOI97a/AQWanFwyMfF7FdOgXsh7qebvJJUw+nEZTxWAvILXGGoRIO2WDtKZw LuW/3cSRbRwDCVU2b2/SrC789/QLEf4GC2uu28+8pUNbmPexeU/hbc5cNl0IMBG++5W9 Xbjde4HV2qrtiXtFCG5GvxWeUFTDlmCNCcmQS9a1vk/tONd8+uM7zFLYY23Z+S1pEkHU Suo9D+zIL9bSU2nFSDOIAJAolhJG9F6O4AVElCE9TqgQOjBoAEHZ7Dl+JYfBonX9Xs+h M/AQJsW1yIoc2b6ufC7ucbhuXrlKm8k7VrEC0BkWv/gsZj/QmaQVGPtscBP3qkaTjihW lKng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739063996; x=1739668796; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lZJKFXpmv9049aKXNRWNUIQUMoQOSvys/GDmEYCaXYU=; b=HL7hxG2/GlEMuG1LRexRenjXEfdVzcUfFrKDNOhkTANpeze43Q6bSJlQ0sRSgbY4sf jQYLU7gJzK2lEmvN6H/sHmT2/xpjJaudm0fFUV0OkmSs1r80RBO8tmJiTXBomVzNnJvO 0Ajx4Q/VovyHPEyN4hBevXpYaV2B6lP/v6cPcQ8yX8710wEhBS72K3U8to9QqEz8Kyv4 aa9XWve6bLWiyS9yv8RFRyRQjPqopKiqq9muE7TpBbwxmu4r58qaOi3G6matnGJb9wNs L8l4cVA/k8Yk+jK9AmjR+4GKTCUVq0bioeY4MYiSUNENlJK7Xsh4FZDXM4zRoI5rCuH0 pvyw== X-Gm-Message-State: AOJu0Yz248iqLyw2UZAW5SPEzfJnFjSfKC0bSXYEF5T8zQ00/M1U9S0M L/oE39+NIOqHjME0Qz5yFwZymh8ZvOAb47lO7noOEFu6k+3fbThqNHQjqOOxXBAV2UtkqILu0KF 2Oh41dOxYVMS4FLvjZo6EuTtG6ojvbMxiLMFm8eef X-Gm-Gg: ASbGnctH5sco15/5kesKqxpHH3YQREUoM4FqXoYZ23oiSn7qMpoQxo3G4CPOt1+1pLT +1cVj3FSsFAzF084Os8Hp9i318HJ0xgkNU9p8OwS7vmALoIc5Gs9jikJCQFA8gbKv3ZdwyJWJeX 4L5fZcuu2GrW5sqZEXmNSBV/HFqXve8X7mg910F5AHeI7XfFQpbr3ITdiHZeG/4mZGZvVEvx8sI hNsQgEc9+D9LajzigpeRYDyuyfzpQEybS45n2ZEB1kZlhfwoa0B4DGa6mil/NDt2uPl6ZEys3SR hoLgauvz59Ao0mzuVGRqTLbTNf6Wzw== X-Google-Smtp-Source: AGHT+IEY+9+nVTrq70uyLYn+6ztmpfLthD1RUyUHzVRSYm2Rhfe/mJx57VPZvj3Qr7NMmRM/ciGe5cwR0+uy X-Received: by 2002:a05:6000:1865:b0:386:1cd3:8a03 with SMTP id ffacd0b85a97d-38dc9346494mr5769422f8f.32.1739063996430; Sat, 08 Feb 2025 17:19:56 -0800 (PST) Received: from orin60.vampirebyte.net ([82.77.132.211]) by smtp-relay.gmail.com with ESMTPS id ffacd0b85a97d-38dd6880056sm149536f8f.16.2025.02.08.17.19.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:19:56 -0800 (PST) X-Relaying-Domain: vampirebyte.ro From: Razvan Grigore To: linux-wireless@vger.kernel.org, Felix Fietkau , Lorenzo Bianconi , Ryder Lee Cc: Shayne Chen , Sean Wang , Razvan Grigore Subject: [PATCH 4/4] wifi: mt76: mt7915: cleanup mt7915_get_power_bound Date: Sun, 9 Feb 2025 01:18:56 +0000 Message-Id: <20250209011856.6726-5-razvan.grigore@vampirebyte.ro> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250209011856.6726-1-razvan.grigore@vampirebyte.ro> References: <20250209011856.6726-1-razvan.grigore@vampirebyte.ro> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Refactor for making use of mt76_get_power_bound instead of the specific mt7915_get_power_bound, since we need this for other chipsets as well when calculating txpower Signed-off-by: Razvan Grigore --- drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c | 8 ++++---- drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 4 ++-- drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 12 ------------ 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c index 578013884e43..db8560f7e657 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c @@ -1084,13 +1084,13 @@ mt7915_rate_txpower_set(struct file *file, const char __user *user_buf, return -EINVAL; if (pwr160) - pwr160 = mt7915_get_power_bound(phy, pwr160); + pwr160 = mt76_get_power_bound(mphy, pwr160); if (pwr80) - pwr80 = mt7915_get_power_bound(phy, pwr80); + pwr80 = mt76_get_power_bound(mphy, pwr80); if (pwr40) - pwr40 = mt7915_get_power_bound(phy, pwr40); + pwr40 = mt76_get_power_bound(mphy, pwr40); if (pwr20) - pwr20 = mt7915_get_power_bound(phy, pwr20); + pwr20 = mt76_get_power_bound(mphy, pwr20); if (pwr160 < 0 || pwr80 < 0 || pwr40 < 0 || pwr20 < 0) return -EINVAL; diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c index 9d790f234e82..3643c72bb68d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c @@ -3323,7 +3323,7 @@ int mt7915_mcu_set_txpower_frame(struct mt7915_phy *phy, if (ret) return ret; - txpower = mt7915_get_power_bound(phy, txpower); + txpower = mt76_get_power_bound(mphy, txpower); if (txpower > mphy->txpower_cur || txpower < 0) return -EINVAL; @@ -3373,7 +3373,7 @@ int mt7915_mcu_set_txpower_sku(struct mt7915_phy *phy) int i, idx; int tx_power; - tx_power = mt7915_get_power_bound(phy, hw->conf.power_level); + tx_power = mt76_get_power_bound(mphy, hw->conf.power_level); tx_power = mt76_get_rate_power_limits(mphy, mphy->chandef.chan, &limits_array, tx_power); mphy->txpower_cur = tx_power; diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h index 49476a4182fd..092ed504a8f2 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h @@ -515,16 +515,4 @@ enum { sizeof(struct bss_info_bmc_rate) +\ sizeof(struct bss_info_ext_bss)) -static inline s8 -mt7915_get_power_bound(struct mt7915_phy *phy, s8 txpower) -{ - struct mt76_phy *mphy = phy->mt76; - int n_chains = hweight16(mphy->chainmask); - - txpower = mt76_get_sar_power(mphy, mphy->chandef.chan, txpower * 2); - txpower -= mt76_tx_power_nss_delta(n_chains); - - return txpower; -} - #endif