1*4882a593Smuzhiyun // SPDX-License-Identifier: ISC 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2012 Broadcom Corporation 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef FWSIGNAL_H_ 7*4882a593Smuzhiyun #define FWSIGNAL_H_ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun /** 10*4882a593Smuzhiyun * enum brcmf_fws_fifo - fifo indices used by dongle firmware. 11*4882a593Smuzhiyun * 12*4882a593Smuzhiyun * @BRCMF_FWS_FIFO_FIRST: first fifo, ie. background. 13*4882a593Smuzhiyun * @BRCMF_FWS_FIFO_AC_BK: fifo for background traffic. 14*4882a593Smuzhiyun * @BRCMF_FWS_FIFO_AC_BE: fifo for best-effort traffic. 15*4882a593Smuzhiyun * @BRCMF_FWS_FIFO_AC_VI: fifo for video traffic. 16*4882a593Smuzhiyun * @BRCMF_FWS_FIFO_AC_VO: fifo for voice traffic. 17*4882a593Smuzhiyun * @BRCMF_FWS_FIFO_BCMC: fifo for broadcast/multicast (AP only). 18*4882a593Smuzhiyun * @BRCMF_FWS_FIFO_ATIM: fifo for ATIM (AP only). 19*4882a593Smuzhiyun * @BRCMF_FWS_FIFO_COUNT: number of fifos. 20*4882a593Smuzhiyun */ 21*4882a593Smuzhiyun enum brcmf_fws_fifo { 22*4882a593Smuzhiyun BRCMF_FWS_FIFO_FIRST, 23*4882a593Smuzhiyun BRCMF_FWS_FIFO_AC_BK = BRCMF_FWS_FIFO_FIRST, 24*4882a593Smuzhiyun BRCMF_FWS_FIFO_AC_BE, 25*4882a593Smuzhiyun BRCMF_FWS_FIFO_AC_VI, 26*4882a593Smuzhiyun BRCMF_FWS_FIFO_AC_VO, 27*4882a593Smuzhiyun BRCMF_FWS_FIFO_BCMC, 28*4882a593Smuzhiyun BRCMF_FWS_FIFO_ATIM, 29*4882a593Smuzhiyun BRCMF_FWS_FIFO_COUNT 30*4882a593Smuzhiyun }; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun struct brcmf_fws_info *brcmf_fws_attach(struct brcmf_pub *drvr); 33*4882a593Smuzhiyun void brcmf_fws_detach(struct brcmf_fws_info *fws); 34*4882a593Smuzhiyun void brcmf_fws_debugfs_create(struct brcmf_pub *drvr); 35*4882a593Smuzhiyun bool brcmf_fws_queue_skbs(struct brcmf_fws_info *fws); 36*4882a593Smuzhiyun bool brcmf_fws_fc_active(struct brcmf_fws_info *fws); 37*4882a593Smuzhiyun void brcmf_fws_hdrpull(struct brcmf_if *ifp, s16 siglen, struct sk_buff *skb); 38*4882a593Smuzhiyun int brcmf_fws_process_skb(struct brcmf_if *ifp, struct sk_buff *skb); 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun void brcmf_fws_reset_interface(struct brcmf_if *ifp); 41*4882a593Smuzhiyun void brcmf_fws_add_interface(struct brcmf_if *ifp); 42*4882a593Smuzhiyun void brcmf_fws_del_interface(struct brcmf_if *ifp); 43*4882a593Smuzhiyun void brcmf_fws_bustxfail(struct brcmf_fws_info *fws, struct sk_buff *skb); 44*4882a593Smuzhiyun void brcmf_fws_bus_blocked(struct brcmf_pub *drvr, bool flow_blocked); 45*4882a593Smuzhiyun void brcmf_fws_rxreorder(struct brcmf_if *ifp, struct sk_buff *skb, bool inirq); 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun #endif /* FWSIGNAL_H_ */ 48