| // SPDX-License-Identifier: ISC |
| /* |
| * Copyright (c) 2022 Broadcom Corporation |
| */ |
| #include <linux/errno.h> |
| #include <linux/types.h> |
| #include <core.h> |
| #include <bus.h> |
| #include <fwvid.h> |
| #include <cfg80211.h> |
| |
| #include "vops.h" |
| |
| #define BRCMF_WCC_E_LAST 213 |
| |
| static int brcmf_wcc_set_sae_pwd(struct brcmf_if *ifp, |
| struct cfg80211_crypto_settings *crypto) |
| { |
| return brcmf_set_wsec(ifp, crypto->sae_pwd, crypto->sae_pwd_len, |
| BRCMF_WSEC_PASSPHRASE); |
| } |
| |
| static int brcmf_wcc_alloc_fweh_info(struct brcmf_pub *drvr) |
| { |
| struct brcmf_fweh_info *fweh; |
| |
| fweh = kzalloc(struct_size(fweh, evt_handler, BRCMF_WCC_E_LAST), |
| GFP_KERNEL); |
| if (!fweh) |
| return -ENOMEM; |
| |
| fweh->num_event_codes = BRCMF_WCC_E_LAST; |
| drvr->fweh = fweh; |
| return 0; |
| } |
| |
| const struct brcmf_fwvid_ops brcmf_wcc_ops = { |
| .set_sae_password = brcmf_wcc_set_sae_pwd, |
| .alloc_fweh_info = brcmf_wcc_alloc_fweh_info, |
| }; |