qcacmn: Add extract API for ring params from DBR

Extract ring parameters using dbr_rx_ops for functions in umac.

CRs-Fixed: 2404710
Change-Id: I6fa02668b4fead35ace9e1b4886954ca4cca09c6
このコミットが含まれているのは:
Abhiram Jogadenu
2019-02-20 12:29:03 +05:30
committed by nshrivas
コミット db3bb4b4a7
4個のファイルの変更61行の追加0行の削除

ファイルの表示

@@ -174,5 +174,7 @@ void target_if_direct_buf_rx_register_tx_ops(struct wlan_lmac_if_tx_ops *tx_ops)
target_if_direct_buf_rx_unregister_events; target_if_direct_buf_rx_unregister_events;
tx_ops->dbr_tx_ops.direct_buf_rx_print_ring_stat = tx_ops->dbr_tx_ops.direct_buf_rx_print_ring_stat =
target_if_direct_buf_rx_print_ring_stat; target_if_direct_buf_rx_print_ring_stat;
tx_ops->dbr_tx_ops.direct_buf_rx_get_ring_params =
target_if_direct_buf_rx_get_ring_params;
} }
qdf_export_symbol(target_if_direct_buf_rx_register_tx_ops); qdf_export_symbol(target_if_direct_buf_rx_register_tx_ops);

ファイルの表示

@@ -1134,3 +1134,31 @@ QDF_STATUS target_if_direct_buf_rx_print_ring_stat(
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
QDF_STATUS
target_if_direct_buf_rx_get_ring_params(struct wlan_objmgr_pdev *pdev,
struct module_ring_params *param,
int mod_id)
{
struct direct_buf_rx_pdev_obj *dbr_pdev_obj;
struct direct_buf_rx_module_param *dbr_mod_param;
if (NULL == pdev) {
direct_buf_rx_err("pdev context passed is null");
return QDF_STATUS_E_INVAL;
}
dbr_pdev_obj = wlan_objmgr_pdev_get_comp_private_obj
(pdev, WLAN_TARGET_IF_COMP_DIRECT_BUF_RX);
if (NULL == dbr_pdev_obj) {
direct_buf_rx_err("dir buf rx object is null");
return QDF_STATUS_E_FAILURE;
}
dbr_mod_param = &dbr_pdev_obj->dbr_mod_param[mod_id];
param->num_bufs = dbr_mod_param->dbr_ring_cfg->num_ptr;
param->buf_size = dbr_mod_param->dbr_ring_cfg->buf_size;
return QDF_STATUS_SUCCESS;
}

ファイルの表示

@@ -130,6 +130,16 @@ struct direct_buf_rx_psoc_obj {
qdf_device_t osdev; qdf_device_t osdev;
}; };
/**
* struct module_ring_params - Direct buf ring params for module
* @num_bufs: Number of buffers alloted to this module
* @buf_size: size of buffers
*/
struct module_ring_params {
uint32_t num_bufs;
uint32_t buf_size;
};
/** /**
* target_if_direct_buf_rx_register_events() - Register WMI events to direct * target_if_direct_buf_rx_register_events() - Register WMI events to direct
* buffer rx module * buffer rx module
@@ -244,4 +254,17 @@ QDF_STATUS target_if_direct_buf_rx_module_register(
*/ */
QDF_STATUS target_if_direct_buf_rx_module_unregister( QDF_STATUS target_if_direct_buf_rx_module_unregister(
struct wlan_objmgr_pdev *pdev, uint8_t mod_id); struct wlan_objmgr_pdev *pdev, uint8_t mod_id);
/**
* target_if_direct_buf_rx_get_ring_params() - Function to get ring parameters
* for module_id
* @pdev: pointer to pdev object
* @module_ring_params: pointer to store ring params
* @mod_id: module idindicating module using direct buffer rx framework
*/
QDF_STATUS
target_if_direct_buf_rx_get_ring_params(struct wlan_objmgr_pdev *pdev,
struct module_ring_params *param,
int mod_id);
#endif /* _TARGET_IF_DIRECT_BUF_RX_MAIN_H_ */ #endif /* _TARGET_IF_DIRECT_BUF_RX_MAIN_H_ */

ファイルの表示

@@ -66,6 +66,8 @@ struct oem_data_rsp;
#ifdef DIRECT_BUF_RX_ENABLE #ifdef DIRECT_BUF_RX_ENABLE
/* forward declarations for direct buf rx */ /* forward declarations for direct buf rx */
struct direct_buf_rx_data; struct direct_buf_rx_data;
/* Forward declaration for module_ring_params */
struct module_ring_params;
#endif #endif
#ifdef FEATURE_WLAN_TDLS #ifdef FEATURE_WLAN_TDLS
@@ -577,6 +579,8 @@ struct wlan_lmac_if_wifi_pos_tx_ops {
* @direct_buf_rx_unregister_events: Unregistraton of WMI events for direct * @direct_buf_rx_unregister_events: Unregistraton of WMI events for direct
* buffer rx framework * buffer rx framework
* @direct_buf_rx_print_ring_stat: Print ring status per module per pdev * @direct_buf_rx_print_ring_stat: Print ring status per module per pdev
*
* @direct_buf_rx_get_ring_params: Get ring parameters for module_id
*/ */
struct wlan_lmac_if_direct_buf_rx_tx_ops { struct wlan_lmac_if_direct_buf_rx_tx_ops {
QDF_STATUS (*direct_buf_rx_module_register)( QDF_STATUS (*direct_buf_rx_module_register)(
@@ -591,6 +595,10 @@ struct wlan_lmac_if_direct_buf_rx_tx_ops {
struct wlan_objmgr_psoc *psoc); struct wlan_objmgr_psoc *psoc);
QDF_STATUS (*direct_buf_rx_print_ring_stat)( QDF_STATUS (*direct_buf_rx_print_ring_stat)(
struct wlan_objmgr_pdev *pdev); struct wlan_objmgr_pdev *pdev);
QDF_STATUS (*direct_buf_rx_get_ring_params)
(struct wlan_objmgr_pdev *pdev,
struct module_ring_params *param,
int module_id);
}; };
#endif #endif