Преглед изворни кода

qcacmn: Add CDP support to set vdev mac address

Add CDP API support to set vdev mac address.

Change-Id: I3dc6ba5abda04a3b566b8c6c1dd9ff5daa80f362
CRs-Fixed: 3517762
Rakesh Pillai пре 2 година
родитељ
комит
3fab5bd196
2 измењених фајлова са 13 додато и 0 уклоњено
  1. 5 0
      dp/inc/cdp_txrx_cmn_struct.h
  2. 8 0
      dp/wifi3.0/dp_main.c

+ 5 - 0
dp/inc/cdp_txrx_cmn_struct.h

@@ -1460,6 +1460,7 @@ enum cdp_pdev_param_type {
  * @cdp_rxdma_refill_ring_size: RXDMA 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
+ * @mac_addr: vdev mac address
  */
 typedef union cdp_config_param_t {
 	/* peer params */
@@ -1562,6 +1563,8 @@ typedef union cdp_config_param_t {
 	int cdp_rxdma_refill_ring_size;
 	int cdp_rx_refill_buf_pool_size;
 	int cdp_rxdma_buf_ring_size;
+
+	uint8_t mac_addr[QDF_MAC_ADDR_SIZE];
 } cdp_config_param_type;
 
 /**
@@ -1652,6 +1655,7 @@ enum cdp_pdev_bpr_param {
  * @CDP_ENABLE_WRAP: qwrap ap
  * @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_SET_MAC_ADDR: Set mac address for vdev
  */
 enum cdp_vdev_param_type {
 	CDP_ENABLE_NAWDS,
@@ -1702,6 +1706,7 @@ enum cdp_vdev_param_type {
 #ifdef FEATURE_DIRECT_LINK
 	CDP_VDEV_TX_TO_FW,
 #endif
+	CDP_VDEV_SET_MAC_ADDR,
 };
 
 /**

+ 8 - 0
dp/wifi3.0/dp_main.c

@@ -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;
 		break;
 #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:
 		break;
 	}