From patchwork Sun Mar 2 14:47:31 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: 13997852 X-Patchwork-Delegate: johannes@sipsolutions.net 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 7646B1D61BB; Sun, 2 Mar 2025 15:14: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=1740928450; cv=fail; b=OllhZFsNk3zDe7rnhTMUaLXefgxYGlAmo6TiCUfk551Qn7K7F/tUxq4nD2ymp60xIYEL+monVhZAMG0NBrAnaiqMOC4Xhr4n6/E/ty+xfTh2UPLVTlhe79A/ACyBIVuEbwIfZHZjddVKD9oU1ongPnofb/HRMgcpfn8YBXs0igg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740928450; c=relaxed/simple; bh=uWcNIOurnFkWV8pj3AiVbZLacI44pSCi1A8Sy5Hg7Qk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=WcBx1vgD/naZEMpM2FYcU+ekMkbu47CbAJQu/nni1wq888ixaALX/HoGfIDJGxKnKCEEK+UXZvmt0GU0guufrFstn1FWyFkhQ/595cR9ECJ1VBchiMHgB6CxG2RweIpDyR8BpJHSsj+LpuPi/k0FRHHAEbpYKkHJIfxH+OTwlGs= 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=yYhrFA1L; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=P2yH7IiF; 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="yYhrFA1L"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="P2yH7IiF" 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 522EItXa010648; 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=uWcNIOurnFkWV8pj3AiVbZLacI44pSCi1A8Sy5Hg7Qk=; b=yYhrFA1Lydk+ Ymi76dtDoX6u27LItgm3KXF/yY0jbdnSL03wrZYEF3MadaA6kjrKiaxmZ0ObF0BV kGVuybKLjbbwaRwqzLTnMaMDr4EGbcoXMiTUF/vN7TOXEov/t0uloP6d3d3MIrsW HI8IJPvqzo0EbrEU6se775GU3RIN8kPDRDUsBxHXPzI4sI3cx7U08qNTI/y4/ge8 feWPYdAxP3UYC1TwKq7ZrBS1wiHF4L5WHna1IUu4f5+XdzLBILge40vW7Lbwu5rs poJC4ioZSC/iQBCLLQDBICnMXpJeqilRRkXfwRhuXUg58hNaZAqHis21pTg2457k 0AbEiDdvuQ== 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-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 02 Mar 2025 08:48:16 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gZfzQj533iB/+P3s1nCrp3XIFZSfzZugsFx2QjazYfAf5HuxZcvMxnnA5ULDdrSBSD8zHojp9ZDW0L07NdD251nVMg8NAcEYwWwQUWgWejuAgEIYdKYgGDOFY2WZWuVfy+Hszj7PEWCnqlnMLeRq+JbrRPM9tsmO/eH4i0y6g5cpWXkXBdYtGwUoDuTPbLR4ob/ZVBVtAH7pMNbDuCu5A7G13g8ATF8LzE3sgjTILaf+1ASr1a9YsApuYOX9HiYt4FxJjPCZdO2oXdY2jlO8ge65ZiW0gLYFZLhdF6YfxHJmUnfV3PH8XT18Tuk3TEo9ZCfhmaJD8GgRMNezVbw1Sw== 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=uWcNIOurnFkWV8pj3AiVbZLacI44pSCi1A8Sy5Hg7Qk=; b=P7Y5YJ/DjLMeQxXHdNgmPZ5/ml4xKvUNM8sQaHyGN99LcSVR8EG8pyq3HohZl4LEyLKQF4pFBvafcpgYroiWKT9qZK4GSHuZ/P1FHvPYkTJ05j1sKB9BWq/1ukom5yi8PqnIsp87so4iF6koF+SHPs5uWscDRTEjsVof6fYgzFEXZDhItBmxI7Abew3DUEwQpM7keF1c/v1fHiaQq+/bBranVitxHX/mcBD0RIkX1chk47D6fV+tLPPXxNq6XA4s7+qsxoa4RIuoBJpnbxd6EJkQ2lj44KrG68wztY6xMz+CiJHGVw4CKnGTeYDWt84F82+2xzMbPzPw7z0mZZn+Yw== 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=uWcNIOurnFkWV8pj3AiVbZLacI44pSCi1A8Sy5Hg7Qk=; b=P2yH7IiFO8bYD8GdH0QWPF4Gfp/nK731lejGh+bsUkvs/89+mttcKAAd1H/q7D67B4OIeNff1o0231gfaQkVfPh9FZRWWdupmz1eytECporQiGxBLM4r2Bb5vnjlYmdI9TM85DIPfQ16+MM0VSXhpoiDCbkqGV6aDHQX9SOqW2Q= 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:13 +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:13 +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 5/5] wifi: wfx: allow to enable WoWLAN using NL80211 Date: Sun, 2 Mar 2025 15:47:31 +0100 Message-Id: <20250302144731.117409-6-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: 103f957f-325d-4fa3-56d0-08dd5999427d 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?mK9Z2AnSYOyPSx8w222XF4Vfqj8q3/A?= =?utf-8?q?LtvBFgWfUVzLOlcd5AwGYoW90tZG75UQ/6mbCNUQa0Pa6vS6ZSquKuokc7izziz76?= =?utf-8?q?0zwa2E3wR6etMFcmoriDGVZzKRy/mlowtHsdV+jt+EsGslTanAO5GDpB3AqDKaMqs?= =?utf-8?q?7F1jrdtSry/rjlMxWZJL6p3s7dDIAx3eNf5S2f5tEjr2dgWm84xw/lXIR1W8F4WI1?= =?utf-8?q?rRTLGkGDhEH8nzGrij0WweTFGT5La1A56PCsfudYe/oD8jIckWutLeGiCS3OLgjIS?= =?utf-8?q?lLRkIsYYZufgOPX+3TGjstPZ0VO//oBfkygi6ISi4tAdJGicV0pU0cohMW1KTGhew?= =?utf-8?q?z0evPnfJuUxtJrZzMv7pkUCChsDOc8+4cvXqdhDeF1oth83hqq3f6WBXwkZeEsgXi?= =?utf-8?q?RMsaQaHr8IEs9xViaPfnwPedMqKXr84ksXPHWY9c74IUuCCA3eaqBHpTuMSo3hrem?= =?utf-8?q?MVOjNRRaGBEZ7GPdg0n/gGNsvc0iu3/R2X84l/vvPjwQnfzU42nXs0jBd8cf5k/TN?= =?utf-8?q?CfItLUuTLGlW4csrn31Ee7UYvl/cGfaLYP97lnmJNcbHDU1SnoEXSuBrda+Tg2TOM?= =?utf-8?q?72Kh0rtQrhF+M7pgboJMK4YKShZCry9zNC6OEFkWx8H/mcjFO22wtKIfMD3y2ByRq?= =?utf-8?q?NpBsSciCJLOylRGL+4/o0wH9SCc9BD5jUTzXes5fDk088U7gce0COU1mN+EHXqoMk?= =?utf-8?q?JAwSJwozR1KOHZmEh3pGYaO+GNOQpUEdr8NK+mxCNLZW7k891EFK9GKqNxSvYwcGu?= =?utf-8?q?4ZPLYei9RhYNbsi001gfhcsLcEhQzOIKDeJmtWqP46WpDLV49GTaQN7UcZ/7ubfkr?= =?utf-8?q?6sit7q/YgTObzz7x5S3lI8eLUdwlBpkUszHYl6JH3F2QrzZYL7XNGqUqAasAdq3B4?= =?utf-8?q?IjiOp8UoaHBrWhP9KEPKrkycXAzajUfmhcrddzsbJUM30s4PWhRPPuKSEIfFnq1lY?= =?utf-8?q?WyrFFZTFTsHRdX7MDXPhtnPh51vPwCaw7D/eUMFYIXd5dnhRNCcgyh5yKOxQ5sJWc?= =?utf-8?q?L0CeTj65ZlzDPhhEijuUgUJ9vE2TwDfGcZ7l5GoxGf8r/JUzmt6OolOwhcptpF/QX?= =?utf-8?q?O9qfapLHdcO1q9H5PKy6G06ddMMun+1WxntG8iaWFEWDirF53bf25ZYb5h5MSlaNS?= =?utf-8?q?ibaSgjdHE+UWe3oLUcmqqYoUUO0lagx4YKGIwU2x7kfTt6F3CKoreevAK/wFzlEuW?= =?utf-8?q?/jtFbEC/y/u+UPxC578UnhE9e+IRD93RRqx78kfR/emT1HVTQbVYhm6so+hwKO+Z7?= =?utf-8?q?MjGUuPV4XjTAsoiyLEat4ODediSJVFfzLrmnCJkz6cTlCiV42xFo4DN0ptFkmtNx/?= =?utf-8?q?tBVHlWkMdjzv?= 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?e6IM2f1iIar7Z9HgWaunaaVdoV9p?= =?utf-8?q?rcTcUSR7geBbSBJyB5CTC2EbPCce/ZZ3WhtuxkHl+PMlx1Csqxwb2+TOLH+tO5hSJ?= =?utf-8?q?yMLB+90tDYFM+GoJrk9vxcne9XO2F+yjwRWCGjfxTPnYk12dVdo2jm4ORstPCZbIL?= =?utf-8?q?QMXsUOeABbTgC6QQ5VzgqcibJ53qfWg7Leh+q/nhM6i5j/BP6x5aqmMdY+1FlIjem?= =?utf-8?q?vsBH6WwAcDi0VNm9OfZWVUhs/BnKR3u0rQ6Pc1p8xsKfoy+7Ab3qvuh8paZSVvx7j?= =?utf-8?q?xpoz02vnQHm37sOKnR/ECctpEohKYdRbAlj+77Xk2+DUtYzwRqfe9cyIAhxaSIBo1?= =?utf-8?q?D1tcBJZqmYRM100h/Sxs5W6p5bNnto8iGvYv5CrmxIoYtbGcjyNLXxZ+eIYlRFPZr?= =?utf-8?q?3hNdlzHTKlGYfTGWl2DeYK8O6I7n9bXhW1j0WZPaPYr0/F+tnaTt3+qAZv4so70Gv?= =?utf-8?q?UYhNtu+oNDqTKa7ST8obZGWxbho+lGflK24koy/WmiYUuRDJsVG9339EyhRRcSvh+?= =?utf-8?q?r/R5topWyN58iKGWnng7ZipE20bAOUSMOwfr6hXjBjdnktIcrePwYpwi0yaaZ2yj2?= =?utf-8?q?gWURDMqui82M/FvHOKejy0fK6m+bobhxHaMzRJvSQ5AgJAcA0O/OUcAYF78OIjXrx?= =?utf-8?q?BpzgX2+ERsuZpahDArGdZgweIa5wyFT6IBVXs5/4rTCpc7ezcDwIqibxd9NFdHwId?= =?utf-8?q?MXpjr31hgzWsPDbN2SHBCZtjnYE7FA3HNJaHYpxMY/b+UdaNX0fv5cHt7OhIps8S+?= =?utf-8?q?U2xymXqtPrj9dGE4lKHu8Ck/c3Xq1jEs4hfS0M3mMZI4zL/j3Y40YQIQghuz3mL0U?= =?utf-8?q?gkogsb+x4GRRCIk/bzNICnet7niuF+DO8oLFi/8aVDstOmp26J8yJfRMJpzPsbEJm?= =?utf-8?q?OeVHZKIJ48cIKAjLKYyfEncaXq7PED/Y+KIIweaOa1HrRPdz/w/V7vftYDdpAwwCd?= =?utf-8?q?UCMEIR5xPC649CQT7jREQ+D9mfsSsN1sUvhJpQfz5jk6JkNfGIeZeDPE8Asimzbk2?= =?utf-8?q?bQxxZxQqVOAB5YERpEL2sNnb0KNRkC82HoffCBkasEpyxRX29VC4nAeElKmwxwzBi?= =?utf-8?q?3EINgEEul11pJ/QLfKQpKhvbDDYArWK1DfVFMsMvAzf65YoDVM9/SJqNNcQS6AsBZ?= =?utf-8?q?Ig/itB81JyfmU3xZUL/hAZ73ubOLeOsTK6UIxAEXmBpM2KAJToky8PlqBxlmDCo66?= =?utf-8?q?v3Ys1m0lRY4pYPvrG9Ue6HYlc5x277ZCUBS2cpjaJySVXf670LgFvE7p5fB6bsUfy?= =?utf-8?q?pfOULEin6HnpCRiMT1suV9sfO4Et6Gxr25TmbAIDNVupvFw5IAJQT6Z68Sf3Fqmuv?= =?utf-8?q?uequ7zc6eSeUl1s/dIqGwrN9g73iRo3r2LYXp6EAamo/qMbnqQPCaZb/96IjpjCH/?= =?utf-8?q?NI6+spL9NPbGPaf56+sgFuGBNeG5KnpS0PCXDD4enOxD0dsbtGEcQUSIVBB4mWOj9?= =?utf-8?q?gITs8pkzgYoRAlhjsQ9CCunmvF1oPcknEJy3bPRuBq5tlCKNyRLg7J3N7hEbWRyG7?= =?utf-8?q?z+G+j59Jd+DxbrMXjEUsbv83sJSiV42i6NRaFdQgWxAPHcdvqs4zGyIvW5SWf3h/Y?= =?utf-8?q?XB+3yddHVSs?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 103f957f-325d-4fa3-56d0-08dd5999427d 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:13.7779 (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: 3pIQm+9NLlqUuiRGQZnvPzdAkOjJ7zjFaITpUXUopnYFKs+DycvG+fhT8yj+dePm3rwhweQpDKATQ18fnX5jMw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5312 X-Proofpoint-GUID: EXZZECXiA8LbGesOboLMfnOg1FNXpKcB X-Authority-Analysis: v=2.4 cv=K9PYHzWI c=1 sm=1 tr=0 ts=67c46fb0 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=OlggIWMgOj6OOkBI_M4A:9 a=QEXdDO2ut3YA:10 a=d-TXpq5eZF0AJmg2YLt_:22 X-Proofpoint-ORIG-GUID: EXZZECXiA8LbGesOboLMfnOg1FNXpKcB 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 It is possible to use nl80211 to request to the driver to do allow the required bus configuration to wake-up the host. This patch implements the required API for nl80211. Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bus.h | 1 + drivers/net/wireless/silabs/wfx/bus_sdio.c | 8 ++++++++ drivers/net/wireless/silabs/wfx/bus_spi.c | 8 ++++++++ drivers/net/wireless/silabs/wfx/main.c | 1 + drivers/net/wireless/silabs/wfx/sta.c | 10 ++++++++++ drivers/net/wireless/silabs/wfx/sta.h | 1 + 6 files changed, 29 insertions(+) diff --git a/drivers/net/wireless/silabs/wfx/bus.h b/drivers/net/wireless/silabs/wfx/bus.h index ccadfdd6873c..79edaef20881 100644 --- a/drivers/net/wireless/silabs/wfx/bus.h +++ b/drivers/net/wireless/silabs/wfx/bus.h @@ -28,6 +28,7 @@ struct wfx_hwbus_ops { void (*lock)(void *bus_priv); void (*unlock)(void *bus_priv); size_t (*align_size)(void *bus_priv, size_t size); + void (*set_wakeup)(void *priv, bool enabled); }; extern struct sdio_driver wfx_sdio_driver; diff --git a/drivers/net/wireless/silabs/wfx/bus_sdio.c b/drivers/net/wireless/silabs/wfx/bus_sdio.c index bd8e1ffb61bb..5540f2c66075 100644 --- a/drivers/net/wireless/silabs/wfx/bus_sdio.c +++ b/drivers/net/wireless/silabs/wfx/bus_sdio.c @@ -173,6 +173,13 @@ static size_t wfx_sdio_align_size(void *priv, size_t size) return sdio_align_size(bus->func, size); } +static void wfx_sdio_set_wakeup(void *priv, bool enabled) +{ + struct wfx_sdio_priv *bus = priv; + + device_set_wakeup_enable(&bus->func->dev, enabled); +} + static const struct wfx_hwbus_ops wfx_sdio_hwbus_ops = { .copy_from_io = wfx_sdio_copy_from_io, .copy_to_io = wfx_sdio_copy_to_io, @@ -181,6 +188,7 @@ static const struct wfx_hwbus_ops wfx_sdio_hwbus_ops = { .lock = wfx_sdio_lock, .unlock = wfx_sdio_unlock, .align_size = wfx_sdio_align_size, + .set_wakeup = wfx_sdio_set_wakeup, }; static const struct of_device_id wfx_sdio_of_match[] = { diff --git a/drivers/net/wireless/silabs/wfx/bus_spi.c b/drivers/net/wireless/silabs/wfx/bus_spi.c index 1d6bf3525f4e..257bc3cd1197 100644 --- a/drivers/net/wireless/silabs/wfx/bus_spi.c +++ b/drivers/net/wireless/silabs/wfx/bus_spi.c @@ -180,6 +180,13 @@ static size_t wfx_spi_align_size(void *priv, size_t size) return ALIGN(size, 4); } +static void wfx_spi_set_wakeup(void *priv, bool enabled) +{ + struct wfx_spi_priv *bus = priv; + + device_set_wakeup_enable(&bus->func->dev, enabled); +} + static const struct wfx_hwbus_ops wfx_spi_hwbus_ops = { .copy_from_io = wfx_spi_copy_from_io, .copy_to_io = wfx_spi_copy_to_io, @@ -188,6 +195,7 @@ static const struct wfx_hwbus_ops wfx_spi_hwbus_ops = { .lock = wfx_spi_lock, .unlock = wfx_spi_unlock, .align_size = wfx_spi_align_size, + .set_wakeup = wfx_spi_set_wakeup, }; static int wfx_spi_suspend(struct device *dev) diff --git a/drivers/net/wireless/silabs/wfx/main.c b/drivers/net/wireless/silabs/wfx/main.c index 62586786a45c..bd0cf4d29e5a 100644 --- a/drivers/net/wireless/silabs/wfx/main.c +++ b/drivers/net/wireless/silabs/wfx/main.c @@ -160,6 +160,7 @@ static const struct ieee80211_ops wfx_ops = { #ifdef CONFIG_PM .suspend = wfx_suspend, .resume = wfx_resume, + .set_wakeup = wfx_set_wakeup, #endif }; diff --git a/drivers/net/wireless/silabs/wfx/sta.c b/drivers/net/wireless/silabs/wfx/sta.c index 9e06f8b8b90d..e95b9ded17d9 100644 --- a/drivers/net/wireless/silabs/wfx/sta.c +++ b/drivers/net/wireless/silabs/wfx/sta.c @@ -10,6 +10,7 @@ #include "sta.h" #include "wfx.h" +#include "bus.h" #include "fwio.h" #include "bh.h" #include "key.h" @@ -816,6 +817,15 @@ int wfx_resume(struct ieee80211_hw *hw) { return 0; } + +void wfx_set_wakeup(struct ieee80211_hw *hw, bool enabled) +{ + struct wfx_dev *wdev = hw->priv; + + if (enabled) + dev_info(wdev->dev, "support for WoWLAN is experimental\n"); + wdev->hwbus_ops->set_wakeup(wdev->hwbus_priv, enabled); +} #endif int wfx_start(struct ieee80211_hw *hw) diff --git a/drivers/net/wireless/silabs/wfx/sta.h b/drivers/net/wireless/silabs/wfx/sta.h index 70ccc8cb7ec7..8702eed5267f 100644 --- a/drivers/net/wireless/silabs/wfx/sta.h +++ b/drivers/net/wireless/silabs/wfx/sta.h @@ -58,6 +58,7 @@ void wfx_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif struct ieee80211_chanctx_conf *conf); int wfx_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan); int wfx_resume(struct ieee80211_hw *hw); +void wfx_set_wakeup(struct ieee80211_hw *hw, bool enabled); /* Hardware API Callbacks */ void wfx_cooling_timeout_work(struct work_struct *work);