From 18ac01d2f6286427f3955950e05bf494fac1fa35 Mon Sep 17 00:00:00 2001 From: Mukul Sharma Date: Sat, 4 Feb 2017 17:04:57 +0530 Subject: [PATCH] qcacmn: Add pmo tx ops and rx ops in lmac interface Add pmo tx ops and rx ops in lmac interface. Change-Id: I78b38c1a199c0dd89be9805be5a4f85f8da3798d CRs-Fixed: 2002390 --- .../lmac_if/inc/wlan_lmac_if_def.h | 85 ++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h b/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h index c92b6bf7d9..673f4c0215 100644 --- a/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h +++ b/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h @@ -43,7 +43,6 @@ struct wlan_lmac_if_mgmt_txrx_tx_ops { qdf_nbuf_t nbuf); }; - /** * struct wlan_lmac_if_scan_tx_ops - south bound tx function pointers for scan * @scan_start: function to start scan @@ -77,6 +76,68 @@ struct wlan_lmac_if_scan_rx_ops { struct scan_event_info *event_info); }; +#ifdef WLAN_PMO_ENABLE + +/* fwd declarations for pmo tx ops */ +struct pmo_arp_offload_params; +struct pmo_ns_offload_params; +struct pmo_gtk_req; +struct pmo_action_wakeup_set_params; + +/** + * struct wlan_lmac_if_pmo_tx_ops - structure of tx function + * pointers for pmo component + * @send_arp_offload_req: fp to send arp offload request + * @send_ns_offload_req: fp to send ns offload request + * @send_enable_wakeup_event_req: fp to send enable wow wakeup events req + * @send_disable_wakeup_event_req: fp to send disable wow wakeup events req + * @send_add_wow_pattern: fp to send wow pattern request + * @send_enhance_mc_offload_req: fp to send enhanced multicast offload request + * @send_set_mc_filter_req: fp to send set mc filter request + * @send_clear_mc_filter_req: fp to send clear mc filter request + * @send_ra_filter_req: fp to send ra filter request + * @send_gtk_offload_req: fp to send gtk offload request command + * @send_get_gtk_rsp_cmd: fp to send get gtk response request cmd to firmware + * @send_action_frame_pattern_req: fp to send wow action frame patterns request + */ +struct wlan_lmac_if_pmo_tx_ops { + QDF_STATUS(*send_arp_offload_req)(struct wlan_objmgr_vdev *vdev, + struct pmo_arp_offload_params *arp_offload_req, + struct pmo_ns_offload_params *ns_offload_req); + QDF_STATUS(*send_ns_offload_req)(struct wlan_objmgr_vdev *vdev, + struct pmo_arp_offload_params *arp_offload_req, + struct pmo_ns_offload_params *ns_offload_req); + QDF_STATUS(*send_enable_wow_wakeup_event_req)( + struct wlan_objmgr_vdev *vdev, + uint32_t bitmap); + QDF_STATUS(*send_disable_wow_wakeup_event_req)( + struct wlan_objmgr_vdev *vdev, + uint32_t bitmap); + QDF_STATUS(*send_add_wow_pattern)( + struct wlan_objmgr_vdev *vdev, + uint8_t ptrn_id, const uint8_t *ptrn, uint8_t ptrn_len, + uint8_t ptrn_offset, const uint8_t *mask, + uint8_t mask_len, bool user); + QDF_STATUS(*send_enhance_mc_offload_req)( + struct wlan_objmgr_vdev *vdev, bool enable); + QDF_STATUS(*send_set_mc_filter_req)( + struct wlan_objmgr_vdev *vdev, + struct qdf_mac_addr multicast_addr); + QDF_STATUS(*send_clear_mc_filter_req)( + struct wlan_objmgr_vdev *vdev, + struct qdf_mac_addr multicast_addr); + QDF_STATUS(*send_ra_filter_req)( + struct wlan_objmgr_vdev *vdev, + uint8_t default_pattern, uint16_t rate_limit_interval); + QDF_STATUS(*send_gtk_offload_req)( + struct wlan_objmgr_vdev *vdev, + struct pmo_gtk_req *gtk_offload_req); + QDF_STATUS(*send_get_gtk_rsp_cmd)(struct wlan_objmgr_vdev *vdev); + QDF_STATUS(*send_action_frame_pattern_req)( + struct wlan_objmgr_vdev *vdev, + struct pmo_action_wakeup_set_params *ip_cmd); +}; +#endif /** * struct wlan_lmac_if_tx_ops - south bound tx function pointers @@ -96,6 +157,9 @@ struct wlan_lmac_if_tx_ops { */ struct wlan_lmac_if_mgmt_txrx_tx_ops mgmt_txrx_tx_ops; struct wlan_lmac_if_scan_tx_ops scan; +#ifdef WLAN_PMO_ENABLE + struct wlan_lmac_if_pmo_tx_ops pmo_tx_ops; +#endif }; /** @@ -128,6 +192,22 @@ struct wlan_lmac_if_mgmt_txrx_rx_ops { uint32_t desc_id); }; +#ifdef WLAN_PMO_ENABLE + +/* fwd declarations for pmo rx ops */ +struct pmo_gtk_rsp_params; + +/** + * struct wlan_lmac_if_pmo_rx_ops - structure of rx function + * pointers for pmo component + * @gtk_rsp_event: function pointer to handle gtk rsp event from fwr + */ +struct wlan_lmac_if_pmo_rx_ops { + QDF_STATUS(*rx_gtk_rsp_event)(struct wlan_objmgr_psoc *psoc, + struct pmo_gtk_rsp_params *rsp_param); +}; +#endif + /** * struct wlan_lmac_if_rx_ops - south bound rx function pointers * @arg1 @@ -144,6 +224,9 @@ struct wlan_lmac_if_rx_ops { */ struct wlan_lmac_if_mgmt_txrx_rx_ops mgmt_txrx_rx_ops; struct wlan_lmac_if_scan_rx_ops scan; +#ifdef WLAN_PMO_ENABLE + struct wlan_lmac_if_pmo_rx_ops pmo_rx_ops; +#endif }; /* Function pointer to call legacy tx_ops registration in OL/WMA.