From 28e8a165f067273c38c4a51b4a7bd7b4716f2061 Mon Sep 17 00:00:00 2001 From: Jeevan Kukkalli Date: Fri, 16 Jun 2017 18:07:28 +0530 Subject: [PATCH] qcacmn: Add functionality to send bridge MAC to firmware Add functions to send bridge MAC programmed from user space to firmware.This change is part of a workaround to fix an looping issue which resulted in wrongly adding bridge's own MAC address to fw WDS table.Send MAC address to target to avoid adding our own bridge address to fw WDS table as part of source port learning. Change-Id: I815d3c3f106cd2f528ac9172712ec6c2f47f4410 CRs-Fixed: 2070956 --- wmi_unified_api.h | 11 +++++++++++ wmi_unified_param.h | 8 ++++++++ wmi_unified_priv.h | 3 +++ 3 files changed, 22 insertions(+) diff --git a/wmi_unified_api.h b/wmi_unified_api.h index 49b2e9ee07..a67ab1da71 100644 --- a/wmi_unified_api.h +++ b/wmi_unified_api.h @@ -1047,6 +1047,17 @@ QDF_STATUS wmi_unified_peer_add_wds_entry_cmd_send(void *wmi_hdl, QDF_STATUS wmi_unified_peer_del_wds_entry_cmd_send(void *wmi_hdl, struct peer_del_wds_entry_params *param); +/** + * wmi_unified_set_bridge_mac_addr_cmd_send() - WMI set bridge mac addr cmd function + * @param wmi_hdl : handle to WMI. + * @param param : pointer to hold bridge mac addr param + * + * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_set_bridge_mac_addr_cmd_send(void *wmi_hdl, + struct set_bridge_mac_addr_params *param); + + QDF_STATUS wmi_unified_peer_update_wds_entry_cmd_send(void *wmi_hdl, struct peer_update_wds_entry_params *param); diff --git a/wmi_unified_param.h b/wmi_unified_param.h index 20f1ae8bb4..180391b14d 100644 --- a/wmi_unified_param.h +++ b/wmi_unified_param.h @@ -3548,6 +3548,14 @@ struct peer_del_wds_entry_params { uint32_t vdev_id; }; +/** + * struct set_bridge_mac_addr_params - set bridge MAC addr params + * @dest_addr: Pointer to bridge macaddr + */ +struct set_bridge_mac_addr_params { + uint8_t *bridge_addr; +}; + /** * struct peer_updatewds_entry_params - WDS peer entry update params * @wds_macaddr: Pointer to destination macaddr diff --git a/wmi_unified_priv.h b/wmi_unified_priv.h index 130c5673c3..3ba8064e41 100644 --- a/wmi_unified_priv.h +++ b/wmi_unified_priv.h @@ -844,6 +844,9 @@ QDF_STATUS (*send_peer_add_wds_entry_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_peer_del_wds_entry_cmd)(wmi_unified_t wmi_handle, struct peer_del_wds_entry_params *param); +QDF_STATUS (*send_set_bridge_mac_addr_cmd)(wmi_unified_t wmi_handle, + struct set_bridge_mac_addr_params *param); + QDF_STATUS (*send_peer_update_wds_entry_cmd)(wmi_unified_t wmi_handle, struct peer_update_wds_entry_params *param);