From patchwork Thu Jan 13 08:55:15 2022 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: 12712464 X-Patchwork-Delegate: johannes@sipsolutions.net 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 4433BC433EF for ; Thu, 13 Jan 2022 08:57:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232214AbiAMI5n (ORCPT ); Thu, 13 Jan 2022 03:57:43 -0500 Received: from mail-dm6nam11on2085.outbound.protection.outlook.com ([40.107.223.85]:34208 "EHLO NAM11-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S233271AbiAMI4r (ORCPT ); Thu, 13 Jan 2022 03:56:47 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P4rIxq8Lzuq86duQhiQztXdbLHGhlZlqjyVFHI4t6n2v7bCB2/sF8Pdvgm7UdgUzE6JgK7Z5TKA/rVy+0kJ/OSPEakwdKU4r6lT44h723jKsguZ0onA2p8WFj2PnjFbCZnzmYu4FGdflRUDLedKrmnh28ROnoyzUaoki+zD5/f9USVKt5AsoR+RxNrWqcuTQ8Ap/BdYNb1sHw+LL+xiAP3tFp5kD8BI6ZOynPP92bHYuAQqo9HvhFxfhPpjiiUj4rElVDd1pcBZNsKGIW5e1qQlKWYc0cEuZ/GOL6KXoz7PcHxY4Fll0xbzks7MBiKi1y4WAze1qfoL4AL3jcc2BuQ== 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=riCHAqmFIsZO9jrKc2jOkwHPJnV61THtwsBYYgA/Scc=; b=Ih+oRF+f+u36PNIRu5NGF5PdNsemzWv95/D3ACVkL8Vy7377ewJcmIAqUhHSh4VM/LNBo1oSFO+/OM7vndp+pVAWWmVWEn4fvAQ4ke7zY6GumWBMJSb/TWumGQK4rX04OboiNKOejXv6iTE4g6/yeg6gJ76Ho5WwzfB5uGRxF/yamBu45Dxpp1Mwemur1td+0DkVtHb8daTTpFCFrdrxD9g2FIGMHoxB+AqHuhXF2MSD34ohnSmlN0UibJYhSlk4u28fWKdknI+VGX1kt+9726zcQbDLCpg2DjMkQSC+1tzQC8PwYA2TReveotjB2AXC0EGjObmB5JRD9nX32+wfmQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=riCHAqmFIsZO9jrKc2jOkwHPJnV61THtwsBYYgA/Scc=; b=hAogCuqfluO8fW1EFGJ0T8LzfEqfcNtgqXjpJksai0okuFgMkiPF7QqQ9U7YEZsbl0dBPhSUhe65uclFTe8ql8G/WJpf4mnlFLj1q87AeOcGibiZ1KMOrI5WDHtiePZPCjgOk5LZafQdhfbpCzyvElvCimH+66bep2FJgplr9ck= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=silabs.com; Received: from PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) by CY4PR1101MB2071.namprd11.prod.outlook.com (2603:10b6:910:1a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.9; Thu, 13 Jan 2022 08:56:22 +0000 Received: from PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4]) by PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4%5]) with mapi id 15.20.4888.011; Thu, 13 Jan 2022 08:56:22 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 22/31] staging: wfx: fix structs alignments Date: Thu, 13 Jan 2022 09:55:15 +0100 Message-Id: <20220113085524.1110708-23-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220113085524.1110708-1-Jerome.Pouiller@silabs.com> References: <20220113085524.1110708-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: SA0PR11CA0117.namprd11.prod.outlook.com (2603:10b6:806:d1::32) To PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5fe06267-ad99-4db0-d62d-08d9d6729207 X-MS-TrafficTypeDiagnostic: CY4PR1101MB2071:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:164; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vfy4/UAQcY46wi414uoVPeCUsj/rTiETyO6t44O8VDfQePbwwqow7h2+BtoDJjENxFNs1UTNuogeVTMIb5KCpsZB9Z/mQQgJh7NmenHP8fOymk059wGlAcIkXktLxqW0S4xGNeUHB9TbxGl2hfYaAGK1/7HYIkrSArkZwTP0Y3m/c3or2GdtNvZ9ZfvKx9SU1OwPgFzGgvkoP3jDoOGHHPfkMXYz3zvOHZFg34VNXC3SK1jP05gZru6uH/FC1xZNqOMcgi6NqNmGkZ217xCxNIvnabHhwbWFpgRPltc2J6n6xMylvM93uO6zqVxqQRC+KjkEi2qRv6GxWEPLnjQOtDp6OJ2ZW/qeY567a9VrA3dHb7y44U//2U8wbnvpUbr/VD54ZSnBuFPula24IywK+zhPGUJdP+Em+OjRn16LbzLhRZT8oLKqWBcumJNWTuwvr0G2SbkNGxvnjVwZ1JlxxGi2C7kpY4BkceeX5wBv87A+pUSeEPE/UAisODn5apVpzOPt1VGfqpsm0gLR0NfAg8+crlUm6tqwJoirPGzKoDJN+TgNeHRy0OZc4c9Q9zPTTRa3ebsSSerb1KBDce4Xe/HVQECVnJT8giWUfRLnETffFhr8ZM7J6CY9Y6E4pakYFsAZEN9xarAngWrVEuOkOQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5657.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(66476007)(52116002)(8676002)(6486002)(4326008)(66574015)(38100700002)(8936002)(83380400001)(6506007)(107886003)(66556008)(6666004)(36756003)(508600001)(2906002)(5660300002)(6512007)(1076003)(86362001)(186003)(316002)(66946007)(54906003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?8VYXzoySESLCi3NQbz1Ulsj9qDxJ?= =?utf-8?q?QXpYP37gX9UgBM7PQmGMFkhMj3GkMat1/olcC2luIwwIZ8hC1AOqcN1pHA18qD16N?= =?utf-8?q?aZCI8fBs4Ir5W0fZqCILnEYv8tHdoK8kgu77mJqH2pJLPm8ZO+bGReQKyrOM58/hJ?= =?utf-8?q?CDOfa5n0L0zxAAkf+osiRjMrLbAoI5tE1jwx5czmEO927ysIzAfB93iKEJEIr6P3T?= =?utf-8?q?v5GDp/djdo8QcBvPSeEdTkqmjOjAXvRxPet++PyHq8yLLS3Ig5EMabYe/r3w7uqZo?= =?utf-8?q?lH9QSpZQ+xKqk6VyjTXBrDtte7hm2qRxa8jBSwxwNbzuoaZaBkvoTs25EERUJubMy?= =?utf-8?q?vk2tOsBc5xDvHXaaaZ2ZH3r/cKYmFZqD9F818rLFtmTYYF/BjyR5dp1MsfuWzAuq/?= =?utf-8?q?Q9ToqfFo57VDDv188Bh9RwxN0VbfIpeAxsoUK/03ixM0G8HUkN2J1HlFb9IT2ipRj?= =?utf-8?q?USBJOHUoD6Zm7Ff+PLcB/nGVnZVXKQLnmuMHFHMuEnxEZr9eDOHDqIFHtyLNM18ik?= =?utf-8?q?X257ZQK1bmlthgepo2nMW4Iug8BXhDbvypqc8i5sIHWjfu+4yluTC7ZxULhVPl7Ut?= =?utf-8?q?+3UIrmwf7ZR5MjRqj6slNqQ+/mxh8VRp9FHko9A11F6cxaG6Oi9aTiW2PrFbJs79i?= =?utf-8?q?7BtRkxCRgqEEnD954SHSWYZKPk2n4XuMJMx8xM+zo4nK4tY9OmdHA8Lp4BqdwRpjX?= =?utf-8?q?OhtKBX2cMEalnxAXdGnipiDUkgRukSru23QHx57EIxHTNq7iSo5FGu1byeHDMIMJS?= =?utf-8?q?NUU5n4Jo90oJmUXAnl6iMBo+uYOuyE3P2ZPVV71JFktmb44ESwGTqe2HN4BEObyTq?= =?utf-8?q?SE9raEp+TnB1d/TRZOU3u9lIquMcuTRiCshTqHICDR/u3c9S+5qk6HJIkUcjSjIka?= =?utf-8?q?wADwNO35QKN/oG+iFgE+xBzF0kj2/igA6iJyKl814Rt6kx3QtPacYbk8gbE+SMByT?= =?utf-8?q?nngeY0Ww53Db0oSQRwpJLC0oTj0+Qi3winUCpDxWxxM6MPnRxaJHUKoaFNeNY4WUK?= =?utf-8?q?ZhjLGrSRG/QsOKuMTYDLPEZTwjEbBVVp7lLsAuuPxf6WrSsNwpAOlCaDdFkpZWEig?= =?utf-8?q?woIZZb7+y3a6dM+IXdBL+bMASFAX0QRARViKEwrOdjoVxEVcgETt/Nv6eNfoYbWAQ?= =?utf-8?q?sQnjd+Q3uwVY75823EMA77nWCRrMYodi7uDBBVIc/DC91COiXDLxjUaxc49KiFzHi?= =?utf-8?q?Jx+EgDILIfSfDP6LnItYQo/RyVvIr3NVNgo4XR1JGoMOCdO4tH8MSHbW8lSXpsxts?= =?utf-8?q?uu6pguhv1c2QWKxGaIKEhCohgquet3PlGCbnafrsHVlOoTtwoLWQVT9LL8klwIY4/?= =?utf-8?q?302SaOz0vdq+OTeHlwxtq6scA/XOCrjqlX87ESQZLG9uGLe9hFtURQ7TrNnVOa7qi?= =?utf-8?q?dZ5l+W/Ky5TtVWtqJ7dOQvoe5W35rb2bJBr1o5ghTrY1o3AA0QUjuSA5s9c0VRIGQ?= =?utf-8?q?B2vGc4z5scjBIkH8SmxdZtsejYPZ+lZrs2oaDxFVPQFlK6VfuqRrdhHhgr1YcWAeC?= =?utf-8?q?Hd1Z2IGk8lxEC6CzgC8sXLdeqQ+6QfatXbApPnFEPbZNX3vBPAN/+qphQYGIGqcpg?= =?utf-8?q?Ezb46DttA6eclAq/G3/jDXlakvQ/u28GHKBjaQny9oERxJ4Grd5EqQ=3D?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5fe06267-ad99-4db0-d62d-08d9d6729207 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5657.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2022 08:56:21.8769 (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: fKA0d57vyQl12PlDQ8QWtjG7TWMyqXdElDZHRWA3Vv2A22/A4cPxKJCjT5br2ol8eeTV5q8C6+9ejsVanBPo7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1101MB2071 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Jérôme Pouiller Some structs members were not properly aligned. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/bus_sdio.c | 12 ++--- drivers/staging/wfx/bus_spi.c | 12 ++--- drivers/staging/wfx/debug.c | 2 +- drivers/staging/wfx/fwio.c | 6 +-- drivers/staging/wfx/main.c | 54 +++++++++++------------ drivers/staging/wfx/queue.h | 8 ++-- drivers/staging/wfx/wfx.h | 80 +++++++++++++++++----------------- 7 files changed, 87 insertions(+), 87 deletions(-) diff --git a/drivers/staging/wfx/bus_sdio.c b/drivers/staging/wfx/bus_sdio.c index a3da661e355c..4b77df2f463e 100644 --- a/drivers/staging/wfx/bus_sdio.c +++ b/drivers/staging/wfx/bus_sdio.c @@ -157,13 +157,13 @@ static size_t wfx_sdio_align_size(void *priv, size_t size) } 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, - .irq_subscribe = wfx_sdio_irq_subscribe, + .copy_from_io = wfx_sdio_copy_from_io, + .copy_to_io = wfx_sdio_copy_to_io, + .irq_subscribe = wfx_sdio_irq_subscribe, .irq_unsubscribe = wfx_sdio_irq_unsubscribe, - .lock = wfx_sdio_lock, - .unlock = wfx_sdio_unlock, - .align_size = wfx_sdio_align_size, + .lock = wfx_sdio_lock, + .unlock = wfx_sdio_unlock, + .align_size = wfx_sdio_align_size, }; static const struct of_device_id wfx_sdio_of_match[] = { diff --git a/drivers/staging/wfx/bus_spi.c b/drivers/staging/wfx/bus_spi.c index fe39b4cb8194..417bb74c88b9 100644 --- a/drivers/staging/wfx/bus_spi.c +++ b/drivers/staging/wfx/bus_spi.c @@ -164,13 +164,13 @@ static size_t wfx_spi_align_size(void *priv, size_t size) } 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, - .irq_subscribe = wfx_spi_irq_subscribe, + .copy_from_io = wfx_spi_copy_from_io, + .copy_to_io = wfx_spi_copy_to_io, + .irq_subscribe = wfx_spi_irq_subscribe, .irq_unsubscribe = wfx_spi_irq_unsubscribe, - .lock = wfx_spi_lock, - .unlock = wfx_spi_unlock, - .align_size = wfx_spi_align_size, + .lock = wfx_spi_lock, + .unlock = wfx_spi_unlock, + .align_size = wfx_spi_align_size, }; static int wfx_spi_probe(struct spi_device *func) diff --git a/drivers/staging/wfx/debug.c b/drivers/staging/wfx/debug.c index c62cb5fea4eb..ae7895ea36d9 100644 --- a/drivers/staging/wfx/debug.c +++ b/drivers/staging/wfx/debug.c @@ -75,7 +75,7 @@ static int wfx_counters_show(struct seq_file *seq, void *v) seq_printf(seq, "%-24s %12s %12s %12s\n", "", "global", "iface 0", "iface 1"); #define PUT_COUNTER(name) \ - seq_printf(seq, "%-24s %12d %12d %12d\n", #name, \ + seq_printf(seq, "%-24s %12d %12d %12d\n", #name, \ le32_to_cpu(counters[2].count_##name), \ le32_to_cpu(counters[0].count_##name), \ le32_to_cpu(counters[1].count_##name)) diff --git a/drivers/staging/wfx/fwio.c b/drivers/staging/wfx/fwio.c index 24c314b10b95..9005a6fe48c8 100644 --- a/drivers/staging/wfx/fwio.c +++ b/drivers/staging/wfx/fwio.c @@ -64,9 +64,9 @@ static const char * const fwio_errors[] = { [ERR_INVALID_SEC_TYPE] = "Invalid section type or wrong encryption", [ERR_SIG_VERIF_FAILED] = "Signature verification failed", - [ERR_AES_CTRL_KEY] = "AES control key not initialized", - [ERR_ECC_PUB_KEY] = "ECC public key not initialized", - [ERR_MAC_KEY] = "MAC key not initialized", + [ERR_AES_CTRL_KEY] = "AES control key not initialized", + [ERR_ECC_PUB_KEY] = "ECC public key not initialized", + [ERR_MAC_KEY] = "MAC key not initialized", }; /* request_firmware() allocate data using vmalloc(). It is not compatible with underlying hardware diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c index 028d7e53d66e..217c0c5c60d1 100644 --- a/drivers/staging/wfx/main.c +++ b/drivers/staging/wfx/main.c @@ -121,34 +121,34 @@ static const struct ieee80211_iface_combination wfx_iface_combinations[] = { }; static const struct ieee80211_ops wfx_ops = { - .start = wfx_start, - .stop = wfx_stop, - .add_interface = wfx_add_interface, - .remove_interface = wfx_remove_interface, - .config = wfx_config, - .tx = wfx_tx, - .join_ibss = wfx_join_ibss, - .leave_ibss = wfx_leave_ibss, - .conf_tx = wfx_conf_tx, - .hw_scan = wfx_hw_scan, - .cancel_hw_scan = wfx_cancel_hw_scan, - .start_ap = wfx_start_ap, - .stop_ap = wfx_stop_ap, - .sta_add = wfx_sta_add, - .sta_remove = wfx_sta_remove, - .set_tim = wfx_set_tim, - .set_key = wfx_set_key, - .set_rts_threshold = wfx_set_rts_threshold, + .start = wfx_start, + .stop = wfx_stop, + .add_interface = wfx_add_interface, + .remove_interface = wfx_remove_interface, + .config = wfx_config, + .tx = wfx_tx, + .join_ibss = wfx_join_ibss, + .leave_ibss = wfx_leave_ibss, + .conf_tx = wfx_conf_tx, + .hw_scan = wfx_hw_scan, + .cancel_hw_scan = wfx_cancel_hw_scan, + .start_ap = wfx_start_ap, + .stop_ap = wfx_stop_ap, + .sta_add = wfx_sta_add, + .sta_remove = wfx_sta_remove, + .set_tim = wfx_set_tim, + .set_key = wfx_set_key, + .set_rts_threshold = wfx_set_rts_threshold, .set_default_unicast_key = wfx_set_default_unicast_key, - .bss_info_changed = wfx_bss_info_changed, - .configure_filter = wfx_configure_filter, - .ampdu_action = wfx_ampdu_action, - .flush = wfx_flush, - .add_chanctx = wfx_add_chanctx, - .remove_chanctx = wfx_remove_chanctx, - .change_chanctx = wfx_change_chanctx, - .assign_vif_chanctx = wfx_assign_vif_chanctx, - .unassign_vif_chanctx = wfx_unassign_vif_chanctx, + .bss_info_changed = wfx_bss_info_changed, + .configure_filter = wfx_configure_filter, + .ampdu_action = wfx_ampdu_action, + .flush = wfx_flush, + .add_chanctx = wfx_add_chanctx, + .remove_chanctx = wfx_remove_chanctx, + .change_chanctx = wfx_change_chanctx, + .assign_vif_chanctx = wfx_assign_vif_chanctx, + .unassign_vif_chanctx = wfx_unassign_vif_chanctx, }; bool wfx_api_older_than(struct wfx_dev *wdev, int major, int minor) diff --git a/drivers/staging/wfx/queue.h b/drivers/staging/wfx/queue.h index 2860c56fb933..4731debca93d 100644 --- a/drivers/staging/wfx/queue.h +++ b/drivers/staging/wfx/queue.h @@ -15,10 +15,10 @@ struct wfx_dev; struct wfx_vif; struct wfx_queue { - struct sk_buff_head normal; - struct sk_buff_head cab; /* Content After (DTIM) Beacon */ - atomic_t pending_frames; - int priority; + struct sk_buff_head normal; + struct sk_buff_head cab; /* Content After (DTIM) Beacon */ + atomic_t pending_frames; + int priority; }; void wfx_tx_lock(struct wfx_dev *wdev); diff --git a/drivers/staging/wfx/wfx.h b/drivers/staging/wfx/wfx.h index 565874815aa8..0fc8366d9fb3 100644 --- a/drivers/staging/wfx/wfx.h +++ b/drivers/staging/wfx/wfx.h @@ -28,68 +28,68 @@ struct wfx_hwbus_ops; struct wfx_dev { - struct wfx_platform_data pdata; - struct device *dev; - struct ieee80211_hw *hw; - struct ieee80211_vif *vif[2]; - struct mac_address addresses[2]; + struct wfx_platform_data pdata; + struct device *dev; + struct ieee80211_hw *hw; + struct ieee80211_vif *vif[2]; + struct mac_address addresses[2]; const struct wfx_hwbus_ops *hwbus_ops; - void *hwbus_priv; + void *hwbus_priv; - u8 keyset; - struct completion firmware_ready; + u8 keyset; + struct completion firmware_ready; struct wfx_hif_ind_startup hw_caps; - struct wfx_hif hif; - struct delayed_work cooling_timeout_work; - bool poll_irq; - bool chip_frozen; - struct mutex conf_mutex; + struct wfx_hif hif; + struct delayed_work cooling_timeout_work; + bool poll_irq; + bool chip_frozen; + struct mutex conf_mutex; - struct wfx_hif_cmd hif_cmd; - struct sk_buff_head tx_pending; - wait_queue_head_t tx_dequeue; - atomic_t tx_lock; + struct wfx_hif_cmd hif_cmd; + struct sk_buff_head tx_pending; + wait_queue_head_t tx_dequeue; + atomic_t tx_lock; - atomic_t packet_id; - u32 key_map; + atomic_t packet_id; + u32 key_map; - struct wfx_hif_rx_stats rx_stats; - struct mutex rx_stats_lock; + struct wfx_hif_rx_stats rx_stats; + struct mutex rx_stats_lock; struct wfx_hif_tx_power_loop_info tx_power_loop_info; - struct mutex tx_power_loop_info_lock; + struct mutex tx_power_loop_info_lock; int force_ps_timeout; }; struct wfx_vif { - struct wfx_dev *wdev; - struct ieee80211_vif *vif; - struct ieee80211_channel *channel; - int id; + struct wfx_dev *wdev; + struct ieee80211_vif *vif; + struct ieee80211_channel *channel; + int id; - u32 link_id_map; + u32 link_id_map; - bool after_dtim_tx_allowed; - bool join_in_progress; + bool after_dtim_tx_allowed; + bool join_in_progress; - struct delayed_work beacon_loss_work; + struct delayed_work beacon_loss_work; - struct wfx_queue tx_queue[4]; + struct wfx_queue tx_queue[4]; struct wfx_tx_policy_cache tx_policy_cache; - struct work_struct tx_policy_upload_work; + struct work_struct tx_policy_upload_work; - struct work_struct update_tim_work; + struct work_struct update_tim_work; - unsigned long uapsd_mask; + unsigned long uapsd_mask; /* avoid some operations in parallel with scan */ - struct mutex scan_lock; - struct work_struct scan_work; - struct completion scan_complete; - int scan_nb_chan_done; - bool scan_abort; + struct mutex scan_lock; + struct work_struct scan_work; + struct completion scan_complete; + int scan_nb_chan_done; + bool scan_abort; struct ieee80211_scan_request *scan_req; - struct completion set_pm_mode_complete; + struct completion set_pm_mode_complete; }; static inline struct wfx_vif *wdev_to_wvif(struct wfx_dev *wdev, int vif_id)