From patchwork Sat Oct 28 12:15:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shiji Yang X-Patchwork-Id: 739044 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DE972C0032E for ; Sat, 28 Oct 2023 12:15:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231909AbjJ1MP5 (ORCPT ); Sat, 28 Oct 2023 08:15:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53760 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229449AbjJ1MPz (ORCPT ); Sat, 28 Oct 2023 08:15:55 -0400 Received: from JPN01-OS0-obe.outbound.protection.outlook.com (mail-os0jpn01olkn2100.outbound.protection.outlook.com [40.92.98.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1904F7 for ; Sat, 28 Oct 2023 05:15:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f7384eKXsSVAIxiYddQIMqoBDGmmOwOeam80TcO8IgWWTK6DnlqeQC41f+LiWIOc3O+/uVAGHp4f/vuPOCHF2en/ZvTfvrK6GZabDcNyITD6oh0IiT/fqOwdFmZEWbkeL4brUuiXdztj7QJIP3pAvXIDtxbp94uicNKleafKQmwVjUM3Yk23+9A8lI/g5Bsr+SLlPuJUXnNJ3bHhUEAVAkpDpV+1waLebcrrJEsrwMMFfWEGMfa+6wEx6DcelpRwAIda4tJBkzroKmjVxAgjGyycTmAHKyj10e46ANMtHp7EST2dAIjT/VSMvC4zfEUebnUvOzabagKFGpsw0HaHdg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4kS6tdKoSosELNP4BSmRK4sep2svFMhPiQwszS4SgL8=; b=LIqV6wrbrZamdNp24Xag4EzGre/YOxOzZyY0CNfMKFAnOm5JB9zXaDVv71fzGdiraBjbDYtKA8d2Azk3cWbzPw9yqHLs/+hy1VdBdfMigG0Ss3sYzQdsNDX6S4rr/gBlXSrfl0wqPQmiaJy02I6cUertIGsi00GZnwNmTF5thLeZDsdKQV/Ime2EnfxIlTtViCFy47D2rn9HGtOwfCbvgvIzZ8Rgs4D8NNJH4n2l+hDzLwPRZK/Wjp70HaxwP8DGtJe3PIU1ZqRoFoceOwcf7xrkP2UV7XlzY+Rk47vJxlxbJZbAR7LRay6QUAJW3vI18LpAG5CxAp3wGC6FG5z3wA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4kS6tdKoSosELNP4BSmRK4sep2svFMhPiQwszS4SgL8=; b=VsXoUmLkz7vWDIepz//jk3eI6l2HJ+9X5ip+04bE0H2dzVobNgUCGVyXdD5E8MEYW09uw1igYOdUOXYcUlRt8GqYcNMamuKZFqMzVpiGg3SPIGPMUXNsBmBFv3NoWehSpCys6WjqnC8ynzdCqw9UdxvaUAPRYEHEnjOBajCvMNlYnthb6+fl7Drg525Rlmb61mEtXTdY8hZTKvWVfcJCSfHwlNeIxznbH1JMgoBLHnGRD2i6dzvT9XdhYqJIqwBBHtxmxK3SltBlbj3XQ/qcZVcOptVIs03lBrGJmphwlqUN5k0EB20+K8uUZU2QLzHmfoqLTlRcZklAfUH+7Zhx8w== Received: from TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:8041::8) by TYCP286MB2504.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:20e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.23; Sat, 28 Oct 2023 12:15:46 +0000 Received: from TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ([fe80::465a:2534:4d99:a25b]) by TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ([fe80::465a:2534:4d99:a25b%6]) with mapi id 15.20.6933.019; Sat, 28 Oct 2023 12:15:46 +0000 From: Shiji Yang To: linux-wireless@vger.kernel.org Cc: Stanislaw Gruszka , Kalle Valo , Shiji Yang Subject: [PATCH 1/3] wifi: rt2x00: introduce DMA busy check watchdog for rt2800 Date: Sat, 28 Oct 2023 20:15:30 +0800 Message-ID: X-Mailer: git-send-email 2.39.2 X-TMN: [nP6WELRpB07OYD/tQ50YJTcHfECBb+2qJsv9PXriLn4=] X-ClientProxiedBy: TYCP286CA0322.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3b7::11) To TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:8041::8) X-Microsoft-Original-Message-ID: <20231028121532.5397-1-yangshiji66@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYAP286MB0315:EE_|TYCP286MB2504:EE_ X-MS-Office365-Filtering-Correlation-Id: b38d04aa-b169-4107-8d1c-08dbd7af9d15 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: A8Ted2ksJmGJ6h9QTiL47mDjOusrdKI91rJpjZlkj7i1JmAOoEhtUREqRgwjde7R8qGNA8AslGnUHoIx/3YIp+Dx6cCAGHDTLpe+TOEJ87noZ1554R93f4NdWbBaNU7QRenj6HzZS1mld4PHt3wfAZzys6Ycu/5zmKiTVGfDwlILLFrPHrKy4YuOCbmEg1GBen/XVCGRKOHaQImLKTX5Any78SKGT6QShOPbNAlY4Bf5nh5MsDdx7aNj8SIgL1Svf+HK0J3R+w2BCCBwfFhjVlDZofPzoloaspecuyWouwiVncxAgZcfiF4wSN+47SeYioB1YDQKQeZz3B0jbj85ZxQ+rj4YFQrbj5WqFPEqRfx743KZBB4euTAo0H0fHCCbB3kcLdsx15L+9/Ml0giHVIBDmA3yaz7sicYcnh6qVZvGSqhGebax89c7rralzXQQ1sG1iXvJkRH42Pm3Z8IUYNWL7UZAT2CmMgDmVRdXlEO04swXYEQQx5MCuHGwL/uHFA6JYRRKZX3I0FeciwCGw8o6wP780y/BvBYBg7u9ubt0wwT8oo1g59Cxd26g61XWxNgVIz4RhF/AJTwa//OE69nqobYgTR+1uKfmy0MnYZJL1wa8TiPJ/5jn9Rc/TZZG X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1Z+JlYdmoe4WxBkbLxxM2kpQP+BuAdeO7ACwHOgQG2aBY+c0LaPfNwCB3OZtd/VOn4hYmbsQGZMIEGG0eyAl9OBJ7HLdADDvn3ebU48OQQEE+TZJrV9KJF/5CfRuBJBDAAQG9cyk+kUpkg0926bXZ1GeSae8+PGAD0TiErc92m6IaadJyYToWKS5pZoc2/tw2iDEe7Qq5v1Qqy5Ync5BI9ezyOBo5DLJ15wvT1808YS842EgL4jqmZhuBwYsWPECnl3cDAGmzU+VBpicTxduQdq4f9hatlxa4ZTE97IIJ9PcXkxRVCoiSoCLv5IU84WmfHasazLIAd+ICXaA+VX2sgNyCLVVjnnH4p7R6c369yLRzP7gpJ0teeg48UhcTk2noSP2ZXerQuwGRfFd6iAvsEE5xKJzHKOu0RxLg/D+OYeU4OURfGQN2e+VJPX5DxDJJl7Q5sQ4zyNX9jDL85HF/9AyDZihzD4kRgoF5LgnFCe3VhYvc+GHnj1RXlqUTCwmQSPoYYmgQWBf07aRGAZU7kWJ7q0jIEDlKVUNoUrhI7Mxj/ieG6vDF/Pol0B8qSrP7hdLyeNR8KWAYJsIfNIsetF2afiEKmPgAyZvkT1X5AgxKrJCvLzuCJsnn/Guze9Ju7B4JxySL/s8hp+rVOdHXIpwjZ/oaXSY1P/URCfiyU527oW7xWAv3R/23eURQJIhGn5VARTuYLb7Z4pA7elVtyjx0kJmy1wsHZoRXpbtYCBROCt/GkdgC6tnkgmw95vLP+y00IDXv5JKyWKbwfKtJQHpBFEHdrpqjGwa1tRLsRx5MAheflvXnRlIvU7PxwjV5kB8B3BTwu9Uy5Xt5L+gonL1uvqgAtvYWFHMIapt220+CrZtSSoAnSlD3bCUm120N4IT6iLSo/UNorCgATOOMfGV/6MF5/kCx5pOXu77P/CAgETXwqNF4CMQuXRPZ5srXo+Seu4Uhzp+mw8t3T+VfqzLZ4xbM9hgqjSeeXep50hirpSbn2Z/1R1NJUK81/kOiE3kSoraphVER0e6lKZPxKCRyTM+UZDA0UmNtkRPqTUr6+Ro0mFhooLqNOQOnAooLYsVuO92chYbjw1iXOAOw/JHQBBqdGSrsRqQsMyGcdk1woCdyM9f0vG7g9Fvew+f90HghFi3qK0glb569+RY9oVkRGUGFdOPupv8iP7kFKQi1xhcEJQwSVo+nUfsoTjlkkWx0UKU8HUX8YoX/7hQE+be6ctEmxYAkN3HTQM3LLc= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b38d04aa-b169-4107-8d1c-08dbd7af9d15 X-MS-Exchange-CrossTenant-AuthSource: TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2023 12:15:46.6600 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB2504 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org When I tried to fix the watchdog of rt2800, I found that sometimes the watchdog could not reset the hung device. This is because the queue did not completely stop, it just became very slow. The Mediatek vendor driver for the new chips (MT7603/MT7612) has a DMA busy watchdog to detect device hangs by checking DMA busy status. This implementation is something similar to it. To reduce unnecessary watchdog reset, we can check the INT_STATUS register together as I found that when the radio hung, the RX/TX coherent interrupt will always stuck at triggered state. This patch also changes the watchdog module parameters to the new 'hang_watchdog' and 'dma_busy_watchdog' so that we can control them separately. That's because they may have different behavior on specific chip. This watchdog function is a slight schedule and it won't affect the WiFi transmission speed. Watchdog can help the driver automatically recover from the abnormal state. So I think it should be default on. Anyway it can be disabled by module parameter 'dma_busy_watchdog=0'. Tested on MT7620 and RT5350. Signed-off-by: Shiji Yang --- .../net/wireless/ralink/rt2x00/rt2800lib.c | 81 ++++++++++++++++--- drivers/net/wireless/ralink/rt2x00/rt2x00.h | 3 + 2 files changed, 72 insertions(+), 12 deletions(-) diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c index 594dd3d9f..6ca2f2c23 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -30,9 +30,15 @@ #include "rt2800lib.h" #include "rt2800.h" -static bool modparam_watchdog; -module_param_named(watchdog, modparam_watchdog, bool, S_IRUGO); -MODULE_PARM_DESC(watchdog, "Enable watchdog to detect tx/rx hangs and reset hardware if detected"); +static bool modparam_dma_wdt = true; +module_param_named(dma_busy_watchdog, modparam_dma_wdt, bool, 0444); +MODULE_PARM_DESC(dma_busy_watchdog, "Enable watchdog to detect tx/rx" + " DMA busy and reset hardware if detected"); + +static bool modparam_hang_wdt; +module_param_named(hang_watchdog, modparam_hang_wdt, bool, 0444); +MODULE_PARM_DESC(hang_watchdog, "Enable watchdog to detect tx/rx hangs" + " and reset hardware if detected"); /* * Register access. @@ -1260,15 +1266,12 @@ static void rt2800_update_survey(struct rt2x00_dev *rt2x00dev) chan_survey->time_ext_busy += rt2800_register_read(rt2x00dev, CH_BUSY_STA_SEC); } -void rt2800_watchdog(struct rt2x00_dev *rt2x00dev) +static bool rt2800_watchdog_hung(struct rt2x00_dev *rt2x00dev) { struct data_queue *queue; bool hung_tx = false; bool hung_rx = false; - if (test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags)) - return; - rt2800_update_survey(rt2x00dev); queue_for_each(rt2x00dev, queue) { @@ -1296,18 +1299,72 @@ void rt2800_watchdog(struct rt2x00_dev *rt2x00dev) } } + if (!hung_tx && !hung_rx) + return false; + if (hung_tx) rt2x00_warn(rt2x00dev, "Watchdog TX hung detected\n"); if (hung_rx) rt2x00_warn(rt2x00dev, "Watchdog RX hung detected\n"); - if (hung_tx || hung_rx) { - queue_for_each(rt2x00dev, queue) - queue->wd_count = 0; + queue_for_each(rt2x00dev, queue) + queue->wd_count = 0; + + return true; +} + +static bool rt2800_watchdog_dma_busy(struct rt2x00_dev *rt2x00dev) +{ + bool busy_rx, busy_tx; + u32 reg_cfg = rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG); + u32 reg_int = rt2800_register_read(rt2x00dev, INT_SOURCE_CSR); + + if (rt2x00_get_field32(reg_cfg, WPDMA_GLO_CFG_RX_DMA_BUSY) && + rt2x00_get_field32(reg_int, INT_SOURCE_CSR_RX_COHERENT)) + rt2x00dev->rxdma_busy++; + else + rt2x00dev->rxdma_busy = 0; + + if (rt2x00_get_field32(reg_cfg, WPDMA_GLO_CFG_TX_DMA_BUSY) && + rt2x00_get_field32(reg_int, INT_SOURCE_CSR_TX_COHERENT)) + rt2x00dev->txdma_busy++; + else + rt2x00dev->txdma_busy = 0; + + busy_rx = rt2x00dev->rxdma_busy > 30 ? true : false; + busy_tx = rt2x00dev->txdma_busy > 30 ? true : false; + if (!busy_rx && !busy_tx) + return false; + + if (busy_rx) + rt2x00_warn(rt2x00dev, "Watchdog RX DMA busy detected\n"); + + if (busy_tx) + rt2x00_warn(rt2x00dev, "Watchdog TX DMA busy detected\n"); + + rt2x00dev->rxdma_busy = 0; + rt2x00dev->txdma_busy = 0; + + return true; +} + +void rt2800_watchdog(struct rt2x00_dev *rt2x00dev) +{ + bool reset = false; + + if (test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags)) + return; + + if (modparam_dma_wdt) + reset = rt2800_watchdog_dma_busy(rt2x00dev); + + if (modparam_hang_wdt) + reset = rt2800_watchdog_hung(rt2x00dev) || reset; + + if (reset) ieee80211_restart_hw(rt2x00dev->hw); - } } EXPORT_SYMBOL_GPL(rt2800_watchdog); @@ -12015,7 +12072,7 @@ int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev) __set_bit(REQUIRE_TASKLET_CONTEXT, &rt2x00dev->cap_flags); } - if (modparam_watchdog) { + if (modparam_hang_wdt || modparam_dma_wdt) { __set_bit(CAPABILITY_RESTART_HW, &rt2x00dev->cap_flags); rt2x00dev->link.watchdog_interval = msecs_to_jiffies(100); } else { diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00.h b/drivers/net/wireless/ralink/rt2x00/rt2x00.h index aaaf99331..62fed38f4 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h @@ -926,6 +926,9 @@ struct rt2x00_dev { */ u16 beacon_int; + /* Rx/Tx DMA busy watchdog counter */ + u16 rxdma_busy, txdma_busy; + /** * Timestamp of last received beacon */ From patchwork Sat Oct 28 12:15:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shiji Yang X-Patchwork-Id: 739043 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 18F44C0032E for ; Sat, 28 Oct 2023 12:16:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231945AbjJ1MP6 (ORCPT ); Sat, 28 Oct 2023 08:15:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53766 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230191AbjJ1MP4 (ORCPT ); Sat, 28 Oct 2023 08:15:56 -0400 Received: from JPN01-OS0-obe.outbound.protection.outlook.com (mail-os0jpn01olkn2100.outbound.protection.outlook.com [40.92.98.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 430B9AF for ; Sat, 28 Oct 2023 05:15:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VGkIYcTHgCEMMIH0smMuJ7mV6UzvhZF3BmVFPKuFDkr1r9IfN7DX4A7l+XK+lDKW+rAduXkhw6vVP+LHh+9kTUiYuxxd4DBhSLjJwH8BRoMqE3uIJkSy6kyHXDj3hNR8igYVffQqqBIkCm2o7ZPvhBsByoGtNh42fDty47+OIn++0g3HNdq3WUvko7jJwGfiWdZDXc+BZYOU7AO0ttKRBjBEbUWExTrJ/8f98SBLeZx7caPfL24R8PtdQNfW8FO7ft0Lva2WzBj/K7Vrjdb1Ijfw5IVNlZ82zMfLaIPtHUraP7OgwKmgD2c4ezVxErs2cPvNfvDQ5bz4tQGn8CK0OQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XIX+Y85cQQ9eyn1do9h7yoORpYKyEL4r3v6J+r0cMx8=; b=ZW9HcTizc4EBMmrAbWBwVvrQXyByQR+fOCILVuHPjnnVujq6pif36FHuwyVxzokplm6fAQbfsUOpZTzpj0k79fBR2Bboa08/71AydjpxP7mTgaIwLL7y+b7i41qWA5DWQyJFvxTOK9g95efmkij3YNTzjmmSo8xQBYZX9sOvSGKj6FfXXEXaYBlydu06U901/9Qg9IDZBpU5BECFTyL4GqKl8JfZ8I1LekPF6tYIMNMr8SlYG7Z2zJSj9Vp2w/k1Nsbo3Jt1bFtQYWPee/avdAFyAdfQG+riZTuNsnF4aT9+aWfGCWC96snjk8BugfeBXfjkNhAVgoTqgugwlbc6Ew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XIX+Y85cQQ9eyn1do9h7yoORpYKyEL4r3v6J+r0cMx8=; b=n3dEQQ27Suv70vzZcOVkJGYBF9zls2iz9l7I8gNUUzduaFvjAsLLRxsm2nATBhuF0b2DiiRVOD0KbJYKU8qzeHG0ejOf1PeS2RXDJNpLWNkzyHsjaXrkqQbVuaNE8o6yB0eQRQG+kGDFqkPrPpmAkjNnSNJ+eYanjc0bxL8PXQyBIUmsCZ7OlDcGs94hMiV/ipqO7OySiA5jDlr/GhDQBMlF3DxpoPrw3SIppnvIWL931taSgDOmAWQc1NiZOSpZi4OkY0HR08SrVA8egGX1/swFxtvgb78g+mzyvUm/VQrZOZcYXMVc78/MK9JQKSDA1Uu+Ucx8Ij696kLYWknZTw== Received: from TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:8041::8) by TYCP286MB2504.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:20e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.23; Sat, 28 Oct 2023 12:15:48 +0000 Received: from TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ([fe80::465a:2534:4d99:a25b]) by TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ([fe80::465a:2534:4d99:a25b%6]) with mapi id 15.20.6933.019; Sat, 28 Oct 2023 12:15:48 +0000 From: Shiji Yang To: linux-wireless@vger.kernel.org Cc: Stanislaw Gruszka , Kalle Valo , Shiji Yang Subject: [PATCH 2/3] wifi: rt2x00: disable RTS threshold for rt2800 by default Date: Sat, 28 Oct 2023 20:15:31 +0800 Message-ID: X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231028121532.5397-1-yangshiji66@outlook.com> References: <20231028121532.5397-1-yangshiji66@outlook.com> X-TMN: [AaaSacL6L0cfZjbXo5CmFtUqVGGDrU5gGSb1vM8u2P8=] X-ClientProxiedBy: TYCP286CA0322.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3b7::11) To TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:8041::8) X-Microsoft-Original-Message-ID: <20231028121532.5397-2-yangshiji66@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYAP286MB0315:EE_|TYCP286MB2504:EE_ X-MS-Office365-Filtering-Correlation-Id: 98fed0d1-9ff0-453c-fbdf-08dbd7af9e41 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eWBa0p+H+lzhcbhcRJlOL7ObcPpgFEn527olDltggtHTqIZiUxEa1LeM8wGHbcB+5dhafLEWbJGUvQkqS41qDT+5eN6umVSzv6a6m45PJHO+GpW8xThESZd73tEmJKdeaW1nl7/k8cr8UD7xVejg9Gs9UJnbpt68Ruy+x1rrSSxxXX9V9YLQNMe88GZOE9pWrpvSteHCVIhYlWyrlFdjv+gkBlU5OjK40b+oclKo9erzJKPY+97aPImv7uRnd70ne8s5T6HkXbyez8ldkh5mcIl7j12tnx6lqKwPP89IOY5z0/LqqzLGX07yqTm+XG5Pgax7/fGh0LhoYUwRZXcJvuu/zDC+pn9YcGddfMgJilNGuCBYSOw9cXE+UuVsDMwxb+CGFUob/QTThpackkyhTTyQhu+UDvVj1UkQLEKJCi1ddTAeUJyS5+oyaupIoSoaGiTxYocj0gyXWCl98uZ3dmTDzwYY5LW06X5GM3vUrqKIsnqn2XUivIVcWatZQR/ESIEuZh605pLke4RpNXbz+w1JeAuTQTVpOOEW0IqizwefJURFkf0LK435NzJppYb55l6UctALFQx9EV+9F1M06Z+NF3mYNHWuPibEPSRP6yg= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DNxk1E31NUoQZZlBfUBeaLR7IZHxOSiM9BaCPLFJRUtrmzCxPvdVro/OXNL0gBQEqn+Jcx22bl0G6SXIGbZ+VQJ5araPU6jfRCMa4ZBz291UJK6QpCykatAwIx9d58BE4x5ZX4tyaSsztu8MQXTxGFhgcDVLA9cr3hznf5uJ9nQPTULfIaOTE7IKuTlUYxP48mOQChjJklTO9vuRY7mnhiO/zbI4aQXcbsx5jDjQTSMO+5xCkwACo4WCsrrtBmuiyZIr5Zmmaf+bjIOVkSeGUNVz33kqzD/wI78+wpyCXVsmzi//9z4EXdKN8LV2FFjfnonkoDL9wLhu1VqNXiEQUYqkg5ynurCIsvk4hpyc6BwrzPc2t/niQZ7p2RJCup9Qs2D4wc3TXNSjhAvdu64ucX36r72756qBaOTuLR1QAhnCwPktnPSj/P3i9fJjI415+2QkOD0IgesORITb4vsCFsv3NOyWuNcVHPTjiIVEHLHWMDjGSF+5zLwLuLlQOYLIdMVl9kKHl7EEnELl+Xbr9+seHiFzk4McRomhDYfP+SDO63M1rr6tws9Ki+HJivoJ2yrflHusBjGIyaynUdvlARwBwWasrMKzR/mz2j8w+32gzE97zaUh4LBKTBlUx/i5lYme19cbzajs+fpKkQGMiue1ICs4Ly4AzJHVvk0IL44naHvrl0mS8/LzuxrV4/sRaus3iapDZ0r5Vyj/MqKMuBl7geb2FHRFrXCzzZS3z81S+Eql0LHFocMz8yrY3mTKzVNEWldoQToePE93lPt4SJDWLlJwV8NppZM67FeW5z2XY+gH/JKDZ2YUONSe9sQY0mXQvHaORgZEIZ8WP7ZntJ0K/R0t8Cg4rNMhiahgYCXaulKU6kehFH8t6OvpS6HpXt4pEqsAYLwZqLnKyAa89nVeEDs2cRsjzKhSq4mCaL4K7irZ6bM/aBIeMAoVkJ/8/kFGHjTE9rNP34mLe6uxScdNxUPj/FhdxMGKPbqAvDh4usliUqoYF+Oil2Ap4RfWdeckFTbnD1i0ica1/+T5kg6lf4WmWMkf+YMpHVMu7PbC6B/vCsyGTdAx284H8nMSnQDZ//CuAXI/JfmcSosp0trG8b50LGkLmgmIqbO2ONCdaZa8jlAeAwB+50ntrWMCvmuzbnuydJRXu+6Wb1NJcWuFwaTKfpEY76Pvg2LvYzNdJDDCLq2IUIlaDY2Kg5aIbV54Ab1BuWjEsb00+ednyl1euKkzaAr0wWcbVwWJanc= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98fed0d1-9ff0-453c-fbdf-08dbd7af9e41 X-MS-Exchange-CrossTenant-AuthSource: TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2023 12:15:48.1057 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB2504 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Disable the RTS threshold for OFDM and CCK rates by default as the initial RTS threshold is 'IEEE80211_MAX_RTS_THRESHOLD'. And RTS thresholds for all other rates have already been disabled when init. Signed-off-by: Shiji Yang Acked-by: Stanislaw Gruszka --- drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c index 6ca2f2c23..bcc63f1cb 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -6104,7 +6104,7 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev) rt2x00_set_field32(®, CCK_PROT_CFG_TX_OP_ALLOW_MM40, 0); rt2x00_set_field32(®, CCK_PROT_CFG_TX_OP_ALLOW_GF20, 1); rt2x00_set_field32(®, CCK_PROT_CFG_TX_OP_ALLOW_GF40, 0); - rt2x00_set_field32(®, CCK_PROT_CFG_RTS_TH_EN, 1); + rt2x00_set_field32(®, CCK_PROT_CFG_RTS_TH_EN, 0); rt2800_register_write(rt2x00dev, CCK_PROT_CFG, reg); reg = rt2800_register_read(rt2x00dev, OFDM_PROT_CFG); @@ -6117,7 +6117,7 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev) rt2x00_set_field32(®, OFDM_PROT_CFG_TX_OP_ALLOW_MM40, 0); rt2x00_set_field32(®, OFDM_PROT_CFG_TX_OP_ALLOW_GF20, 1); rt2x00_set_field32(®, OFDM_PROT_CFG_TX_OP_ALLOW_GF40, 0); - rt2x00_set_field32(®, OFDM_PROT_CFG_RTS_TH_EN, 1); + rt2x00_set_field32(®, OFDM_PROT_CFG_RTS_TH_EN, 0); rt2800_register_write(rt2x00dev, OFDM_PROT_CFG, reg); reg = rt2800_register_read(rt2x00dev, MM20_PROT_CFG); From patchwork Sat Oct 28 12:15:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shiji Yang X-Patchwork-Id: 739225 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2ACA9C27C47 for ; Sat, 28 Oct 2023 12:16:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231903AbjJ1MQB (ORCPT ); Sat, 28 Oct 2023 08:16:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231936AbjJ1MP6 (ORCPT ); Sat, 28 Oct 2023 08:15:58 -0400 Received: from JPN01-OS0-obe.outbound.protection.outlook.com (mail-os0jpn01olkn2100.outbound.protection.outlook.com [40.92.98.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 82C35F2 for ; Sat, 28 Oct 2023 05:15:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iO2Nr7bY72v6pkUqCFFmRFf2Hf4ZXKaHVRbMjZzYpl4YHkUFZqgAEgQyIb9ahxCTehv0fKFu6E/M5xa31KjVwcTKnzIQxBLxHgITz5WXmMrzvzO+5htxni+eGMbIKJCESPvElyZUwrupdGXcu1nlcN8h5N7SElgYoo9GBRMgk5iJjYCPl0LNviWW9R3w3rglgShmVI3kq7FbhlmSnLuqenWkroGdJYS3hg3kdTbsioevwLNf3nFESMDmhMc/pBWywTIukzF1miAs1IciNIvVCgFNk2RjET7wsi8qQaVBKhY+qmNuBCv9SMm0/vqkKOlw0gz/mdZhZeh5GJ+xfZceQw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZyLnx4XRRGTFz+0ABHX6QJ9I3vyURIlc7WdhcMFzm0c=; b=Amk7kT556luvvmqQgcR6FE8rKpMAejafD2EfVmSl9BIY7spZiZa49tzdZAwBTRStMIbfJhNE3kVKet1sV2KzbfuG+E5JNvgted4VjgC0FIe6ZNK3DESWusyiJzKV35aHJdWkSmdhjguKZtN6hNERPM/1SexsLJmBE58lqAq+KvVdetFTgyKUkn+qPzkCXxO5lvK2y5hf06r8i4efMNDFdm0S4nrp517Cqf5GSaluE1Ry/GCeHQyAxXm6BM5dFX+8tWo82fMfJ+Xr7O54OxHRP+uLWArKGjcsdrGEshdzBpmjOo6F5h2N5QB2WQsLrIYYLMj2M6VzPOaPBE4HvHaR1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZyLnx4XRRGTFz+0ABHX6QJ9I3vyURIlc7WdhcMFzm0c=; b=Dxd/E9I2MWkhxVBN+S/AiAM6hQ8/FXD3/M2oSt3eYKnsRBcH30LJde1Pa4m/uTN5/3mQBp0a0ElKhgTWMxLTjmgJ/8dHLQcMMMLcfJeQlkGpsw1VOoJ1K/GsImrES+7aXEjRO9G6iBaJB8+FIq9mEuLtaOhY3lr5fUTTsjQxGFXY+USIHNbknRW/Ir21yr82vzA9RA3ed13U0h290MrIz9aIFQz9tP2ud+yTXWdp77Ph2PfKqli3uM0mbZozkyIj9aYQ6IxoP0l7giQhkwoSNAFhEh7vxhvHwqEz8JGiidFh/aIuwgchol+g8eWuWsV73S9trx6xPRQ7CPbneIxmnQ== Received: from TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:8041::8) by TYCP286MB2504.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:20e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.23; Sat, 28 Oct 2023 12:15:49 +0000 Received: from TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ([fe80::465a:2534:4d99:a25b]) by TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ([fe80::465a:2534:4d99:a25b%6]) with mapi id 15.20.6933.019; Sat, 28 Oct 2023 12:15:49 +0000 From: Shiji Yang To: linux-wireless@vger.kernel.org Cc: Stanislaw Gruszka , Kalle Valo , Shiji Yang Subject: [PATCH 3/3] wifi: rt2x00: restart beacon queue when hardware reset Date: Sat, 28 Oct 2023 20:15:32 +0800 Message-ID: X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231028121532.5397-1-yangshiji66@outlook.com> References: <20231028121532.5397-1-yangshiji66@outlook.com> X-TMN: [9PUNADnYYH6dWKac80lqsw3sDxTrRWvwAasQKR1MFro=] X-ClientProxiedBy: TYCP286CA0322.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3b7::11) To TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:8041::8) X-Microsoft-Original-Message-ID: <20231028121532.5397-3-yangshiji66@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYAP286MB0315:EE_|TYCP286MB2504:EE_ X-MS-Office365-Filtering-Correlation-Id: 052d190c-7063-4235-d095-08dbd7af9f13 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WcmfLivArwCTWKZI+dDjhU3dJvfsQ9cZ45P/7zhyuaIWRqOaKo9OAy+6oJnBocRG8A98fiQzqCby8KPPqp38LTPD4TvuVXpImVDCCJaIx1K5i2yyiMiHd7x79ocnUXlL1I8PMGzpGNffF4CX0Cezkc+gPNXORoaiDhATJUeKOQYeqGHpHLYb4kzTCKgWS19nUU/jA7XcT/Y1TS8ry3v/JSYzVxqUGLKwNMlVOkHCyZSCcR1K/QE2Ikv7aswcpry64bAl8U7JEX0urDIGKer/aoTKN/9t6oklrbs8NQsCMLkULimJI3+KO1spxG6Z/dW6oJWlkDVLmELVqNSZwz8IHcl8MRsKByas1buTnNDti2qpCjhreGrLtuZXBpnR7EZJ/L9u8yV98kKJzYRjPKvhroJ9rS3hqfBjQyyPV48S4dRm2WZ4m3J+vzl2WkDqKBu7mZCLkeMaBrDMcC4UgbctSJzqNBan2nooTkWoYUlTU+uuONYFLCK06eDfOMYHtBVn+AH0nB3J7QHKx+znFKKhI4UOA9MCKRrSxsCy97BGiC8POuPC07hcQyBBIparp8pe2m6AU6pNm7G9b0s/zVnx8oU4nvjnUXEM0KD9UgfHosk= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JhygI5fJoklv1JgTtSQ/pPUPevrreiTUVVh+pE4N8jzXsvChehSxBW/5uetHU8AXRb59avBy8MCiXku/sDFXuRudFrFiHYd0mSZLqpO12BiRc2f1WlHRIag+6oKlz4tNLKXFKlYCl+ibUZeTYduNd0jw6voqjuV7iOLwJqRFUh3NvyRZjbvgZ9CdToNF5eo5ccvuIkWRspgh2Yj6oVFP2lEJRCI6ncLUHOmA+3tfJ7dDY4hdXIFqAAKSfkxk6evG1Vw8Y/bKRQwyoShuEb775m4KNctFSD8oJKK0MtqNobd6tWpKMrVf5kz/nEoSmmN7caxoj8QH8JcoxQCJ2s8FWtYSxBCUX7Yhxz81Mz03S7cb4FGxSaHEKfa1jpWT0/2iMNnda4wYIUCen3ezAbYGz9y2Wr6trL/6kZOB0TJg57HeEVOkPW4WLz9NOijRgGQA239CVXZGyDNqwIHMWOwbR3isJ8NuzTYCwMt0vBROnxWryZzGPOfssF9cX+idYoKwfV0ySaphf1p4S6cK9mZHQYLYnhPj0RnU9NwPM7k3SOw3O6Cwa5rDWwr5oF1N2uqVZZo4/aaBs2C/YKrtDf7D9TGr55+OJECclNcAqGHPxjKQ+hDWCQt+M/mOreAZzHBzRrsfDK4WC22XWbbHfmP1n8Tj4zcdtcTHFOJ87H6H67p0mnaKilbtHAkq0xzXjb/vpU58IJ/KO+pXRDoAxe+bgjBKbUhnlriFV8vIQMQeDrdbY73wAa/snndbgyFlTx/kCay6SCEFOP8hol/B02peZHJKy6IYFYChfWbxeA+tQCNdwV5kwnKq1D7BKdtf5En1xk2v6mOtV14jEp0uk9xJF8+cquEMSse0+Hl11XIO1aXq8nZ7DdyQrDiBpusfx7zkQYm8yRYJn9QmMHN1Cd/Um3PowLjBnuBkKtBkUXMT9JHaci8rWezIV9xN6qHsf97PlwYX/Zm+Wmo06+Gl9Z32HQPmZUwmFv7/PLYKy9Y+FZoFS5uonH5N1DM5gda+onPJ7p8HakrniNbW6KrT1RaKSCkZ/WmTSeOwu2puuXUg+Rh55fGK4OX5uPJ1rNddt+iNLlqdnrpUoSfQwCFFztGQiwPiJGiZO6lntWNX12H/EIrY7owtPzxFU6ZNztHrZgU7aTMenPLx6B+s2K7V3SJxFC2v3OvBQ34kQaaQcIGEDIIQvcDDx38QhGuzEHwxHURmaHOojMAcDp1GNmyL2pNZCbhfW3RghATI8J2JbAZczmo= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 052d190c-7063-4235-d095-08dbd7af9f13 X-MS-Exchange-CrossTenant-AuthSource: TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2023 12:15:49.4440 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB2504 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org When a hardware reset is triggered, all registers are reset, so all queues are forced to stop in hardware interface. However, mac80211 will not automatically stop the queue. If we don't manually stop the beacon queue, the queue will be deadlocked and unable to start again. This patch fixes the issue where Apple devices cannot connect to the AP after calling ieee80211_restart_hw(). Signed-off-by: Shiji Yang Acked-by: Stanislaw Gruszka --- drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 3 +++ drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c index 9a9cfd0ce..ac58a56c3 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c @@ -101,6 +101,8 @@ void rt2x00lib_disable_radio(struct rt2x00_dev *rt2x00dev) rt2x00link_stop_tuner(rt2x00dev); rt2x00queue_stop_queues(rt2x00dev); rt2x00queue_flush_queues(rt2x00dev, true); + if (test_bit(DEVICE_STATE_RESET, &rt2x00dev->flags)) + rt2x00queue_stop_queue(rt2x00dev->bcn); /* * Disable radio. @@ -1286,6 +1288,7 @@ int rt2x00lib_start(struct rt2x00_dev *rt2x00dev) rt2x00dev->intf_ap_count = 0; rt2x00dev->intf_sta_count = 0; rt2x00dev->intf_associated = 0; + rt2x00dev->intf_beaconing = 0; /* Enable the radio */ retval = rt2x00lib_enable_radio(rt2x00dev); diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c index 4202c6517..6fcbf534a 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c @@ -615,7 +615,9 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw, * and keep it running on other interfaces. */ rt2x00queue_clear_beacon(rt2x00dev, vif); - } else if (bss_conf->enable_beacon && !intf->enable_beacon) { + } else if (bss_conf->enable_beacon && + (!intf->enable_beacon || + test_bit(DEVICE_STATE_RESET, &rt2x00dev->flags))) { rt2x00dev->intf_beaconing++; intf->enable_beacon = true; /*