diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index 7684d33f6b46..dc143533e9f6 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -6223,6 +6223,7 @@ typedef struct { } wmi_roam_event_fixed_param; +/* roam_reason: bits 0-3 */ #define WMI_ROAM_REASON_BETTER_AP 0x1 /** found a better AP */ #define WMI_ROAM_REASON_BMISS 0x2 /** beacon miss detected */ #define WMI_ROAM_REASON_DEAUTH 0x2 /** deauth/disassoc received */ @@ -6232,19 +6233,29 @@ typedef struct { WMI_ROAM_AP_PROFILE, found during scan triggered upon FINAL_BMISS **/ #define WMI_ROAM_REASON_HO_FAILED 0x5 /** LFR3.0 roaming failed, indicate the disconnection to host */ +/* reserved up through 0xF */ -/* - * These will be used in WMI_ROAM_SYNCH_EVENTID for passing the subnet change - * info. Once roaming happens, firmware checks if subnet has changed and - * populates roam_reason field in WMI_ROAM_SYNCH_EVENTID using the definitions - * below. - */ +/* subnet status: bits 4-5 */ typedef enum { WMI_ROAM_SUBNET_CHANGE_STATUS_UNKNOWN = 0, WMI_ROAM_SUBNET_CHANGE_STATUS_UNCHANGED, WMI_ROAM_SUBNET_CHANGE_STATUS_CHANGED, } wmi_roam_subnet_change_status; +#define WMI_ROAM_SUBNET_CHANGE_STATUS_MASK 0x30 +#define WMI_ROAM_SUBNET_CHANGE_STATUS_SHIFT 4 + +#define WMI_SET_ROAM_SUBNET_CHANGE_STATUS(roam_reason, status) \ + do { \ + (roam_reason) |= \ + (((status) << WMI_ROAM_SUBNET_CHANGE_STATUS_SHIFT) & \ + WMI_ROAM_SUBNET_CHANGE_STATUS_MASK); \ + } while (0) + +#define WMI_GET_ROAM_SUBNET_CHANGE_STATUS(roam_reason) \ + (((roam_reason) & WMI_ROAM_SUBNET_CHANGE_STATUS_MASK) >> \ + WMI_ROAM_SUBNET_CHANGE_STATUS_SHIFT) + /**whenever RIC request information change, host driver should pass all ric related information to firmware (now only support tsepc) * Once, 11r roaming happens, firmware can generate RIC request in reassoc request based on these informations */ @@ -9591,8 +9602,9 @@ typedef struct { /** auth_status: connected or authorized */ A_UINT32 auth_status; /* - * roam_reason: whether roaming went to a new subnet; - * see WMI_ROAM_SUBNET_CHANGE_STATUS_XXX + * roam_reason: + * bits 0-3 for roam reason see WMI_ROAM_REASON_XXX + * bits 4-5 for subnet status see WMI_ROAM_SUBNET_CHANGE_STATUS_XXX. */ A_UINT32 roam_reason; /** associated AP's rssi calculated by FW when reason code is WMI_ROAM_REASON_LOW_RSSI. not valid if roam_reason is BMISS */ diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index 0c1b628cc3ac..c036502483fa 100644 --- a/target/inc/wmi_version.h +++ b/target/inc/wmi_version.h @@ -36,7 +36,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility */ -#define __WMI_REVISION_ 173 +#define __WMI_REVISION_ 174 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work