qcacld-3.0: Do not change bus/target delta for QCN7605

Do not change bus/target delta for QCN7605. All the credits
received from FW will be released to the schheduler.

Change-Id: I17dbd1a4545d8b577ea521773c17506a0fc818cf
CRs-Fixed: 2423138
This commit is contained in:
Ajit Pal Singh 2019-01-28 18:49:32 +05:30 • committed by nshrivas
commit 3d50c8e7d0
2 changed files with 50 additions and 23 deletions

View file

@ -41,6 +41,8 @@
#include <wdi_ipa.h> /* HTT host->target WDI IPA msg defs */
#include <ol_txrx_htt_api.h> /* ol_tx_completion_handler, htt_tx_status */
#include <ol_htt_tx_api.h>
#include <ol_txrx_types.h>
#include <ol_tx_send.h>
#include <htt_internal.h>
#include <wlan_policy_mgr_api.h>
@ -72,6 +74,30 @@ htt_h2t_send_complete_free_netbuf(void *pdev, QDF_STATUS status,
qdf_nbuf_free(netbuf);
}
#ifndef QCN7605_SUPPORT
static void htt_t2h_adjust_bus_target_delta(struct htt_pdev_t *pdev)
{
int32_t credit_delta;
if (pdev->cfg.is_high_latency && !pdev->cfg.default_tx_comp_req) {
HTT_TX_MUTEX_ACQUIRE(&pdev->credit_mutex);
qdf_atomic_add(1, &pdev->htt_tx_credit.bus_delta);
credit_delta = htt_tx_credit_update(pdev);
HTT_TX_MUTEX_RELEASE(&pdev->credit_mutex);
if (credit_delta)
ol_tx_credit_completion_handler(pdev->txrx_pdev,
credit_delta);
}
}
#else
static void htt_t2h_adjust_bus_target_delta(struct htt_pdev_t *pdev)
{
/* UNPAUSE OS Q */
ol_tx_flow_ct_unpause_os_q(pdev->txrx_pdev);
}
#endif
void htt_h2t_send_complete(void *context, HTC_PACKET *htc_pkt)
{
void (*send_complete_part2)(void *pdev, QDF_STATUS status,
@ -91,19 +117,7 @@ void htt_h2t_send_complete(void *context, HTC_PACKET *htc_pkt)
htt_pkt->msdu_id);
}
if (pdev->cfg.is_high_latency && !pdev->cfg.default_tx_comp_req) {
int32_t credit_delta;
HTT_TX_MUTEX_ACQUIRE(&pdev->credit_mutex);
qdf_atomic_add(1, &pdev->htt_tx_credit.bus_delta);
credit_delta = htt_tx_credit_update(pdev);
HTT_TX_MUTEX_RELEASE(&pdev->credit_mutex);
if (credit_delta)
ol_tx_credit_completion_handler(pdev->txrx_pdev,
credit_delta);
}
htt_t2h_adjust_bus_target_delta(pdev);
/* free the htt_htc_pkt / HTC_PACKET object */
htt_htc_pkt_free(pdev, htt_pkt);
}

View file

@ -185,6 +185,27 @@ static void htt_ipa_op_response(struct htt_pdev_t *pdev, uint32_t *msg_word)
}
#endif
#ifndef QCN7605_SUPPORT
static int htt_t2h_adjust_bus_target_delta(struct htt_pdev_t *pdev,
int32_t htt_credit_delta)
{
if (pdev->cfg.is_high_latency && !pdev->cfg.default_tx_comp_req) {
HTT_TX_MUTEX_ACQUIRE(&pdev->credit_mutex);
qdf_atomic_add(htt_credit_delta,
&pdev->htt_tx_credit.target_delta);
htt_credit_delta = htt_tx_credit_update(pdev);
HTT_TX_MUTEX_RELEASE(&pdev->credit_mutex);
}
return htt_credit_delta;
}
#else
static int htt_t2h_adjust_bus_target_delta(struct htt_pdev_t *pdev,
int32_t htt_credit_delta)
{
return htt_credit_delta;
}
#endif
#define MAX_TARGET_TX_CREDIT 204800
/* Target to host Msg/event handler for low priority messages*/
@ -471,16 +492,8 @@ static void htt_t2h_lp_msg_handler(void *context, qdf_nbuf_t htt_t2h_msg,
old_credit, htt_credit_delta);
break;
}
if (pdev->cfg.is_high_latency &&
!pdev->cfg.default_tx_comp_req) {
HTT_TX_MUTEX_ACQUIRE(&pdev->credit_mutex);
qdf_atomic_add(htt_credit_delta,
&pdev->htt_tx_credit.target_delta);
htt_credit_delta = htt_tx_credit_update(pdev);
HTT_TX_MUTEX_RELEASE(&pdev->credit_mutex);
}
htt_credit_delta =
htt_t2h_adjust_bus_target_delta(pdev, htt_credit_delta);
htt_tx_group_credit_process(pdev, msg_word);
ol_tx_credit_completion_handler(pdev->txrx_pdev,
htt_credit_delta);