Madhumitha Prabakaran | ba45134 | 2019-02-27 15:39:12 -0600 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 2 | /* |
| 3 | * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. |
| 4 | * All rights reserved. |
| 5 | * |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 6 | * Purpose: Provide functions to setup NIC operation mode |
| 7 | * |
| 8 | * Author: Tevin Chen |
| 9 | * |
| 10 | * Date: May 21, 1996 |
| 11 | * |
| 12 | */ |
| 13 | |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 14 | #ifndef __CARD_H__ |
| 15 | #define __CARD_H__ |
| 16 | |
Charles Clément | 7b6a001 | 2010-08-01 17:15:50 +0200 | [diff] [blame] | 17 | #include <linux/types.h> |
Malcolm Priestley | a987367 | 2014-08-30 22:25:49 +0100 | [diff] [blame] | 18 | #include <linux/nl80211.h> |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 19 | |
Nicky Chorley | 79bffc5 | 2014-10-26 06:30:29 +0000 | [diff] [blame] | 20 | /* |
| 21 | * Loopback mode |
| 22 | * |
| 23 | * LOBYTE is MAC LB mode, HIBYTE is MII LB mode |
| 24 | */ |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 25 | #define CARD_LB_NONE MAKEWORD(MAC_LB_NONE, 0) |
Kathryn Hampton | 5150d01 | 2016-03-15 18:16:24 -0700 | [diff] [blame] | 26 | /* PHY must ISO, avoid MAC loopback packet go out */ |
| 27 | #define CARD_LB_MAC MAKEWORD(MAC_LB_INTERNAL, 0) |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 28 | #define CARD_LB_PHY MAKEWORD(MAC_LB_EXT, 0) |
| 29 | |
Nicky Chorley | 79bffc5 | 2014-10-26 06:30:29 +0000 | [diff] [blame] | 30 | #define DEFAULT_MSDU_LIFETIME 512 /* ms */ |
| 31 | #define DEFAULT_MSDU_LIFETIME_RES_64us 8000 /* 64us */ |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 32 | |
Nicky Chorley | 79bffc5 | 2014-10-26 06:30:29 +0000 | [diff] [blame] | 33 | #define DEFAULT_MGN_LIFETIME 8 /* ms */ |
| 34 | #define DEFAULT_MGN_LIFETIME_RES_64us 125 /* 64us */ |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 35 | |
| 36 | #define CB_MAX_CHANNEL_24G 14 |
Igor Bezukh | 7745bd6 | 2014-07-25 18:34:23 +0300 | [diff] [blame] | 37 | #define CB_MAX_CHANNEL_5G 42 |
Varsha Rao | bee80f2 | 2016-10-14 00:17:22 +0530 | [diff] [blame] | 38 | #define CB_MAX_CHANNEL (CB_MAX_CHANNEL_24G + CB_MAX_CHANNEL_5G) |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 39 | |
Malcolm Priestley | d052270 | 2014-08-10 15:46:57 +0100 | [diff] [blame] | 40 | struct vnt_private; |
| 41 | |
Sucha Supittayapornpong | e0f6aae | 2017-05-12 10:55:58 -0700 | [diff] [blame] | 42 | void CARDvSetRSPINF(struct vnt_private *priv, u8 bb_type); |
Derek Robson | 24c8bd8 | 2017-06-25 13:38:17 +1200 | [diff] [blame] | 43 | void CARDvUpdateBasicTopRate(struct vnt_private *priv); |
| 44 | bool CARDbIsOFDMinBasicRate(struct vnt_private *priv); |
Derek Robson | 24c8bd8 | 2017-06-25 13:38:17 +1200 | [diff] [blame] | 45 | void CARDvSetFirstNextTBTT(struct vnt_private *priv, |
Kathryn Hampton | 5150d01 | 2016-03-15 18:16:24 -0700 | [diff] [blame] | 46 | unsigned short wBeaconInterval); |
Derek Robson | 24c8bd8 | 2017-06-25 13:38:17 +1200 | [diff] [blame] | 47 | void CARDvUpdateNextTBTT(struct vnt_private *priv, u64 qwTSF, |
Kathryn Hampton | 5150d01 | 2016-03-15 18:16:24 -0700 | [diff] [blame] | 48 | unsigned short wBeaconInterval); |
Philipp Hortmann | 60a1698 | 2022-05-01 22:25:41 +0200 | [diff] [blame] | 49 | u64 vt6655_get_current_tsf(struct vnt_private *priv); |
Malcolm Priestley | 0fc2a76 | 2014-08-10 12:21:58 +0100 | [diff] [blame] | 50 | u64 CARDqGetNextTBTT(u64 qwTSF, unsigned short wBeaconInterval); |
| 51 | u64 CARDqGetTSFOffset(unsigned char byRxRate, u64 qwTSF1, u64 qwTSF2); |
Derek Robson | 24c8bd8 | 2017-06-25 13:38:17 +1200 | [diff] [blame] | 52 | unsigned char CARDbyGetPktType(struct vnt_private *priv); |
| 53 | void CARDvSafeResetTx(struct vnt_private *priv); |
| 54 | void CARDvSafeResetRx(struct vnt_private *priv); |
Nishka Dasgupta | d7255ba | 2019-05-31 23:02:26 +0530 | [diff] [blame] | 55 | void CARDbRadioPowerOff(struct vnt_private *priv); |
Derek Robson | 24c8bd8 | 2017-06-25 13:38:17 +1200 | [diff] [blame] | 56 | bool CARDbSetPhyParameter(struct vnt_private *priv, u8 bb_type); |
| 57 | bool CARDbUpdateTSF(struct vnt_private *priv, unsigned char byRxRate, |
Malcolm Priestley | 032ed34 | 2015-04-21 22:33:01 +0100 | [diff] [blame] | 58 | u64 qwBSSTimestamp); |
Branden Bonaby | 256ab3e | 2019-03-11 09:31:57 -0400 | [diff] [blame] | 59 | bool CARDbSetBeaconPeriod(struct vnt_private *priv, |
Payal Kshirsagar | a632b9f | 2020-03-09 22:39:27 +0530 | [diff] [blame] | 60 | unsigned short wBeaconInterval); |
Forest Bond | 5449c68 | 2009-04-25 10:30:44 -0400 | [diff] [blame] | 61 | |
Nicky Chorley | 79bffc5 | 2014-10-26 06:30:29 +0000 | [diff] [blame] | 62 | #endif /* __CARD_H__ */ |