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