From patchwork Fri Jan 24 17:17:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roopni Devanathan X-Patchwork-Id: 13949779 X-Patchwork-Delegate: johannes@sipsolutions.net Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CEB411D222B for ; Fri, 24 Jan 2025 17:18:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737739136; cv=none; b=f5F55ugtWlcUVyV/nR3keleyQzGxZsjynQ9zFX78IqUarCXKaGT+BW2M21qpBqwKFx/8OpW8UrRgsa/dyXojYeeBTZaxGQ1oUXZaM/gjXfVvSYcryNXoeobzm4MdvbEIE+UUIAyYU2bSoDarc/t+lmxmrNLdAwroeYnmUjtrzq8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737739136; c=relaxed/simple; bh=br3bAxU8SHf1IQdyBMDfzT4ivl2BdCTkUMHAarYVLMk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=e8/QFZ9j7KmHv4zk3IjPwpZa8fbc0oBe8UrwPyFnP700AanmHQY6V/rHJqKsQEZaOzRxOkuetru2jR8N9sjjjmx7zhGghAPTVO4BKDO35ni86KlcOamJCaoS0XSKxiJZUKWdIobc8Y7rxPQSgcS3CVt70zxsu8dNofLexQmc9YM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=L/pvVb4W; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="L/pvVb4W" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 50OAlvKj031260; Fri, 24 Jan 2025 17:18:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 9/FolBaqxax0dO5vPvpK29kXI5rywEFdHAaxt1IhD9k=; b=L/pvVb4Wi3ZUQaHp mzzbsqw7dfrre2sV3iOAjFD7JKqVyDnl7rpGeOpR6Cbmnx2gkhSlrii+hgquEerM g326h6jy+3pdPXkFmapUyVCVs2YuFIdryegC4h8heH5hZTPp11o9LjNZB3qA5pHj 9Y9uxK0f/cpuv9F79nJw9WpTznHCTD2WO82Wbu6Rsx++Bha3pxgeIk6GCai4kzUO m7sNVTJVMHejxsmmYckIAaWofKqi7ShdnNFOT6L8MpdC/6qQIfuVT2sRKw68yHMp YsjKtixod8KRpBOzaE6wYak9f0xuozbcvH2lT4su78stnuoSi+KaR7LzL6I0hAe8 PDnHBg== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 44c9e20yc3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Jan 2025 17:18:51 +0000 (GMT) Received: from nalasex01c.na.qualcomm.com (nalasex01c.na.qualcomm.com [10.47.97.35]) by NALASPPMTA04.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 50OHIoEJ022491 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Jan 2025 17:18:50 GMT Received: from hu-rdevanat-blr.qualcomm.com (10.80.80.8) by nalasex01c.na.qualcomm.com (10.47.97.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Fri, 24 Jan 2025 09:18:49 -0800 From: Roopni Devanathan To: CC: , Rameshkumar Sundaram Subject: [PATCH v2 5/5] wifi: mac80211: set tx power per radio in a wiphy Date: Fri, 24 Jan 2025 22:47:56 +0530 Message-ID: <20250124171756.3418663-6-quic_rdevanat@quicinc.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250124171756.3418663-1-quic_rdevanat@quicinc.com> References: <20250124171756.3418663-1-quic_rdevanat@quicinc.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01c.na.qualcomm.com (10.47.97.35) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: oSXjcRWbTYfueGFyQphdGWKoEkJADqMZ X-Proofpoint-ORIG-GUID: oSXjcRWbTYfueGFyQphdGWKoEkJADqMZ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-01-24_07,2025-01-23_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 mlxscore=0 priorityscore=1501 malwarescore=0 adultscore=0 spamscore=0 impostorscore=0 clxscore=1015 suspectscore=0 bulkscore=0 lowpriorityscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2411120000 definitions=main-2501240120 From: Rameshkumar Sundaram If set tx power is being done without a valid wdev/sdata then the configuration applies to the radio but currently it is being done at wiphy level(i.e. to all radios of wiphy) since radio identifier is not available. Use the radio_id argument of ieee80211_set_tx_power() to identify to which radio of the wiphy the configuration should be applied. If the wiphy is a multi-radio wiphy(wiphy.n_radios > 0), validate the radio index of link's channel context against the radio id provided and apply the configuration. radio id value of NL80211_WIPHY_RADIO_ID_MAX(255) indicates that radio index is not mentioned and the configuration applies to all radio(s) of the wiphy. Signed-off-by: Rameshkumar Sundaram --- net/mac80211/cfg.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index f86350b3a668..ed769672ea77 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -3079,6 +3079,7 @@ static int ieee80211_set_tx_power(struct wiphy *wiphy, struct ieee80211_local *local = wiphy_priv(wiphy); struct ieee80211_sub_if_data *sdata; enum nl80211_tx_power_setting txp_type = type; + struct ieee80211_chanctx_conf *conf; bool update_txp_type = false; bool has_monitor = false; int user_power_level; @@ -3154,6 +3155,12 @@ static int ieee80211_set_tx_power(struct wiphy *wiphy, if (!link) continue; + if (radio_id < wiphy->n_radio) { + conf = wiphy_dereference(wiphy, link->conf->chanctx_conf); + if (!conf || conf->radio_idx != radio_id) + continue; + } + link->user_power_level = local->user_power_level; if (txp_type != link->conf->txpower_type) update_txp_type = true; @@ -3174,6 +3181,12 @@ static int ieee80211_set_tx_power(struct wiphy *wiphy, if (!link) continue; + if (radio_id < wiphy->n_radio) { + conf = wiphy_dereference(wiphy, link->conf->chanctx_conf); + if (!conf || conf->radio_idx != radio_id) + continue; + } + ieee80211_recalc_txpower(link, update_txp_type); } }