1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. 4 * All rights reserved. 5 * 6 * Purpose: Provide functions to setup NIC operation mode 7 * 8 * Author: Tevin Chen 9 * 10 * Date: May 21, 1996 11 * 12 */ 13 14 #ifndef __CARD_H__ 15 #define __CARD_H__ 16 17 #include <linux/types.h> 18 #include <linux/nl80211.h> 19 20 /* 21 * Loopback mode 22 * 23 * LOBYTE is MAC LB mode, HIBYTE is MII LB mode 24 */ 25 #define CARD_LB_NONE MAKEWORD(MAC_LB_NONE, 0) 26 /* PHY must ISO, avoid MAC loopback packet go out */ 27 #define CARD_LB_MAC MAKEWORD(MAC_LB_INTERNAL, 0) 28 #define CARD_LB_PHY MAKEWORD(MAC_LB_EXT, 0) 29 30 #define DEFAULT_MSDU_LIFETIME 512 /* ms */ 31 #define DEFAULT_MSDU_LIFETIME_RES_64us 8000 /* 64us */ 32 33 #define DEFAULT_MGN_LIFETIME 8 /* ms */ 34 #define DEFAULT_MGN_LIFETIME_RES_64us 125 /* 64us */ 35 36 #define CB_MAX_CHANNEL_24G 14 37 #define CB_MAX_CHANNEL_5G 42 38 #define CB_MAX_CHANNEL (CB_MAX_CHANNEL_24G + CB_MAX_CHANNEL_5G) 39 40 struct vnt_private; 41 42 void CARDvSetRSPINF(struct vnt_private *priv, u8 bb_type); 43 void CARDvUpdateBasicTopRate(struct vnt_private *priv); 44 bool CARDbIsOFDMinBasicRate(struct vnt_private *priv); 45 void CARDvSetFirstNextTBTT(struct vnt_private *priv, 46 unsigned short wBeaconInterval); 47 void CARDvUpdateNextTBTT(struct vnt_private *priv, u64 qwTSF, 48 unsigned short wBeaconInterval); 49 bool CARDbGetCurrentTSF(struct vnt_private *priv, u64 *pqwCurrTSF); 50 u64 CARDqGetNextTBTT(u64 qwTSF, unsigned short wBeaconInterval); 51 u64 CARDqGetTSFOffset(unsigned char byRxRate, u64 qwTSF1, u64 qwTSF2); 52 unsigned char CARDbyGetPktType(struct vnt_private *priv); 53 void CARDvSafeResetTx(struct vnt_private *priv); 54 void CARDvSafeResetRx(struct vnt_private *priv); 55 void CARDbRadioPowerOff(struct vnt_private *priv); 56 bool CARDbSetPhyParameter(struct vnt_private *priv, u8 bb_type); 57 bool CARDbUpdateTSF(struct vnt_private *priv, unsigned char byRxRate, 58 u64 qwBSSTimestamp); 59 bool CARDbSetBeaconPeriod(struct vnt_private *priv, 60 unsigned short wBeaconInterval); 61 62 #endif /* __CARD_H__ */ 63