qcacmn: Add WMI interface support for Direct Buffer Rx module

Direct Buffer Receive provides the driver with a mechanism by which target
can transfer information directly into host memory via DMA.

Add support for the following service/events/commands -
1. WMI_SERVICE_SUPPORT_DMA
2. WMI_DMA_CAPABILITIES as part of WMI_SERVICE_READY_EXT_EVENTID
3. WMI_PDEV_DMA_RING_CFG_REQ_CMDID
4. WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID
5. WMI_DMA_BUF_RELEASE_ENTRY

Change-Id: I3949026b4542565c49bb538b9545ea607690c793
CRs-Fixed: 2158304
This commit is contained in:
Sathish Kumar
2017-11-17 17:30:41 +05:30
committed by snandini
parent cd851c6517
commit f396c728ca
3 changed files with 203 additions and 0 deletions

View File

@@ -2347,6 +2347,17 @@ QDF_STATUS wmi_unified_oem_dma_ring_cfg(void *wmi_hdl,
}
#endif
QDF_STATUS wmi_unified_dbr_ring_cfg(void *wmi_hdl,
struct direct_buf_rx_cfg_req *cfg)
{
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
if (wmi_handle->ops->send_dbr_cfg_cmd)
return wmi_handle->ops->send_dbr_cfg_cmd(wmi_handle, cfg);
return QDF_STATUS_E_FAILURE;
}
/**
* wmi_unified_start_oem_data_cmd() - start OEM data request to target
* @wmi_handle: wmi handle
@@ -6759,6 +6770,51 @@ QDF_STATUS wmi_extract_reg_cap_service_ready_ext(
return QDF_STATUS_E_FAILURE;
}
QDF_STATUS wmi_extract_dbr_ring_cap_service_ready_ext(
void *wmi_hdl,
uint8_t *evt_buf, uint8_t idx,
struct wlan_psoc_host_dbr_ring_caps *param)
{
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
if (wmi_handle->ops->extract_dbr_ring_cap_service_ready_ext)
return wmi_handle->ops->extract_dbr_ring_cap_service_ready_ext(
wmi_handle,
evt_buf, idx, param);
return QDF_STATUS_E_FAILURE;
}
QDF_STATUS wmi_extract_dbr_buf_release_fixed(
void *wmi_hdl,
uint8_t *evt_buf,
struct direct_buf_rx_rsp *param)
{
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
if (wmi_handle->ops->extract_dbr_buf_release_fixed)
return wmi_handle->ops->extract_dbr_buf_release_fixed(
wmi_handle,
evt_buf, param);
return QDF_STATUS_E_FAILURE;
}
QDF_STATUS wmi_extract_dbr_buf_release_entry(
void *wmi_hdl,
uint8_t *evt_buf, uint8_t idx,
struct direct_buf_rx_entry *param)
{
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
if (wmi_handle->ops->extract_dbr_buf_release_entry)
return wmi_handle->ops->extract_dbr_buf_release_entry(
wmi_handle,
evt_buf, idx, param);
return QDF_STATUS_E_FAILURE;
}
/**
* wmi_extract_pdev_utf_event() -
* extract UTF data from pdev utf event