qcacmn: Send ring sel cfg to configure rx pkt tlvs offset

Currently the FW configures the mac with appropriate
offsets for rx pkt tlvs using the structure defined in
te FW and the host does not send the ring selction config
HTT message. This can create a problem when FW stops subscribing
to tlvs or changes its rx pkt tlvs offset.

Fix this by configuring the rx pkt tlv offsets via HTT
ring selection config message.

Change-Id: I1a2865f91b34dd7bda1af8651d7831097dac0bee
CRs-Fixed: 2860504
This commit is contained in:
Rakesh Pillai
2021-01-12 19:06:20 +05:30
کامیت شده توسط snandini
والد 63f4a150bb
کامیت 783f811315
13فایلهای تغییر یافته به همراه140 افزوده شده و 3 حذف شده

مشاهده پرونده

@@ -2535,4 +2535,11 @@ static uint32_t hal_rx_mpdu_end_offset_get_generic(void)
{
return RX_PKT_TLV_OFFSET(mpdu_end_tlv);
}
#ifndef NO_RX_PKT_HDR_TLV
static uint32_t hal_rx_pkt_tlv_offset_get_generic(void)
{
return RX_PKT_TLV_OFFSET(pkt_hdr_tlv);
}
#endif
#endif /* HAL_GENERIC_API_H_ */

مشاهده پرونده

