Part of the split. Please, take a look at the cover letter for more details Reviewed-by: Viktor Barna <viktor.barna.rj@xxxxxxxxxxxxxx> Reviewed-by: Gal Gur <gal.gur.jx@xxxxxxxxxxx> Signed-off-by: Alexander Savchenko <oleksandr.savchenko.dn@xxxxxxxxxxxxxx> --- drivers/net/wireless/renesas/ra6w/ctrl.h | 100 +++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 drivers/net/wireless/renesas/ra6w/ctrl.h diff --git a/drivers/net/wireless/renesas/ra6w/ctrl.h b/drivers/net/wireless/renesas/ra6w/ctrl.h new file mode 100644 index 000000000000..7d98251d81ae --- /dev/null +++ b/drivers/net/wireless/renesas/ra6w/ctrl.h @@ -0,0 +1,100 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (C) [2022-2025] Renesas Electronics Corporation and/or its affiliates. + */ + +#ifndef RA6W_CTRL_H +#define RA6W_CTRL_H + +#include <net/cfg80211.h> + +#define RA6W_CTRL_DATA_LEN 980 +#define RA6W_CTRL_RSP_EXT_LEN (sizeof(struct ra6w_ctrl_rsp_ext_hdr)) +#define RA6W_CTRL_EVENT_RESET 0 + +struct ra6w_ctrl_rsp_ext_hdr { + u32 status : 32; +}; + +struct ra6w_ctrl_rsp { + u8 cmd; + u8 ext_len; + __le16 data_len; + struct ra6w_ctrl_rsp_ext_hdr ext_hdr; + u8 data[RA6W_CTRL_DATA_LEN]; +}; + +struct ra6w_ctrl { + struct ra6w_q_event event; + u8 cmd; + void *rsp; + u16 rsp_len; +}; + +extern const int chnl2bw[]; + +struct ra6w_cfg80211_vif; +struct ra6w_cfg80211_key; + +void ra6w_ctrl_init(struct ra6w_ctrl *ctrl); +void ra6w_ctrl_event_post(struct ra6w_ctrl *ctrl, const struct sk_buff *skb); +int ra6w_ctrl_dev_hw_reset(struct ra6w_ctrl *ctrl); +int ra6w_ctrl_dev_reset(struct ra6w_ctrl *ctrl); +int ra6w_ctrl_dev_start(struct ra6w_ctrl *ctrl, const struct ra6w_cmd_phy_cfg *phy_config); +int ra6w_ctrl_otp_mac_addr_get(struct ra6w_ctrl *ctrl, u8 *mac); +int ra6w_ctrl_if_add(struct ra6w_ctrl *ctrl, const u8 *mac, u8 iftype, bool p2p, + struct ra6w_cmd_add_if_rsp *rsp); +int ra6w_ctrl_if_remove(struct ra6w_ctrl *ctrl, u8 vif_idx); +int ra6w_ctrl_me_config(struct ra6w_ctrl *ctrl, struct wiphy *wiphy); +int ra6w_ctrl_chan_config(struct ra6w_ctrl *ctrl, struct wiphy *wiphy); +int ra6w_ctrl_scan_start(struct ra6w_ctrl *ctrl, struct cfg80211_scan_request *param); +int ra6w_ctrl_scan_cancel(struct ra6w_ctrl *ctrl, const struct ra6w_cfg80211_vif *vif); +int ra6w_ctrl_connect(struct ra6w_ctrl *ctrl, const struct net_device *ndev, + struct cfg80211_connect_params *sme, + struct ra6w_cmd_sm_connect_rsp *rsp); +int ra6w_ctrl_disconnect_req(struct ra6w_ctrl *ctrl, const struct ra6w_cfg80211_vif *vif, + u16 reason); +int ra6w_ctrl_add_key_req(struct ra6w_ctrl *ctrl, const struct ra6w_cfg80211_key *key, + const u8 *key_data, u32 key_len, u8 key_index, + struct ra6w_cmd_key_add_rsp *rsp); +int ra6w_ctrl_del_key_req(struct ra6w_ctrl *ctrl, u8 key_index); +int ra6w_ctrl_add_station_req(struct ra6w_ctrl *ctrl, struct station_parameters *params, + const u8 *mac, u8 vif_idx, struct ra6w_cmd_sta_add_rsp *rsp); +int ra6w_ctrl_del_station_req(struct ra6w_ctrl *ctrl, u8 sta_idx, bool is_tdls_sta); +int ra6w_ctrl_port_control_req(struct ra6w_ctrl *ctrl, bool authorized, u8 sta_idx); +int ra6w_ctrl_remain_on_channel_req(struct ra6w_ctrl *ctrl, const struct ra6w_cfg80211_vif *vif, + struct ieee80211_channel *chan, int duration); +int ra6w_ctrl_cancel_remain_on_channel_req(struct ra6w_ctrl *ctrl); +int ra6w_ctrl_ap_start_req(struct ra6w_ctrl *ctrl, struct ra6w_cfg80211_vif *vif, + struct cfg80211_ap_settings *settings, + struct ra6w_cmd_ap_start_rsp *rsp); +int ra6w_ctrl_ap_stop_req(struct ra6w_ctrl *ctrl, const struct ra6w_cfg80211_vif *vif); +int ra6w_ctrl_change_beacon_req(struct ra6w_ctrl *ctrl, u8 vif_idx, const u8 *bcn, u16 bcn_len, + u16 tim_oft, u16 tim_len, const u16 *csa_oft); +int ra6w_ctrl_monitor_mode_req(struct ra6w_ctrl *ctrl, const struct cfg80211_chan_def *chandef, + struct ra6w_cmd_mon_mode_rsp *rsp); +int ra6w_ctrl_probe_client_req(struct ra6w_ctrl *ctrl, u8 vif_idx, u8 sta_idx, + struct ra6w_cmd_probe_client_rsp *rsp); +int ra6w_ctrl_set_ap_isolate_req(struct ra6w_ctrl *ctrl, u8 ap_isolate, + struct ra6w_cmd_ap_isolate_rsp *rsp); +int ra6w_ctrl_edca_req(struct ra6w_ctrl *ctrl, u8 ac, u32 param, bool uapsd, u8 vif_idx); +int ra6w_ctrl_set_tx_power_req(struct ra6w_ctrl *ctrl, u8 vif_idx, s8 tx_power); +int ra6w_ctrl_set_power_mgmt_req(struct ra6w_ctrl *ctrl, u8 ps_mode); +int ra6w_ctrl_cqm_rssi_config_req(struct ra6w_ctrl *ctrl, u8 vif_idx, + s32 rssi_thold, u32 rssi_hyst); +int ra6w_ctrl_mem_read_req(struct ra6w_ctrl *ctrl, u32 addr, + struct ra6w_cmd_mem_read_rsp *rsp); +int ra6w_ctrl_mem_write_req(struct ra6w_ctrl *ctrl, u32 addr, u32 value); +int ra6w_ctrl_dbg_mode_filter_req(struct ra6w_ctrl *ctrl, u32 mode); +int ra6w_ctrl_dbg_level_filter_req(struct ra6w_ctrl *ctrl, u32 level); +int ra6w_ctrl_rf_tx_req(struct ra6w_ctrl *ctrl, struct ra6w_cmd_rf_tx_data *data); +int ra6w_ctrl_rf_cw_req(struct ra6w_ctrl *ctrl, const struct ra6w_cmd_rf_cw_data *data); +int ra6w_ctrl_rf_cont_req(struct ra6w_ctrl *ctrl, const struct ra6w_cmd_rf_cont_data *data); +int ra6w_ctrl_rf_ch_req(struct ra6w_ctrl *ctrl, u16 frequency); +int ra6w_ctrl_rf_per_req(struct ra6w_ctrl *ctrl, u8 start, struct ra6w_cmd_rf_per_rsp *rsp); +int ra6w_ctrl_sm_ext_auth_req_rsp(struct ra6w_ctrl *ctrl, u8 vif_idx, u16 status); +int ra6w_ctrl_update_fw_ver(struct ra6w_ctrl *ctrl); +int ra6w_ctrl_stats_tx_req(struct ra6w_ctrl *ctrl, u8 req_type, struct ra6w_cmd_stats_tx_rsp *rsp); +int ra6w_ctrl_stats_tx_start_req(struct ra6w_ctrl *ctrl, u8 req_type); + +#endif /* RA6W_CTRL_H */ -- 2.17.1