// SPDX-License-Identifier: GPL-2.0-only /* * NXP Wireless LAN device driver: generic TX/RX data handling * * Copyright 2011-2020 NXP */ #include "decl.h" #include "ioctl.h" #include "util.h" #include "fw.h" #include "main.h" #include "wmm.h" /* * This function processes the received buffer. * * Main responsibility of this function is to parse the RxPD to * identify the correct interface this packet is headed for and * forwarding it to the associated handling function, where the * packet will be further processed and sent to kernel/upper layer * if required. */ int mwifiex_handle_rx_packet(struct mwifiex_adapter *adapter, struct sk_buff *skb) { … } EXPORT_SYMBOL_GPL(…); /* * This function sends a packet to device. * * It processes the packet to add the TxPD, checks condition and * sends the processed packet to firmware for transmission. * * On successful completion, the function calls the completion callback * and logs the time. */ int mwifiex_process_tx(struct mwifiex_private *priv, struct sk_buff *skb, struct mwifiex_tx_param *tx_param) { … } static int mwifiex_host_to_card(struct mwifiex_adapter *adapter, struct sk_buff *skb, struct mwifiex_tx_param *tx_param) { … } static int mwifiex_dequeue_tx_queue(struct mwifiex_adapter *adapter) { … } void mwifiex_process_tx_queue(struct mwifiex_adapter *adapter) { … } /* * Packet send completion callback handler. * * It either frees the buffer directly or forwards it to another * completion callback which checks conditions, updates statistics, * wakes up stalled traffic queue if required, and then frees the buffer. */ int mwifiex_write_data_complete(struct mwifiex_adapter *adapter, struct sk_buff *skb, int aggr, int status) { … } EXPORT_SYMBOL_GPL(…); void mwifiex_parse_tx_status_event(struct mwifiex_private *priv, void *event_body) { … }