qcacmn: Handle Umac reset for MLO case

1. Add an API to process trigger_umac_recovery T2H message.
2. Synchronize do_pre_reset, do_post_reset_start, do_post_reset_complete
   messages for all the SOCs and then process these messages in the host.
3. Synchronize pre_reset_done, post_reset_start_done,
   post_reset_complete_done for all the SOCs before sending it to FW.
4. Add a new state in host for trigger_umac_recovery message.
   Ignore back to back trigger_umac_recovery messages received from FW.

Change-Id: Id45d326d63e122834090844e83ad6cc7240f96af
CRs-Fixed: 3425833
Bu işleme şunda yer alıyor:
Pavankumar Nandeshwar
2023-02-20 01:54:25 -08:00
işlemeyi yapan: Madan Koyyalamudi
ebeveyn ff85561570
işleme 80d41dc9b4
12 değiştirilmiş dosya ile 868 ekleme ve 123 silme

Dosyayı Görüntüle

@@ -465,6 +465,17 @@ static inline struct dp_soc_be *dp_get_be_soc_from_dp_soc(struct dp_soc *soc)
return (struct dp_soc_be *)soc;
}
/**
* dp_mlo_iter_ptnr_soc() - iterate through mlo soc list and call the callback
* @be_soc: dp_soc_be pointer
* @func: Function to be called for each soc
* @arg: context to be passed to the callback
*
* Return: true if mlo is enabled, false if mlo is disabled
*/
bool dp_mlo_iter_ptnr_soc(struct dp_soc_be *be_soc, dp_ptnr_soc_iter_func func,
void *arg);
#ifdef WLAN_MLO_MULTI_CHIP
typedef struct dp_mlo_ctxt *dp_mld_peer_hash_obj_t;
@@ -509,8 +520,6 @@ void dp_mlo_partner_chips_unmap(struct dp_soc *soc,
typedef void dp_ptnr_vdev_iter_func(struct dp_vdev_be *be_vdev,
struct dp_vdev *ptnr_vdev,
void *arg);
typedef void dp_ptnr_soc_iter_func(struct dp_soc *ptnr_soc,
void *arg);
/**
* dp_mcast_mlo_iter_ptnr_vdev() - API to iterate through ptnr vdev list
@@ -527,17 +536,7 @@ void dp_mcast_mlo_iter_ptnr_vdev(struct dp_soc_be *be_soc,
dp_ptnr_vdev_iter_func func,
void *arg,
enum dp_mod_id mod_id);
/**
* dp_mlo_iter_ptnr_soc() - API to iterate through ptnr soc list
* @be_soc: dp_soc_be pointer
* @func: function to be called for each peer
* @arg: argument need to be passed to func
*
* Return: None
*/
void dp_mlo_iter_ptnr_soc(struct dp_soc_be *be_soc,
dp_ptnr_soc_iter_func func,
void *arg);
/**
* dp_mlo_get_mcast_primary_vdev() - get ref to mcast primary vdev
* @be_soc: dp_soc_be pointer