#ifndef __iwl_mld_phy_h__
#define __iwl_mld_phy_h__
#include "mld.h"
struct iwl_mld_phy {
struct_group(zeroed_on_hw_restart,
u8 fw_id;
struct cfg80211_chan_def chandef;
);
u32 channel_load_by_us;
u32 avg_channel_load_not_by_us;
struct iwl_mld *mld;
};
static inline struct iwl_mld_phy *
iwl_mld_phy_from_mac80211(struct ieee80211_chanctx_conf *channel)
{
return (void *)channel->drv_priv;
}
static inline void
iwl_mld_cleanup_phy(struct iwl_mld *mld, struct iwl_mld_phy *phy)
{
CLEANUP_STRUCT(phy);
}
int iwl_mld_allocate_fw_phy_id(struct iwl_mld *mld);
int iwl_mld_phy_fw_action(struct iwl_mld *mld,
struct ieee80211_chanctx_conf *ctx, u32 action);
struct cfg80211_chan_def *
iwl_mld_get_chandef_from_chanctx(struct iwl_mld *mld,
struct ieee80211_chanctx_conf *ctx);
u8 iwl_mld_get_fw_ctrl_pos(const struct cfg80211_chan_def *chandef);
int iwl_mld_send_phy_cfg_cmd(struct iwl_mld *mld);
void iwl_mld_update_phy_chandef(struct iwl_mld *mld,
struct ieee80211_chanctx_conf *ctx);
#endif