/* SPDX-License-Identifier: GPL-2.0-only */ /* * Interrupt bottom half (BH). * * Copyright (c) 2017-2020, Silicon Laboratories, Inc. * Copyright (c) 2010, ST-Ericsson */ #ifndef WFX_BH_H #define WFX_BH_H #include <linux/atomic.h> #include <linux/wait.h> #include <linux/completion.h> #include <linux/workqueue.h> struct wfx_dev; struct wfx_hif { struct work_struct bh; struct completion ctrl_ready; wait_queue_head_t tx_buffers_empty; atomic_t ctrl_reg; int rx_seqnum; int tx_seqnum; int tx_buffers_used; }; void wfx_bh_register(struct wfx_dev *wdev); void wfx_bh_unregister(struct wfx_dev *wdev); void wfx_bh_request_rx(struct wfx_dev *wdev); void wfx_bh_request_tx(struct wfx_dev *wdev); void wfx_bh_poll_irq(struct wfx_dev *wdev); #endif