From patchwork Sun Mar 2 14:47:28 2025 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: 869819 Received: from mx0a-0024c301.pphosted.com (mx0a-0024c301.pphosted.com [148.163.149.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 780411DF27C; Sun, 2 Mar 2025 15:08:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.149.154 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740928090; cv=fail; b=BbVrNkz26Epsq5QHrgJFcW3m9BP8PePoFEEy6OTPdaSwZnSMSz/T/pcB/yMpHybCp/RBYZ5meyIoYn2TJrEf5nHdtX7d77cXo3vUNTG5DvU6WX3UhutFMBrbKXGr+BsRceivh+CA7fzn+1mfoD8rXRfY45Fm2pl13i2hwyirUMo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740928090; c=relaxed/simple; bh=6UmdweTbepTNevVyEOrLmWW/3oI+yx9K5hTh7FFK2qo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=tyONrSn8tbV0Z3/5jbfz9XCpBNHyuTDdSjRcMx3swcLsgHSufd2req0LmiDHaqpMvEvTkqcBP9terVnGI2guJ9ZgMK4Y+Gpg1h2We+DJfH7i6n93oCGhtjNKKXOvSwNM2vITh6+sUgX/CSxMxBtIcLcREvpZc4UnGlK+J+KGh4M= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com; spf=pass smtp.mailfrom=silabs.com; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b=sXKrhOpm; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=Gzorqp3X; arc=fail smtp.client-ip=148.163.149.154 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=silabs.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b="sXKrhOpm"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="Gzorqp3X" Received: from pps.filterd (m0101743.ppops.net [127.0.0.1]) by mx0a-0024c301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 522DawgP009523; Sun, 2 Mar 2025 08:48:14 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps12202023; bh=6UmdweTbepTNevVyEOrLmWW/3oI+yx9K5hTh7FFK2qo=; b=sXKrhOpmtbFu GFNcM8vY/PtNTqAk0VZBmHgVCTX7kFDwJRZ35aZUCFol+rnZaCc2bw1PEVDgXOrd L+F0vmCgClEVlM6lHbw8EDkU3riprF2zhjDQ7TvyhYq4Bo0pFc/jfwHMMm42ny7l vIR3tVUxx1k0nyb9u0VW/kKKMs6gVAZdaglDC7Ld8KImHOT9EyOy9rlQBf8dquwL 2PxL+vKcJUkGxoWD8Xce0y36OcMFKF7xsyou87R66t+Nqvh5tXvRWAymB+fo+I83 flZWiWlLJX9UR5WAsygBVCF48CQA+Salj3mHaU+DJK58zJFYXWjL1ITpzSrzA99M g7zHzz2law== Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2040.outbound.protection.outlook.com [104.47.73.40]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 453yegh96n-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 02 Mar 2025 08:48:14 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yqHe7EXqU5iJM5BKTf+TA1bJAgsf8EA8n2FAjfuSk74BsbGrzg3KSnl+NPsTurIFeiwttmPxt8Hc33ivQIRINQWFS0T5Y8Xl81iuri4DGmIIpYbdlXa1r38VYMHD0OKn6dm7bIFGtrjqNMkiV3hBVNEAFv/H6TmSQ4RFPlXFnfaeVnfuecv90HPRtwk+C6thlljOULQ1sE5reWCUoWOqJfPJiWb3nMV9hm2kT8FpM6MEGeR2w9x1YAXNVvyvCIvT6ixvfU39mQQr/Pq/vRsSL2lKU6fCffBeMFugeQ94j1XvRyf3TfgzdSNGqniMgkqvOzdfDR3kLMZ2rzhJ4v+5mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6UmdweTbepTNevVyEOrLmWW/3oI+yx9K5hTh7FFK2qo=; b=yaMBCfsWo3FTmYP6qMAw8RUmgsItscV7lBvdQ0R9YmDtU4+OaTIapsyVIRsHIM5BYW3VZt68F312NR4xl/1MvmMuqIrrN5jcB56ENj14il5ijwjhNiKwW7M5/FudWn6xRXFmUL1uR1oU7lIQAsHlCr+46G2oa7xlmACR6eMLx+U+PPBWehg/Se7sThkP900eRgmUKHDq9oaDeeC9w3QgioMfJ8Feuyjytq1S3vjbc9xljH89O/TMT9VU5YSvU/EZqPMzrU8A5ua0oJ4P+8jWar7sNWm6nhsykTI/AvuBunsx8mBXLP7G+HJguk6rTogxSYlnmQR9K4pdxnALBbS+Sw== 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.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6UmdweTbepTNevVyEOrLmWW/3oI+yx9K5hTh7FFK2qo=; b=Gzorqp3XDGyfLgg9B7aWErqrakCBRxs0kOA29tcAshiJO7eV+rwmfJCsT7XcHWVajp2EMWN9M7iyPorbrGl3EtWptCAJsuKvQNTMGEk/yYctbE5FBrqx48WDt07dtEKLieeoOPL2iIkEA8C12M138xdqdC56s6DtLGQWHMRpBAM= Received: from IA1PR11MB7773.namprd11.prod.outlook.com (2603:10b6:208:3f0::21) by DS7PR11MB6062.namprd11.prod.outlook.com (2603:10b6:8:75::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.25; Sun, 2 Mar 2025 14:48:11 +0000 Received: from IA1PR11MB7773.namprd11.prod.outlook.com ([fe80::e78:8cb8:9f49:4005]) by IA1PR11MB7773.namprd11.prod.outlook.com ([fe80::e78:8cb8:9f49:4005%7]) with mapi id 15.20.8489.025; Sun, 2 Mar 2025 14:48:10 +0000 From: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= To: linux-wireless@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Kalle Valo , linux-devel@silabs.com, =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH v2 2/5] wifi: wfx: declare support for WoWLAN Date: Sun, 2 Mar 2025 15:47:28 +0100 Message-Id: <20250302144731.117409-3-jerome.pouiller@silabs.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250302144731.117409-1-jerome.pouiller@silabs.com> References: <20250302144731.117409-1-jerome.pouiller@silabs.com> X-ClientProxiedBy: PA7P264CA0241.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:371::7) To IA1PR11MB7773.namprd11.prod.outlook.com (2603:10b6:208:3f0::21) Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA1PR11MB7773:EE_|DS7PR11MB6062:EE_ X-MS-Office365-Filtering-Correlation-Id: c3427afd-7199-4394-6246-08dd599940cd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|52116014|1800799024|10070799003; X-Microsoft-Antispam-Message-Info: =?utf-8?q?CE0UiZk/9NSY4WCAVzPFBLYYJh6Lob7?= =?utf-8?q?fW9YWvRa4/0STmRYG6u5+St9++F13/DGKGO+TPcCIdXIufVCSJEg8bL1c2XaQ6/cs?= =?utf-8?q?DxbAPhmRg1vVR/ZZIE15kIc5aUKXHQq9Vl9FkEMISsllWq49tMR1MCsXZQjKBLIXX?= =?utf-8?q?BPG4wtCb0p2gScYul6iK2NsY17m6XsfOjhvrNMSzQ/6eeDftafjFHep4bvDuF/i2V?= =?utf-8?q?UC07/PufN4HV3cNCHm1C7wxZjp3nMoxz4FZ6P3YP+wNpeeDmQJyM5JkinS61a+5cd?= =?utf-8?q?GYzzfIaE/Bmq8ajmCNdQGMpRLknMyQlBEVkuq6AEeUgLv9ArqbhP9C6hWRgY8GmdY?= =?utf-8?q?zSh7CxcoHzo0OMd+YKx65ZX1vfyS8KLwDXKzWsPBvZtF4s/EPnvTvxrvp85Rb+Yyr?= =?utf-8?q?ENY7Z56yxz4hH63ewbhqiCV4Ewi+Ifs/HIuETWiGIvISsUcsRsyGbjPtGRSfpr6JT?= =?utf-8?q?KkmYdpJJ6+7W4O6gtUqGJte4yJJh5iE/cB52EQVdtYD/N4T20J3TMA/iM53hV89sQ?= =?utf-8?q?LUP3AQ/EC5AfWoci93Am7F+R1ZLZuFzPBgYGRFJ+hsOCsI7kXqaM+DUSZcqi28Ndc?= =?utf-8?q?rLSJllSU1LnPPNWGUzjbo1Si1WBUj4KVPAPyaPev8jZghCHY4Dm+SN9qPC0NZkw9e?= =?utf-8?q?TFXsS05G5nc1vTWO7wQu1oeS7UGqSiGtv4DMVSkSh/HJAmKzjVea9yHDCXRuoZHS7?= =?utf-8?q?Z2NoodSVA2Pl6ZePCoCHMSMx6hpWZ4hV7SU/iungxhtSsVbMBzX74fYjwThvTj6dP?= =?utf-8?q?mLQj5qBgj03TxEKezqvhVKW9dkrhwk0OMmpEVp9w50QyWQNtIuabTcjc/sbf6niMa?= =?utf-8?q?VOBh/LsHEPXfMGISK/iMIOs2zJm4y3rnCpboRJAKe3aXcfE8OniDNxZZlEC7yCHEq?= =?utf-8?q?zWfbiVfhs6XK0g//tW7SYNaZXQ6gC3M64S52f5MkSwUZGspS4hFUjDBvN/oGsd2ON?= =?utf-8?q?TGlQ3H9GFJZ7tCCEsaZ/9JQZMSiKnGqBbEj9+Xlg1Zbgha+5A6wYfGpWle7UN8At+?= =?utf-8?q?PC+1CJNvIj7GWBKnQ+dACgQOvRZlz5/jPjWzZs7hyVYV1Dl6VTQdPq2pae9mQlVNH?= =?utf-8?q?0W5byBhspm0hLn745lIdnJU6Oq+/7KN2cg75hDlOLZJhCuCTKcyE8VGK2X19ZvNol?= =?utf-8?q?E7ap/a+iZQPFeovOMPQOznhKtj+aNrm58R+b7LUzY7VgHOChBnquPQ2apW/Faevo9?= =?utf-8?q?Do3CaojxOHQLKgEGXdquFajOEg9N6C5mUN/aHcEo/MVVLqaNqYr3cvM2u4g42Egsl?= =?utf-8?q?ivVWA2UFncaVcLYfl5Jlsmv88SZ9gxWU/mUt1vSbfG2Wt75f16Rj/OS1ikVn/k8l/?= =?utf-8?q?ckuN05/JvhVO?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR11MB7773.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(52116014)(1800799024)(10070799003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?VKx+dEGGv53JqKdJEUVHlnQU8CcM?= =?utf-8?q?ovRLWLituugCiP3rd7+R/YmAI+0XdBlYAFXF1oHHqaJawrZCyoxdBgQL0Gnl0es+Z?= =?utf-8?q?G9EeP1zz+6U6787q7NdYAm9jfZB0mthTsVwHBe8evPFOaX8WqvLeam62SRMpHN0jP?= =?utf-8?q?qYE7r4hXTkKt9y3w3D2imPvPtD2wQFe9QoLxPyeJzlHCP9J62ajT3pdBYSIdPgN5H?= =?utf-8?q?awY2l9M/6LpQ2LwxYtXLGr6pt7VokGIttI75iBQ4U7PNsAWrBeG88xpwoh12lOyRc?= =?utf-8?q?CLGeUThb1y6CJatzQUNx2kib6dQDLpx6MaSq0qXdPRtPzZDd0x4oHSJsMEjgbcEyQ?= =?utf-8?q?wGyq6L0yFJAGwkdHQTcRPDUGW9vUUujC2kXcWchpvncg9buLmjAZnJ43/uE3JTmPi?= =?utf-8?q?0t1S+fLUlfRKc8ywMSlus05CFOjt3OG92KTztRSbhN8+aJ4zuMQQysXFE7RnMf5xq?= =?utf-8?q?84FDqj39NlygPJ5V6DI+stWuplzJsk7dYNhEQZswkrgOwl4C05sooh8DOouDSWFS1?= =?utf-8?q?9hEkb69UssEreoPGyBGndwn4jBxVQ6H79ARg+W/WvEggpBenpDE9OE/E1FD1M/3ze?= =?utf-8?q?X0pXm79Ly0cNyf8+q9ngvbgdsSAVqp2dAW2yrRFJWOJOkQe9VUG+smkHwVpLAiIZi?= =?utf-8?q?tcAbWWo2Gfz/oiAIV5v6mhbtPTRbViIJrVupKl7MUoOWp7UU4f1yu5/GUFAY0d2rA?= =?utf-8?q?Rb8HhTsyExGuAuUtE3Y36gtsuCoEEWwGS53YqopeVbZudv27zcDgkWGEwcrRS3tmN?= =?utf-8?q?KWn2+CT7Xg5vN2JJA1PGifYy/DwsL8D5soCVpz3V5PUZhXbEcI0ZJ/g0IINqMfrEC?= =?utf-8?q?ie2CvQMkkkVH0V827dq3h2gU9jgwaLigR29WgLDOstXVoYriIg8ydcek/zDlIabsS?= =?utf-8?q?i4AP+tt/8A3a9cldQEiVMyuOSR9I5ai8PiobabteeM3PTRFb47bHXcEmCRZiObYV9?= =?utf-8?q?65Qlpy5h3Dn3eD7+KlpjN3ptv7fN5ml2M0LKKEoJPxAl1TultkfSDozx7+Scn70We?= =?utf-8?q?xUvF3UCMvSDR8eiYcxsJHksRtG9n6Imp9ZKk4tIM32q0x9z4Y+OWm7zxH/RQZSnS4?= =?utf-8?q?RMbfKDeh8gl5MHFvN/fCBsH4RaUS0EPIhJs2dcFZJon0A1S7cdFSoiViULFGBDqer?= =?utf-8?q?9wJwEm44trlrpvJnfWXktGaVCF+grYViqdLOzr1+G/ZJJK67X18EX+cdYclczxIlm?= =?utf-8?q?3ZpKue3ycj+nG/wG1nwW4i7PkiKmpHMrDtxdGXjsbvX2/XK2BazGjMw03ueOu1Z0u?= =?utf-8?q?8ugo7+oyqKej76EV98X/if4Qrrq+34ifaEoYpqSbaj6DNpedlQx/BwKBM0O3BgAZ7?= =?utf-8?q?7BG1gIvOnccH0at5TfXELj4wVP0PR/QcfqvgQ+No0JRZtKujEc2a5xcP+aVO8Erfk?= =?utf-8?q?NA/iYwU8d3L2KvtQVBFLKRjEeZtVV+gS4zLDMUI0b7ngV6KjdQduAgUAjPE5hOQul?= =?utf-8?q?3dloJmn3Fry8tkvAuzgwWD4CRqiwmXid6rtddzVcrouGyNKwdZyXlyTcKA0ibT88J?= =?utf-8?q?F+4kHBXl4f1eHZzvk27ucEbc3r9r40dfBKq4TlnPStjG4HuhBadnVTF0j8cH71pgH?= =?utf-8?q?ydrIwb71dNP?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3427afd-7199-4394-6246-08dd599940cd X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB7773.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2025 14:48:10.9502 (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: +eyLyI1pCTixEQy4x4IxzoOsbt/HJic/wVVtMsYDJ1SErix9OZsu5m5W+rfsG/X2CsEY0637ocC5p6UbH4hOkg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB6062 X-Proofpoint-GUID: LZTUvNehKiGO-JIlxV6NyRgsY5HtKskQ X-Authority-Analysis: v=2.4 cv=K9PYHzWI c=1 sm=1 tr=0 ts=67c46fae cx=c_pps a=CmjB6Nkc3E8pi8fe8piFzA==:117 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Vs1iUdzkB0EA:10 a=M51BFTxLslgA:10 a=i1IsUcr2s-wA:10 a=2AEO0YjSAAAA:8 a=JJM1JWLTSaUvPDQ1ZrsA:9 a=QEXdDO2ut3YA:10 a=d-TXpq5eZF0AJmg2YLt_:22 X-Proofpoint-ORIG-GUID: LZTUvNehKiGO-JIlxV6NyRgsY5HtKskQ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-02_04,2025-02-28_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 phishscore=0 spamscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 mlxlogscore=999 impostorscore=0 clxscore=1015 bulkscore=0 suspectscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502100000 definitions=main-2503020120 WF200 is able to keep the connection with the AP alive while the host is asleep. So, let's expose this capability to the user. For now, we don't provide any way to control the device filtering features. The user has to allow wake-up on any received packets and on disconnections. Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/main.c | 11 +++++++++++ drivers/net/wireless/silabs/wfx/sta.c | 15 +++++++++++++++ drivers/net/wireless/silabs/wfx/sta.h | 2 ++ 3 files changed, 28 insertions(+) diff --git a/drivers/net/wireless/silabs/wfx/main.c b/drivers/net/wireless/silabs/wfx/main.c index 64441c8bc460..62586786a45c 100644 --- a/drivers/net/wireless/silabs/wfx/main.c +++ b/drivers/net/wireless/silabs/wfx/main.c @@ -121,6 +121,10 @@ static const struct ieee80211_iface_combination wfx_iface_combinations[] = { } }; +static const struct wiphy_wowlan_support wfx_wowlan_support = { + .flags = WIPHY_WOWLAN_ANY | WIPHY_WOWLAN_DISCONNECT, +}; + static const struct ieee80211_ops wfx_ops = { .start = wfx_start, .stop = wfx_stop, @@ -153,6 +157,10 @@ static const struct ieee80211_ops wfx_ops = { .unassign_vif_chanctx = wfx_unassign_vif_chanctx, .remain_on_channel = wfx_remain_on_channel, .cancel_remain_on_channel = wfx_cancel_remain_on_channel, +#ifdef CONFIG_PM + .suspend = wfx_suspend, + .resume = wfx_resume, +#endif }; bool wfx_api_older_than(struct wfx_dev *wdev, int major, int minor) @@ -289,6 +297,9 @@ struct wfx_dev *wfx_init_common(struct device *dev, const struct wfx_platform_da NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P | NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U; hw->wiphy->features |= NL80211_FEATURE_AP_SCAN; +#ifdef CONFIG_PM + hw->wiphy->wowlan = &wfx_wowlan_support; +#endif hw->wiphy->flags |= WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD; hw->wiphy->flags |= WIPHY_FLAG_AP_UAPSD; hw->wiphy->max_remain_on_channel_duration = 5000; diff --git a/drivers/net/wireless/silabs/wfx/sta.c b/drivers/net/wireless/silabs/wfx/sta.c index 7c04810dbf3d..9e06f8b8b90d 100644 --- a/drivers/net/wireless/silabs/wfx/sta.c +++ b/drivers/net/wireless/silabs/wfx/sta.c @@ -803,6 +803,21 @@ void wfx_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) } } +#ifdef CONFIG_PM +int wfx_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan) +{ + /* FIXME: hardware also support WIPHY_WOWLAN_MAGIC_PKT and other filters */ + if (!wowlan->any || !wowlan->disconnect) + return -EINVAL; + return 0; +} + +int wfx_resume(struct ieee80211_hw *hw) +{ + return 0; +} +#endif + int wfx_start(struct ieee80211_hw *hw) { return 0; diff --git a/drivers/net/wireless/silabs/wfx/sta.h b/drivers/net/wireless/silabs/wfx/sta.h index 7817c7c6f3dd..70ccc8cb7ec7 100644 --- a/drivers/net/wireless/silabs/wfx/sta.h +++ b/drivers/net/wireless/silabs/wfx/sta.h @@ -56,6 +56,8 @@ int wfx_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void wfx_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *link_conf, struct ieee80211_chanctx_conf *conf); +int wfx_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan); +int wfx_resume(struct ieee80211_hw *hw); /* Hardware API Callbacks */ void wfx_cooling_timeout_work(struct work_struct *work); From patchwork Sun Mar 2 14:47:30 2025 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: 869820 Received: from mx0a-0024c301.pphosted.com (mx0a-0024c301.pphosted.com [148.163.149.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F9A72AD0C; Sun, 2 Mar 2025 14:59:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.149.154 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740927601; cv=fail; b=ntP/L0at2NRDBY0a/wgNKKTc8x2NrSxkyZ6lRttrIn4/f9I26HGMJ/glGrPZhQ0kOExgd+NVo0GClo9fLwWepbsUCVDVwaIuQkVM8sRAn3reTfjBb1ALqd38A8Mrcc/s8cZMZfQjXu0438ZqGr61d66Otw8ATLTLri69GMxCoIQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740927601; c=relaxed/simple; bh=wbfzaANHWrZwHehU6zHqx+P4Q8s6SqoS7Ckujnd6xIk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=rJG/sZIPQIzncAJrBRGgLhCsKDzAB8TCIU0zg61ioXpPA2mefPKFISCoboGKbsN16y1h11wr1xyuM6ayawD0j2wHvdLlS93gopOvgD6FAfoWQOjgoWjcNtMAj0s8Y4ys2X53scnhp8y/F1DXOkiz+tGcXdf2Reo4CNKvykXhBWY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com; spf=pass smtp.mailfrom=silabs.com; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b=hyDR83W1; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=AOkzV8uL; arc=fail smtp.client-ip=148.163.149.154 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=silabs.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b="hyDR83W1"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="AOkzV8uL" Received: from pps.filterd (m0101743.ppops.net [127.0.0.1]) by mx0a-0024c301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 522EItXZ010648; Sun, 2 Mar 2025 08:48:16 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps12202023; bh=wbfzaANHWrZwHehU6zHqx+P4Q8s6SqoS7Ckujnd6xIk=; b=hyDR83W11vvJ up7rOh1WFW2Hxlj3uh6PVna2/nK2St1A3T6GfY+Ui6si6wGwwl5fkjx3Fmik8Pib tX9MFrnknmK6YhEov1OXJ8a7oBaPJNLYX1DIwumIEH65sFKRfB5ZfwnucKJ3zqEV ixCQJ/VYBgowSAeINrb1vrZLKzRvB+NqtxJ+PLRaMuXZKRiiGTfDTednqZr4Im/Y po6JcUCnC88iKXBUcT2WWUlWNEqebmuWUXAHPOvg9p4zuk7Eh7FIKfiZ3CPv7AP3 Cuy8G1SFYHOYwInLnfhM1gNBMBtEOhhA8kwbPZcFEeQXgSSWSP3gdSDNUAqtH0ni 2zuB8eX+NA== Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2046.outbound.protection.outlook.com [104.47.66.46]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 453yegh96p-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 02 Mar 2025 08:48:15 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NxvXb4Azs7Afw9ymZZ4NlEdpUkA9RFUeVi9yQDnUm54foyahcXWVbYbb68BPEOzluMNa1ySCYcSnx6FkHkqHutbYMdfkWlYn4MKxMjIQ9TGkIKiFiv5sI/+XKjy4FK5dKMX9C7tcqEl/eD4K/a2K3ZGt2VXObCOvy8X7kK82Jbrcx3qvDMWwTZUXlkhuxS7gM3U1INP3vK0i18ln4l36T4PSJ8jqsTLGef1l2k0RwRTZoqWmToShd3NnD3heeiF8UvMKLlyQDV+QSGok8rWdRmilnYVu6xW72q5w5O3UfNW0T/LJcgKjf+p3fmHBG5vqY2MxjseCAWZxSEDnaqfTiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wbfzaANHWrZwHehU6zHqx+P4Q8s6SqoS7Ckujnd6xIk=; b=ISeu8L+71NwNFwLyeN2t9imnztOBVl14qzX0sGPkf3Pcke+/DsB4LbbhhODK/veqya+tobUTLm7OgCfe0ebe904ZYt+3P7H2pIAhzpkVMCIEE/qzQVA8ukYaeAwLa+w2mCkivR4yaJQjmZ2fWY62Z+wgMI+N0dy83bCLTthALkhSBWo69zKDuPIWzR8IoLrH9g9p19ogwQ/4TsJecTKOsmCigWTtTAMliJ7fO8kcagriYND5ZCmK7REcPvwR3XjfSAtKQlcUPJxYNq4ErnJ3C67OpvLok5zX7I2wtYn+KRkkXdsD5MEDOJWSdHfv6nKpJsLlYSBlYLrGhrNkWNJzVQ== 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.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wbfzaANHWrZwHehU6zHqx+P4Q8s6SqoS7Ckujnd6xIk=; b=AOkzV8uLpdUi0kUVD6+2MqVMQAn9GSJV7H4EITjdnFOPtvMmkFVz3/jgKpANEVxS1i6ZTm0bfzAI2d+2NBUg1yCAegB1xqDIY+TNhixqVXN9EerMCwHOwhnDPVe8pmTHKExchhoMwPIe75zihO7ap2si9bcTvLigId6PE8fnOMI= Received: from IA1PR11MB7773.namprd11.prod.outlook.com (2603:10b6:208:3f0::21) by DM4PR11MB5312.namprd11.prod.outlook.com (2603:10b6:5:393::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Sun, 2 Mar 2025 14:48:12 +0000 Received: from IA1PR11MB7773.namprd11.prod.outlook.com ([fe80::e78:8cb8:9f49:4005]) by IA1PR11MB7773.namprd11.prod.outlook.com ([fe80::e78:8cb8:9f49:4005%7]) with mapi id 15.20.8489.025; Sun, 2 Mar 2025 14:48:12 +0000 From: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= To: linux-wireless@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Kalle Valo , linux-devel@silabs.com, =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH v2 4/5] wifi: wfx: allow SDIO device to wake up the host Date: Sun, 2 Mar 2025 15:47:30 +0100 Message-Id: <20250302144731.117409-5-jerome.pouiller@silabs.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250302144731.117409-1-jerome.pouiller@silabs.com> References: <20250302144731.117409-1-jerome.pouiller@silabs.com> X-ClientProxiedBy: PA7P264CA0241.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:371::7) To IA1PR11MB7773.namprd11.prod.outlook.com (2603:10b6:208:3f0::21) Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA1PR11MB7773:EE_|DM4PR11MB5312:EE_ X-MS-Office365-Filtering-Correlation-Id: 445870bc-35bd-436d-ece1-08dd599941ef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|1800799024|10070799003|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?q?LDCTbnI+UJk8IF0NPWIOPAp3Psdc8bQ?= =?utf-8?q?Ols2n9GeRKsWfFLOGYUBdBCxyvUZVwK2z7W/hXYF2EVucTsugG8nR3U2JWC8WU94L?= =?utf-8?q?KPqpwZcVSozmfGTU5tIiSPR4pVkXAJlUHHqfQkbWNhxX7ISvLal5mi5BzLIEfVQLK?= =?utf-8?q?WaoTyoc0eJa7BFrwXDC7hiHoVzgSe3bfvXlnohHm1wdWoy64/Z/YBtuWDqvvoVMZL?= =?utf-8?q?oeXmxWwqWbZtT09jXOoEa7qmn3/akgAbc//evYgDBvrNxCOo9KitlxqmhqW6wgzgm?= =?utf-8?q?pnPd3ZAUZRnPm/oj7/gYeforP7B0NlzWUte8dkxYJxKmQQHUdvKlaradQOLy3nKMN?= =?utf-8?q?Pfbr4Np7K+6Z77wmygyxfYM4PfIf0Hfw5bvs+Ap4BsfwTzQn1GBYztc3pal5t1cPM?= =?utf-8?q?lsLsoEp0E31F4FINv+a8t0D0c6BaxQlk8S+1ZGdl70jgNwxmE2MgG9PKpKa+qnp60?= =?utf-8?q?b7QspuZ9IvKoVm1YSJVv96X5ewA2PYagXS1oSUhcGlXBCjn0cRgr21KpbD09Jd6eM?= =?utf-8?q?BG/klw4/k6s4a4zTfmPabVJnhFKwBVLUYTSYtZhX4zfquof8Lpd59/rNbGFCSswjk?= =?utf-8?q?wvsPz0Qs5XHACi02QqQEKlEdDjC3gdMZx9ho3Wi1OBFT1wu+7cDoGRYYKueRtiM6R?= =?utf-8?q?60Z2d2YFiGoLwY8TtWkrqvwNKScqTUezFhPjG1/REKLdLfkDvuFzqQu1cCURg/unt?= =?utf-8?q?5fWN5kmrrX5VvXGf1yXDQsW0Pr1bgVmrD3LkFkZ+DzE1AoJU48kd8rexwidsvCZUs?= =?utf-8?q?AO1FP/OHpOi32KUVorMraS7460wk/49Nt1ySEM0tr9JzJmGMA6WoxXmME2kJHhT9A?= =?utf-8?q?1d8eCu1ajg9Et/ZLULVmb9vAzCDYlYKx6Zxf1Uu2hmJH71HEzYzw7IOR9XTDjAgPj?= =?utf-8?q?RzgrCt5YzkHXG9ZmAdr+o2zsxIpGzyGjCq/BEE1df84IyuJTcUE/naC4gze7artxn?= =?utf-8?q?UdqW6c1zPi/YPYlHsEVYnym4dpAyJR9Yvvr8kiVFh7mxD7D0u/dBMoY+LnqU/0kAL?= =?utf-8?q?0ExESU0cgpPkW607XhmSkRo3J0/kj3xLUiZbkNldry7+0r1oMwvhW5kw9qjjLZs83?= =?utf-8?q?vd7gdBP5jzPYWlXiD0BEmuIWK8KYwxhLL9St2H1cCd4MPRBHql3zjuZ5B7xX31LFq?= =?utf-8?q?/UaQepPvUj/DB8NtWdKAWirpf13a5j14pQUKtKR98l5C9Tb4Mz/uUDzLRjW9UUriA?= =?utf-8?q?+YT0z3x3ifFFHV3gBbBF5MK6p3/fAO/eQ9kMWUAemZdEg6Np6sUsVAoB4yRRjUe7M?= =?utf-8?q?1jrkMi/zRQntmOZYrW/9KmNZjwNG7zCF3ffaFW8IbJ5Al5zT0xpVVS+Itx3RWKP/G?= =?utf-8?q?XOy8wQwCrii0?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR11MB7773.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(52116014)(376014)(1800799024)(10070799003)(366016); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?ryuBvMX4+52cjc0ly13SI+suX+kF?= =?utf-8?q?IRpu2+hHF9LiOR4mazhG+Ndyd4Beuxs6P8M1PPXPNAZDzI4NstQijLRJSanO7+46U?= =?utf-8?q?eJUf6pVBpagiHMzzXNwMtJIx+iW1t1mbIdCCr68Wk5zu6Tqd0aPqecTZ47JDh6iVM?= =?utf-8?q?BMi33cQSn4opD0InLWNowT/3ekApiExYFXaeYIFpgOJ4Ro8XKDjnwB7ADZc7Qo8wj?= =?utf-8?q?z9JMbJPYMBYTbPG22zlRjYivW18MeKTZgFDLfxIeRhhPSM8OxG4ePfzhCojGDIq+S?= =?utf-8?q?JzsXT0ZLsmzIL1X/jlQnUPBvAmUdkzof3lVDWjp5Xy8cLFVow4wbkaP3riavT4Bg5?= =?utf-8?q?wMITvSTp7bfPqxIkkaEoG8fEFSGKPjnmcfX45LMw3Dq0BcDMgCfYwVHIEoUMk98AH?= =?utf-8?q?iPKo6naNUNVIqHvGkbEyF+t/+DUYBwJGpULiAdOILRFlUD/Y/ugh/4z1I1t0s4YoY?= =?utf-8?q?2d12kqNgjinGCw4nZEEj6+/corAYR02OULCWdV+l7D3VFip/44ngUzat25vyI7UXO?= =?utf-8?q?4pwHfA3n0reT0GLSfWVbuZ9cqHjgum2H9IcBAeltIon9GTdQfyOGQqSRBOmLB/ljq?= =?utf-8?q?bDbltC5B/5dnSCjLX5l1sCtWeEwuOgvWjDTY5LMySgMgd66TRlT4FuMoICKyRy2Nu?= =?utf-8?q?EnVynhUl9AK6TObOAncyZrLaeY3mYBduBhRsEAopXvTDeUu7Iehi5CmWlwpKa43Yx?= =?utf-8?q?Fl5DOOZS8IyshBQR0Y9wCxMzkKNwZU+V/VkNUA+CDxvfqcYOjnbP8lqBw9b+Kuv58?= =?utf-8?q?YC6SmURSX9bRUw0d7TXnyX2/MJXKP3Byw115KAg9/PVNhirDkJpU5u2mV0PFkFMZ9?= =?utf-8?q?+ktdwl1RgMSAAsz9l/jdXLVEGVFZEVPvZepgl/ad+vA2XZnAMyQEACohmvMtQoxQD?= =?utf-8?q?rtg7xQ5szmErYhFuV4E5x6+7cssKy8Vu+Sk8gVYIIMjPd0h/O0aerkEhiKHExntkv?= =?utf-8?q?MwRHeRzEKUV0XEIS8fh3luIbzg/bM44B7tG9t2pGx6jtqKhe4P7kLp/G6XXF7KBLY?= =?utf-8?q?fVFWfkkioifXDyUXIfEDYWgWnkRwfNrSUtsyrjbiP09oeWI6/FDe2QtH9ocSrycr8?= =?utf-8?q?1GCrb5fq5Ii1ubdex98k/hRf23jL6zcjVTgNYMBDx8T8pR34vOzeQdCGonE0WCeZU?= =?utf-8?q?TN7IQSA52rAC9msuytvpqVzQxq8vJ9aSCDMBAW4KYJTs9Gs/aMJsyUIRoVAAbhve+?= =?utf-8?q?/jZ8xqNTwFVPntFLsJzwOnARoXfhZZoZ81Z7O/jrJrN3glbeOKnU41yqOI/gs1GeS?= =?utf-8?q?mOW9t5AtQ0QpePmbGFjbVHPklhqlNvgDJCMXfo9jBqELRLuO1qLZ7O2adJ8oFtTdD?= =?utf-8?q?38YlIY56iSE4amzEsbbyl2a8eR8tJNIYaptgazGSWw1cyNa4/6PBMOtj9d/xbLPpQ?= =?utf-8?q?quOrdirxmNlKK1ltaOYFXxmg5XYBa/T7pZGeVpk95drL20g/HyvCyD3SsiPNRwo7F?= =?utf-8?q?nj0sIWkHn3qUWh4OiwrRDktZv2qoj1yj0K6K2Vb7yKM6xdAET8EYlor/ws7DqCvKS?= =?utf-8?q?nXFyGlNZDgHQJMp4qwl/PEYeUnQ0BgZBM2a44dpSHTrkHDDO1TLKkEYBVMeDpEMRt?= =?utf-8?q?1cEXQeRvN4m?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 445870bc-35bd-436d-ece1-08dd599941ef X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB7773.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2025 14:48:12.8458 (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: jg/gUdZWIHGGyxxprk2kkvRzTeUFSWb/YGp7VMBgcW+aFLZCtx4InURKwI4LunLve7/h5exvveOMAsN0M3UXQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5312 X-Proofpoint-GUID: Op8StPeGsMzHboS0rHpoOLFIyki8nVsr X-Authority-Analysis: v=2.4 cv=K9PYHzWI c=1 sm=1 tr=0 ts=67c46faf cx=c_pps a=gaH0ZU3udx4N2M5FeSqnRg==:117 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Vs1iUdzkB0EA:10 a=M51BFTxLslgA:10 a=i1IsUcr2s-wA:10 a=2AEO0YjSAAAA:8 a=_bZ_Ugej2YiJM_EvIRMA:9 a=QEXdDO2ut3YA:10 a=CJgG61vzA6yyTBTLYZUp:22 a=d-TXpq5eZF0AJmg2YLt_:22 X-Proofpoint-ORIG-GUID: Op8StPeGsMzHboS0rHpoOLFIyki8nVsr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-02_04,2025-02-28_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 phishscore=0 spamscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 mlxlogscore=824 impostorscore=0 clxscore=1015 bulkscore=0 suspectscore=0 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502100000 definitions=main-2503020120 If the device is connected with SDIO bus, it can wake up the host using either the SDIO controller (that requires MMC_PM_WAKE_SDIO_IRQ capability) or the out-of-bound IRQ. This patch allows both. Obviously, the SDIO controller must be able to keep the SDIO device powered on. Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bus_sdio.c | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/drivers/net/wireless/silabs/wfx/bus_sdio.c b/drivers/net/wireless/silabs/wfx/bus_sdio.c index f290eecde773..bd8e1ffb61bb 100644 --- a/drivers/net/wireless/silabs/wfx/bus_sdio.c +++ b/drivers/net/wireless/silabs/wfx/bus_sdio.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "bus.h" #include "wfx.h" @@ -191,9 +192,46 @@ static const struct of_device_id wfx_sdio_of_match[] = { }; MODULE_DEVICE_TABLE(of, wfx_sdio_of_match); +static int wfx_sdio_suspend(struct device *dev) +{ + struct sdio_func *func = dev_to_sdio_func(dev); + struct wfx_sdio_priv *bus = sdio_get_drvdata(func); + int ret; + + if (!device_may_wakeup(dev)) + return 0; + + flush_work(&bus->core->hif.bh); + // Either "wakeup-source" attribute or out-of-band IRQ is required for WoWLAN + if (bus->of_irq) { + ret = enable_irq_wake(bus->of_irq); + if (ret) + return ret; + } else { + ret = sdio_set_host_pm_flags(func, MMC_PM_WAKE_SDIO_IRQ); + if (ret) + return ret; + } + return sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER); +} + +static int wfx_sdio_resume(struct device *dev) +{ + struct sdio_func *func = dev_to_sdio_func(dev); + struct wfx_sdio_priv *bus = sdio_get_drvdata(func); + + if (!device_may_wakeup(dev)) + return 0; + if (bus->of_irq) + return disable_irq_wake(bus->of_irq); + else + return 0; +} + static int wfx_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id) { const struct wfx_platform_data *pdata = of_device_get_match_data(&func->dev); + mmc_pm_flag_t pm_flag = sdio_get_host_pm_caps(func); struct device_node *np = func->dev.of_node; struct wfx_sdio_priv *bus; int ret; @@ -235,6 +273,9 @@ static int wfx_sdio_probe(struct sdio_func *func, const struct sdio_device_id *i if (ret) goto sdio_release; + if (pm_flag & MMC_PM_KEEP_POWER) + device_set_wakeup_capable(&func->dev, true); + return 0; sdio_release: @@ -261,6 +302,8 @@ static const struct sdio_device_id wfx_sdio_ids[] = { }; MODULE_DEVICE_TABLE(sdio, wfx_sdio_ids); +DEFINE_SIMPLE_DEV_PM_OPS(wfx_sdio_pm_ops, wfx_sdio_suspend, wfx_sdio_resume); + struct sdio_driver wfx_sdio_driver = { .name = "wfx-sdio", .id_table = wfx_sdio_ids, @@ -268,5 +311,6 @@ struct sdio_driver wfx_sdio_driver = { .remove = wfx_sdio_remove, .drv = { .of_match_table = wfx_sdio_of_match, + .pm = &wfx_sdio_pm_ops, } };