From patchwork Tue Mar 4 15:32:24 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: 870480 Received: from mx0b-0024c301.pphosted.com (mx0b-0024c301.pphosted.com [148.163.153.153]) (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 C62FB209F42; Tue, 4 Mar 2025 15:32:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.153.153 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741102366; cv=fail; b=dnLq38zxxm6Pdv0Fa0ag3YqXSlwck+bEGGaPkM1dIdUAYmZCHKx4rhQc0ytUikPFlmAgn7BBFucWrEEbzEPP/aev0TW0tEqrt17tBGQzpR+nDIpxlO/UQxKp3BLOIdfdfuYXs44zrBnPez0zUutgKipf3yMLouM3hOF/o2BV8ss= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741102366; c=relaxed/simple; bh=HKQn4APwS/vmG+jXdk7RCpT+H0sqnvdsNSDfVWkwHus=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=mqIKZEtYNoBEhQlPWs/8fS8kjgQlubQXV0nqtusrgmOAFoOJO8Dj5m2k2A8tltcExX7Zr4Q2B0Czz5+SKGTXGxjp/J7EEP5SYRRLux42AHswTxtbO+8xdlMDSfjnZEMrXoystinIo44ZGfzgdg5V1RsgVFxggTw8JiP0RStqR2k= 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=PHDFBn9D; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=bYj4xbq5; arc=fail smtp.client-ip=148.163.153.153 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="PHDFBn9D"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="bYj4xbq5" Received: from pps.filterd (m0101742.ppops.net [127.0.0.1]) by mx0a-0024c301.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 524BAL30032344; Tue, 4 Mar 2025 09:32:41 -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=HKQn4APwS/vmG+jXdk7RCpT+H0sqnvdsNSDfVWkwHus=; b=PHDFBn9DGfgO UTWxhTDnkUmvYNS1Pd637QXoWgOO4rvec8XBKUdKVzgWZFx/CgPMPvMm5KHdFN+k CyzP4B3Nsq5ayhnhmSFbh39k6N+0zzeVWc7hD0ThpJec1AmSbHMJ2E58niX7XFpT 4ZUm2qMC4yPvA+wIPYYhwHehd0BwXR7khFMzycubD+RnlmMamPpFfmKhKo+KGtdn y28ddOsq4yAwgMtVJ+ekPNstMiQyd6yb762XzCpQHdimrsugKUUkJuNyCzMl4sEz 2HSN7fejmCeEac9qWEPqanTT4r/hmElHkMGU9dDrNEQpQc9Y8hKpekzlnxCZn867 CVo+ZgY5hA== Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2043.outbound.protection.outlook.com [104.47.58.43]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 455qchhcuw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 04 Mar 2025 09:32:41 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gLtSOkFJE4uoHQj/PTXjNLDPvkgnuscRJaDQRCO2qETcOCGi79PscRpwc8n9VTG+2t6zzyPuxJqqxlbQE86oCaCHJWxKGbmswJDD0SWsG2te2ZOCgCLY25udk4wkJLQ4aen+r17MHL7v/BJLIxDG0geqtFzx7+Mgwm8OmFFzETUGh6NUKPYfHQl6/QvvjNMJkyOfQwW2CS95QWQHLAtOKe64TiSDx5CjzDZjXJXeuYGaT7MQ/O8DulEZSy3DxiskKqI2eTjnOgCPe5vlpWrujs/Yoh1eYxzHiMhmXxoSFsMbFj0BLTJBtG40KxexB1A5JNw4vlEz4FlfKzbe8uiDPg== 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=HKQn4APwS/vmG+jXdk7RCpT+H0sqnvdsNSDfVWkwHus=; b=esel+vOnKKsD8dohstwiwXt1jiGiCY+RgE5Tyc/5VjPSHHnYgUWxkZ4nr2ohKaioBc1zSOVAuqQYmzD5pV2efxORhYcNJ1tkG3IAAkzudtVe6oa0VJ4BPoFoBLyThOhlFK1xeq8U05dxuthCg3Ie2/d87v5pwlFENXZflCgx/gqCwRvwT8/8qzzlakEA3ozJSL8X7Z+L8TgwF5vzCleTpOaRmwNir2JbqXdyhi8TsSNtD0N7qWe9/fLWB+4RAKGrqUPlkSR6Yfeoibshgo/97/Mb5vOljIPKUHe6wrGpwFbsGnyO+iClwrgzAjh15dJbvDb8naA1zH/adW5DCXsxYQ== 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=HKQn4APwS/vmG+jXdk7RCpT+H0sqnvdsNSDfVWkwHus=; b=bYj4xbq5llFrtrg8dzEw01Q6xoeu9pCTZiiBnfxQ3RiYmq1GRJbx0MoPftOHu8/6hYD4piUhACEGCmA9SWNOsFeQgLungh8ceIdRr8xP0f1EAhtWOH6nSn5yqYBUNe5YxSNUhx2sqok2dikwOnfeSguVQfndyE1NQnSEJi1QFGg= Received: from IA1PR11MB7773.namprd11.prod.outlook.com (2603:10b6:208:3f0::21) by PH0PR11MB7712.namprd11.prod.outlook.com (2603:10b6:510:290::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.16; Tue, 4 Mar 2025 15:32:39 +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; Tue, 4 Mar 2025 15:32:39 +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 v3 5/5] wifi: wfx: allow to enable WoWLAN using NL80211 Date: Tue, 4 Mar 2025 16:32:24 +0100 Message-Id: <20250304153224.39083-6-jerome.pouiller@silabs.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250304153224.39083-1-jerome.pouiller@silabs.com> References: <20250304153224.39083-1-jerome.pouiller@silabs.com> X-ClientProxiedBy: PR1P264CA0115.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:2cd::11) 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_|PH0PR11MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: 24875544-bd23-4576-e076-08dd5b31cc05 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?yRk5xLkwn6LfnkMsS6d4aNWremBGqIf?= =?utf-8?q?F49MR7tpBe3YAB2S/2cwdaa+lWaGPXWbVzDZ/GC9td6e6AKizwhwqARxXzr1bnFfy?= =?utf-8?q?1J+/J6EMQc0Hg/grOE7H5L5I/ESrEKpt5vaM5SoFzOXeVl4KTexuQew5rnwQSE772?= =?utf-8?q?5UFjetU65ryGYqFDoQ7PTBmeuJ8a6a/EX3HMBAzAVSidv3G++p3BvUdCaD2RAAjD2?= =?utf-8?q?+RXzKzeFpV7VHEjCCj4JqZUpXZhy5OM2DsYHUvgnWPNtaG0MUvpC/qj8CxYI7tm+0?= =?utf-8?q?XIhtYefhg2DmSiNJWsVrJVRH3LgY8jPA3FlTGplGMARrS4tLzWUU2PoLav/flJwU0?= =?utf-8?q?srSK4LtPgGfzYV0jvBubny8stli3+OihbOV0fpTLT7ZuB8hg3T0tr+bTxYYPJB8/L?= =?utf-8?q?4D25sPPDbk7+52F+VC6OqnrMTP41lNgtTaWzEOXQqR1sow0k4UXST+t8Nx7hZ26e8?= =?utf-8?q?x7waQjd8HOmbJWAcZqlR9VhMIpAfxlRByc43JlCehKrwpU6cafOKOTJyYOw6oud+U?= =?utf-8?q?+1+AX91wyc5QkoPisKlRbX6qDpDuhjhqYh6W/KfaNt95MLoGokAIzQcWkfJc0KTk3?= =?utf-8?q?mxayzgSn+sw11FZJ8QHrB3pM5NdRP4R4N1Ww7oL/4kMaCjO1EnL7EWxs9Ogu4WSOx?= =?utf-8?q?HvU8r3pGfSeiFNukzohASsOlW+va78WjM57bfZr/shMzmjpRACNqL7Cw5pBZIHFGR?= =?utf-8?q?v8PQLIDEmDbudKA97h2Pu0vPIsPx08wYqYdSMY+xNmX4ssMhm9rXo6SdYGubYU/+m?= =?utf-8?q?8LT14U6E8dbyV2TFUJKwFdu/afUFMU43YXekkhwM0f/CfT9n7l1OdArK261VMMlgM?= =?utf-8?q?Ycu+XEc6AOrKz2aHMGRM3x2SpsECPI1klsq6mirhHKdFdIdSb66hlc5WijIYWMx/z?= =?utf-8?q?vyOw6NkOWuwWPjQo8FGQzPY7Plf2h7U1j7uKjaDIRz/wu9skxrSKqPFf71cFwYKg2?= =?utf-8?q?gNyOuOBvfmNEEijbEOIjVOVvMHnrkENYvlNTk1v/giFI9j8PhMoNtaS5ZxGgcH1I7?= =?utf-8?q?HhsyvLqc5yQWtlJIjuJgafvac1wmzWDu/c2Uk8QJPjNqdUkZivT3/sNdMZR9HbvZ2?= =?utf-8?q?9TLVX1zu3a549F1rhoYGSgw11Sussq3F/OLLhez5muRun/12h4f9noR+NpPBIla+M?= =?utf-8?q?U0Gzs9Btwyq/NDbnzRuCFoppPgtJIeZGhYSBi/E6accddavmSK3imViQE4yhj0tiR?= =?utf-8?q?67z4KgxYoqv6/rC7Jcd3/3wyIaqyWSznDbfdA7Jt8u7ArZiDhjxM+3UZzO8BtALKV?= =?utf-8?q?lv8AKz40B34QIw7dYJTDv0OFCWb01zmOn5rBAIDKbfVFhd6YHZm/ONYcEAbpHxXk+?= =?utf-8?q?Fr9mCnpCJHu3l1CBy9nQn6puyU2Hh9nUXAHWu7e0s5rvxMEdaQCnMrPsQcNf4qgPx?= =?utf-8?q?lmRHSfPuSxg?= 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)(1800799024)(366016)(376014)(52116014)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?7xbRSVjqGUR/6OUft+2yH80EWYpN?= =?utf-8?q?IyeaWlZQ7b4qoranYkalnMuK0phTZjM5Ho69TNcVeJe1/tdspU0r/EoauaLg27G8V?= =?utf-8?q?zSaboRUe+3kBuLoD8qgk2jNIUOmyP3twJHVht3s2CKhlHypYPsfNNk3DvxLgEfYIF?= =?utf-8?q?75haY+fa1KtREkWmg60JZLnzzN7Gey8MWG3y3NQZKujtdA80Z0AvIdE4kHjdrFY0e?= =?utf-8?q?0ZQXQjzOBfzh7LmZuDHC2+8crYWGvrxLRs19z/Fshnw+4UjsPABJ+wsJC8F4md3xN?= =?utf-8?q?lbMHwKrwJDO21VIqhH5FsqKa+PkLBrTz5AnJKYQfC9olrAK6FEJNM14buAAvTFn2z?= =?utf-8?q?0Iec/tf+hX3h+4BH7RlvxzrqexrTk10tAkm7JUizVP9NwOiKAiVMipJfTIjfnYNMt?= =?utf-8?q?IMKTzhiy3yLUGxuFmEVPmcOi0bgTkF0rsfA2RDYKZAnbs8cWni9rAslY4PtUvHVlU?= =?utf-8?q?+P359WYVuhqnp3V6whXOdcM/RVU5izanuBsJh8o/k305aTJChSbMSmpQoSKF/FoCx?= =?utf-8?q?EociVpgszePXs2x93cUrlKJC9cuEvd8oq5CYbNgxbNSwBDKIFFnm6TJyjNVHwHvbf?= =?utf-8?q?lZhUx93AmwFdLGHYKHBWdZ4Cub6ZTqDDHYhzFtNcbrdoi57Wb4952szRQ8J1CJU0Q?= =?utf-8?q?nlXErzBWnsaChHfddXjwvw+klMCbbVezyU3TxvRU9rubh0PA6FI5NZbd7nIse/nRu?= =?utf-8?q?xXharsPoVLQESZMCG5pQ1EA9rITBVzu1bNkfE8mLV+LaHDNao6O6gjaOzn769RWrX?= =?utf-8?q?0tcDYl7f1WSBhGCdRi+Y/lPbyC/IqnooEWNPunH2/i/2z2tBIARqlFVKLslIsTtPB?= =?utf-8?q?fgo5umDmbbAfEl24obLrbDH67BOaDF1Z+MHBVoAS8uLs2uRmD6/9uZ80VQxNe4GBR?= =?utf-8?q?fEunjSK0QeLMw4w4TAV58jYioigdcHIH+13JWFTqjBSNUgDYCZk4pzzUl+fegsft2?= =?utf-8?q?VVLLH5It+jRRsckcNDTdIn+3dEl8KYh47eiwCmKEpaXD8dDprz3mq/sg52XHirmQ3?= =?utf-8?q?IcCyrzA6cgbtdgvgJijaHPbkKUHvwRynXh73Byqd6kjAy/VfBkIcen367KvF7QUsl?= =?utf-8?q?6Tyk5xZ1vLbxWgR2+G2V7nHE7b+0NJCtzizVVzaB/u5F3T+h2rzkaF5VHupiUrX7g?= =?utf-8?q?fNl4Can7F/kmgxeGUwGmo2kJyNRQL+yKygVOJVxRSqj/DfdBjCcpFFziZvNTdv0k+?= =?utf-8?q?OO0wzy76uwejS1QJTIIgZhEqRKeR3xDioc8hZ7vFCRXh6EBBplSAceegeG28emQaQ?= =?utf-8?q?PJvNz86ag0BRgkFUjTfx8nIwXmxkGeoX7+qDQ8RJd7AYochINzPy+MmtEdb4Jfn4K?= =?utf-8?q?eM5R3+hmd1tQv/zPqh1H5MgaOydCshR4yEMrnjOF8ckHVTItTKpvKFo4vEToS//+u?= =?utf-8?q?mRTPt2jhF9Ji7jR/nGeDjpWbSSi0Vev7fZ1E21VlJ/n8NQLd3t3MnpOXi3DiGtZJW?= =?utf-8?q?oyP8CZKe59dpV4RksjlL6qZ8fPGUxjw+Gmqer/V0KIORrg2zPTBkcK6F5qCxnQeoA?= =?utf-8?q?gr22i2x3Zwe0?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24875544-bd23-4576-e076-08dd5b31cc05 X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB7773.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2025 15:32:39.2043 (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: 3z/B/xk4UIfb9P6d1m8ggjqpOxaJ2qy04lOg95cuN9otb5U+6yodHqEVaxaIlPUhZZGjMelVMQI2DPaYuoH1Vw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB7712 X-Authority-Analysis: v=2.4 cv=DPN14zNb c=1 sm=1 tr=0 ts=67c71d19 cx=c_pps a=S2IcI55zTQM2EKrhu3zyRw==: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-GUID: RbI5rGfH_qpDrhLhf_ndaT-rnZXHIXok X-Proofpoint-ORIG-GUID: RbI5rGfH_qpDrhLhf_ndaT-rnZXHIXok X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1093,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-04_06,2025-03-03_04,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 adultscore=0 malwarescore=0 suspectscore=0 mlxscore=0 bulkscore=0 phishscore=0 clxscore=1015 spamscore=0 mlxlogscore=999 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502100000 definitions=main-2503040126 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 27c5d7f534a4..ab0793b9908f 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 20b9c016b40c..45ee19e1ecbf 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 55573d975cf9..a61128debbad 100644 --- a/drivers/net/wireless/silabs/wfx/main.c +++ b/drivers/net/wireless/silabs/wfx/main.c @@ -162,6 +162,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);