Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp404777ybv; Fri, 7 Feb 2020 01:29:19 -0800 (PST) X-Google-Smtp-Source: APXvYqyKiemPYpjAcKEpPxU7vmJIPdtzzFWU8pVaILv+sHCY0nyXKolIY36+cmW7a9CH9SizCBQ9 X-Received: by 2002:a05:6830:114f:: with SMTP id x15mr1877904otq.291.1581067759263; Fri, 07 Feb 2020 01:29:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581067759; cv=none; d=google.com; s=arc-20160816; b=xheL2Fnx9PlIMMl5pfos54xeD68z/kT0oQrRJ1ymAQZtrS+hQ4j8UQ+lS5JAbraXd3 GFVnBnfXMHFxENr7jW0CDNepPGiswOxt34Gf7NtoEGjIAjI4IMHyKjdF+bsHfWbNyFYh O9/94xKAhA/D+adSo6u/a4ciqsUJGViL0z2ZYzNhbkSnz42lSE/k3VL6V1OIYe/C+NBS Q3CohRG3p42o0k/VI1ZtNVi0AehoucRT8Wdt7Y8mCJ3N5wrOFX4pFDwyNOCtTpYakSKH 5Yh05ejL1RxB4eHR43UT+9i/1eu7ThdOTJ9iDCICn3mBcKNseeHw43uW5hl2qaxhE+Hh hzXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from:authenticated-by; bh=W8e+A/U7MMVXibrLSERKkuMF496OVwdo+0gBxgqSN4c=; b=wel48qiHNTQK6KOJ7L/K2rpjYaBOMGLgmWBpbPKRVYIRC/V3HiHGJtj5rVfVQxKqIN mKt3d9Z5Yr7hVH1oAkH36CQefjhSWInxwKY6JCJPWuw0IZPoZ3XPVGOkZXGNwbNbp3A8 iEzxstlqGmGmc1XS283vkVlM0lM8cs9efWGyWXPJSov1nAjC3T97tzyoKZynASCxcVDb MtLs+nVIzlEtbN3CJrgI5S5pqhu+xt2zyjei3n5EAMkoBPJBjw/iA9UeAl5gD+eKp3Hl b+/+lG8Xf3q4fmozTY4r7OdY9ZQM65glmBTpZ02tTYlvRnbVX7zD3781K51J5jostf/q Wm4Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m25si1461481otn.208.2020.02.07.01.28.56; Fri, 07 Feb 2020 01:29:19 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726674AbgBGJ2y (ORCPT + 99 others); Fri, 7 Feb 2020 04:28:54 -0500 Received: from rtits2.realtek.com ([211.75.126.72]:44676 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726417AbgBGJ2x (ORCPT ); Fri, 7 Feb 2020 04:28:53 -0500 Authenticated-By: X-SpamFilter-By: BOX Solutions SpamTrap 5.62 with qID 0179Sk35018548, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (RTEXMB06.realtek.com.tw[172.21.6.99]) by rtits2.realtek.com.tw (8.15.2/2.57/5.78) with ESMTPS id 0179Sk35018548 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 7 Feb 2020 17:28:46 +0800 Received: from RTEXMB03.realtek.com.tw (172.21.6.96) by RTEXMB06.realtek.com.tw (172.21.6.99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Fri, 7 Feb 2020 17:28:46 +0800 Received: from RTEXMB06.realtek.com.tw (172.21.6.99) by RTEXMB03.realtek.com.tw (172.21.6.96) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Fri, 7 Feb 2020 17:28:46 +0800 Received: from RTITCASV01.realtek.com.tw (172.21.6.18) by RTEXMB06.realtek.com.tw (172.21.6.99) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.1.1779.2 via Frontend Transport; Fri, 7 Feb 2020 17:28:46 +0800 Received: from localhost.localdomain (172.21.68.128) by RTITCASV01.realtek.com.tw (172.21.6.18) with Microsoft SMTP Server id 14.3.468.0; Fri, 7 Feb 2020 17:28:45 +0800 From: To: CC: , , Subject: [PATCH 0/8] rtw88: Add SAR implementation Date: Fri, 7 Feb 2020 17:28:36 +0800 Message-ID: <20200207092844.29175-1-yhchuang@realtek.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.21.68.128] Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Yan-Hsuan Chuang Add SAR implemention that allows driver to set SAR power from three different sources: 1. From vendor command 2. From static SAR configuration 3. From dynamic SAR SAR sources will provide driver a list of target power in dBm which should be translated into power indexes. Then driver will just treat those indexes as another power limit to force the power output being lower then SAR restriction. For either vendor command, static or dynamic SAR, driver stores the values in tx_pwr_sar_{2,5}g[regd][path][rs][ch]. Whenever the channel is changed or a new SAR table is applied, driver will configure the power indexes. To check if SAR power is configured properly, append a column to debugfs "tx_pwr_tbl". But for dynamic SAR, the profile ID may change, so add a new debugfs "sar" to display SAR power. Ping-Ke Shih (8): rtw88: sar: add SAR of TX power limit nl80211: vendor-cmd: realtek: Add vendor command to set SAR power limit rtw88: vndcmd: sar: Apply SAR power limit via vendor command rtw88: sar: Load static SAR table from ACPI WRDS method rtw88: sar: Load dynamic SAR table from ACPI methods rtw88: sar: apply dynamic SAR table to tx power limit rtw88: sar: add sar_work to poll if dynamic SAR table is changed rtw88: sar: dump sar information via debugfs drivers/net/wireless/realtek/rtw88/Makefile | 2 + drivers/net/wireless/realtek/rtw88/debug.c | 30 +- drivers/net/wireless/realtek/rtw88/main.c | 10 + drivers/net/wireless/realtek/rtw88/main.h | 26 + drivers/net/wireless/realtek/rtw88/phy.c | 173 ++++- drivers/net/wireless/realtek/rtw88/phy.h | 3 + drivers/net/wireless/realtek/rtw88/sar.c | 778 ++++++++++++++++++++ drivers/net/wireless/realtek/rtw88/sar.h | 15 + drivers/net/wireless/realtek/rtw88/vndcmd.c | 131 ++++ drivers/net/wireless/realtek/rtw88/vndcmd.h | 10 + include/uapi/nl80211-vnd-realtek.h | 72 ++ 11 files changed, 1218 insertions(+), 32 deletions(-) create mode 100644 drivers/net/wireless/realtek/rtw88/sar.c create mode 100644 drivers/net/wireless/realtek/rtw88/sar.h create mode 100644 drivers/net/wireless/realtek/rtw88/vndcmd.c create mode 100644 drivers/net/wireless/realtek/rtw88/vndcmd.h create mode 100644 include/uapi/nl80211-vnd-realtek.h -- 2.17.1