1// SPDX-License-Identifier: ISC 2/* 3 * Copyright (c) 2022 Broadcom Corporation 4 */ 5#include <linux/errno.h> 6#include <linux/types.h> 7#include <core.h> 8#include <bus.h> 9#include <fwvid.h> 10#include <cfg80211.h> 11 12#include "vops.h" 13 14#define BRCMF_WCC_E_LAST 213 15 16static int brcmf_wcc_set_sae_pwd(struct brcmf_if *ifp, 17 struct cfg80211_crypto_settings *crypto) 18{ 19 return brcmf_set_wsec(ifp, crypto->sae_pwd, crypto->sae_pwd_len, 20 BRCMF_WSEC_PASSPHRASE); 21} 22 23static int brcmf_wcc_alloc_fweh_info(struct brcmf_pub *drvr) 24{ 25 struct brcmf_fweh_info *fweh; 26 27 fweh = kzalloc(struct_size(fweh, evt_handler, BRCMF_WCC_E_LAST), 28 GFP_KERNEL); 29 if (!fweh) 30 return -ENOMEM; 31 32 fweh->num_event_codes = BRCMF_WCC_E_LAST; 33 drvr->fweh = fweh; 34 return 0; 35} 36 37const struct brcmf_fwvid_ops brcmf_wcc_ops = { 38 .set_sae_password = brcmf_wcc_set_sae_pwd, 39 .alloc_fweh_info = brcmf_wcc_alloc_fweh_info, 40}; 41