qcacmn: Clean up direct buf rx framework

Direct buffer rx framework is cleaned up to have the following
changes -

1. Init and deinit during target interface open and close to avoid
   multiple inits and deinits in case of multi-SOC chipsets
2. Register WMI events required for the framework through PSOC
   enable and disable
3. Rename API that attaches hal soc and osdev objects to psoc object
4. Module ID numbering starts from 0. Modify usage to adhere to it
5. Add API to get LMAC IF tx ops from psoc

Change-Id: Ieceeb6c0e1a89c32f23b9c252e74671cd5c4a69b
CRs-Fixed: 2167614
This commit is contained in:
Sathish Kumar
2018-01-05 15:33:25 +05:30
committed by snandini
parent 1d3e9309b3
commit 7607184303
8 changed files with 202 additions and 82 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -57,35 +57,33 @@ struct direct_buf_rx_data {
};
/**
* direct_buf_rx_attach: Function to initialize direct buf rx module
* @psoc: pointer to psoc object
* direct_buf_rx_init() - Function to initialize direct buf rx module
*
* Return: QDF status of operation
*/
QDF_STATUS direct_buf_rx_attach(struct wlan_objmgr_psoc *psoc);
QDF_STATUS direct_buf_rx_init(void);
/**
* direct_buf_rx_detach: Function to deinitialize direct buf rx module
* @psoc: pointer to psoc object
* direct_buf_rx_deinit() - Function to deinitialize direct buf rx module
*
* Return: QDF status of operation
*/
QDF_STATUS direct_buf_rx_detach(struct wlan_objmgr_psoc *psoc);
QDF_STATUS direct_buf_rx_deinit(void);
/**
* direct_buf_rx_psoc_obj_fill: Fill hal_soc,osdev in direct buf rx psoc obj
* direct_buf_rx_target_attach() - Attach hal_soc,osdev in direct buf rx psoc obj
* @psoc: pointer to psoc object
* @hal_soc: Opaque HAL SOC handle
* @osdev: QDF os device handle
*
* Return: QDF status of operation
*/
QDF_STATUS direct_buf_rx_psoc_obj_fill(struct wlan_objmgr_psoc *psoc,
QDF_STATUS direct_buf_rx_target_attach(struct wlan_objmgr_psoc *psoc,
void *hal_soc, qdf_device_t osdev);
/**
* target_if_direct_buf_rx_register_tx_ops: Register tx ops for direct buffer
* rx module
* target_if_direct_buf_rx_register_tx_ops() - Register tx ops for direct buffer
* rx module
* @tx_ops: pointer to lmac interface tx ops
*
* Return: None