@@ -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
@@ -627,6 +627,7 @@ struct hal_hw_txrx_ops {
uint32_t (*hal_rx_msdu_start_offset_get)(void);
uint32_t (*hal_rx_mpdu_start_offset_get)(void);
uint32_t (*hal_rx_mpdu_end_offset_get)(void);
uint32_t (*hal_rx_pkt_tlv_offset_get)(void);
void * (*hal_rx_flow_setup_fse)(uint8_t *rx_fst,
uint32_t table_offset,
uint8_t *rx_flow);

مشاهده پرونده

@@ -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
@@ -3981,6 +3981,20 @@ uint32_t hal_rx_mpdu_start_offset_get(hal_soc_handle_t hal_soc_hdl)
return hal_soc->ops->hal_rx_mpdu_start_offset_get();
}
static inline
uint32_t hal_rx_pkt_tlv_offset_get(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 0;
}
return hal_soc->ops->hal_rx_pkt_tlv_offset_get();
}
/**
* hal_rx_mpdu_end_offset_get(): Get the MPDU end offset from
* rx_pkt_tlvs structure

مشاهده پرونده

@@ -1767,6 +1767,9 @@ struct hal_hw_txrx_ops qca5018_hal_hw_txrx_ops = {
.hal_rx_msdu_start_offset_get = hal_rx_msdu_start_offset_get_generic,
.hal_rx_mpdu_start_offset_get = hal_rx_mpdu_start_offset_get_generic,
.hal_rx_mpdu_end_offset_get = hal_rx_mpdu_end_offset_get_generic,
#ifndef NO_RX_PKT_HDR_TLV
.hal_rx_pkt_tlv_offset_get = hal_rx_pkt_tlv_offset_get_generic,
#endif
.hal_rx_flow_setup_fse = hal_rx_flow_setup_fse_5018,
.hal_compute_reo_remap_ix2_ix3 = hal_compute_reo_remap_ix2_ix3_5018,
};

مشاهده پرونده

@@ -1147,6 +1147,9 @@ struct hal_hw_txrx_ops qca6290_hal_hw_txrx_ops = {
.hal_rx_msdu_start_offset_get = hal_rx_msdu_start_offset_get_generic,
.hal_rx_mpdu_start_offset_get = hal_rx_mpdu_start_offset_get_generic,
.hal_rx_mpdu_end_offset_get = hal_rx_mpdu_end_offset_get_generic,
#ifndef NO_RX_PKT_HDR_TLV
.hal_rx_pkt_tlv_offset_get = hal_rx_pkt_tlv_offset_get_generic,
#endif
.hal_compute_reo_remap_ix2_ix3 = hal_compute_reo_remap_ix2_ix3_6290,
};

مشاهده پرونده

@@ -1202,6 +1202,9 @@ struct hal_hw_txrx_ops qca6390_hal_hw_txrx_ops = {
.hal_rx_msdu_start_offset_get = hal_rx_msdu_start_offset_get_generic,
.hal_rx_mpdu_start_offset_get = hal_rx_mpdu_start_offset_get_generic,
.hal_rx_mpdu_end_offset_get = hal_rx_mpdu_end_offset_get_generic,
#ifndef NO_RX_PKT_HDR_TLV
.hal_rx_pkt_tlv_offset_get = hal_rx_pkt_tlv_offset_get_generic,
#endif
.hal_compute_reo_remap_ix2_ix3 = hal_compute_reo_remap_ix2_ix3_6390,
};

مشاهده پرونده

@@ -1791,6 +1791,9 @@ struct hal_hw_txrx_ops qca6490_hal_hw_txrx_ops = {
.hal_rx_msdu_start_offset_get = hal_rx_msdu_start_offset_get_generic,
.hal_rx_mpdu_start_offset_get = hal_rx_mpdu_start_offset_get_generic,
.hal_rx_mpdu_end_offset_get = hal_rx_mpdu_end_offset_get_generic,
#ifndef NO_RX_PKT_HDR_TLV
.hal_rx_pkt_tlv_offset_get = hal_rx_pkt_tlv_offset_get_generic,
#endif
.hal_rx_flow_setup_fse = hal_rx_flow_setup_fse_6490,
.hal_compute_reo_remap_ix2_ix3 = hal_compute_reo_remap_ix2_ix3_6490,
.hal_rx_msdu_get_reo_destination_indication =

مشاهده پرونده

@@ -1926,6 +1926,9 @@ struct hal_hw_txrx_ops qca6750_hal_hw_txrx_ops = {
.hal_rx_msdu_start_offset_get = hal_rx_msdu_start_offset_get_generic,
.hal_rx_mpdu_start_offset_get = hal_rx_mpdu_start_offset_get_generic,
.hal_rx_mpdu_end_offset_get = hal_rx_mpdu_end_offset_get_generic,
#ifndef NO_RX_PKT_HDR_TLV
.hal_rx_pkt_tlv_offset_get = hal_rx_pkt_tlv_offset_get_generic,
#endif
.hal_rx_flow_setup_fse = hal_rx_flow_setup_fse_6750,
.hal_compute_reo_remap_ix2_ix3 = hal_compute_reo_remap_ix2_ix3_6750,

مشاهده پرونده

@@ -1327,6 +1327,9 @@ struct hal_hw_txrx_ops qca8074_hal_hw_txrx_ops = {
.hal_rx_msdu_start_offset_get = hal_rx_msdu_start_offset_get_generic,
.hal_rx_mpdu_start_offset_get = hal_rx_mpdu_start_offset_get_generic,
.hal_rx_mpdu_end_offset_get = hal_rx_mpdu_end_offset_get_generic,
#ifndef NO_RX_PKT_HDR_TLV
.hal_rx_pkt_tlv_offset_get = hal_rx_pkt_tlv_offset_get_generic,
#endif
.hal_rx_flow_setup_fse = hal_rx_flow_setup_fse_8074v1,
.hal_compute_reo_remap_ix2_ix3 = hal_compute_reo_remap_ix2_ix3_8074v1,
};

مشاهده پرونده

@@ -1329,6 +1329,9 @@ struct hal_hw_txrx_ops qca8074v2_hal_hw_txrx_ops = {
.hal_rx_msdu_start_offset_get = hal_rx_msdu_start_offset_get_generic,
.hal_rx_mpdu_start_offset_get = hal_rx_mpdu_start_offset_get_generic,
.hal_rx_mpdu_end_offset_get = hal_rx_mpdu_end_offset_get_generic,
#ifndef NO_RX_PKT_HDR_TLV
.hal_rx_pkt_tlv_offset_get = hal_rx_pkt_tlv_offset_get_generic,
#endif
.hal_rx_flow_setup_fse = hal_rx_flow_setup_fse_8074v2,
.hal_compute_reo_remap_ix2_ix3 = hal_compute_reo_remap_ix2_ix3_8074v2,
};

مشاهده پرونده

@@ -1824,6 +1824,9 @@ struct hal_hw_txrx_ops qcn6122_hal_hw_txrx_ops = {
.hal_rx_msdu_start_offset_get = hal_rx_msdu_start_offset_get_generic,
.hal_rx_mpdu_start_offset_get = hal_rx_mpdu_start_offset_get_generic,
.hal_rx_mpdu_end_offset_get = hal_rx_mpdu_end_offset_get_generic,
#ifndef NO_RX_PKT_HDR_TLV
.hal_rx_pkt_tlv_offset_get = hal_rx_pkt_tlv_offset_get_generic,
#endif
.hal_rx_flow_setup_fse = hal_rx_flow_setup_fse_6122,
.hal_compute_reo_remap_ix2_ix3 = hal_compute_reo_remap_ix2_ix3_6122,
};

مشاهده پرونده

@@ -1849,6 +1849,9 @@ struct hal_hw_txrx_ops qcn9000_hal_hw_txrx_ops = {
.hal_rx_msdu_start_offset_get = hal_rx_msdu_start_offset_get_generic,
.hal_rx_mpdu_start_offset_get = hal_rx_mpdu_start_offset_get_generic,
.hal_rx_mpdu_end_offset_get = hal_rx_mpdu_end_offset_get_generic,
#ifndef NO_RX_PKT_HDR_TLV
.hal_rx_pkt_tlv_offset_get = hal_rx_pkt_tlv_offset_get_generic,
#endif
.hal_rx_flow_setup_fse = hal_rx_flow_setup_fse_9000,
.hal_compute_reo_remap_ix2_ix3 = hal_compute_reo_remap_ix2_ix3_9000,
};