qcacld-3.0: Add support for set multicast filter command
Add support for WMI_SET_MULTIPLE_MCAST_FILTER_CMDID command that can add/delete multiple mcast filters. CRs-Fixed: 2096595 Change-Id: I3dc93c603a5a6676d97b5911a716277c7bef0ef8
This commit is contained in:

committed by
Nandini Suresh

parent
a0fae8a30d
commit
f7c49e73b7
@@ -80,4 +80,78 @@ out:
|
||||
return status;
|
||||
}
|
||||
|
||||
bool pmo_tgt_get_multiple_mc_filter_support(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct wlan_pmo_tx_ops pmo_tx_ops;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
|
||||
PMO_ENTER();
|
||||
|
||||
psoc = pmo_vdev_get_psoc(vdev);
|
||||
|
||||
pmo_tx_ops = GET_PMO_TX_OPS_FROM_PSOC(psoc);
|
||||
if (!pmo_tx_ops.get_multiple_mc_filter_support) {
|
||||
pmo_err("get_multiple_mc_filter_support is null");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
return pmo_tx_ops.get_multiple_mc_filter_support(psoc);
|
||||
}
|
||||
|
||||
QDF_STATUS pmo_tgt_set_multiple_mc_filter_req(struct wlan_objmgr_vdev *vdev,
|
||||
struct pmo_mc_addr_list *mc_list)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
struct wlan_pmo_tx_ops pmo_tx_ops;
|
||||
|
||||
PMO_ENTER();
|
||||
|
||||
psoc = pmo_vdev_get_psoc(vdev);
|
||||
|
||||
pmo_tx_ops = GET_PMO_TX_OPS_FROM_PSOC(psoc);
|
||||
if (!pmo_tx_ops.send_set_multiple_mc_filter_req) {
|
||||
pmo_err("send_set_multiple_mc_filter_req is null");
|
||||
status = QDF_STATUS_E_NULL_VALUE;
|
||||
goto out;
|
||||
}
|
||||
|
||||
status = pmo_tx_ops.send_set_multiple_mc_filter_req(
|
||||
vdev, mc_list);
|
||||
if (status != QDF_STATUS_SUCCESS)
|
||||
pmo_err("Failed to add/clear multiple mc filter");
|
||||
out:
|
||||
PMO_EXIT();
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS pmo_tgt_clear_multiple_mc_filter_req(struct wlan_objmgr_vdev *vdev,
|
||||
struct pmo_mc_addr_list *mc_list)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
struct wlan_pmo_tx_ops pmo_tx_ops;
|
||||
|
||||
PMO_ENTER();
|
||||
|
||||
psoc = pmo_vdev_get_psoc(vdev);
|
||||
|
||||
pmo_tx_ops = GET_PMO_TX_OPS_FROM_PSOC(psoc);
|
||||
if (!pmo_tx_ops.send_clear_multiple_mc_filter_req) {
|
||||
pmo_err("send_clear_multiple_mc_filter_req is null");
|
||||
status = QDF_STATUS_E_NULL_VALUE;
|
||||
goto out;
|
||||
}
|
||||
|
||||
status = pmo_tx_ops.send_clear_multiple_mc_filter_req(
|
||||
vdev, mc_list);
|
||||
if (status != QDF_STATUS_SUCCESS)
|
||||
pmo_err("Failed to add/clear multiple mc filter");
|
||||
out:
|
||||
PMO_EXIT();
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user