From patchwork Tue May 26 17:18:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298247 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=IdoQF/Kg; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49Wgff2RCbz9sSs for ; Wed, 27 May 2020 03:18:50 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729950AbgEZRSt (ORCPT ); Tue, 26 May 2020 13:18:49 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729597AbgEZRSq (ORCPT ); Tue, 26 May 2020 13:18:46 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gHcNDapIfL7pY5cswImPBCqr7KmKing4sj3MvGkFOfQNA1E15kAo13FfGjZgNnD/5BRBn3sHzg4BBNeNQthdQ32Foxd8tXFoSYO94wfvXoZ3l6W0vaQqoFqU316pXfxFWu7ht/D2YKMwb6xDMrrCe3PvNj7hF9vUBuBmhk32mlVaG7M2+OQWcF3fLKTCKw3OCNHkq0k7rqZlVxnrYpkt08kYF+Obzc1rH8IC2VLyaoCaVyHCrxtcm1iIfwXmU3oVoErwSJQ5NSDVUpWDYjyDg9h/6cGvIxgUDHMQivDV47YZvfJ2c4wEwRASsQIrWJ87GLA9JV3hFcO+hl9U+ALxrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1CZJt2AGW/b/5DPxtwNsVYH8u7aWDDxha8wH4ZgAfcE=; b=d0AAadWpf6RbkwZ/XTu9/APIil0Z+EUdoc8WAUMfSnRpnbe78w9bdNtpwTkWtmcEaubvLIT4ae1s1qUsNjUQ0P0QR0P+xtoGTA3jdNv34hj/h3FtLV6CUATxkuO3MwyM8t/ehlRCdhyMVG+gCGIDJQSO1vA2486UcbXzvM2QXidRD3Qwr+oSGAxKD+jxcyK9tuw2PnVG2R2c8dZNbI6goNcLWGw3LY2yQpDQT8S1Y0nvzG3/YBKpWomYSmaqTVFX1gbNHk7myfHOU7mNkzoqiGwrRlRsY04z8cZnsZt4y101Wg/gDMeL02eGtTFZCpb7Yw3Nk/DPfk0H3iE8YWz3yA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1CZJt2AGW/b/5DPxtwNsVYH8u7aWDDxha8wH4ZgAfcE=; b=IdoQF/KgoBE/v/xYr+zYAbP+g5xt20g9O60hJs54G2RLBHWQSFQ1W2cMsBkJNiHouI3QiMxz+J0h+juuQxZVpvPKx6K6XnnzO49EqUYp1NxMkzzE450nSI/rI4AN1lny+Yn59F6zhLnw9LWD+MAMpYXa2PU2nxrydO8qz2vjwnc= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:42 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:42 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= , kbuild test robot Subject: [PATCH 01/10] staging: wfx: drop unused variable Date: Tue, 26 May 2020 19:18:12 +0200 Message-Id: <20200526171821.934581-2-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:40 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3499145d-abfa-464d-1b75-08d80198d6aa X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:480; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JCcoyUnV5sbzS5jL00Qv7cXnTMDOVzAGsttksPC2OPigPJvCuSTr860imHCs1dolT5ybDr7ghpohHTeEqdKfTCeVvQUbJprv+hcXEWeJCBsOVu59aFG8JiJcycvz+HgpJH6DpVj0nSQgHP8HszyWGAsO8/XxpGEhmYv7gA+gZ2jhIQhL/W8kvYQg9zExwsEuUVHDk0YpDIRFEh5uSNtMgBqmyXtqeLi1uCW0OzNwIYa326YJta306YYMxK26V17Vj6jh2gpXOcMSoI81MEYjUGnWq3xDAaMwhCSEWFcpVWmXGv8z95NaILl4gNP5419h8/8pX2pYeoxgjJJSSjn4PA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(1076003)(86362001)(6666004)(186003)(16526019)(5660300002)(66574014)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 1NyQAGHDjAppSytKdK5AmyBQPMMy7NH38A2Tr93ZwoCb7c1PDlcVfpMGae1WqAELkx0PEZYLQsuVU+w7rUh4yIt1DFpvEmGo9TDMZZg3T8F6scWtFkH1ExJwHJyOg9t62ZeG7p5lmDgQKDa1X4TNKd2GPENRbE2HgLG7LT6KG5UB/XZ1J+VZ3wgwB6pZvrC7Y1GQZ4Y8wVtMIumjnKBJ/kYt0pGO1vgMnIHLPZ+EiOSgLjPx0pey4GX+eaMH1jpo3fF60uikJ3Oxhev2K+Z0B9QoO5mH8s7HUAWZw2exXs+tbeOZgJqWvuxlJ+SaRlZ0oaELDpDpp5xOVkDc8k56NB02GQtoe3Vc2NYMe6utZxxY6wREVxFYdX8/8PqURFV9zkGsYZC0A7rzVxCuGodKc39YiTELV1pPNnOI/5GoX5vLabTvrTwlgv1Uls3VSnDO55KKKRL2yqUufKVHoXKCwOhPf795bQLwjhCM7C/9l4rTW07Xj/Z+Ey0LFf3qUYNIVT6GQsVyQYFvUwzvFX5SAmrwisl3CYyBOhNDnC584tA= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3499145d-abfa-464d-1b75-08d80198d6aa X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:42.2593 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xaD2WmsY4gswMVMQNHPtNIplcxRUqWdijS3s+VurMNEID5aEcuvhIU1s5h6uThGVnGrLsFI92I6zA+uje+21Qg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller Since the commit 3f84adfe1d7ae ("staging: wfx: remove hack about tx_rate policies"), the variable "count" is no more used in wfx_tx_policy_build(). Notice that there were two instances of the variable "count" in wfx_tx_policy_build(). This patch also solves this cosmetic issue. Reported-by: kbuild test robot Fixes: 3f84adfe1d7ae ("staging: wfx: remove hack about tx_rate policies") Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_tx.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/wfx/data_tx.c b/drivers/staging/wfx/data_tx.c index a82f00f8f17bd..a9eddd6db2b5d 100644 --- a/drivers/staging/wfx/data_tx.c +++ b/drivers/staging/wfx/data_tx.c @@ -43,15 +43,10 @@ static void wfx_tx_policy_build(struct wfx_vif *wvif, struct tx_policy *policy, struct ieee80211_tx_rate *rates) { int i; - size_t count; struct wfx_dev *wdev = wvif->wdev; WARN(rates[0].idx < 0, "invalid rate policy"); memset(policy, 0, sizeof(*policy)); - for (i = 1; i < IEEE80211_TX_MAX_RATES; i++) - if (rates[i].idx < 0) - break; - count = i; for (i = 0; i < IEEE80211_TX_MAX_RATES; ++i) { int rateid; u8 count; From patchwork Tue May 26 17:18:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298248 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=i25SRKtq; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49Wgfk1BMTz9sSk for ; Wed, 27 May 2020 03:18:54 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388412AbgEZRSw (ORCPT ); Tue, 26 May 2020 13:18:52 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728581AbgEZRSt (ORCPT ); Tue, 26 May 2020 13:18:49 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G/fVUOfaAYyGP67N8t9LwsYgeHiaLUOd8S1YO91Ks+9qniDqEEdnxe+Ed+6ptiHXi5VS+U0GL3d5GKBAc0ujuNFpKKAs0HMdbS47EUoS4SbtZxtfTteJcj3p16/c6pPA6/sYw1l+OPxJxYBLyC/uhMlwdqumylCy8b9selmyi74/yXriw/4l0eNDujw08gIP1krWA5h8MbX7PynfGz4jvjufXAQK0+vqHzUJTsDfaYroawKwA5nlWkOPkHpsuBpd/Xn0cxcZfk7KFUP0YdDPRMZ2M8/ttuchWxL1/qClDX3g/lCNuFaiYzs+FoZu0BiPrRCmVYjyf9/qSOHD3Wqm8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hXgidvw+Mz7TSwBqmvcHr3PzNIIvZQCjk1Ly0ofk6rU=; b=iJV3ULEQ3EjckzSSa65TJpJPJJ9NXZfOVkyMzt9ojRaGkIlBoJU+Zx2At6Gv1Bz0W5Jl+x3pHg+AKhJZhwR+oM6E5iMV2cXJ2m9j0Hur4c72dyfDf6izOfXJ4bOJ1e8Y6GeVWD/SwQqnNbE8Iyi20R+WBjoWvxVLNrbiM1JJfxD+eN+Iq4kT4OAF9HYOU8LkASpo9g0gOfklr4ti8sSiejYnBc0InkaYP8Ua72zEZu3HImmaWvg3YkhaH+k1ULNh+PEvzY+uFRPH4uL1hWfthRjNdHZVdJGy8Y+rLiOsATfTSPZnaJ+RfQPPZ/1L91CDV9k99GOa/+bMbvyE+PF2wg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hXgidvw+Mz7TSwBqmvcHr3PzNIIvZQCjk1Ly0ofk6rU=; b=i25SRKtqqTYZKjgBWH4Z+d+o/4eY0hamn/ZK/Oc3bcZcPUwkKplRmlCUjCRZmJnojW9IUfBd1FwElSXd1yu8n/J6jukwXy6Vzc3/ARKR9vPDGIafH7T9nnfawBi06Am3GOdLcf0pWUP3g52VFitONyMgiORVS0XAtXMH9rm/sYM= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:44 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:44 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 02/10] staging: wfx: do not declare variables inside loops Date: Tue, 26 May 2020 19:18:13 +0200 Message-Id: <20200526171821.934581-3-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:42 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 57bf857b-c6ad-4dfb-4a0c-08d80198d7ac X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rXHihTSqJShZmm9/Xpuc6WFdm9Md96uDFxnm9bEb6bCizHmmbcV56iMLhAft8e7YLZCTs6izLJHnQdiu7fsE0FYGhX55vRT51kwU+SGnlaJEdoSwj8bVLGnHF2KLBlK117cWlNjYdXejoNUHc8cbaBxrSq1FhMB2TbBeToYtsdwIzDyjsynISE1rnlaGE03iG6sRQPN4ZK7HMJCJEUZySC8A13PcMqKS73DXDHgShfe+cEgWlnRXlrtSIf72vwCLIFR6FHYwHzMjygGC9aYCwv5Zxwebv36QN4b4A1St+wle0wYCAsGISMXl1YqTPWm39G/mLaTKBhBNyH1SXGCRGw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(107886003)(1076003)(86362001)(6666004)(4744005)(186003)(16526019)(5660300002)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: goLoIE31bZ2/c6NfW14prxmKv/4nc+578q5XVoJFtTROyOJtYD5B5x3ph8PYAvix/txF71T8NQkK89PGqCVfquH/fLYqXwpW13UP3IV0L98wvIq58noM/HU4cr0OaL4aEIBY6c8XC8bjHAFmmiQUegnf42UtgnGG/ocl/K/x4YIXOPzqZ4ju8hhy0ZBRjsj8dGwtIRFlFseJkXsT2CgYxFIp5DP0rQ2wQ3UV0YBjftmfUXWlRMhCRkNzJj74wsnAQYCTLVbu+C/aEo6aenMdCRkCFPUt8wt8zLo8jOMT0mJXtE447VQFffF9dt8lW6+BPpc2wfE98mzTc5bOQbVV4q3qEgODZeGeaP+F27F32LuPV70+tpDFRuX44az2NwIC1iTTVG5e+9ggxKlTaCbRhFANrskoFdzDhfQBQOvSWD+hCd/CVrYgAoLJ6e6HdshLMcnmsraAvPsseBsAdF/1YOm9/Y1PYV9gsCOrj1EJ7MH5bjw4BSxtsFU0Ldj/8yXs/bJ7H0cxfrRdr1jCPfYCUImVXhodXH+XblCAVCgWg1U= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57bf857b-c6ad-4dfb-4a0c-08d80198d7ac X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:44.0772 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vOzqGX1mQmYwNcN5zBLqgcz1ze2BjTfUBD9amBojjyhIwdRdfAyW/CcZnATcoWtVAOl2n9twzW85WkSKHisFJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller The local variables should be declared at beginning of the functions. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_tx.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wfx/data_tx.c b/drivers/staging/wfx/data_tx.c index a9eddd6db2b5d..f042ef36b408e 100644 --- a/drivers/staging/wfx/data_tx.c +++ b/drivers/staging/wfx/data_tx.c @@ -42,15 +42,13 @@ static int wfx_get_hw_rate(struct wfx_dev *wdev, static void wfx_tx_policy_build(struct wfx_vif *wvif, struct tx_policy *policy, struct ieee80211_tx_rate *rates) { - int i; struct wfx_dev *wdev = wvif->wdev; + int i, rateid; + u8 count; WARN(rates[0].idx < 0, "invalid rate policy"); memset(policy, 0, sizeof(*policy)); for (i = 0; i < IEEE80211_TX_MAX_RATES; ++i) { - int rateid; - u8 count; - if (rates[i].idx < 0) break; WARN_ON(rates[i].count > 15); From patchwork Tue May 26 17:18:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298249 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=M0rCfHWI; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49Wgfr09Zcz9sSs for ; Wed, 27 May 2020 03:19:00 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388339AbgEZRS6 (ORCPT ); Tue, 26 May 2020 13:18:58 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729597AbgEZRSw (ORCPT ); Tue, 26 May 2020 13:18:52 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hRzlxiSjIBzjbJDcqdmQP9dRH+PoW1Rojf0vnwguNPsygXIBJAwiao1zVbXNS4CPZvWsPb/wf2U5gkC3LL7+EJMtqw44TeMpXfwBl4k34YHUb0lRv8P5BHOOCuarv9LqoRT2N1sckWDI+Pocvc6S94NxsD5IhuDwHcdexz0eVGfyj1kiTTzYt5p4oJanE3p1fkwnTkqk3ZJMdInF0G/GJWBgkQQhEksMmKXdZC38qwjrzIvGq/VPAp+9IiS0QWbucQF3ew/RUbY2MqCdnogRj+gPvJoPYwNY4ft0IaE8lDHaeEsHOsRE5c0aedULl0s4xSX5FQaIhK5+0tbikkdryg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wsTm/QaoE2NdtXYonMZIxlYJijuapxWK1NonVnqHTHs=; b=b/YvXAiOszusnEJDFeJA0XTBug659fjBwwduJp3uNgP+q7GZGoDeCI+txCZYtlNGbrTMeNsTuEoLoaB791r4+NdmLLDKfy9fflSHe+1jF0+bnA3laEQMi4ZdDNnTfl9cQ4FTFfy4p/PvabfHAU5TV+UeqJe+wnIGABprp5DVG2Uk8UUrNqcD+PO53cI8jw8nnzmUiKH0nSJqfWb8dV0hbQIHGexG4zS0MiGfhzhxCgW0Emtzs3vIvsN/KQsf9Nrea5uhDb0tkcWPrOI2TFAUDOKZTOOHrv4Gzez6JKi9xYb6LmnrjNpslyuSMwlDbCalmlJmB4A1yJtS0HfXGwn8SA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wsTm/QaoE2NdtXYonMZIxlYJijuapxWK1NonVnqHTHs=; b=M0rCfHWIjocOTHA7QBeVvUJoGakzuEjlo0t8yMO4Q/IxKbIJmvLrNZgzGRjUFIsJZdJxp/kPIXEztmt54qTJZ0nC+fVVaFF1oxRxhvtCtzE68u6lTxnKACrYoFKwvCo9YEHnPtWj4TIWmunr83sIpMgE+e9QDE5czsGaG8daH1I= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:45 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:45 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 03/10] staging: wfx: drop unused function wfx_pending_requeue() Date: Tue, 26 May 2020 19:18:14 +0200 Message-Id: <20200526171821.934581-4-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:44 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c4be2500-4ded-403c-3c7d-08d80198d8a6 X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:88; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: P9+X8Rw9PQaUKm5qJB6UNbTMhdgzF4cqSHcPjxyutkfF1OUlvCYImOhfXnkSLDXUW0HTpYojMrSYt4jjcF8wH9CVUkDPoEWID5WnYLRGFONnFYscW41DLNEORnnRf91ixGNUNFwTVuKNbMwoeVZChj2WzrCkc5zjvkuzZNrhetP/FZSLb9E/sMpJ/nFMrwBJIh8oDFznq/67Xs8mFeo7pMK6PoP1IL5pp0gUuAq1JSydAqhymXhshv9nUflsPpI6iEwO12Yh1D0XJvo3Wao4iCng1sKRIDOxV50Ntofg5Gm0IUycfrAWQQxIcEb4+XlaAMqCtnwOZpvKykI2r+ZniQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(107886003)(1076003)(86362001)(6666004)(186003)(16526019)(5660300002)(66574014)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: RVhVY6vN1XgdfhvcDOg1A+OiGT3boOFlZZMr4FWq5WM/ObCAgZLrGDCkDXQfYxIbNubNvAC5XkQIFiPxYGGO/+f2xKM9LIlY+L6oQnXc/zhcaplEYZPhIkRP8FMSbH5fIFgGnZyZMF00TZJ1keHGEGLXGbI0exA07+o9uHGt9JPbMSLksqk6d4X/2fJnWJ1kAHvbxpNJ+kksQzHl4pDWvpnoDmhMBYGjzG5heUpzAkMePzEe8vLOUcAvT7isgel5eYs6o6CDLgkl4v628l6rub9JuT5VTMx7k9nQyCwKDqQs1tziOeYd4wgPgeKfKQaxsQZ+wDkvsWl6BF5mwikM78xj8JnkYY1rFztU5vTx0Otiled+/R8g0a/W6w8BYlOSk+s9Z6O4xWqRZDkKR25I3w9Zj1AnclkMgxCMLCU+hrXxte+IiASI50pjWxXRn5TvRM9Dr7I+UARRJSqve78QEk6HkDywYWf8QW7gKcAa18pMwJrcnYAVAddbaOq5Iizdr9UIc99szB3kq1QP6AbqOWm0C8FrK8lWfpPpzNXCSt4= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: c4be2500-4ded-403c-3c7d-08d80198d8a6 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:45.5714 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UeXzHJ1/cVppIMF4u4GdrWQbQ05ftf5CeoPF+9bUwcnA8FS2VySWFH2wpLVXXOIKMxsFN7N8Py0HEA76f0bWbw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller The function wfx_pending_requeue() is not used anymore since the commit 7a44644c9379e ("staging: wfx: introduce wfx_set_default_unicast_key()") Fixes: 7a44644c9379e ("staging: wfx: introduce wfx_set_default_unicast_key()") Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 13 ------------- drivers/staging/wfx/queue.h | 1 - 2 files changed, 14 deletions(-) diff --git a/drivers/staging/wfx/queue.c b/drivers/staging/wfx/queue.c index 26b141cbd3035..3248ecefda564 100644 --- a/drivers/staging/wfx/queue.c +++ b/drivers/staging/wfx/queue.c @@ -143,19 +143,6 @@ void wfx_tx_queues_put(struct wfx_dev *wdev, struct sk_buff *skb) skb_queue_tail(&queue->normal, skb); } -int wfx_pending_requeue(struct wfx_dev *wdev, struct sk_buff *skb) -{ - struct wfx_queue *queue = &wdev->tx_queue[skb_get_queue_mapping(skb)]; - - WARN_ON(skb_get_queue_mapping(skb) > 3); - WARN_ON(!atomic_read(&queue->pending_frames)); - - atomic_dec(&queue->pending_frames); - skb_unlink(skb, &wdev->tx_pending); - wfx_tx_queues_put(wdev, skb); - return 0; -} - void wfx_pending_drop(struct wfx_dev *wdev, struct sk_buff_head *dropped) { struct wfx_queue *queue; diff --git a/drivers/staging/wfx/queue.h b/drivers/staging/wfx/queue.h index 0cbe5f4b06f24..0c3b7244498e3 100644 --- a/drivers/staging/wfx/queue.h +++ b/drivers/staging/wfx/queue.h @@ -38,7 +38,6 @@ void wfx_tx_queue_drop(struct wfx_dev *wdev, struct wfx_queue *queue, struct sk_buff *wfx_pending_get(struct wfx_dev *wdev, u32 packet_id); void wfx_pending_drop(struct wfx_dev *wdev, struct sk_buff_head *dropped); -int wfx_pending_requeue(struct wfx_dev *wdev, struct sk_buff *skb); unsigned int wfx_pending_get_pkt_us_delay(struct wfx_dev *wdev, struct sk_buff *skb); void wfx_pending_dump_old_frames(struct wfx_dev *wdev, unsigned int limit_ms); From patchwork Tue May 26 17:18:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298256 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=ckgVC8Xa; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49Wggm1WPjz9sPF for ; Wed, 27 May 2020 03:19:48 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388811AbgEZRS5 (ORCPT ); Tue, 26 May 2020 13:18:57 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388339AbgEZRS4 (ORCPT ); Tue, 26 May 2020 13:18:56 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MrYOHgfdVKHyTl9NFjKajBjJvts/yek5ccUDxkDOr9OwJc7uu2fEfA7bAV5G89qQ4GPpIF4EteKT3PQPH1KQCifZBb90s9if0pUHLz5WiNtaGA7MtPhMhojUvyykQq+p9IIIV39fsYyeldiI3jLFQBNalaJBjCaM8+d2TsPwSqxaCa/xsiWc4nD+HgsLP8JHI9OyE5WiW9JbWgrmI2MY8w1/KfIVBVyIpPW8/3poqT8HHzYTjDot/dC6tTiK0KdL7sH94kGqmkv0Um1TLq1zNQ6m528S8tEFbOFrSLeQTVrcYD++SL6qOHMLdpd/ntb2h7rP6/PN3I6hq6u5QlWQPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mmQSSAdCRES6wt7JUzUpJrFphugSWi39g4LXP/uhpZ0=; b=LdFvWZeCaPAzt7KGeIV7fDd4IYZIMxdRleEzMicohf0Jgl5Qg6xKLwQoj67f+t7rSXioaMEQF+YPd5XdSsDdiR/v8A8EjVma5g9mcVndGnxv+anZJasRA114CzbRdKsBAqYY5mg3NeCAg6J3+oA4sPEqQiYFRr3ewB0JGIaRGDOvy+L4Xz4eRhhCDEvl8uNe+r7YxM/Fls+2kEm3xCWrsVSAnobz1DiQsbgl+Xa11+w9fdj+Pd1Ey6soB7Z60oKmJzqddjkqNDoQj7azqaeuV54l8zNKwxz2t8IB1nDnUgPZGt94yEfCQYLLTRRxnmzzGjtcTbKySqE5Go9fSUduUA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mmQSSAdCRES6wt7JUzUpJrFphugSWi39g4LXP/uhpZ0=; b=ckgVC8XaNPMgGWRN6QyO6dzfT4iONCEiUhqzDRvTJyw7w2TxY0LwWzdiR+Gtq341ikNTD3qF5XRXWxYLWTYZ/T4L2r7M2axxL3gGTBGhsPiipnO3dzIheLxWgYu+3iTVOQm6X7t0VA9VmCNy29csCb0fELX1D1lIYkttfuYB4lM= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:47 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:47 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 04/10] staging: wfx: add support for tx_power_loop Date: Tue, 26 May 2020 19:18:15 +0200 Message-Id: <20200526171821.934581-5-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:45 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9b4a99fc-b02c-41e7-0366-08d80198d9a2 X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5236; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: F4HGAkPqDXxHaDWi4gsbalIPOEg5fn9XRqBAAS1kdD2j2Nmb1J0B6pe7D4aAehxigZVxpYy+cfAlt318kWqXKdmo0rFBN8IaoRn4Lvy5vwbMHbjsIH8YDUc07uUriPdpnJxRPq/rNY+VQHgr5BqZrQBvq57xrVAJ7VCtjwWSH6Bogq2ToJ4uPJRTpKTDDUQ/fyYe09HXQqB+6jwVXNONoZy6rvPmAQ60znG3JXwq40xuvNxVM7lDSDDvWEFCoFmZOR+QR+GpIeugmodRIFL3jsEQYjbPVNmW4jwZrirRm44ZAdx3qK8aqCcJewf24W2/dXsg6wmDZD1mEB1zPYV/3A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(107886003)(1076003)(86362001)(6666004)(186003)(16526019)(5660300002)(66574014)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 3lRm9V8wlfaYx9dHzPSU0omD7rrlArlkdFaOGLnsSIt36YUaXH1NRlF0zsR7eWmNGbW9HHRUig0a/W1CYDzCiQ/WnvbuHQN13NYIt1C8za2N/YwIQ6DPqKB2zTnb/Rv+/HEgfhXxZKD8wmYn6rRZ8b308/WUp3S3DZZb5hgz6/ImboOSEf41cCxWrBBub+7geGLhYJNrefS9iQO7UO8yyZH465fiuz0zrb1AKTcoww7LM9d2oIFdPPXudTl+7CWsVUgp0hRjYwQ8s2PbNi25q8fogdP/2BVgT8+DUlFR7p2iqKgOhiBZoqJdvxJJ+qNcpAIonO67iocyUcZGR4XqmqV/RrRdTmA5WWP7+Ry9kqXomXwplzQevvWbxU9eFaiC9hq1SwFia+T6lvrpSUjP667R8R7kc8TYis1A0DgQ3UdJTaguhGzw2GM/QSCqEcQ4+pdeDcjAqHfr9MDKEFqFJIO0T05D7cWSB04GSIEnhvErCxu8BGoBrZijjek7FeuKeLtsevDcyfKbihTXionyhBAr6MkEhAr2oJnIMj+sk9o= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b4a99fc-b02c-41e7-0366-08d80198d9a2 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:47.3384 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: v0gXdEPNn9XKzlwTDOpTTTWuF+ItAKckr633qzBYHATMi7gBWzcBlYtA9l2GzfMM4j1qXf1K8MXtPRQYNFyEXQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller During the calibration of the RF amplifier, the device is able to provide some data about the status of the amplifier. Record these data and expose them in debugfs. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/debug.c | 26 ++++++++++++++++++++++++++ drivers/staging/wfx/hif_api_general.h | 18 +++++++++++++++--- drivers/staging/wfx/hif_rx.c | 7 +++++++ drivers/staging/wfx/main.c | 2 ++ drivers/staging/wfx/wfx.h | 2 ++ 5 files changed, 52 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wfx/debug.c b/drivers/staging/wfx/debug.c index f52e7cf885cba..10d649985696a 100644 --- a/drivers/staging/wfx/debug.c +++ b/drivers/staging/wfx/debug.c @@ -178,6 +178,30 @@ static int wfx_rx_stats_show(struct seq_file *seq, void *v) } DEFINE_SHOW_ATTRIBUTE(wfx_rx_stats); +static int wfx_tx_power_loop_show(struct seq_file *seq, void *v) +{ + struct wfx_dev *wdev = seq->private; + struct hif_tx_power_loop_info *st = &wdev->tx_power_loop_info; + int tmp; + + mutex_lock(&wdev->tx_power_loop_info_lock); + tmp = le16_to_cpu(st->tx_gain_dig); + seq_printf(seq, "Tx gain digital: %d\n", tmp); + tmp = le16_to_cpu(st->tx_gain_pa); + seq_printf(seq, "Tx gain PA: %d\n", tmp); + tmp = (s16)le16_to_cpu(st->target_pout); + seq_printf(seq, "Target Pout: %d.%02d dBm\n", tmp / 4, (tmp % 4) * 25); + tmp = (s16)le16_to_cpu(st->p_estimation); + seq_printf(seq, "FEM Pout: %d.%02d dBm\n", tmp / 4, (tmp % 4) * 25); + tmp = le16_to_cpu(st->vpdet); + seq_printf(seq, "Vpdet: %d mV\n", tmp); + seq_printf(seq, "Measure index: %d\n", st->measurement_index); + mutex_unlock(&wdev->tx_power_loop_info_lock); + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(wfx_tx_power_loop); + static ssize_t wfx_send_pds_write(struct file *file, const char __user *user_buf, size_t count, loff_t *ppos) @@ -317,6 +341,8 @@ int wfx_debug_init(struct wfx_dev *wdev) d = debugfs_create_dir("wfx", wdev->hw->wiphy->debugfsdir); debugfs_create_file("counters", 0444, d, wdev, &wfx_counters_fops); debugfs_create_file("rx_stats", 0444, d, wdev, &wfx_rx_stats_fops); + debugfs_create_file("tx_power_loop", 0444, d, wdev, + &wfx_tx_power_loop_fops); debugfs_create_file("send_pds", 0200, d, wdev, &wfx_send_pds_fops); debugfs_create_file("burn_slk_key", 0200, d, wdev, &wfx_burn_slk_key_fops); diff --git a/drivers/staging/wfx/hif_api_general.h b/drivers/staging/wfx/hif_api_general.h index f5abd81747069..dba18a7ae9194 100644 --- a/drivers/staging/wfx/hif_api_general.h +++ b/drivers/staging/wfx/hif_api_general.h @@ -201,9 +201,10 @@ struct hif_cnf_control_gpio { } __packed; enum hif_generic_indication_type { - HIF_GENERIC_INDICATION_TYPE_RAW = 0x0, - HIF_GENERIC_INDICATION_TYPE_STRING = 0x1, - HIF_GENERIC_INDICATION_TYPE_RX_STATS = 0x2 + HIF_GENERIC_INDICATION_TYPE_RAW = 0x0, + HIF_GENERIC_INDICATION_TYPE_STRING = 0x1, + HIF_GENERIC_INDICATION_TYPE_RX_STATS = 0x2, + HIF_GENERIC_INDICATION_TYPE_TX_POWER_LOOP_INFO = 0x3, }; struct hif_rx_stats { @@ -222,8 +223,19 @@ struct hif_rx_stats { s8 current_temp; } __packed; +struct hif_tx_power_loop_info { + __le16 tx_gain_dig; + __le16 tx_gain_pa; + __le16 target_pout; // signed value + __le16 p_estimation; // signed value + __le16 vpdet; + u8 measurement_index; + u8 reserved; +} __packed; + union hif_indication_data { struct hif_rx_stats rx_stats; + struct hif_tx_power_loop_info tx_power_loop_info; u8 raw_data[1]; }; diff --git a/drivers/staging/wfx/hif_rx.c b/drivers/staging/wfx/hif_rx.c index 88466063cc427..bb156033d1e16 100644 --- a/drivers/staging/wfx/hif_rx.c +++ b/drivers/staging/wfx/hif_rx.c @@ -278,6 +278,13 @@ static int hif_generic_indication(struct wfx_dev *wdev, sizeof(wdev->rx_stats)); mutex_unlock(&wdev->rx_stats_lock); return 0; + case HIF_GENERIC_INDICATION_TYPE_TX_POWER_LOOP_INFO: + mutex_lock(&wdev->tx_power_loop_info_lock); + memcpy(&wdev->tx_power_loop_info, + &body->indication_data.tx_power_loop_info, + sizeof(wdev->tx_power_loop_info)); + mutex_unlock(&wdev->tx_power_loop_info_lock); + return 0; default: dev_err(wdev->dev, "generic_indication: unknown indication type: %#.8x\n", type); diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c index ae23a56f50e05..6bd96f4763884 100644 --- a/drivers/staging/wfx/main.c +++ b/drivers/staging/wfx/main.c @@ -274,6 +274,7 @@ static void wfx_free_common(void *data) { struct wfx_dev *wdev = data; + mutex_destroy(&wdev->tx_power_loop_info_lock); mutex_destroy(&wdev->rx_stats_lock); mutex_destroy(&wdev->conf_mutex); ieee80211_free_hw(wdev->hw); @@ -344,6 +345,7 @@ struct wfx_dev *wfx_init_common(struct device *dev, mutex_init(&wdev->conf_mutex); mutex_init(&wdev->rx_stats_lock); + mutex_init(&wdev->tx_power_loop_info_lock); init_completion(&wdev->firmware_ready); INIT_DELAYED_WORK(&wdev->cooling_timeout_work, wfx_cooling_timeout_work); diff --git a/drivers/staging/wfx/wfx.h b/drivers/staging/wfx/wfx.h index cc9f7d16ee8b7..73e216733ce4f 100644 --- a/drivers/staging/wfx/wfx.h +++ b/drivers/staging/wfx/wfx.h @@ -58,6 +58,8 @@ struct wfx_dev { struct hif_rx_stats rx_stats; struct mutex rx_stats_lock; + struct hif_tx_power_loop_info tx_power_loop_info; + struct mutex tx_power_loop_info_lock; }; struct wfx_vif { From patchwork Tue May 26 17:18:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298250 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=pc4h3Xn4; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49Wgfs6Z79z9sSs for ; Wed, 27 May 2020 03:19:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388927AbgEZRTB (ORCPT ); Tue, 26 May 2020 13:19:01 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388736AbgEZRS6 (ORCPT ); Tue, 26 May 2020 13:18:58 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k2pFCKy5LaCnnAVhLrXhyVRMPAKLwVrSOpp3XomqPXf140JmwyEsBOM+mYV4AUJj4jCfGn6MGUI4418uj6UZphx/4UhsmLMGbddWYYT5YcgUZdvmM9Cu3qzknccRUyrxH+rpPjf8k/6eD35piZpbqdoqd4ejjzYlItnDKNOVShxaIc5oqVwuGwKcc3B+poV8TTravInVG44httoFfUm56sKm//NvOVJ/i6QN0cVKLgUMGF7wpLYUH+vkH7xZfv9gd9j32hgOqCKP/XPGHnZUtRtizPfrYWuUOxgEP7K27nQ0lPmvXHJY3XF0YxFSQ2S6FyrgyjXZyS5ZGlcPJimDDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9oshIULAZ0qp5hLmt2U37gnOrA+tYUU0n5uGYxxUja8=; b=ccOj4VhI/lplBqb2q/bMc9+vG5UTPYeCiZsaQAbV4d8188FsIH80fBRLrAL4ISR6rGrjl1qSGcxt4H0tcY9hgP5Txaclx10SEeHKAW+E8EFDYf7CgDLx9yrRr1SiiFSqk5FDLnP0gJBt0O7USRDzvl4dndBaM8aL0BNeU05VhJsLn8OvalpgJ8PgBqiCwXYp6Vxx3Kr3CtVcraIRQvjGFQXjCDrOd73RuZ/ajksQGap+0nZz2nCbYFGIVAG8105yvGSvndz/hAvFkOQrBJVZz9enk4LFwQ+WMZcRRVEyjRP2sNkpeGb9ojLP3l8THCAsBXxZTyFvzyMkwAclKQ3X2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9oshIULAZ0qp5hLmt2U37gnOrA+tYUU0n5uGYxxUja8=; b=pc4h3Xn4v9e9ftcoJ0cbH46YOw9S/5DjF5GcMbaB/hlG7sc/Cfxoa7AKetPC6WC3AvCmgf9BTsYYorE9fqakF0WxVW0AQ/+BixsCvTvUURcgmXAW8gO7QzQPexfxMKes6BF8zrr/dWDKbvvEzn2ZpzbxuER50ZdO2A+8hKgE9pc= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:49 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:49 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 05/10] staging: wfx: retrieve the PS status from the vif Date: Tue, 26 May 2020 19:18:16 +0200 Message-Id: <20200526171821.934581-6-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:47 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d47e3e01-1945-48c1-034d-08d80198da96 X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SU933gwRq02PP6xL/XZTvXigzI1wQVDh+UySli18TO93qE2WShEMr4AnYDYpPEb+vQ5iwJ2/sERhLBEKeclAS/Nf9SQQKfkyvrLcp9UKlZ7MCucIXGuH2/eVBbJmpjIaLO+tS4/0FeNdp3UATtIJcrCeDWINL/lCbgBczGoGs3sQFAtL74BEflVQy6DtzrhmcaKsUtrlRXn/2SaeCMN87TTFkzFb5ta3N4444SUUJUpseJy6FR3QFyTdhMVbqMBS9mXPGjicLtYbENyrnEiChkiZOD5bySg6uOpo54vTqg3B6Pd9p1zrD4Ct11Ji3M2W5/Bs36g5IRy2dQXZv2sYeQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(107886003)(1076003)(86362001)(6666004)(4744005)(186003)(16526019)(5660300002)(66574014)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: N1ja9PKm3ROBkDUl7fqOoh/ZMLAvgAjYbD2lQmu/W+i7Q30zWYfuOXefUHmxeII2oQRFL3KRmix8eaHRtEudiIUs5Tsb9puLq7zG+muGKt5X9CuSLZ9GI3wZ01HJ+ZyUZ1le/cDaQDVDsWTN/YiJkPQ/DJGTnS9A3mvIHdrJZ8WL1S4X/zOAIMb5wCkAyX7fAsl8DzeDIBthGse/656Qw6ua3dcrm7CLIIjCXBLXT8LaOTupM86/vV27s7vmhWtehKt1wfA1b7ZR478ZyhBBvhOGB410L1QPY+huTV6p6Z+TTsI7/KioGWENx5jBltItsKO45G1dSKFhV+reaPTiuc65n+oqS+hGOFMAHxU57px9vUPtCKlZf6SwL8zHlEdRP05KBn3VC7Xs59EKkGMYN/IzVN6SrVli1CTjzI0SQ37hRMiit+0lR127nCj/KloyrwLuPrp0u6rK7nPFGu/ydoS0QxLaxkK8opEIdk1MyYeENfsW4kukvAj8Pn+Fn8Fs+1EB7tYz4ojgjLHvh+3jbGlL5sYAGxjrjB3DjS7BPrM= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: d47e3e01-1945-48c1-034d-08d80198da96 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:49.0114 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4bsm6TRAa4BAtQFk2XMuxpEHn8VwTCQkBqJtMTZ2LU/NrFWK+VpfM0fitb8O1iDMfaRPCooYHoxK+AT80Gb28w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller The Power Save status is stored for each virtual interface and for the whole device. The WF200 is able to handle power saving per interface, so use the value stored in vif. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wfx/sta.c b/drivers/staging/wfx/sta.c index 6015cd2c4d8ae..d0ab0b8dc404e 100644 --- a/drivers/staging/wfx/sta.c +++ b/drivers/staging/wfx/sta.c @@ -203,7 +203,7 @@ void wfx_configure_filter(struct ieee80211_hw *hw, unsigned int changed_flags, static int wfx_update_pm(struct wfx_vif *wvif) { struct ieee80211_conf *conf = &wvif->wdev->hw->conf; - bool ps = conf->flags & IEEE80211_CONF_PS; + bool ps = wvif->vif->bss_conf.ps; int ps_timeout = conf->dynamic_ps_timeout; struct ieee80211_channel *chan0 = NULL, *chan1 = NULL; From patchwork Tue May 26 17:18:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298255 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=B+Gpilbk; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49Wggb1KMvz9sSk for ; Wed, 27 May 2020 03:19:39 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388997AbgEZRTI (ORCPT ); Tue, 26 May 2020 13:19:08 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388898AbgEZRTB (ORCPT ); Tue, 26 May 2020 13:19:01 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Eq++fMwcJ7YPJTbGcz/FRaXrhFJ/xXLQJnTmMymXJGvSc89Xoj2nxsjX8Ffm86b726EfxvoKuGhgt+wTm9Rr2mt249A0gcSLfrQqtoj1Y/ZB33TgTit8w3qrTUKseoeQYf6sFEzH/VYhxhPFU+aEGKkC/bz/iGzjCWYjK3eTrXzZxfvoeodqUCIAsrIQxeBu7iMkFeBFsKA5TBKig6oFv+us+es2dZJEm/klkAzJtDvwC8TdOVZu7CiTf+fn0+2ObnD1KRM8W8skw6MOR18q2qCbp0bXkB4WqqNJzY88oYzuCA3B+v6nBPbaW2GxQ+zefwgsPfv8KtHse/7xVUzcvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wXGHy+DOkIwG3kemaOa8KHPH2RZ2MpmCkltH0RA9COE=; b=FVGVyJ6eNnxBbHRepdirCKVN1mcpfHvMLjZSPUTjIWorlNQ6ynZFqHjwq2WwbdkBXeMkO3Gqou+2BIhqHxZiJiKrW1nZQYT1k+vAcqOr0T4/ku/IOM5DugyY5PWocP5XlLrhAjqIySwZbLq1iE7MVUfTisAWc8LZh7xFxEUg58ckHm5wCbEFJx9+ayStl6pMBy8xzKGJvUVSSRzSPLQeSfb5s4gA3vbrY+XCprXzKNKEoXcQpddpt3lODoSdvFunveIiMuwyYelKIRfjf3sIXxd7k1BB/ws0+FwdcuWk2g4tubbTXagS2/aMtBwkyVcPLwrO3CKLjsyturphEU2N0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wXGHy+DOkIwG3kemaOa8KHPH2RZ2MpmCkltH0RA9COE=; b=B+GpilbkkULrsxzj5IRbHwhjJDGzl+GBX9d9vG1lnlfnObiXagfPWYqP6hu+MH7kpMq7dVQyk0PLIvQp1lDmHZvGPZp0RF9Vzra9ogGPdyTclxDVGBc3bv6SNplnhSk68m2wEWJn2NdxX/P40NzWRhkmIb6tg7fEsYNT1JrbSSU= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:50 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:50 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 06/10] staging: wfx: split wfx_get_ps_timeout() from wfx_update_pm() Date: Tue, 26 May 2020 19:18:17 +0200 Message-Id: <20200526171821.934581-7-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:49 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 783d39ca-549f-4436-f0a8-08d80198db9a X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:935; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: B4f6ysuaScRbETCTzEAHlgSWdKMdgX1UVcI6ha2y9XkXi9hyD0JHXuxizEXRibTLWcGga7K6TS0tgzxZ/BZsUnsgU9lyH9iSKdn5xmg2m16FogdL+DVF01vTwPQpKp0SUKuo2kMpX6EeQFG4VhEAwz49q4t41ePZvZDghvjoA4kyn7YDMSYpul4wLCZ6ClVtBCZ4FuA1jrjP3V4V9ns+QTXMJM7/06kEC8c173jZ5v1SCs+5f0/NT3d0T35zoSO5QrMfCCXgupTGijbHZ/9EVTthkkbGUOFLy0mngkAJjiSAuBMx6RRMkDN/TSPDvwcdVuH8TWR+Ik4qpYvTR8TF5g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(107886003)(1076003)(86362001)(6666004)(186003)(16526019)(5660300002)(66574014)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: /ZZ59/K/2AV8Nm6I65rxVU9T6b130UO4lQJOOWcEpeU29nK7HqQrIW7K0g3OyFYuZKl15ncebK8omLWLIW5+4yJpC9vZ2yO3ZRfNluT0ZtXFnbvwpLXT1maSFWv6Qnyavur31qgSY7qaVxOhEJFoPpUEbqowtPDuSBUVoYAR5gzF01R0v+ttDFZcK0MbhuIUILVMW+Jpnk2G6G4mmJ5EFErWfbgePMEFZBFfM/JIQSvfH6y4hMsd/tzFtGnsshe7jmUTEx+ZFT5TlhWZe1sZ5yb6AD+xAe/19js6RaDw10jOr2lIpPU4/vveGkX04MCdnIgQzwcrrUuhsln0MtO7xNYKoDGolIpewN15uORX+g6GQyKkEipH5QOl5ht4ObPb66TQq6475PIxqgbwyO4Ps5VLclgbzuzhtu4y6TTySM2x1oIwxo8gd387j7YFJAJQ8mu7yltgGh/nCVo1xgOAH/008sKQDmOMLbemAdlKB4CUjEaoLzjbzmMCNdzXp8BZNsuSpL+0sHbdmrOmkK/6RAeYhUDPa4gu8PpagK6wSBE= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 783d39ca-549f-4436-f0a8-08d80198db9a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:50.5265 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MkErhpNs69lg1cd2oxQCgctMBsfDJzgUqE/eg9cSPKA450ctqfLK9dxpKkGUFtnk0HOq9DYeFm0z6wXWGY6rIw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller In the next commit, we will have to compute the PS timeout without changing the power save status of the device. This patch introduces wfx_get_ps_timeout() for that job and make wfx_update_pm() relies on it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 49 +++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/drivers/staging/wfx/sta.c b/drivers/staging/wfx/sta.c index d0ab0b8dc404e..12e8a5b638f11 100644 --- a/drivers/staging/wfx/sta.c +++ b/drivers/staging/wfx/sta.c @@ -200,36 +200,49 @@ void wfx_configure_filter(struct ieee80211_hw *hw, unsigned int changed_flags, mutex_unlock(&wdev->conf_mutex); } -static int wfx_update_pm(struct wfx_vif *wvif) +int wfx_get_ps_timeout(struct wfx_vif *wvif, bool *enable_ps) { - struct ieee80211_conf *conf = &wvif->wdev->hw->conf; - bool ps = wvif->vif->bss_conf.ps; - int ps_timeout = conf->dynamic_ps_timeout; struct ieee80211_channel *chan0 = NULL, *chan1 = NULL; + struct ieee80211_conf *conf = &wvif->wdev->hw->conf; - WARN_ON(conf->dynamic_ps_timeout < 0); - if (!wvif->vif->bss_conf.assoc) - return 0; - if (!ps) - ps_timeout = 0; - if (wvif->uapsd_mask) - ps_timeout = 0; - - // Kernel disable powersave when an AP is in use. In contrary, it is - // absolutely necessary to enable legacy powersave for WF200 if channels - // are differents. + WARN(!wvif->vif->bss_conf.assoc && enable_ps, + "enable_ps is reliable only if associated"); if (wdev_to_wvif(wvif->wdev, 0)) chan0 = wdev_to_wvif(wvif->wdev, 0)->vif->bss_conf.chandef.chan; if (wdev_to_wvif(wvif->wdev, 1)) chan1 = wdev_to_wvif(wvif->wdev, 1)->vif->bss_conf.chandef.chan; if (chan0 && chan1 && chan0->hw_value != chan1->hw_value && wvif->vif->type != NL80211_IFTYPE_AP) { - ps = true; + // It is necessary to enable powersave if channels + // are differents. + if (enable_ps) + *enable_ps = true; if (wvif->bss_not_support_ps_poll) - ps_timeout = 30; + return 30; else - ps_timeout = 0; + return 0; } + if (enable_ps) + *enable_ps = wvif->vif->bss_conf.ps; + if (wvif->vif->bss_conf.assoc && wvif->vif->bss_conf.ps) + return conf->dynamic_ps_timeout; + else + return -1; +} + +int wfx_update_pm(struct wfx_vif *wvif) +{ + int ps_timeout; + bool ps; + + if (!wvif->vif->bss_conf.assoc) + return 0; + ps_timeout = wfx_get_ps_timeout(wvif, &ps); + if (!ps) + ps_timeout = 0; + WARN_ON(ps_timeout < 0); + if (wvif->uapsd_mask) + ps_timeout = 0; if (!wait_for_completion_timeout(&wvif->set_pm_mode_complete, TU_TO_JIFFIES(512))) From patchwork Tue May 26 17:18:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298254 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=jSnzVkYH; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49WggW19FCz9sSd for ; Wed, 27 May 2020 03:19:35 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389020AbgEZRTJ (ORCPT ); Tue, 26 May 2020 13:19:09 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388955AbgEZRTH (ORCPT ); Tue, 26 May 2020 13:19:07 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hpsTL2tNHiNUC/gxBy1ptww6Fx9eKQyOo0lpYIe6YDslPWJcUzDprjpIElUE9m6UX7OBlxt460+d1eoQ0E89uJXB8LziAC6uIZlbSZxXJaAwFzqtExNWnyjPhUq0Y1IRY9uu7zKeOA30d4tlPB64wGLSQN95XZr5Jwe/miZ8hxIYtKmkkGHqQ0qS9Zb8O97BF6oPkZRzWbUcedd1O1gdwrJ2zmvcm/Sgj4W/LeJWpYwCdg51EXfWOhN55zCeJoAUwvrgCIOqp2DWKSDuEmX3eZsuAKDEQKqfD5yHIpSedTwSQejmLRaq/n2VgsHygc0I0kDbR7NeGXmzSd0uhoZ9aA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tFgvxQnFloxqef1n9Pi21c3KsNyEjNSPr82jw3HJFKw=; b=Vii+CGUik+gQIAezwtm27GR3wnNuc2ydRzG7uB0yAp+oPVCXY2xG+Z1Zfsx/RzuU7oqB6D2LS/R862X4kR5bgI9dX2EojTZEvxJ+oNrWzBAy5gThcayHkSr8OBm2Lq1qMdqUUdhcL0HFW+V023UsnXjVJ2/jN+Yc6Boe3w8QkDqtPzV4tBo2aS6fro/9e4iP064ufCP8gpA8EXNh/ovujJy/kJ6Kr1n+3iWHdAZaDYsKLNBgNXedGcqnB81UIEzOKb7KvmR782KBCwg2DFJzj4b1f3ob68ywN6bxXdzVcgSooGrBMHKFaw6lyRfGJ/URlx2CsFSdP6Npzlt+L0uU5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tFgvxQnFloxqef1n9Pi21c3KsNyEjNSPr82jw3HJFKw=; b=jSnzVkYHeKGgtyjqMu23p4YjQ7FyNtTayHYpxuX9gF5/lHYk1WR3U/+Zeox9zlwwNt4L5nyKrP+yeOYaO6yqTVHfDUWfhHc1zwDc0AeRDSl+jFjt2JKDNw9c6MDIu64NU2HFVhKNO+0Xo8bObIj2iG6PTaj+kxdSMn27jtxg6os= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:52 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:52 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 07/10] staging: wfx: add support for set/get ps_timeout Date: Tue, 26 May 2020 19:18:18 +0200 Message-Id: <20200526171821.934581-8-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:50 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b36aa818-c34b-4330-7270-08d80198dc92 X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZlQrJdO8J+Zr1V3pOAiRmF7PM+Yea4pqpKWg2DhMUOFNiUZziMCnGkAhpx18oyRi8tYTbA1ZJFQNXO8uRPjCzHuyJKNH+vng29FcAR9/8+t3namm8GehMJYf92q6n6fc/Lqgh1Bqmh4cTsLnWkIxVjPoHsK7rn45eXW1IudWdMWQ6uIgCkq2ljcEST0fLMlsldJ3nd42ZtIHkU60ckbQBn5+6cUc9iyu4uK6KjFEs12579pzDXDpwk5kyiB0pPQ7f5ly2jpWgf3yYWpwwhxnDWS7rf+mnYSZbd+W2UBlOZmuGL523qEKGhvOfnbBvT+Q X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(107886003)(1076003)(86362001)(6666004)(186003)(16526019)(5660300002)(66574014)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: WXg8QpZbGkgLZv1tCa/22xJcHAxx8cFy8P/8gC1E9u5uI/f2xkCqB6lu1/TRXPym+PYfWdtia0dLcfi/A94U62JjUl9LPw7t4QUeBMwzymoVv27JvaHc7AQXDjXSFIQPQJne0M16h9kv5miK4tWLPFAowgNC9aGfzcqudQvOwFPh76dpA+U6ih7OEDinnmDpGHFMVE4V5w2vUgUJQ+bIEbEuZhHGzP3kobcdlTfazuly3yPksCF0VT3d5mePAvkGM3ZEDg9FphX4gl9i5RaQMjmu20b/E3yHKHX8vTH7M0fEZqeZzeSc9hl9QtpqrnqD85ddYCutyaFOXCoK0uudcjQmFvzPMV9K9xV5/Q9cY+GwjIoWh/PP4qIfQet6tzcZa/1CpAO5B9y41KVUpvYbWxp9GO05KCxjotcGsT/v60Yd474uew9Xx8fTiJOrIUEeQAel9koF/mNIJdnKztRNzUxYBaw1M5pVkjTdJb62yIieJbgUDn6WuAb51gj9TslGM1M58VyxJ/a5cY7kW+dRWBwkIMm65sNB00tdZriXml8= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: b36aa818-c34b-4330-7270-08d80198dc92 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:52.1896 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cUwg/MyLcZiW0vpJNke4fO4Tx0cAOEJwJqQ6jEgtIWfu5laLArBE4bhVG2AwX73a2nuUHwVNLbkys221G7ggZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller In some advanced usage or debug scenarios, it could interesting to change the value of ps_timeout or eventually to force use of PS-Poll frames. The wext API (used by iwconfig) provide a way to change ps_timeout. However, this API is obsolete and it seems a little weird to use (it seems it doesn't apply the changes, so the user have to disable then re-enable de power save) On side of nl80211, there is no way to change the ps_timeout. This patch provides a vendor extension to nl80211 to change the value of ps_timeout. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/Makefile | 3 +- drivers/staging/wfx/main.c | 4 +++ drivers/staging/wfx/nl80211_vendor.c | 49 ++++++++++++++++++++++++++++ drivers/staging/wfx/nl80211_vendor.h | 44 +++++++++++++++++++++++++ drivers/staging/wfx/sta.c | 9 +++-- drivers/staging/wfx/sta.h | 2 ++ drivers/staging/wfx/wfx.h | 1 + 7 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 drivers/staging/wfx/nl80211_vendor.c create mode 100644 drivers/staging/wfx/nl80211_vendor.h diff --git a/drivers/staging/wfx/Makefile b/drivers/staging/wfx/Makefile index 0e0cc982ceab2..2d34a02853226 100644 --- a/drivers/staging/wfx/Makefile +++ b/drivers/staging/wfx/Makefile @@ -18,7 +18,8 @@ wfx-y := \ key.o \ main.o \ sta.o \ - debug.o + debug.o \ + nl80211_vendor.o wfx-$(CONFIG_SPI) += bus_spi.o wfx-$(subst m,y,$(CONFIG_MMC)) += bus_sdio.o diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c index 6bd96f4763884..11f6bc6fa3394 100644 --- a/drivers/staging/wfx/main.c +++ b/drivers/staging/wfx/main.c @@ -34,6 +34,7 @@ #include "secure_link.h" #include "hif_tx_mib.h" #include "hif_api_cmd.h" +#include "nl80211_vendor.h" #define WFX_PDS_MAX_SIZE 1500 @@ -312,6 +313,9 @@ struct wfx_dev *wfx_init_common(struct device *dev, sizeof(struct hif_msg) + sizeof(struct hif_req_tx) + 4 /* alignment */ + 8 /* TKIP IV */; + + hw->wiphy->n_vendor_commands = ARRAY_SIZE(wfx_nl80211_vendor_commands); + hw->wiphy->vendor_commands = wfx_nl80211_vendor_commands; hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC) | BIT(NL80211_IFTYPE_AP); diff --git a/drivers/staging/wfx/nl80211_vendor.c b/drivers/staging/wfx/nl80211_vendor.c new file mode 100644 index 0000000000000..ec2fd2d73885f --- /dev/null +++ b/drivers/staging/wfx/nl80211_vendor.c @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Extra commands for nl80211 interface. + * + * Copyright (c) 2020, Silicon Laboratories, Inc. + */ +#include "nl80211_vendor.h" +#include "wfx.h" +#include "sta.h" + +int wfx_nl_ps_timeout(struct wiphy *wiphy, struct wireless_dev *widev, + const void *data, int data_len) +{ + int reply_size = nla_total_size(sizeof(u32)); + struct nlattr *tb[WFX_NL80211_ATTR_MAX]; + struct ieee80211_vif *vif; + struct wfx_vif *wvif; + struct sk_buff *msg; + int rc, ps_timeout; + + rc = nla_parse(tb, WFX_NL80211_ATTR_MAX - 1, data, data_len, + wfx_nl_policy, NULL); + if (rc) + return rc; + vif = wdev_to_ieee80211_vif(widev); + if (!vif) + return -ENODEV; + wvif = (struct wfx_vif *)vif->drv_priv; + + if (tb[WFX_NL80211_ATTR_PS_TIMEOUT]) { + wvif->force_ps_timeout = + nla_get_s32(tb[WFX_NL80211_ATTR_PS_TIMEOUT]); + wfx_update_pm(wvif); + } + + msg = cfg80211_vendor_cmd_alloc_reply_skb(wiphy, reply_size); + if (!msg) + return -ENOMEM; + ps_timeout = wfx_get_ps_timeout(wvif, NULL); + rc = nla_put_s32(msg, WFX_NL80211_ATTR_PS_TIMEOUT, ps_timeout); + if (rc) + goto error; + return cfg80211_vendor_cmd_reply(msg); + +error: + kfree_skb(msg); + return rc; +} + diff --git a/drivers/staging/wfx/nl80211_vendor.h b/drivers/staging/wfx/nl80211_vendor.h new file mode 100644 index 0000000000000..c069330e240a9 --- /dev/null +++ b/drivers/staging/wfx/nl80211_vendor.h @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Extra commands for nl80211 interface. + * + * Copyright (c) 2020, Silicon Laboratories, Inc. + */ +#ifndef WFX_NL80211_VENDOR_H +#define WFX_NL80211_VENDOR_H + +#include +#include + +#include "hif_api_general.h" + +#define WFX_NL80211_ID 0x90fd9f + +int wfx_nl_ps_timeout(struct wiphy *wiphy, struct wireless_dev *widev, + const void *data, int data_len); + +enum { + WFX_NL80211_SUBCMD_PS_TIMEOUT = 0x10, +}; + +enum { + WFX_NL80211_ATTR_PS_TIMEOUT = 1, + WFX_NL80211_ATTR_MAX +}; + +static const struct nla_policy wfx_nl_policy[WFX_NL80211_ATTR_MAX] = { + [WFX_NL80211_ATTR_PS_TIMEOUT] = NLA_POLICY_RANGE(NLA_S32, -1, 127), +}; + +static const struct wiphy_vendor_command wfx_nl80211_vendor_commands[] = { + { + .info.vendor_id = WFX_NL80211_ID, + .info.subcmd = WFX_NL80211_SUBCMD_PS_TIMEOUT, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV, + .policy = wfx_nl_policy, + .doit = wfx_nl_ps_timeout, + .maxattr = WFX_NL80211_ATTR_MAX - 1, + }, +}; + +#endif /* WFX_NL80211_VENDOR_H */ diff --git a/drivers/staging/wfx/sta.c b/drivers/staging/wfx/sta.c index 12e8a5b638f11..7f0bb8eb78660 100644 --- a/drivers/staging/wfx/sta.c +++ b/drivers/staging/wfx/sta.c @@ -217,14 +217,18 @@ int wfx_get_ps_timeout(struct wfx_vif *wvif, bool *enable_ps) // are differents. if (enable_ps) *enable_ps = true; - if (wvif->bss_not_support_ps_poll) + if (wvif->force_ps_timeout > -1) + return wvif->force_ps_timeout; + else if (wvif->bss_not_support_ps_poll) return 30; else return 0; } if (enable_ps) *enable_ps = wvif->vif->bss_conf.ps; - if (wvif->vif->bss_conf.assoc && wvif->vif->bss_conf.ps) + if (wvif->force_ps_timeout > -1) + return wvif->force_ps_timeout; + else if (wvif->vif->bss_conf.assoc && wvif->vif->bss_conf.ps) return conf->dynamic_ps_timeout; else return -1; @@ -788,6 +792,7 @@ int wfx_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) wvif->vif = vif; wvif->wdev = wdev; + wvif->force_ps_timeout = -1; wvif->link_id_map = 1; // link-id 0 is reserved for multicast INIT_WORK(&wvif->update_tim_work, wfx_update_tim_work); INIT_DELAYED_WORK(&wvif->beacon_loss_work, wfx_beacon_loss_work); diff --git a/drivers/staging/wfx/sta.h b/drivers/staging/wfx/sta.h index 8a20ad9ae017e..8220d31184c8c 100644 --- a/drivers/staging/wfx/sta.h +++ b/drivers/staging/wfx/sta.h @@ -69,9 +69,11 @@ void wfx_cooling_timeout_work(struct work_struct *work); void wfx_suspend_hot_dev(struct wfx_dev *wdev, enum sta_notify_cmd cmd); void wfx_suspend_resume_mc(struct wfx_vif *wvif, enum sta_notify_cmd cmd); void wfx_event_report_rssi(struct wfx_vif *wvif, u8 raw_rcpi_rssi); +int wfx_update_pm(struct wfx_vif *wvif); // Other Helpers void wfx_reset(struct wfx_vif *wvif); +int wfx_get_ps_timeout(struct wfx_vif *wvif, bool *force_ps); u32 wfx_rate_mask_to_hw(struct wfx_dev *wdev, u32 rates); #endif /* WFX_STA_H */ diff --git a/drivers/staging/wfx/wfx.h b/drivers/staging/wfx/wfx.h index 73e216733ce4f..ef68aa4086e01 100644 --- a/drivers/staging/wfx/wfx.h +++ b/drivers/staging/wfx/wfx.h @@ -92,6 +92,7 @@ struct wfx_vif { bool scan_abort; struct ieee80211_scan_request *scan_req; + int force_ps_timeout; bool bss_not_support_ps_poll; struct work_struct update_pm_work; struct completion set_pm_mode_complete; From patchwork Tue May 26 17:18:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298251 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=JAiXmu8L; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49Wgg64cLQz9sSk for ; Wed, 27 May 2020 03:19:14 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389077AbgEZRTN (ORCPT ); Tue, 26 May 2020 13:19:13 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388995AbgEZRTL (ORCPT ); Tue, 26 May 2020 13:19:11 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FEMpcC7b3WKd4jakYOuIrX8EsgVSHxVd3s2A6W2/E1pLo5rpBPJTEgF8QQXHAX6XBbBdN7/dRqM4dkz09wygWYXuq5X9ikm5fAR5IWZC4tujrkHfOMrRM3kCiIOnpAN0YtYmDfmY4VrG6lxm8VjYlEBfGQafYCbK4kOED7msNiX6LDgyMbAuhd4E+LT50m302vloxX8aihtE6rhqxWX3c5/FBLVkPyXEocDiI1SklbwSaga7K0XH/Ugmv+D9GhYgjHwBHhxZ17ydD1ZRmgjTBCOyLJ4blAQGsrA1n5KdZWvbo/ICdkmwtg9SMxc21z8/231PKAxzVllw12SYEt+/ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vyrbr3YFnwOdvTfBarbes+ILcX0rykOlaggmKjWAZSQ=; b=bNHbH4oiqCQpPWVuLTFlYw56fpmnrqMTp6amE5QUL3RwyWVGHT5jYpjwJcxSxr1N5XYHBp1XLtzEWuQso1SCByCpsS7swp/T+jfLdlpGUCRrUYQ1NeY3H6VfKNmWFMWCOhPWlXy3lwlPgfeUjYRxbqgQKNkAnJm+8LAV49d1DV9P6q3ajf1tJ/9WmcJN7ctZ/7qQ3sjhjrbdQecuPyclagRSq7Ba9c2d3NAOn8Q7PU4vi2aGxbUvzVSjTESc52ptywn7eoEvPs/fX8ECudD6P4FUWBQc/0SDBUtovJD7c1hiyzSMfR6CbFAlSTeyQHhJvKAnCmBDDw14sA+VyzMu+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vyrbr3YFnwOdvTfBarbes+ILcX0rykOlaggmKjWAZSQ=; b=JAiXmu8LqpyLWYFX6dl0AcLCVSl9bdSZdwwH+kOuNF4T9dUofuXfbBCJ81rqdg5bP30efQ7/JKPKyXyQne1PwlBBajc+MYaP09MPApm77zoSQFNEDvja0y+FOdJnxd6VfNbkBkPZxGD/j1Pivp+5+UnwiR62hEBNC7GmnIhuaCs= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:53 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:53 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 08/10] staging: wfx: allow to burn prevent rollback bit Date: Tue, 26 May 2020 19:18:19 +0200 Message-Id: <20200526171821.934581-9-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:52 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 65bfd7e7-6822-4ccd-d6cd-08d80198dd7c X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jUO/CafqVZFkVxIILs2FdskS45/HWMQfkM/n8C+Tb5w/ov2wSIAqt6h7+ItEjh2kAuEcK1hjZJ3FyV49zbWqxNM57MPbZRNrg3o/31/mPKmvLb+jvU9ciu8+WXCKVJoRrXci9chUuHpY2ZKXu1dDTOzj/YMoIeGogMlX6ybTi+s6A9Rz3XGnpt3p47LsvxvIL+AdnB+u+cvHoSZQO16i2tXh2hqHyaMVlWT/Y1YHhOb1TqDS20xX+r5UzP8fmkbZITVpKpMUgii2CdH6VtzahF2DfUCNU/PGkA2ugNY0e+qwPC3YbXsVdybq3a5UOf18G5v1B4OXoHoomMjfxytqbg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(107886003)(1076003)(86362001)(6666004)(186003)(16526019)(5660300002)(66574014)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: EQzkXU43bTAg7TukimXaKp7LLqEAjO/IDv85M1uItUIfaxaKNzrDZtJW2ARjo+7q44jSQkBgQ2nghPY8TFLV2+iPBVNzGRfxcALyUgnntmQK0oORAz3EQga/JrDNU/sBQbqV/cjeeDyPATSd98Qg/ehxGyJ0PwjXAIREbRLryTEnCtXhbqelQSUxaQKKoUZSeV27iM8Zw07UZG1Q5HbfQmsxFUSXvIlNLPRF27yNjrbp8+mSfoul26asGQiRs+ITDiQiQCniGRaNTDsqnovGzEUQ/wkbY8yKdF4QSDK4+s3FfPqHExSO8thKM/bC0EFFsZzJnMSyT5HZ6p9bsU3u4EG+KEihZINl94Z8Wxp9uST8Upx1IzOTpe33VWnIo08iPrWRWq+Dzg2m1DPOvwMtvSQzwKpIGndpbIXiZm8DMp5KvbVx5wETgPYyk5tt/0aPICTq0eZqxlaa+wAeqObVUzthumfx0lM93b1Ijs9dcJyoVWXx9iBw97tyuaLt1XSc1PDEyNzKX2V1vcdMW7WgUrtbBYJ0b0xwf0Lu8A0Uvts= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 65bfd7e7-6822-4ccd-d6cd-08d80198dd7c X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:53.6967 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5kEqbL68/L4DIRzDGGxORw0ENP9j8CXHamZJ0mZfBb51zcnMSmVmXQMW4rfrwlspKj/RQRgALZEe4QDAQLNF4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller In case a security flaw is found in a version of firmware, the device offers a way to disallow the loading an older firmware. This patch provides a vendor extension to nl80211 to enable this feature. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_api_general.h | 8 ++++++++ drivers/staging/wfx/hif_tx.c | 18 ++++++++++++++++++ drivers/staging/wfx/hif_tx.h | 1 + drivers/staging/wfx/nl80211_vendor.c | 23 +++++++++++++++++++++++ drivers/staging/wfx/nl80211_vendor.h | 11 +++++++++++ 5 files changed, 61 insertions(+) diff --git a/drivers/staging/wfx/hif_api_general.h b/drivers/staging/wfx/hif_api_general.h index dba18a7ae9194..c8af3534700ca 100644 --- a/drivers/staging/wfx/hif_api_general.h +++ b/drivers/staging/wfx/hif_api_general.h @@ -361,4 +361,12 @@ struct hif_cnf_sl_configure { __le32 status; } __packed; +struct hif_req_prevent_rollback { + __le32 magic_word; // Return an error if not equal to 0x5C8912F3 +} __packed; + +struct hif_cnf_prevent_rollback { + __le32 status; +} __packed; + #endif diff --git a/drivers/staging/wfx/hif_tx.c b/drivers/staging/wfx/hif_tx.c index 6db41587cc7a5..899e1eb71a44b 100644 --- a/drivers/staging/wfx/hif_tx.c +++ b/drivers/staging/wfx/hif_tx.c @@ -535,6 +535,24 @@ int hif_update_ie_beacon(struct wfx_vif *wvif, const u8 *ies, size_t ies_len) return ret; } +int hif_burn_prevent_rollback(struct wfx_dev *wdev, u32 magic_word) +{ + int ret; + struct hif_msg *hif; + struct hif_req_prevent_rollback *body = wfx_alloc_hif(sizeof(*body), + &hif); + + if (!hif) + return -ENOMEM; + body->magic_word = cpu_to_le32(magic_word); + wfx_fill_header(hif, -1, HIF_REQ_ID_PREVENT_ROLLBACK, sizeof(*body)); + ret = wfx_cmd_send(wdev, hif, NULL, 0, false); + if (ret == le32_to_cpu(HIF_STATUS_ROLLBACK_SUCCESS)) + ret = 0; + kfree(hif); + return ret; +} + int hif_sl_send_pub_keys(struct wfx_dev *wdev, const u8 *pubkey, const u8 *pubkey_hmac) { diff --git a/drivers/staging/wfx/hif_tx.h b/drivers/staging/wfx/hif_tx.h index e1da28aef706e..d29c72d94789a 100644 --- a/drivers/staging/wfx/hif_tx.h +++ b/drivers/staging/wfx/hif_tx.h @@ -57,6 +57,7 @@ int hif_start(struct wfx_vif *wvif, const struct ieee80211_bss_conf *conf, int hif_beacon_transmit(struct wfx_vif *wvif, bool enable); int hif_map_link(struct wfx_vif *wvif, u8 *mac_addr, int flags, int sta_id); int hif_update_ie_beacon(struct wfx_vif *wvif, const u8 *ies, size_t ies_len); +int hif_burn_prevent_rollback(struct wfx_dev *wdev, u32 magic_word); int hif_sl_set_mac_key(struct wfx_dev *wdev, const u8 *slk_key, int destination); int hif_sl_config(struct wfx_dev *wdev, const unsigned long *bitmap); diff --git a/drivers/staging/wfx/nl80211_vendor.c b/drivers/staging/wfx/nl80211_vendor.c index ec2fd2d73885f..1a9d411718a73 100644 --- a/drivers/staging/wfx/nl80211_vendor.c +++ b/drivers/staging/wfx/nl80211_vendor.c @@ -7,6 +7,7 @@ #include "nl80211_vendor.h" #include "wfx.h" #include "sta.h" +#include "hif_tx.h" int wfx_nl_ps_timeout(struct wiphy *wiphy, struct wireless_dev *widev, const void *data, int data_len) @@ -47,3 +48,25 @@ int wfx_nl_ps_timeout(struct wiphy *wiphy, struct wireless_dev *widev, return rc; } +int wfx_nl_burn_antirollback(struct wiphy *wiphy, struct wireless_dev *widev, + const void *data, int data_len) +{ + struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy); + struct wfx_dev *wdev = (struct wfx_dev *)hw->priv; + struct nlattr *tb[WFX_NL80211_ATTR_MAX]; + u32 magic; + int rc; + + rc = nla_parse(tb, WFX_NL80211_ATTR_MAX - 1, data, data_len, + wfx_nl_policy, NULL); + if (rc) + return rc; + if (!tb[WFX_NL80211_ATTR_ROLLBACK_MAGIC]) + return -EINVAL; + magic = nla_get_u32(tb[WFX_NL80211_ATTR_ROLLBACK_MAGIC]); + rc = hif_burn_prevent_rollback(wdev, magic); + if (rc) + return -EINVAL; + return 0; +} + diff --git a/drivers/staging/wfx/nl80211_vendor.h b/drivers/staging/wfx/nl80211_vendor.h index c069330e240a9..49efe8716a654 100644 --- a/drivers/staging/wfx/nl80211_vendor.h +++ b/drivers/staging/wfx/nl80211_vendor.h @@ -16,18 +16,23 @@ int wfx_nl_ps_timeout(struct wiphy *wiphy, struct wireless_dev *widev, const void *data, int data_len); +int wfx_nl_burn_antirollback(struct wiphy *wiphy, struct wireless_dev *widev, + const void *data, int data_len); enum { WFX_NL80211_SUBCMD_PS_TIMEOUT = 0x10, + WFX_NL80211_SUBCMD_BURN_PREVENT_ROLLBACK = 0x20, }; enum { WFX_NL80211_ATTR_PS_TIMEOUT = 1, + WFX_NL80211_ATTR_ROLLBACK_MAGIC = 2, WFX_NL80211_ATTR_MAX }; static const struct nla_policy wfx_nl_policy[WFX_NL80211_ATTR_MAX] = { [WFX_NL80211_ATTR_PS_TIMEOUT] = NLA_POLICY_RANGE(NLA_S32, -1, 127), + [WFX_NL80211_ATTR_ROLLBACK_MAGIC] = { .type = NLA_U32 }, }; static const struct wiphy_vendor_command wfx_nl80211_vendor_commands[] = { @@ -38,6 +43,12 @@ static const struct wiphy_vendor_command wfx_nl80211_vendor_commands[] = { .policy = wfx_nl_policy, .doit = wfx_nl_ps_timeout, .maxattr = WFX_NL80211_ATTR_MAX - 1, + }, { + .info.vendor_id = WFX_NL80211_ID, + .info.subcmd = WFX_NL80211_SUBCMD_BURN_PREVENT_ROLLBACK, + .policy = wfx_nl_policy, + .doit = wfx_nl_burn_antirollback, + .maxattr = WFX_NL80211_ATTR_MAX - 1, }, }; From patchwork Tue May 26 17:18:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298252 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=dwGkzJKb; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49WggF1psGz9sSd for ; Wed, 27 May 2020 03:19:21 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389109AbgEZRTT (ORCPT ); Tue, 26 May 2020 13:19:19 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388955AbgEZRTP (ORCPT ); Tue, 26 May 2020 13:19:15 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TiHYn304vWKuMxbltqPfbdqFMxGyrnIXC7fHnfbMbjXmkaKWFst5QphEXVoSGmYw4n9XHlyaT5T72BDOjRboWxXMYF8/bS5BCbQ4rDoZKX2+BvrqDzxhOprizRBvljQXYQ2xdvnnmJjgZnBBrn2Ra8kgd6rzfgEFAhL0iXtWP9MMe6kOPuZANGYfouvIIkUUzg1/kXlCc84gJ8rsWrLVn4rWKNlNj4J8TeF1QXvcclfP/YT2Dy5IFuMAuMnXNxbCasSn6HWfPD4mFvmaBLyWisrU9ErxJSrk8VWf3PIBgL/8srUZ7moBpEZDhUTdO8kTPN6P8OQdSCeaQIT7AhXMrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eSH+4+k3JusHMRstcmgX3C9b+JhpbSv4FizBu66MENE=; b=G0hw/65bvuy6uDJtab33NJWhQlDYbhZhWODEBDWfeZ9RnqDzygNvBj1SR/Q6cFKlHc39rzfzU8kOfidX1rPx3MPvu1zWmStm7EzCQGESnmCsZAknhQlqa+vbU4ZI8wXsD/n+M0uF1950d4nnkWJsfVp4kx3l4liPUdg79IikqfeuyII5OLoeQhJWux/9AuEK71cX5XfxWw9cw4z/PZYqwYaA8xcrQqh+z0acDIY1SUyoUQSysel/RroRCUFeDuT1A5N/0xWEv0TmkhkUZBRHaZBjK/5aoc6/rB9HyCCzVU8CixxJRxqApKhFepY1VUC8tVJYz362B3HFQrqio3mfFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eSH+4+k3JusHMRstcmgX3C9b+JhpbSv4FizBu66MENE=; b=dwGkzJKbJiJfcQ3b5DxCPj62Y333j17vqP6fDZKqaUARzeBXa2JDqd+HZl0Z4+gM3XXHZN3P+ajQqdplhxnSVjnj6uNKn0IIFjCtM5mSRJhiF8YP4GbYINCyKQwxM1Kzz/BANwQy5VJdYAfl1Wn2Al+cvMp666gvfsEMgWhdUdY= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:55 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:55 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 09/10] staging: wfx: allow to set PTA settings Date: Tue, 26 May 2020 19:18:20 +0200 Message-Id: <20200526171821.934581-10-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:53 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 15e8e816-98a3-4326-ec72-08d80198de6f X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3173; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: StMQGCRjNe6N8EzyQb8MeaMhJHIn2Smah4N9hdoUCv4XESyXkQsUSZXthzuiIZ7AtrIXrNtAqdNBiGcLBpBksGnBNSGo+hiTSe76onYNhb4A+mBXM03nO31QEyHiMcB4LuqCo0HEUEjL3EFsMg3GRnFRc0pOwQLPtj1U+4C3HGkA5TaJysG5Ieb2f0J3nsNPjfayf5UWc04aR2N2bruxIE9fUIA9VHG0tjUerfxvlKbos5kV8avGAkwGnLrryGcyNYX5fx7XJsPFmvBPnDDGwEnU657vQr7JrhZ4B/QP/udPYQdo42piIznCVySaSptA X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(107886003)(1076003)(86362001)(6666004)(186003)(16526019)(5660300002)(66574014)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: d6DcMiRydztx7KEZxPujyEV85zBBmiO3mjw5dugUX428q4XK2Q2NRabyBIAk4nXDKS8jn97cL2t59/8eR62bSVTlWf0f+/qSwSqNI/QPElnxZ6fL3kFYmg3cg/UHOANDlWAhlaA7z4qrOfeY3YjPtfLMzG+w+MAtWJ541Fw2la129SUI1I3/F+VSRLVt8x81VLkprbezNNd4kEW9A+xf623xVUR8fTqRv/R20P5WfMvRO2XtNFzosVweiVyjkTbjykiZGACaRXpFWxKeLOLD9aIS1pGaj8vkJjIwHHMPXbhsGvgVdQ9WBDRTdOnsrnMGNxu4/d7hPffonwlI6bqXTcpojj+Iu1/Oi63jK/hv2G8d/4qsnxdGwb2sA1ITxr1H9IU4+hW319OUeVZUvRtqew9igL+Hr0av3W1FZLt6eXIY5WHfR9tAm+gs9LGBV3yADHn85TK+olmAwIMG7sBXqWPTwtrbmbtA9SmqHr9ZS6YrxLmh5xC+DZTkuy1qRxDq81W8kZD+pxcZZXsooywlL13NpYR5o7874GXqTvzECtA= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15e8e816-98a3-4326-ec72-08d80198de6f X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:55.3018 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3ZDHmM9rFan3Iio/5Qai+nn3cKXeaa7StWKWoAOq4EKTHqHllfOfdcV+vJ3vFB/9k4u7OIPYiaibIhtzQxuHdA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller The device allows to do Packet Traffic Arbitration (PTA or also Coex) with other RF chips. Currently, there is no API to manage the PTA parameters. This patch provides a vendor extension to nl80211 to change the PTA parameters. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_api_general.h | 41 ++++++++++++++++ drivers/staging/wfx/hif_tx.c | 46 +++++++++++++++++ drivers/staging/wfx/hif_tx.h | 5 ++ drivers/staging/wfx/nl80211_vendor.c | 71 +++++++++++++++++++++++++++ drivers/staging/wfx/nl80211_vendor.h | 16 ++++++ drivers/staging/wfx/wfx.h | 4 ++ 6 files changed, 183 insertions(+) diff --git a/drivers/staging/wfx/hif_api_general.h b/drivers/staging/wfx/hif_api_general.h index c8af3534700ca..eb90164ab87c7 100644 --- a/drivers/staging/wfx/hif_api_general.h +++ b/drivers/staging/wfx/hif_api_general.h @@ -369,4 +369,45 @@ struct hif_cnf_prevent_rollback { __le32 status; } __packed; +struct hif_req_pta_settings { + u8 PtaMode; + u8 RequestSignalActiveLevel; + u8 PrioritySignalActiveLevel; + u8 FreqSignalActiveLevel; + u8 GrantSignalActiveLevel; + u8 CoexType; + u8 DefaultGrantState; + u8 SimultaneousRxAccesses; + u8 PrioritySamplingTime; + u8 TxRxSamplingTime; + u8 FreqSamplingTime; + u8 GrantValidTime; + u8 FemControlTime; + u8 FirstSlotTime; + __le16 PeriodicTxRxSamplingTime; + __le16 CoexQuota; + __le16 WlanQuota; +} __packed; + +struct hif_cnf_pta_settings { + __le32 status; +} __packed; + +struct hif_req_pta_priority { + __le32 priority; +} __packed; + +struct hif_cnf_pta_priority { + __le32 status; +} __packed; + +struct hif_req_pta_enable { + u8 enable; + u8 reserved[3]; +} __packed; + +struct hif_cnf_pta_enable { + __le32 status; +} __packed; + #endif diff --git a/drivers/staging/wfx/hif_tx.c b/drivers/staging/wfx/hif_tx.c index 899e1eb71a44b..4cb8fe865e58f 100644 --- a/drivers/staging/wfx/hif_tx.c +++ b/drivers/staging/wfx/hif_tx.c @@ -535,6 +535,52 @@ int hif_update_ie_beacon(struct wfx_vif *wvif, const u8 *ies, size_t ies_len) return ret; } +int hif_pta_settings(struct wfx_dev *wdev, + const struct hif_req_pta_settings *parms) +{ + int ret; + struct hif_msg *hif; + struct hif_req_pta_settings *body = wfx_alloc_hif(sizeof(*body), &hif); + + if (!hif) + return -ENOMEM; + memcpy(body, parms, sizeof(*body)); + wfx_fill_header(hif, -1, HIF_REQ_ID_PTA_SETTINGS, sizeof(*body)); + ret = wfx_cmd_send(wdev, hif, NULL, 0, false); + kfree(hif); + return ret; +} + +int hif_pta_priority(struct wfx_dev *wdev, u32 priority) +{ + int ret; + struct hif_msg *hif; + struct hif_req_pta_priority *body = wfx_alloc_hif(sizeof(*body), &hif); + + if (!hif) + return -ENOMEM; + body->priority = cpu_to_le32(priority); + wfx_fill_header(hif, -1, HIF_REQ_ID_PTA_PRIORITY, sizeof(*body)); + ret = wfx_cmd_send(wdev, hif, NULL, 0, false); + kfree(hif); + return ret; +} + +int hif_pta_enable(struct wfx_dev *wdev, bool enable) +{ + int ret; + struct hif_msg *hif; + struct hif_req_pta_enable *body = wfx_alloc_hif(sizeof(*body), &hif); + + if (!hif) + return -ENOMEM; + body->enable = enable; + wfx_fill_header(hif, -1, HIF_REQ_ID_PTA_STATE, sizeof(*body)); + ret = wfx_cmd_send(wdev, hif, NULL, 0, false); + kfree(hif); + return ret; +} + int hif_burn_prevent_rollback(struct wfx_dev *wdev, u32 magic_word) { int ret; diff --git a/drivers/staging/wfx/hif_tx.h b/drivers/staging/wfx/hif_tx.h index d29c72d94789a..f7202be4e7fc6 100644 --- a/drivers/staging/wfx/hif_tx.h +++ b/drivers/staging/wfx/hif_tx.h @@ -15,6 +15,7 @@ struct ieee80211_bss_conf; struct ieee80211_tx_queue_params; struct cfg80211_scan_request; struct hif_req_add_key; +struct hif_req_pta_settings; struct wfx_dev; struct wfx_vif; @@ -57,6 +58,10 @@ int hif_start(struct wfx_vif *wvif, const struct ieee80211_bss_conf *conf, int hif_beacon_transmit(struct wfx_vif *wvif, bool enable); int hif_map_link(struct wfx_vif *wvif, u8 *mac_addr, int flags, int sta_id); int hif_update_ie_beacon(struct wfx_vif *wvif, const u8 *ies, size_t ies_len); +int hif_pta_settings(struct wfx_dev *wdev, + const struct hif_req_pta_settings *parms); +int hif_pta_priority(struct wfx_dev *wdev, u32 priority); +int hif_pta_enable(struct wfx_dev *wdev, bool enable); int hif_burn_prevent_rollback(struct wfx_dev *wdev, u32 magic_word); int hif_sl_set_mac_key(struct wfx_dev *wdev, const u8 *slk_key, int destination); diff --git a/drivers/staging/wfx/nl80211_vendor.c b/drivers/staging/wfx/nl80211_vendor.c index 1a9d411718a73..d08072adaf9d6 100644 --- a/drivers/staging/wfx/nl80211_vendor.c +++ b/drivers/staging/wfx/nl80211_vendor.c @@ -70,3 +70,74 @@ int wfx_nl_burn_antirollback(struct wiphy *wiphy, struct wireless_dev *widev, return 0; } +int wfx_nl_pta_params(struct wiphy *wiphy, struct wireless_dev *widev, + const void *data, int data_len) +{ + struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy); + struct wfx_dev *wdev = (struct wfx_dev *)hw->priv; + int reply_size = nla_total_size(sizeof(wdev->pta_settings)) + + nla_total_size(sizeof(u8)) + + nla_total_size(sizeof(u32)); + struct nlattr *tb[WFX_NL80211_ATTR_MAX]; + bool do_enable = false; + struct sk_buff *msg; + struct nlattr *nla; + int rc; + + rc = nla_parse(tb, WFX_NL80211_ATTR_MAX - 1, data, data_len, + wfx_nl_policy, NULL); + if (rc) + return rc; + nla = tb[WFX_NL80211_ATTR_PTA_ENABLE]; + if (nla) { + do_enable = true; + wdev->pta_enable = nla_get_u8(tb[WFX_NL80211_ATTR_PTA_ENABLE]); + } + if (do_enable && !wdev->pta_enable) + rc = hif_pta_enable(wdev, wdev->pta_enable); + if (rc) + return rc; + nla = tb[WFX_NL80211_ATTR_PTA_SETTINGS]; + if (nla) { + // User has to care about endianness of data it send. + memcpy(&wdev->pta_settings, nla_data(nla), + sizeof(wdev->pta_settings)); + rc = hif_pta_settings(wdev, &wdev->pta_settings); + } + if (rc) + return rc; + nla = tb[WFX_NL80211_ATTR_PTA_PRIORITY]; + if (nla) { + wdev->pta_priority = + nla_get_u32(tb[WFX_NL80211_ATTR_PTA_PRIORITY]); + rc = hif_pta_priority(wdev, wdev->pta_priority); + } + if (rc) + return rc; + if (do_enable && wdev->pta_enable) + rc = hif_pta_enable(wdev, wdev->pta_enable); + if (rc) + return rc; + + msg = cfg80211_vendor_cmd_alloc_reply_skb(wiphy, reply_size); + if (!msg) + return -ENOMEM; + rc = nla_put(msg, WFX_NL80211_ATTR_PTA_SETTINGS, + sizeof(wdev->pta_settings), &wdev->pta_settings); + if (rc) + goto error; + rc = nla_put_u32(msg, WFX_NL80211_ATTR_PTA_PRIORITY, + wdev->pta_priority); + if (rc) + goto error; + rc = nla_put_u8(msg, WFX_NL80211_ATTR_PTA_ENABLE, + wdev->pta_enable ? 1 : 0); + if (rc) + goto error; + return cfg80211_vendor_cmd_reply(msg); + +error: + kfree_skb(msg); + return rc; +} + diff --git a/drivers/staging/wfx/nl80211_vendor.h b/drivers/staging/wfx/nl80211_vendor.h index 49efe8716a654..0ff3bf73f0ad3 100644 --- a/drivers/staging/wfx/nl80211_vendor.h +++ b/drivers/staging/wfx/nl80211_vendor.h @@ -18,21 +18,31 @@ int wfx_nl_ps_timeout(struct wiphy *wiphy, struct wireless_dev *widev, const void *data, int data_len); int wfx_nl_burn_antirollback(struct wiphy *wiphy, struct wireless_dev *widev, const void *data, int data_len); +int wfx_nl_pta_params(struct wiphy *wiphy, struct wireless_dev *widev, + const void *data, int data_len); enum { WFX_NL80211_SUBCMD_PS_TIMEOUT = 0x10, WFX_NL80211_SUBCMD_BURN_PREVENT_ROLLBACK = 0x20, + WFX_NL80211_SUBCMD_PTA_PARMS = 0x30, }; enum { WFX_NL80211_ATTR_PS_TIMEOUT = 1, WFX_NL80211_ATTR_ROLLBACK_MAGIC = 2, + WFX_NL80211_ATTR_PTA_ENABLE = 3, + WFX_NL80211_ATTR_PTA_PRIORITY = 4, + WFX_NL80211_ATTR_PTA_SETTINGS = 5, WFX_NL80211_ATTR_MAX }; static const struct nla_policy wfx_nl_policy[WFX_NL80211_ATTR_MAX] = { [WFX_NL80211_ATTR_PS_TIMEOUT] = NLA_POLICY_RANGE(NLA_S32, -1, 127), [WFX_NL80211_ATTR_ROLLBACK_MAGIC] = { .type = NLA_U32 }, + [WFX_NL80211_ATTR_PTA_ENABLE] = NLA_POLICY_MAX(NLA_U8, 1), + [WFX_NL80211_ATTR_PTA_PRIORITY] = { .type = NLA_U32 }, + [WFX_NL80211_ATTR_PTA_SETTINGS] = + NLA_POLICY_EXACT_LEN(sizeof(struct hif_req_pta_settings)), }; static const struct wiphy_vendor_command wfx_nl80211_vendor_commands[] = { @@ -49,6 +59,12 @@ static const struct wiphy_vendor_command wfx_nl80211_vendor_commands[] = { .policy = wfx_nl_policy, .doit = wfx_nl_burn_antirollback, .maxattr = WFX_NL80211_ATTR_MAX - 1, + }, { + .info.vendor_id = WFX_NL80211_ID, + .info.subcmd = WFX_NL80211_SUBCMD_PTA_PARMS, + .policy = wfx_nl_policy, + .doit = wfx_nl_pta_params, + .maxattr = WFX_NL80211_ATTR_MAX - 1, }, }; diff --git a/drivers/staging/wfx/wfx.h b/drivers/staging/wfx/wfx.h index ef68aa4086e01..078f7885bf2fa 100644 --- a/drivers/staging/wfx/wfx.h +++ b/drivers/staging/wfx/wfx.h @@ -60,6 +60,10 @@ struct wfx_dev { struct mutex rx_stats_lock; struct hif_tx_power_loop_info tx_power_loop_info; struct mutex tx_power_loop_info_lock; + + bool pta_enable; + u32 pta_priority; + struct hif_req_pta_settings pta_settings; }; struct wfx_vif { From patchwork Tue May 26 17:18:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1298253 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=HXKvEoFZ; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49WggL1SSbz9sSk for ; Wed, 27 May 2020 03:19:26 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389135AbgEZRTZ (ORCPT ); Tue, 26 May 2020 13:19:25 -0400 Received: from mail-bn8nam11on2083.outbound.protection.outlook.com ([40.107.236.83]:48578 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388874AbgEZRTT (ORCPT ); Tue, 26 May 2020 13:19:19 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XCZrc7yv4RENxcbg01cUSfVLI+OZN/0VfoUI+gwFoyKSE1wcql1fSq4WeNMW/ZkDxo6ZURwDBc+XeQHtfSBkPA2cGNhtFeDHu5OIClkfAHYIAtD3Glfar7Og22noa6rpk9RWJAL4WQfy0nv+RQGQPYIyDEPPcZbI5uupPcTVtxS+jWxxcIjbKVT7IEQ2FGgyJ34+2Iqrc3KrL281iIZX278l/i3nn4c61rSXCZ4OTbLuOrgdFOedoPp6ndttya0GXfR7Ht1HPl5dX//E53iCYFVZAjq7diQviZy4aOxGdpsAuK3iiWe6O5mN/8fNeaqvUJDOQunjJPaE/83aWxPIZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GElZCByPklEnoQ8Cdo2ms75WRk4lBT8yiCJV32eEMDs=; b=kKs6NnNWHtfUPvFsRUitGYjtWGivR/1phAFAfeWGT+vHjAK2I8sAqL/Vi81+hMYs95XyiI2hrTlOx1Eyw+gIh6LMuvFMUq2tvAQep51j8GmKOkrRnQ1QVkIjVZxLdiPqcPFywW1eXCMil6l15tPImH9QIZkTKeKHO6eJFFCU/c7QvuRPv+fZzN2ZbLqj7zezNLlEFxgRb1xbtRj+g8FKp9VstzHTuqZAB3vmNCAZZIsxDPMOgDAvsFemWrZWyHT7gPAd5K+Da9Ktu8UsB8EB5y4ULZ1zH42YOm6pMJyov1MhSYzngsJmzDixET+P5tHJa+v4X9B0DqCnw0lP3F58RQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GElZCByPklEnoQ8Cdo2ms75WRk4lBT8yiCJV32eEMDs=; b=HXKvEoFZ+DmgbaEwvrEPUdzvSarppuPxF9Ylc5IqxVATXZ52Hw2+jZdhXP/xC0ZoEZWVvrAUq3Nu1cnSpjpCz4axCJq0AjCSAftP/zQGWikn23w/i/b3dyhqvzeTmAG6rciZwxDBLNpbDdt1VrqpNXWGQlVYXjuaBnpGAPkFf9A= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.25; Tue, 26 May 2020 17:18:57 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3021.029; Tue, 26 May 2020 17:18:57 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 10/10] staging: wfx: allow to run nl80211 vendor commands with 'iw' Date: Tue, 26 May 2020 19:18:21 +0200 Message-Id: <20200526171821.934581-11-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> References: <20200526171821.934581-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by PR1PR01CA0007.eurprd01.prod.exchangelabs.com (2603:10a6:102::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.17 via Frontend Transport; Tue, 26 May 2020 17:18:55 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 469e27ff-2d0a-4bdb-287f-08d80198df6c X-MS-TrafficTypeDiagnostic: SN6PR11MB2750: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:220; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 36udSgpgpoOqIZ8zH9GZ+plAMD9dD8KsbqJkbww7Iw4e+uCIc4o2VRqncR8JbizYmpvR/r9FetdLJis4sMMBK/v0nkplhQehpOx89JttHNwrUU2ZMLjqfKepPDOzx2PiaJJhkvUGDWPljLNC7Aec1g+BL0PdwnEFpUGPQTd6PuS3slPrv4H6a19NEy9lzhtkAu7i4b1PrcFQfWYFbNiNOhmIVnn7Z+HCF1ErTQyyAocId+PO54Bie1CUEplPCE5x2iLXxACKMdxOPSQntwwLoGn1qtXEJ0vHgE68biN2hYgYCP4atCqRfrT5OfjWkJUv X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(376002)(366004)(39860400002)(136003)(346002)(4326008)(6512007)(316002)(8676002)(8936002)(2616005)(6486002)(2906002)(107886003)(1076003)(86362001)(6666004)(186003)(16526019)(5660300002)(66574014)(36756003)(54906003)(66556008)(478600001)(8886007)(6506007)(66946007)(66476007)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: eW0X11/5NdJVp/L4tPsi5E49ykg/A4QckvE3A9nCGKT2P4aDXu6pzFOAneEH9IDSaXSKJsJDnSJXRTg2TxxNHkDTKd21kD0LKlHj0W6KhNfgqv+qh2A3Pj1UBFL964NIPXKd4bYSZQ+KiQcxR9c4nInOmSN++ic2oJlth1LtxCjY1L6gbv3tZ7veHsmhn7kFLBDPl/6fA9LomakmHds0vrJ8cRVuzfjcMbHWR5Ij/LpA86H7Dvdwvzs4l0ELzjnRDE5105LWzfERdshGxirwdQY7/hU+HKyyW759CMPQfu4SHvNLmyXHF8Xf+pSBub75+zibUyf/v4PCg21lTS46Ng0aFv4U8Z0iAwyyS93zQmjsIrEDzU/1yyXJ6E0W3V5hk66ZqRKJOR59oYvhyWIzBTd2UmCToChhotg6+fo1louMHgAOCt90rirKOdtCW82xkp0GmyCF9+RWG4V/shv3VYAV3puH4foOGd591X2EMp5AqVZXlG2Nxh23VBxUzX7DeqHX/tPGnCmJk/iuL+opsaLkBLR9p+Y69i3pNS6BA54= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 469e27ff-2d0a-4bdb-287f-08d80198df6c X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 17:18:56.9508 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QS6X02ty43r+ZuKDqxZ7ukRsJnf6Zf6CT41EZyDxkfDUCENdsCjmPp5wnGT07rkbuOpGOJVelJA1rOwqsGF4Bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller In current code, the nl80211 vendor extensions provided by the driver use the new API[1]. It requires to pack the netlink attributes into a NLA_NESTED. Unfortunately, it is not the way the command 'iw vendor' works. This patch, add extra vendor commands that can be called with 'iw vendor'. [1] see commit 901bb989185516 ("nl80211: require and validate vendor command policy") Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/nl80211_vendor.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/staging/wfx/nl80211_vendor.h b/drivers/staging/wfx/nl80211_vendor.h index 0ff3bf73f0ad3..b805b4aa951a0 100644 --- a/drivers/staging/wfx/nl80211_vendor.h +++ b/drivers/staging/wfx/nl80211_vendor.h @@ -23,8 +23,11 @@ int wfx_nl_pta_params(struct wiphy *wiphy, struct wireless_dev *widev, enum { WFX_NL80211_SUBCMD_PS_TIMEOUT = 0x10, + WFX_NL80211_SUBCMD_PS_TIMEOUT_COMPAT = 0x11, WFX_NL80211_SUBCMD_BURN_PREVENT_ROLLBACK = 0x20, + WFX_NL80211_SUBCMD_BURN_PREVENT_ROLLBACK_COMPAT = 0x21, WFX_NL80211_SUBCMD_PTA_PARMS = 0x30, + WFX_NL80211_SUBCMD_PTA_PARMS_COMPAT = 0x31, }; enum { @@ -53,18 +56,37 @@ static const struct wiphy_vendor_command wfx_nl80211_vendor_commands[] = { .policy = wfx_nl_policy, .doit = wfx_nl_ps_timeout, .maxattr = WFX_NL80211_ATTR_MAX - 1, + }, { + // Compat with iw + .info.vendor_id = WFX_NL80211_ID, + .info.subcmd = WFX_NL80211_SUBCMD_PS_TIMEOUT_COMPAT, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV, + .policy = VENDOR_CMD_RAW_DATA, + .doit = wfx_nl_ps_timeout, }, { .info.vendor_id = WFX_NL80211_ID, .info.subcmd = WFX_NL80211_SUBCMD_BURN_PREVENT_ROLLBACK, .policy = wfx_nl_policy, .doit = wfx_nl_burn_antirollback, .maxattr = WFX_NL80211_ATTR_MAX - 1, + }, { + // Compat with iw + .info.vendor_id = WFX_NL80211_ID, + .info.subcmd = WFX_NL80211_SUBCMD_BURN_PREVENT_ROLLBACK_COMPAT, + .policy = VENDOR_CMD_RAW_DATA, + .doit = wfx_nl_burn_antirollback, }, { .info.vendor_id = WFX_NL80211_ID, .info.subcmd = WFX_NL80211_SUBCMD_PTA_PARMS, .policy = wfx_nl_policy, .doit = wfx_nl_pta_params, .maxattr = WFX_NL80211_ATTR_MAX - 1, + }, { + // Compat with iw + .info.vendor_id = WFX_NL80211_ID, + .info.subcmd = WFX_NL80211_SUBCMD_PTA_PARMS_COMPAT, + .policy = VENDOR_CMD_RAW_DATA, + .doit = wfx_nl_pta_params, }, };