1*4882a593Smuzhiyun // SPDX-License-Identifier: ISC 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2014 Broadcom Corporation 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun #ifndef BRCMFMAC_MSGBUF_H 6*4882a593Smuzhiyun #define BRCMFMAC_MSGBUF_H 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #ifdef CONFIG_BRCMFMAC_PROTO_MSGBUF 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #define BRCMF_H2D_MSGRING_CONTROL_SUBMIT_MAX_ITEM 64 11*4882a593Smuzhiyun #define BRCMF_H2D_MSGRING_RXPOST_SUBMIT_MAX_ITEM 512 12*4882a593Smuzhiyun #define BRCMF_D2H_MSGRING_CONTROL_COMPLETE_MAX_ITEM 64 13*4882a593Smuzhiyun #define BRCMF_D2H_MSGRING_TX_COMPLETE_MAX_ITEM 1024 14*4882a593Smuzhiyun #define BRCMF_D2H_MSGRING_RX_COMPLETE_MAX_ITEM 512 15*4882a593Smuzhiyun #define BRCMF_H2D_TXFLOWRING_MAX_ITEM 512 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #define BRCMF_H2D_MSGRING_CONTROL_SUBMIT_ITEMSIZE 40 18*4882a593Smuzhiyun #define BRCMF_H2D_MSGRING_RXPOST_SUBMIT_ITEMSIZE 32 19*4882a593Smuzhiyun #define BRCMF_D2H_MSGRING_CONTROL_COMPLETE_ITEMSIZE 24 20*4882a593Smuzhiyun #define BRCMF_D2H_MSGRING_TX_COMPLETE_ITEMSIZE_PRE_V7 16 21*4882a593Smuzhiyun #define BRCMF_D2H_MSGRING_TX_COMPLETE_ITEMSIZE 24 22*4882a593Smuzhiyun #define BRCMF_D2H_MSGRING_RX_COMPLETE_ITEMSIZE_PRE_V7 32 23*4882a593Smuzhiyun #define BRCMF_D2H_MSGRING_RX_COMPLETE_ITEMSIZE 40 24*4882a593Smuzhiyun #define BRCMF_H2D_TXFLOWRING_ITEMSIZE 48 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun struct msgbuf_buf_addr { 27*4882a593Smuzhiyun __le32 low_addr; 28*4882a593Smuzhiyun __le32 high_addr; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun int brcmf_proto_msgbuf_rx_trigger(struct device *dev); 32*4882a593Smuzhiyun void brcmf_msgbuf_delete_flowring(struct brcmf_pub *drvr, u16 flowid); 33*4882a593Smuzhiyun int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr); 34*4882a593Smuzhiyun void brcmf_proto_msgbuf_detach(struct brcmf_pub *drvr); 35*4882a593Smuzhiyun #else brcmf_proto_msgbuf_attach(struct brcmf_pub * drvr)36*4882a593Smuzhiyunstatic inline int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr) 37*4882a593Smuzhiyun { 38*4882a593Smuzhiyun return 0; 39*4882a593Smuzhiyun } brcmf_proto_msgbuf_detach(struct brcmf_pub * drvr)40*4882a593Smuzhiyunstatic inline void brcmf_proto_msgbuf_detach(struct brcmf_pub *drvr) {} 41*4882a593Smuzhiyun #endif 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun #endif /* BRCMFMAC_MSGBUF_H */ 44