mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 08:46:46 +00:00
brcmfmac: add handler for credit map firmware events
The firmware signalling functionality needs the credit map firmware events. This patch adds registration of a handler for this event. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Piotr Haber <phaber@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
ce814c1bb4
commit
43fa635e16
1 changed files with 24 additions and 0 deletions
|
@ -197,6 +197,7 @@ struct brcmf_fws_info {
|
|||
struct brcmf_pub *drvr;
|
||||
struct brcmf_fws_stats stats;
|
||||
struct brcmf_fws_mac_descriptor nodes[BRCMF_FWS_MAC_DESC_TABLE_SIZE];
|
||||
int fifo_credit[NL80211_NUM_ACS+1+1];
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -346,6 +347,22 @@ do { \
|
|||
#define brcmf_fws_unlock(drvr, flags) \
|
||||
spin_unlock_irqrestore(&((drvr)->fws_spinlock), (flags))
|
||||
|
||||
static int brcmf_fws_notify_credit_map(struct brcmf_if *ifp,
|
||||
const struct brcmf_event_msg *e,
|
||||
void *data)
|
||||
{
|
||||
struct brcmf_fws_info *fws = ifp->drvr->fws;
|
||||
int i;
|
||||
ulong flags;
|
||||
u8 *credits = data;
|
||||
|
||||
brcmf_fws_lock(ifp->drvr, flags);
|
||||
for (i = 0; i < ARRAY_SIZE(fws->fifo_credit); i++)
|
||||
fws->fifo_credit[i] = *credits++;
|
||||
brcmf_fws_unlock(ifp->drvr, flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int brcmf_fws_init(struct brcmf_pub *drvr)
|
||||
{
|
||||
u32 tlv = 0;
|
||||
|
@ -370,6 +387,13 @@ int brcmf_fws_init(struct brcmf_pub *drvr)
|
|||
brcmf_err("failed to set bdcv2 tlv signaling\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (brcmf_fweh_register(drvr, BRCMF_E_FIFO_CREDIT_MAP,
|
||||
brcmf_fws_notify_credit_map)) {
|
||||
brcmf_err("register credit map handler failed\n");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* set linkage back */
|
||||
drvr->fws->drvr = drvr;
|
||||
|
||||
|
|
Loading…
Reference in a new issue