qcacmn: Add support of extended service bitmap handling
Extended service bitmap is used by FW to indicate supported services bitmap for services excedding the current limitation of 128. Add support to save and use this bitmap to check services supported in FW. Also, change exisiting services bitmap to be dynamic allocated buffer to optimize the buffer used to save the bitmap. Change-Id: I24a0321bc1a06ee3aedf1c6acbc379e907bbd464 CRs-Fixed: 2103617
This commit is contained in:

committed by
snandini

parent
1384bb06e9
commit
34bea52100
@@ -1150,9 +1150,26 @@ QDF_STATUS wmi_unified_init_cmd_send(void *wmi_hdl,
|
|||||||
|
|
||||||
bool wmi_service_enabled(void *wmi_hdl, uint32_t service_id);
|
bool wmi_service_enabled(void *wmi_hdl, uint32_t service_id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_save_service_bitmap() - save service bitmap
|
||||||
|
* @wmi_handle: wmi handle
|
||||||
|
* @param evt_buf: pointer to event buffer
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code
|
||||||
|
*/
|
||||||
QDF_STATUS wmi_save_service_bitmap(void *wmi_hdl, void *evt_buf,
|
QDF_STATUS wmi_save_service_bitmap(void *wmi_hdl, void *evt_buf,
|
||||||
void *bitmap_buf);
|
void *bitmap_buf);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_save_ext_service_bitmap() - save extended service bitmap
|
||||||
|
* @wmi_handle: wmi handle
|
||||||
|
* @param evt_buf: pointer to event buffer
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code
|
||||||
|
*/
|
||||||
|
QDF_STATUS wmi_save_ext_service_bitmap(void *wmi_hdl, void *evt_buf,
|
||||||
|
void *bitmap_buf);
|
||||||
|
|
||||||
QDF_STATUS wmi_save_fw_version(void *wmi_hdl, void *evt_buf);
|
QDF_STATUS wmi_save_fw_version(void *wmi_hdl, void *evt_buf);
|
||||||
|
|
||||||
QDF_STATUS wmi_get_target_cap_from_service_ready(void *wmi_hdl,
|
QDF_STATUS wmi_get_target_cap_from_service_ready(void *wmi_hdl,
|
||||||
|
@@ -5157,6 +5157,7 @@ typedef enum {
|
|||||||
wmi_ext_tbttoffset_update_event_id,
|
wmi_ext_tbttoffset_update_event_id,
|
||||||
wmi_11d_new_country_event_id,
|
wmi_11d_new_country_event_id,
|
||||||
wmi_get_arp_stats_req_id,
|
wmi_get_arp_stats_req_id,
|
||||||
|
wmi_service_available_event_id,
|
||||||
|
|
||||||
wmi_events_max,
|
wmi_events_max,
|
||||||
} wmi_conv_event_id;
|
} wmi_conv_event_id;
|
||||||
|
@@ -955,7 +955,9 @@ QDF_STATUS (*send_lteu_config_cmd)(wmi_unified_t wmi_handle,
|
|||||||
|
|
||||||
QDF_STATUS (*send_set_ps_mode_cmd)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*send_set_ps_mode_cmd)(wmi_unified_t wmi_handle,
|
||||||
struct set_ps_mode_params *param);
|
struct set_ps_mode_params *param);
|
||||||
void (*save_service_bitmap)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*save_service_bitmap)(wmi_unified_t wmi_handle,
|
||||||
|
void *evt_buf, void *bitmap_buf);
|
||||||
|
QDF_STATUS (*save_ext_service_bitmap)(wmi_unified_t wmi_handle,
|
||||||
void *evt_buf, void *bitmap_buf);
|
void *evt_buf, void *bitmap_buf);
|
||||||
bool (*is_service_enabled)(wmi_unified_t wmi_handle,
|
bool (*is_service_enabled)(wmi_unified_t wmi_handle,
|
||||||
uint32_t service_id);
|
uint32_t service_id);
|
||||||
@@ -1452,8 +1454,6 @@ struct wmi_unified {
|
|||||||
bool wmi_stopinprogress;
|
bool wmi_stopinprogress;
|
||||||
uint32_t *wmi_events;
|
uint32_t *wmi_events;
|
||||||
#ifndef CONFIG_MCL
|
#ifndef CONFIG_MCL
|
||||||
/* WMI service bitmap recieved from target */
|
|
||||||
uint32_t *wmi_service_bitmap;
|
|
||||||
uint32_t *pdev_param;
|
uint32_t *pdev_param;
|
||||||
uint32_t *vdev_param;
|
uint32_t *vdev_param;
|
||||||
uint32_t *services;
|
uint32_t *services;
|
||||||
@@ -1478,9 +1478,10 @@ struct wmi_soc {
|
|||||||
uint16_t max_msg_len[WMI_MAX_RADIOS];
|
uint16_t max_msg_len[WMI_MAX_RADIOS];
|
||||||
struct wmi_ops *ops;
|
struct wmi_ops *ops;
|
||||||
uint32_t wmi_events[wmi_events_max];
|
uint32_t wmi_events[wmi_events_max];
|
||||||
#ifndef CONFIG_MCL
|
|
||||||
/* WMI service bitmap recieved from target */
|
/* WMI service bitmap recieved from target */
|
||||||
uint32_t wmi_service_bitmap[wmi_services_max];
|
uint32_t *wmi_service_bitmap;
|
||||||
|
uint32_t *wmi_ext_service_bitmap;
|
||||||
|
#ifndef CONFIG_MCL
|
||||||
uint32_t pdev_param[wmi_pdev_param_max];
|
uint32_t pdev_param[wmi_pdev_param_max];
|
||||||
uint32_t vdev_param[wmi_vdev_param_max];
|
uint32_t vdev_param[wmi_vdev_param_max];
|
||||||
uint32_t services[wmi_services_max];
|
uint32_t services[wmi_services_max];
|
||||||
|
Reference in New Issue
Block a user