qcacmn: HAL changes for REO config for Beryllium

Add changes to HAL APIs for REO config for WCN7850

Change-Id: I91191a47c4782672fa19d45099cde05ee4cd04b1
CRs-Fixed: 2891049
This commit is contained in:
Rakesh Pillai
2021-02-16 07:29:36 -08:00
committed by Manjunathappa Prakash
parent 052dc539e3
commit 2847b9761a
7 changed files with 3220 additions and 1459 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -71,35 +71,10 @@ QDF_STATUS dp_reo_send_cmd(struct dp_soc *soc, enum hal_reo_cmd_type type,
struct dp_reo_cmd_info *reo_cmd;
int num;
switch (type) {
case CMD_GET_QUEUE_STATS:
num = hal_reo_cmd_queue_stats(soc->reo_cmd_ring.hal_srng,
soc->hal_soc, params);
break;
case CMD_FLUSH_QUEUE:
num = hal_reo_cmd_flush_queue(soc->reo_cmd_ring.hal_srng,
soc->hal_soc, params);
break;
case CMD_FLUSH_CACHE:
num = hal_reo_cmd_flush_cache(soc->reo_cmd_ring.hal_srng,
soc->hal_soc, params);
break;
case CMD_UNBLOCK_CACHE:
num = hal_reo_cmd_unblock_cache(soc->reo_cmd_ring.hal_srng,
soc->hal_soc, params);
break;
case CMD_FLUSH_TIMEOUT_LIST:
num = hal_reo_cmd_flush_timeout_list(soc->reo_cmd_ring.hal_srng,
soc->hal_soc, params);
break;
case CMD_UPDATE_RX_REO_QUEUE:
num = hal_reo_cmd_update_rx_queue(soc->reo_cmd_ring.hal_srng,
soc->hal_soc, params);
break;
default:
dp_err_log("Invalid REO command type: %d", type);
num = hal_reo_send_cmd(soc->hal_soc, soc->reo_cmd_ring.hal_srng, type,
params);
if (num < 0)
return QDF_STATUS_E_INVAL;
};
dp_reo_cmd_srng_event_record(soc, type, num);
@@ -130,7 +105,7 @@ QDF_STATUS dp_reo_send_cmd(struct dp_soc *soc, enum hal_reo_cmd_type type,
uint32_t dp_reo_status_ring_handler(struct dp_intr *int_ctx, struct dp_soc *soc)
{
uint32_t *reo_desc;
hal_ring_desc_t reo_desc;
struct dp_reo_cmd_info *reo_cmd = NULL;
union hal_reo_status reo_status;
int num;

1358
hal/wifi3.0/be/hal_be_reo.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,78 @@
/*
* Copyright (c) 2017-2019, 2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _HAL_REO_BE_H_
#define _HAL_REO_BE_H_
#include "hal_be_hw_headers.h"
#include "hal_rx.h"
#include "hal_reo.h"
#define HAL_REO_QUEUE_EXT_DESC 10
/* Proto-types */
void hal_get_ba_aging_timeout_be(hal_soc_handle_t hal_soc_hdl, uint8_t ac,
uint32_t *value);
void hal_set_ba_aging_timeout_be(hal_soc_handle_t hal_soc_hdl, uint8_t ac,
uint32_t value);
uint32_t hal_get_reo_reg_base_offset_be(void);
int hal_reo_send_cmd_be(hal_soc_handle_t hal_soc_hdl,
hal_ring_handle_t hal_ring_hdl,
enum hal_reo_cmd_type cmd,
void *params);
/* REO status ring routines */
void
hal_reo_queue_stats_status_be(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void
hal_reo_flush_queue_status_be(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void
hal_reo_flush_cache_status_be(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void
hal_reo_unblock_cache_status_be(hal_ring_desc_t ring_desc,
hal_soc_handle_t hal_soc_hdl,
void *st_handle);
void hal_reo_flush_timeout_list_status_be(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void hal_reo_desc_thres_reached_status_be(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void
hal_reo_rx_update_queue_status_be(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
/**
* hal_reo_init_cmd_ring_be() - Initialize descriptors of REO command SRNG
* with command number
* @hal_soc: Handle to HAL SoC structure
* @hal_ring: Handle to HAL SRNG structure
*
* Return: none
*/
void hal_reo_init_cmd_ring_be(hal_soc_handle_t hal_soc_hdl,
hal_ring_handle_t hal_ring_hdl);
#endif /* _HAL_REO_BE_H_ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2019, 2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -38,6 +38,7 @@
/* SW headers */
#include "hal_api.h"
#include "hal_rx_hw_defines.h"
/*---------------------------------------------------------------------------
Preprocessor definitions and constants
@@ -77,9 +78,44 @@
#define HAL_GET_TLV(desc) (((struct tlv_32_hdr *) desc)->tlv_tag)
#define HAL_OFFSET_DW(_block, _field) (HAL_OFFSET(_block, _field) >> 2)
#define HAL_OFFSET_QW(_block, _field) (HAL_OFFSET(_block, _field) >> 3)
/* dword offsets in REO cmd TLV */
#define CMD_HEADER_DW_OFFSET 0
/* TODO: See if the following definition is available in HW headers */
#define HAL_REO_OWNED 4
#define HAL_REO_QUEUE_DESC 8
/* TODO: Using associated link desc counter 1 for Rx. Check with FW on
* how these counters are assigned
*/
#define HAL_RX_LINK_DESC_CNTR 1
/* TODO: Following definition should be from HW headers */
#define HAL_DESC_REO_OWNED 4
#ifndef TID_TO_WME_AC
/**
* enum hal_wme_access_category: Access category enums
* @WME_AC_BE: best effort
* @WME_AC_BK: background
* @WME_AC_VI: video
* @WME_AC_VO: voice
*/
enum hal_wme_access_category {
WME_AC_BE,
WME_AC_BK,
WME_AC_VI,
WME_AC_VO
};
#define TID_TO_WME_AC(_tid) ( \
(((_tid) == 0) || ((_tid) == 3)) ? WME_AC_BE : \
(((_tid) == 1) || ((_tid) == 2)) ? WME_AC_BK : \
(((_tid) == 4) || ((_tid) == 5)) ? WME_AC_VI : \
WME_AC_VO)
#endif
#define HAL_NON_QOS_TID 16
/**
* enum reo_unblock_cache_type: Enum for unblock type in REO unblock command
* @UNBLOCK_RES_INDEX: Unblock a block resource
@@ -122,25 +158,6 @@ enum reo_cmd_exec_status {
HAL_REO_CMD_DRAIN = 0xff
};
/**
* enum hal_reo_cmd_type: Enum for REO command type
* @CMD_GET_QUEUE_STATS: Get REO queue status/stats
* @CMD_FLUSH_QUEUE: Flush all frames in REO queue
* @CMD_FLUSH_CACHE: Flush descriptor entries in the cache
* @CMD_UNBLOCK_CACHE: Unblock a descriptors address that was blocked
* earlier with a REO_FLUSH_CACHE command
* @CMD_FLUSH_TIMEOUT_LIST: Flush buffers/descriptors from timeout list
* @CMD_UPDATE_RX_REO_QUEUE: Update REO queue settings
*/
enum hal_reo_cmd_type {
CMD_GET_QUEUE_STATS = 0,
CMD_FLUSH_QUEUE = 1,
CMD_FLUSH_CACHE = 2,
CMD_UNBLOCK_CACHE = 3,
CMD_FLUSH_TIMEOUT_LIST = 4,
CMD_UPDATE_RX_REO_QUEUE = 5
};
/**
* struct hal_reo_cmd_params_std: Standard REO command parameters
* @need_status: Status required for the command
@@ -490,57 +507,317 @@ union hal_reo_status {
struct hal_reo_update_rx_queue_status rx_queue_status;
};
/* Prototypes */
#ifdef HAL_DISABLE_NON_BA_2K_JUMP_ERROR
static inline uint32_t hal_update_non_ba_win_size(int tid,
uint32_t ba_window_size)
{
return ba_window_size;
}
#else
static inline uint32_t hal_update_non_ba_win_size(int tid,
uint32_t ba_window_size)
{
if ((ba_window_size == 1) && (tid != HAL_NON_QOS_TID))
ba_window_size++;
return ba_window_size;
}
#endif
#define BLOCK_RES_MASK 0xF
static inline uint8_t hal_find_one_bit(uint8_t x)
{
uint8_t y = (x & (~x + 1)) & BLOCK_RES_MASK;
uint8_t pos;
for (pos = 0; y; y >>= 1)
pos++;
return pos-1;
}
static inline uint8_t hal_find_zero_bit(uint8_t x)
{
uint8_t y = (~x & (x+1)) & BLOCK_RES_MASK;
uint8_t pos;
for (pos = 0; y; y >>= 1)
pos++;
return pos-1;
}
/* REO command ring routines */
void hal_reo_cmd_set_descr_addr(uint32_t *reo_desc,
enum hal_reo_cmd_type type,
uint32_t paddr_lo,
uint8_t paddr_hi);
int hal_reo_cmd_queue_stats(hal_ring_handle_t hal_ring_hdl,
hal_soc_handle_t hal_soc_hdl,
struct hal_reo_cmd_params *cmd);
int hal_reo_cmd_flush_queue(hal_ring_handle_t hal_ring_hdl,
hal_soc_handle_t hal_soc_hdl,
struct hal_reo_cmd_params *cmd);
int hal_reo_cmd_flush_cache(hal_ring_handle_t hal_ring_hdl,
hal_soc_handle_t hal_soc_hdl,
struct hal_reo_cmd_params *cmd);
int hal_reo_cmd_unblock_cache(hal_ring_handle_t hal_ring_hdl,
hal_soc_handle_t hal_soc_hdl,
struct hal_reo_cmd_params *cmd);
int hal_reo_cmd_flush_timeout_list(hal_ring_handle_t hal_ring_hdl,
hal_soc_handle_t hal_soc_hdl,
struct hal_reo_cmd_params *cmd);
int hal_reo_cmd_update_rx_queue(hal_ring_handle_t hal_ring_hdl,
hal_soc_handle_t hal_soc_hdl,
struct hal_reo_cmd_params *cmd);
/* REO status ring routines */
void hal_reo_queue_stats_status(uint32_t *reo_desc,
/**
* hal_uniform_desc_hdr_setup - setup reo_queue_ext descritpro
* @owner - owner info
* @buffer_type - buffer type
*/
static inline void
hal_uniform_desc_hdr_setup(uint32_t *desc, uint32_t owner, uint32_t buffer_type)
{
HAL_DESC_SET_FIELD(desc, HAL_UNIFORM_DESCRIPTOR_HEADER, OWNER,
owner);
HAL_DESC_SET_FIELD(desc, HAL_UNIFORM_DESCRIPTOR_HEADER, BUFFER_TYPE,
buffer_type);
}
/**
* hal_reo_send_cmd() - Send reo cmd using the params provided.
* @hal_soc_hdl: HAL soc handle
* @hal_soc_hdl: srng handle
* @cmd: cmd ID
* @cmd_params: command params
*
* Return: cmd number
*/
static inline int
hal_reo_send_cmd(hal_soc_handle_t hal_soc_hdl,
hal_ring_handle_t hal_ring_hdl,
enum hal_reo_cmd_type cmd,
struct hal_reo_cmd_params *cmd_params)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return -EINVAL;
}
if (hal_soc->ops->hal_reo_send_cmd)
return hal_soc->ops->hal_reo_send_cmd(hal_soc_hdl, hal_ring_hdl,
cmd, cmd_params);
return -EINVAL;
}
/* REO Status ring routines */
static inline void
hal_reo_queue_stats_status(hal_ring_desc_t ring_desc,
struct hal_reo_queue_status *st,
hal_soc_handle_t hal_soc_hdl);
void hal_reo_flush_queue_status(uint32_t *reo_desc,
struct hal_reo_flush_queue_status *st,
hal_soc_handle_t hal_soc_hdl);
void hal_reo_flush_cache_status(uint32_t *reo_desc,
struct hal_reo_flush_cache_status *st,
hal_soc_handle_t hal_soc_hdl);
void hal_reo_unblock_cache_status(uint32_t *reo_desc,
hal_soc_handle_t hal_soc_hdl,
struct hal_reo_unblk_cache_status *st);
void hal_reo_flush_timeout_list_status(
uint32_t *reo_desc,
struct hal_reo_flush_timeout_list_status *st,
hal_soc_handle_t hal_soc_hdl);
void hal_reo_desc_thres_reached_status(
uint32_t *reo_desc,
struct hal_reo_desc_thres_reached_status *st,
hal_soc_handle_t hal_soc_hdl);
void hal_reo_rx_update_queue_status(uint32_t *reo_desc,
struct hal_reo_update_rx_queue_status *st,
hal_soc_handle_t hal_soc_hdl);
hal_soc_handle_t hal_soc_hdl)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return;
}
if (hal_soc->ops->hal_reo_queue_stats_status)
return hal_soc->ops->hal_reo_queue_stats_status(ring_desc, st,
hal_soc_hdl);
}
static inline void
hal_reo_flush_queue_status(hal_ring_desc_t ring_desc,
struct hal_reo_flush_queue_status *st,
hal_soc_handle_t hal_soc_hdl)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return;
}
if (hal_soc->ops->hal_reo_flush_queue_status)
return hal_soc->ops->hal_reo_flush_queue_status(ring_desc, st,
hal_soc_hdl);
}
static inline void
hal_reo_flush_cache_status(hal_ring_desc_t ring_desc,
struct hal_reo_flush_cache_status *st,
hal_soc_handle_t hal_soc_hdl)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return;
}
if (hal_soc->ops->hal_reo_flush_cache_status)
return hal_soc->ops->hal_reo_flush_cache_status(ring_desc, st,
hal_soc_hdl);
}
static inline void
hal_reo_unblock_cache_status(hal_ring_desc_t ring_desc,
hal_soc_handle_t hal_soc_hdl,
struct hal_reo_unblk_cache_status *st)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return;
}
if (hal_soc->ops->hal_reo_unblock_cache_status)
return hal_soc->ops->hal_reo_unblock_cache_status(ring_desc,
hal_soc_hdl,
st);
}
static inline void hal_reo_flush_timeout_list_status(
hal_ring_desc_t ring_desc,
struct hal_reo_flush_timeout_list_status *st,
hal_soc_handle_t hal_soc_hdl)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return;
}
if (hal_soc->ops->hal_reo_flush_timeout_list_status)
return hal_soc->ops->hal_reo_flush_timeout_list_status(
ring_desc, st,
hal_soc_hdl);
}
static inline void hal_reo_desc_thres_reached_status(
hal_ring_desc_t ring_desc,
struct hal_reo_desc_thres_reached_status *st,
hal_soc_handle_t hal_soc_hdl)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return;
}
if (hal_soc->ops->hal_reo_desc_thres_reached_status)
return hal_soc->ops->hal_reo_desc_thres_reached_status(
ring_desc, st,
hal_soc_hdl);
}
static inline void
hal_reo_rx_update_queue_status(hal_ring_desc_t ring_desc,
struct hal_reo_update_rx_queue_status *st,
hal_soc_handle_t hal_soc_hdl)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return;
}
if (hal_soc->ops->hal_reo_rx_update_queue_status)
return hal_soc->ops->hal_reo_rx_update_queue_status(
ring_desc, st, hal_soc_hdl);
}
static inline void hal_reo_qdesc_setup(hal_soc_handle_t hal_soc_hdl, int tid,
uint32_t ba_window_size,
uint32_t start_seq, void *hw_qdesc_vaddr,
qdf_dma_addr_t hw_qdesc_paddr,
int pn_type)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return;
}
if (hal_soc->ops->hal_reo_qdesc_setup)
hal_soc->ops->hal_reo_qdesc_setup(hal_soc_hdl, tid,
ba_window_size, start_seq,
hw_qdesc_vaddr,
hw_qdesc_paddr, pn_type);
}
/**
* hal_get_ba_aging_timeout - Retrieve BA aging timeout
*
* @hal_soc: Opaque HAL SOC handle
* @ac: Access category
* @value: timeout duration in millisec
*/
static inline void hal_get_ba_aging_timeout(hal_soc_handle_t hal_soc_hdl,
uint8_t ac,
uint32_t *value)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
hal_soc->ops->hal_get_ba_aging_timeout(hal_soc_hdl, ac, value);
}
/**
* hal_set_aging_timeout - Set BA aging timeout
*
* @hal_soc: Opaque HAL SOC handle
* @ac: Access category in millisec
* @value: timeout duration value
*/
static inline void hal_set_ba_aging_timeout(hal_soc_handle_t hal_soc_hdl,
uint8_t ac,
uint32_t value)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
hal_soc->ops->hal_set_ba_aging_timeout(hal_soc_hdl, ac, value);
}
/**
* hal_get_reo_reg_base_offset() - Get REO register base offset
* @hal_soc_hdl: HAL soc handle
*
* Return: REO register base
*/
static inline uint32_t hal_get_reo_reg_base_offset(hal_soc_handle_t hal_soc_hdl)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
return hal_soc->ops->hal_get_reo_reg_base_offset();
}
static inline uint32_t
hal_gen_reo_remap_val(hal_soc_handle_t hal_soc_hdl,
enum hal_reo_remap_reg remap_reg,
uint8_t *ix0_map)
{
struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl;
if (!hal_soc || !hal_soc->ops) {
hal_err("hal handle is NULL");
QDF_BUG(0);
return 0;
}
if (hal_soc->ops->hal_gen_reo_remap_val)
return hal_soc->ops->hal_gen_reo_remap_val(remap_reg, ix0_map);
return 0;
}
/* Function Proto-types */
/**
* hal_reo_init_cmd_ring() - Initialize descriptors of REO command SRNG
* with command number
* @hal_soc: Handle to HAL SoC structure
* @hal_ring: Handle to HAL SRNG structure
*
* Return: none
*/
void hal_reo_init_cmd_ring(hal_soc_handle_t hal_soc_hdl,
hal_ring_handle_t hal_ring_hdl);
#endif /* _HAL_REO_H */

