blob: 22dc359a65650e81c8fddc2f34a59c9f291f38ab [file] [log] [blame]
Madhumitha Prabakaranba451342019-02-27 15:39:12 -06001/* SPDX-License-Identifier: GPL-2.0+ */
Forest Bond5449c682009-04-25 10:30:44 -04002/*
3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
4 * All rights reserved.
5 *
Forest Bond5449c682009-04-25 10:30:44 -04006 * Purpose: Provide functions to setup NIC operation mode
7 *
8 * Author: Tevin Chen
9 *
10 * Date: May 21, 1996
11 *
12 */
13
Forest Bond5449c682009-04-25 10:30:44 -040014#ifndef __CARD_H__
15#define __CARD_H__
16
Charles Clément7b6a0012010-08-01 17:15:50 +020017#include <linux/types.h>
Malcolm Priestleya9873672014-08-30 22:25:49 +010018#include <linux/nl80211.h>
Forest Bond5449c682009-04-25 10:30:44 -040019
Nicky Chorley79bffc52014-10-26 06:30:29 +000020/*
21 * Loopback mode
22 *
23 * LOBYTE is MAC LB mode, HIBYTE is MII LB mode
24 */
Forest Bond5449c682009-04-25 10:30:44 -040025#define CARD_LB_NONE MAKEWORD(MAC_LB_NONE, 0)
Kathryn Hampton5150d012016-03-15 18:16:24 -070026/* PHY must ISO, avoid MAC loopback packet go out */
27#define CARD_LB_MAC MAKEWORD(MAC_LB_INTERNAL, 0)
Forest Bond5449c682009-04-25 10:30:44 -040028#define CARD_LB_PHY MAKEWORD(MAC_LB_EXT, 0)
29
Nicky Chorley79bffc52014-10-26 06:30:29 +000030#define DEFAULT_MSDU_LIFETIME 512 /* ms */
31#define DEFAULT_MSDU_LIFETIME_RES_64us 8000 /* 64us */
Forest Bond5449c682009-04-25 10:30:44 -040032
Nicky Chorley79bffc52014-10-26 06:30:29 +000033#define DEFAULT_MGN_LIFETIME 8 /* ms */
34#define DEFAULT_MGN_LIFETIME_RES_64us 125 /* 64us */
Forest Bond5449c682009-04-25 10:30:44 -040035
36#define CB_MAX_CHANNEL_24G 14
Igor Bezukh7745bd62014-07-25 18:34:23 +030037#define CB_MAX_CHANNEL_5G 42
Varsha Raobee80f22016-10-14 00:17:22 +053038#define CB_MAX_CHANNEL (CB_MAX_CHANNEL_24G + CB_MAX_CHANNEL_5G)
Forest Bond5449c682009-04-25 10:30:44 -040039
Malcolm Priestleyd0522702014-08-10 15:46:57 +010040struct vnt_private;
41
Sucha Supittayapornponge0f6aae2017-05-12 10:55:58 -070042void CARDvSetRSPINF(struct vnt_private *priv, u8 bb_type);
Derek Robson24c8bd82017-06-25 13:38:17 +120043void CARDvUpdateBasicTopRate(struct vnt_private *priv);
44bool CARDbIsOFDMinBasicRate(struct vnt_private *priv);
Derek Robson24c8bd82017-06-25 13:38:17 +120045void CARDvSetFirstNextTBTT(struct vnt_private *priv,
Kathryn Hampton5150d012016-03-15 18:16:24 -070046 unsigned short wBeaconInterval);
Derek Robson24c8bd82017-06-25 13:38:17 +120047void CARDvUpdateNextTBTT(struct vnt_private *priv, u64 qwTSF,
Kathryn Hampton5150d012016-03-15 18:16:24 -070048 unsigned short wBeaconInterval);
Philipp Hortmann60a16982022-05-01 22:25:41 +020049u64 vt6655_get_current_tsf(struct vnt_private *priv);
Malcolm Priestley0fc2a762014-08-10 12:21:58 +010050u64 CARDqGetNextTBTT(u64 qwTSF, unsigned short wBeaconInterval);
51u64 CARDqGetTSFOffset(unsigned char byRxRate, u64 qwTSF1, u64 qwTSF2);
Derek Robson24c8bd82017-06-25 13:38:17 +120052unsigned char CARDbyGetPktType(struct vnt_private *priv);
53void CARDvSafeResetTx(struct vnt_private *priv);
54void CARDvSafeResetRx(struct vnt_private *priv);
Nishka Dasguptad7255ba2019-05-31 23:02:26 +053055void CARDbRadioPowerOff(struct vnt_private *priv);
Derek Robson24c8bd82017-06-25 13:38:17 +120056bool CARDbSetPhyParameter(struct vnt_private *priv, u8 bb_type);
57bool CARDbUpdateTSF(struct vnt_private *priv, unsigned char byRxRate,
Malcolm Priestley032ed342015-04-21 22:33:01 +010058 u64 qwBSSTimestamp);
Branden Bonaby256ab3e2019-03-11 09:31:57 -040059bool CARDbSetBeaconPeriod(struct vnt_private *priv,
Payal Kshirsagara632b9f2020-03-09 22:39:27 +053060 unsigned short wBeaconInterval);
Forest Bond5449c682009-04-25 10:30:44 -040061
Nicky Chorley79bffc52014-10-26 06:30:29 +000062#endif /* __CARD_H__ */