/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Interrupt bottom half.
 *
 * Copyright (c) 2017-2020, Silicon Laboratories, Inc.
 * Copyright (c) 2010, ST-Ericsson
 */
#ifndef WFX_BH_H
#define WFX_BH_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 /* WFX_BH_H */
