qcacmn: Rx path changes for multichip MLO
Rx patch changes for multichip MLO 1. Create ini for rx ring mask for each chip 2. Configure hash based routing for each chip based on lmac_peer_id_msb 3. Peer setup changes to configure lmac_peer_id_msb to enable hash based routing 4. Rx Replenish changes to provide buffers back to owner SOC of reo ring Change-Id: Ibbe6e81f9e62d88d9bb289a082dd14b4362252c4
This commit is contained in:

committato da
Madan Koyyalamudi

parent
bbe062b4b7
commit
c42af1f62f
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. 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
|
||||
@@ -31,6 +32,8 @@
|
||||
#include <target_if.h>
|
||||
#include <cdp_txrx_ops.h>
|
||||
|
||||
#define PEER_ROUTING_LMAC_ID_INDEX 6
|
||||
#define PEER_ROUTING_LMAC_ID_BITS 2
|
||||
/**
|
||||
* struct reorder_q_setup - reorder queue setup params
|
||||
* @psoc: psoc
|
||||
@@ -63,6 +66,7 @@ struct reorder_q_setup {
|
||||
* @vdev_id: vdev id
|
||||
* @hash_based: hash based routing
|
||||
* @ring_num: ring number
|
||||
* @lmac_peer_id_msb: lmac_peer_id_msb
|
||||
*
|
||||
* return: void
|
||||
*/
|
||||
@@ -70,7 +74,8 @@ void
|
||||
target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
uint8_t pdev_id,
|
||||
uint8_t *peer_macaddr, uint8_t vdev_id,
|
||||
bool hash_based, uint8_t ring_num);
|
||||
bool hash_based, uint8_t ring_num,
|
||||
uint8_t lmac_peer_id_msb);
|
||||
/**
|
||||
* target_if_peer_rx_reorder_queue_setup() - setup rx reorder queue
|
||||
* @pdev: pdev pointer
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. 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
|
||||
@@ -28,7 +29,8 @@ void
|
||||
target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
uint8_t pdev_id, uint8_t *peer_macaddr,
|
||||
uint8_t vdev_id,
|
||||
bool hash_based, uint8_t ring_num)
|
||||
bool hash_based, uint8_t ring_num,
|
||||
uint8_t lmac_peer_id_msb)
|
||||
{
|
||||
uint32_t value;
|
||||
struct peer_set_params param;
|
||||
@@ -56,6 +58,10 @@ target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
*/
|
||||
value = ((hash_based) ? 1 : 0) | (ring_num << 1);
|
||||
|
||||
if (lmac_peer_id_msb)
|
||||
QDF_SET_BITS(value, PEER_ROUTING_LMAC_ID_INDEX,
|
||||
PEER_ROUTING_LMAC_ID_BITS, lmac_peer_id_msb);
|
||||
|
||||
param.param_id = WMI_HOST_PEER_SET_DEFAULT_ROUTING;
|
||||
param.vdev_id = vdev_id;
|
||||
param.param_value = value;
|
||||
|
Fai riferimento in un nuovo problema
Block a user