blob: cf94f7f8e1f2a96f8c6ca28f047bf66bcb045b10 [file] [log] [blame]
/*
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. 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 above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
* USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef __EDMA_CFG_TX_H__
#define __EDMA_CFG_TX_H__
#define EDMA_TX_NAPI_WORK_MIN 16
#define EDMA_TX_NAPI_WORK_MAX 512
#define EDMA_TX_MITIGATION_TIMER_MIN 0 /* Tx mitigation timer's minimum value in microseconds */
#define EDMA_TX_MITIGATION_TIMER_MAX 1000 /* Tx mitigation timer's maximum value in microseconds */
#define EDMA_TX_MITIGATION_PKT_CNT_MIN 0 /* Tx mitigation packet count's minimum value */
#define EDMA_TX_MITIGATION_PKT_CNT_MAX 256 /* Tx mitigation packet count's maximum value */
void edma_cfg_tx_rings(struct edma_gbl_ctx *egc);
int32_t edma_cfg_tx_rings_alloc(struct edma_gbl_ctx *egc);
void edma_cfg_tx_rings_cleanup(struct edma_gbl_ctx *egc);
void edma_cfg_tx_napi_enable(struct edma_gbl_ctx *egc);
void edma_cfg_tx_napi_disable(struct edma_gbl_ctx *egc);
void edma_cfg_tx_napi_delete(struct edma_gbl_ctx *egc);
void edma_cfg_tx_napi_add(struct edma_gbl_ctx *egc, struct net_device *netdev);
void edma_cfg_tx_mapping(struct edma_gbl_ctx *egc);
void edma_cfg_tx_rings_enable(struct edma_gbl_ctx *egc);
void edma_cfg_tx_rings_disable(struct edma_gbl_ctx *egc);
void edma_cfg_tx_fill_per_port_tx_map(struct net_device *netdev, uint32_t macid);
#endif /* __EDMA_CFG_TX_H__ */