qcacmn: REO descriptor changes
Disable CHK_2K_MODE and OOR_MODE in REO descriptor. Also set RTY bit for non-BA TID queues as temporary WAR for duplicate detection issue. Change-Id: Ifa51c20ffbfe31c807d4e7f99014cb76f411e066
This commit is contained in:

committed by
qcabuildsw

parent
2fab33dcd4
commit
e8380bbece
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2017 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
|
||||
@@ -615,13 +615,10 @@ dp_rx_wbm_err_process(struct dp_soc *soc, void *hal_ring, uint32_t quota)
|
||||
* queue descriptor
|
||||
*/
|
||||
case HAL_REO_ERR_QUEUE_DESC_ADDR_0:
|
||||
case HAL_REO_ERR_REGULAR_FRAME_2K_JUMP:
|
||||
case HAL_REO_ERR_2K_ERROR_HANDLING_FLAG_SET:
|
||||
QDF_TRACE(QDF_MODULE_ID_DP,
|
||||
QDF_TRACE_LEVEL_WARN,
|
||||
"Got pkt with REO ERROR: %d",
|
||||
reo_error_code);
|
||||
|
||||
rx_bufs_used +=
|
||||
dp_rx_null_q_desc_handle(soc,
|
||||
ring_desc, &head, &tail, quota);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2017 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
|
||||
@@ -101,12 +101,14 @@ void hal_reo_qdesc_setup(void *hal_soc, int tid, uint32_t ba_window_size,
|
||||
reg_val = TID_TO_WME_AC(tid);
|
||||
HAL_DESC_SET_FIELD(reo_queue_desc, RX_REO_QUEUE_2, AC, reg_val);
|
||||
|
||||
/* Check the purpose of RTY field.
|
||||
* HW documentation says "Retry bit is checked if this bit is set"
|
||||
/* Set RTY bit for non-BA case. Duplicate detection is currently not
|
||||
* done by HW in non-BA case if RTY bit is not set.
|
||||
* TODO: This is a temporary War and should be removed once HW fix is
|
||||
* made to check and discard duplicates even if RTY bit is not set.
|
||||
*/
|
||||
if (ba_window_size == 1)
|
||||
HAL_DESC_SET_FIELD(reo_queue_desc, RX_REO_QUEUE_2, RTY, 1);
|
||||
|
||||
HAL_DESC_SET_FIELD(reo_queue_desc, RX_REO_QUEUE_2, CHK_2K_MODE, 1);
|
||||
HAL_DESC_SET_FIELD(reo_queue_desc, RX_REO_QUEUE_2, OOR_MODE, 1);
|
||||
HAL_DESC_SET_FIELD(reo_queue_desc, RX_REO_QUEUE_2, BA_WINDOW_SIZE,
|
||||
ba_window_size - 1);
|
||||
|
||||
|
Reference in New Issue
Block a user