brintos

brintos / linux-shallow public Read only

0
0
Text · 2.5 KiB · d3c480c Raw
137 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/* Copyright(c) 2009-2012  Realtek Corporation.*/3 4#ifndef __RTL92DE_TRX_H__5#define __RTL92DE_TRX_H__6 7#define TX_DESC_SIZE				648#define TX_DESC_AGGR_SUBFRAME_SIZE		329 10#define RX_DESC_SIZE				3211 12#define	TX_DESC_NEXT_DESC_OFFSET		4013#define USB_HWDESC_HEADER_LEN			3214#define CRCLENGTH				415 16static inline void clear_pci_tx_desc_content(__le32 *__pdesc, u32 _size)17{18	memset((void *)__pdesc, 0,19	       min_t(size_t, _size, TX_DESC_NEXT_DESC_OFFSET));20}21 22struct tx_desc_92d {23	u32 pktsize:16;24	u32 offset:8;25	u32 bmc:1;26	u32 htc:1;27	u32 lastseg:1;28	u32 firstseg:1;29	u32 linip:1;30	u32 noacm:1;31	u32 gf:1;32	u32 own:1;33 34	u32 macid:5;35	u32 agg_en:1;36	u32 bk:1;37	u32 rdg_en:1;38	u32 queuesel:5;39	u32 rd_nav_ext:1;40	u32 lsig_txop_en:1;41	u32 pifs:1;42	u32 rateid:4;43	u32 nav_usehdr:1;44	u32 en_descid:1;45	u32 sectype:2;46	u32 pktoffset:8;47 48	u32 rts_rc:6;49	u32 data_rc:6;50	u32 rsvd0:2;51	u32 bar_retryht:2;52	u32 rsvd1:1;53	u32 morefrag:1;54	u32 raw:1;55	u32 ccx:1;56	u32 ampdudensity:3;57	u32 rsvd2:1;58	u32 ant_sela:1;59	u32 ant_selb:1;60	u32 txant_cck:2;61	u32 txant_l:2;62	u32 txant_ht:2;63 64	u32 nextheadpage:8;65	u32 tailpage:8;66	u32 seq:12;67	u32 pktid:4;68 69	u32 rtsrate:5;70	u32 apdcfe:1;71	u32 qos:1;72	u32 hwseq_enable:1;73	u32 userrate:1;74	u32 dis_rtsfb:1;75	u32 dis_datafb:1;76	u32 cts2self:1;77	u32 rts_en:1;78	u32 hwrts_en:1;79	u32 portid:1;80	u32 rsvd3:3;81	u32 waitdcts:1;82	u32 cts2ap_en:1;83	u32 txsc:2;84	u32 stbc:2;85	u32 txshort:1;86	u32 txbw:1;87	u32 rtsshort:1;88	u32 rtsbw:1;89	u32 rtssc:2;90	u32 rtsstbc:2;91 92	u32 txrate:6;93	u32 shortgi:1;94	u32 ccxt:1;95	u32 txrate_fb_lmt:5;96	u32 rtsrate_fb_lmt:4;97	u32 retrylmt_en:1;98	u32 txretrylmt:6;99	u32 usb_txaggnum:8;100 101	u32 txagca:5;102	u32 txagcb:5;103	u32 usemaxlen:1;104	u32 maxaggnum:5;105	u32 mcsg1maxlen:4;106	u32 mcsg2maxlen:4;107	u32 mcsg3maxlen:4;108	u32 mcs7sgimaxlen:4;109 110	u32 txbuffersize:16;111	u32 mcsg4maxlen:4;112	u32 mcsg5maxlen:4;113	u32 mcsg6maxlen:4;114	u32 mcsg15sgimaxlen:4;115 116	u32 txbuffaddr;117	u32 txbufferaddr64;118	u32 nextdescaddress;119	u32 nextdescaddress64;120 121	u32 reserve_pass_pcie_mm_limit[4];122} __packed;123 124void rtl92de_tx_fill_desc(struct ieee80211_hw *hw,125			  struct ieee80211_hdr *hdr, u8 *pdesc,126			  u8 *pbd_desc_tx, struct ieee80211_tx_info *info,127			  struct ieee80211_sta *sta,128			  struct sk_buff *skb, u8 hw_queue,129			  struct rtl_tcb_desc *ptcb_desc);130bool rtl92de_is_tx_desc_closed(struct ieee80211_hw *hw,131			       u8 hw_queue, u16 index);132void rtl92de_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);133void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,134			     struct sk_buff *skb);135 136#endif137