qcacld-3.0: Send bridge Address in WMI_WOW_ADD_WAKE_PATTERN_CMDID

Currently, in WMI_WOW_ADD_WAKE_PATTERN_CMDID driver sends only SAP mac
address and pattern_id. So, FW does not have bridge mac address.

To fix it, driver will send bridge mac address and pattern_id along
with SAP mac address and pattern_id.

Change-Id: I3fae9f0383a1ba8c64edfa6cf8518ab9a5604a14
CRs-Fixed: 3456318
This commit is contained in:
Deeksha Gupta
2023-04-11 19:22:57 +05:30
committato da Madan Koyyalamudi
parent d1d9b1e9b8
commit 3ef027a672
11 ha cambiato i file con 197 aggiunte e 9 eliminazioni

Vedi File

@@ -85,6 +85,7 @@ QDF_STATUS pmo_vdev_object_created_notification(struct wlan_objmgr_vdev *vdev,
/**
* pmo_vdev_ready() - handles vdev ready in firmware event
* @vdev: vdev which is ready in firmware
* @bridgeaddr: Bridge MAC address
*
* Objmgr vdev_create event does not guarantee vdev creation in firmware.
* Any logic that would normally go in the vdev_create event, but needs to
@@ -92,7 +93,8 @@ QDF_STATUS pmo_vdev_object_created_notification(struct wlan_objmgr_vdev *vdev,
*
* Return QDF_STATUS
*/
QDF_STATUS pmo_vdev_ready(struct wlan_objmgr_vdev *vdev);
QDF_STATUS pmo_vdev_ready(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *bridgeaddr);
/**
* pmo_vdev_object_destroyed_notification(): pmo vdev delete handler
@@ -351,7 +353,7 @@ pmo_vdev_object_created_notification(struct wlan_objmgr_vdev *vdev, void *arg)
}
static inline QDF_STATUS
pmo_vdev_ready(struct wlan_objmgr_vdev *vdev)
pmo_vdev_ready(struct wlan_objmgr_vdev *vdev, struct qdf_mac_addr *bridgeaddr)
{
return QDF_STATUS_SUCCESS;
}

Vedi File

@@ -2383,4 +2383,24 @@ void ucfg_pmo_notify_system_resume(struct wlan_objmgr_psoc *psoc)
{
}
#endif
/**
* ucfg_pmo_set_vdev_bridge_addr() - API to set Bridge mac address
* @vdev: objmgr vdev
* @bridgeaddr: Bridge mac address
*
* Return: if success pmo vdev ctx else NULL
*/
QDF_STATUS ucfg_pmo_set_vdev_bridge_addr(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *bridgeaddr);
/**
* ucfg_pmo_get_vdev_bridge_addr() - API to get Bridge mac address
* @vdev: objmgr vdev
* @bridgeaddr: Bridge mac address
*
* Return: if success pmo vdev ctx else NULL
*/
QDF_STATUS ucfg_pmo_get_vdev_bridge_addr(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *bridgeaddr);
#endif /* end of _WLAN_PMO_UCFG_API_H_ */

Vedi File

@@ -292,7 +292,8 @@ out:
return QDF_STATUS_SUCCESS;
}
QDF_STATUS pmo_vdev_ready(struct wlan_objmgr_vdev *vdev)
QDF_STATUS pmo_vdev_ready(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *bridgeaddr)
{
QDF_STATUS status;
@@ -300,6 +301,9 @@ QDF_STATUS pmo_vdev_ready(struct wlan_objmgr_vdev *vdev)
if (QDF_IS_STATUS_ERROR(status))
return status;
/* Set Bridge MAC address */
pmo_set_vdev_bridge_addr(vdev, bridgeaddr);
/* Register static configuration with firmware */
pmo_register_wow_wakeup_events(vdev);

Vedi File

@@ -1059,3 +1059,15 @@ QDF_STATUS ucfg_pmo_config_icmp_offload(struct wlan_objmgr_psoc *psoc,
return pmo_tgt_config_icmp_offload_req(psoc, pmo_icmp_req);
}
#endif
QDF_STATUS ucfg_pmo_set_vdev_bridge_addr(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *bridgeaddr)
{
return pmo_set_vdev_bridge_addr(vdev, bridgeaddr);
}
QDF_STATUS ucfg_pmo_get_vdev_bridge_addr(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *bridgeaddr)
{
return pmo_get_vdev_bridge_addr(vdev, bridgeaddr);
}