1350
hal/wifi3.0/li/hal_li_reo.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,78 @@
/*
* Copyright (c) 2017-2019, 2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _HAL_LI_REO_H_
#define _HAL_LI_REO_H_
#include "hal_rx.h"
#include "hal_reo.h"
#define HAL_REO_QUEUE_EXT_DESC 9
/* Proto-types */
void hal_get_ba_aging_timeout_li(hal_soc_handle_t hal_soc_hdl, uint8_t ac,
uint32_t *value);
void hal_set_ba_aging_timeout_li(hal_soc_handle_t hal_soc_hdl, uint8_t ac,
uint32_t value);
uint32_t hal_get_reo_reg_base_offset_li(void);
int hal_reo_send_cmd_li(hal_soc_handle_t hal_soc_hdl,
hal_ring_handle_t hal_ring_hdl,
enum hal_reo_cmd_type cmd,
void *params);
/* REO status ring routines */
void
hal_reo_queue_stats_status_li(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void
hal_reo_flush_queue_status_li(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void
hal_reo_flush_cache_status_li(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void
hal_reo_unblock_cache_status_li(hal_ring_desc_t ring_desc,
hal_soc_handle_t hal_soc_hdl,
void *st_handle);
void hal_reo_flush_timeout_list_status_li(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void hal_reo_desc_thres_reached_status_li(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
void
hal_reo_rx_update_queue_status_li(hal_ring_desc_t ring_desc,
void *st_handle,
hal_soc_handle_t hal_soc_hdl);
/**
* hal_reo_init_cmd_ring_li() - Initialize descriptors of REO command SRNG
* with command number
* @hal_soc: Handle to HAL SoC structure
* @hal_ring: Handle to HAL SRNG structure
*
* Return: none
*/
void hal_reo_init_cmd_ring_li(hal_soc_handle_t hal_soc_hdl,
hal_ring_handle_t hal_ring_hdl);
#endif /* _HAL_LI_REO_H_ */