qcacmn: Add CDP support to set vdev mac address

Add CDP API support to set vdev mac address.

Change-Id: I3dc6ba5abda04a3b566b8c6c1dd9ff5daa80f362
CRs-Fixed: 3517762
This commit is contained in:
Rakesh Pillai
2023-05-31 08:04:30 -07:00
committed by Rahul Choudhary
parent b4be829c2e
commit 3fab5bd196
2 changed files with 13 additions and 0 deletions

View File

@@ -1460,6 +1460,7 @@ enum cdp_pdev_param_type {
* @cdp_rxdma_refill_ring_size: RXDMA refill ring size config * @cdp_rxdma_refill_ring_size: RXDMA refill ring size config
* @cdp_rx_refill_buf_pool_size: RX refill ring size config * @cdp_rx_refill_buf_pool_size: RX refill ring size config
* @cdp_rxdma_buf_ring_size: RXDMA buf ring size config * @cdp_rxdma_buf_ring_size: RXDMA buf ring size config
* @mac_addr: vdev mac address
*/ */
typedef union cdp_config_param_t { typedef union cdp_config_param_t {
/* peer params */ /* peer params */
@@ -1562,6 +1563,8 @@ typedef union cdp_config_param_t {
int cdp_rxdma_refill_ring_size; int cdp_rxdma_refill_ring_size;
int cdp_rx_refill_buf_pool_size; int cdp_rx_refill_buf_pool_size;
int cdp_rxdma_buf_ring_size; int cdp_rxdma_buf_ring_size;
uint8_t mac_addr[QDF_MAC_ADDR_SIZE];
} cdp_config_param_type; } cdp_config_param_type;
/** /**
@@ -1652,6 +1655,7 @@ enum cdp_pdev_bpr_param {
* @CDP_ENABLE_WRAP: qwrap ap * @CDP_ENABLE_WRAP: qwrap ap
* @CDP_ENABLE_TRAFFIC_END_INDICATION: enable/disable traffic end indication * @CDP_ENABLE_TRAFFIC_END_INDICATION: enable/disable traffic end indication
* @CDP_VDEV_TX_TO_FW: Set to_fw bit for tx packets for the vdev * @CDP_VDEV_TX_TO_FW: Set to_fw bit for tx packets for the vdev
* @CDP_VDEV_SET_MAC_ADDR: Set mac address for vdev
*/ */
enum cdp_vdev_param_type { enum cdp_vdev_param_type {
CDP_ENABLE_NAWDS, CDP_ENABLE_NAWDS,
@@ -1702,6 +1706,7 @@ enum cdp_vdev_param_type {
#ifdef FEATURE_DIRECT_LINK #ifdef FEATURE_DIRECT_LINK
CDP_VDEV_TX_TO_FW, CDP_VDEV_TX_TO_FW,
#endif #endif
CDP_VDEV_SET_MAC_ADDR,
}; };
/** /**

View File

@@ -7561,6 +7561,14 @@ dp_set_vdev_param(struct cdp_soc_t *cdp_soc, uint8_t vdev_id,
vdev->to_fw = val.cdp_vdev_tx_to_fw; vdev->to_fw = val.cdp_vdev_tx_to_fw;
break; break;
#endif #endif
case CDP_VDEV_SET_MAC_ADDR:
dp_info("set mac addr, old mac addr" QDF_MAC_ADDR_FMT
" new mac addr: " QDF_MAC_ADDR_FMT " for vdev %d",
QDF_MAC_ADDR_REF(vdev->mac_addr.raw),
QDF_MAC_ADDR_REF(val.mac_addr), vdev->vdev_id);
qdf_mem_copy(&vdev->mac_addr.raw[0], val.mac_addr,
QDF_MAC_ADDR_SIZE);
break;
default: default:
break; break;
} }