bh.h 738 B

123456789101112131415161718192021222324252627282930313233
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Interrupt bottom half.
  4. *
  5. * Copyright (c) 2017-2020, Silicon Laboratories, Inc.
  6. * Copyright (c) 2010, ST-Ericsson
  7. */
  8. #ifndef WFX_BH_H
  9. #define WFX_BH_H
  10. #include <linux/atomic.h>
  11. #include <linux/wait.h>
  12. #include <linux/workqueue.h>
  13. struct wfx_dev;
  14. struct wfx_hif {
  15. struct work_struct bh;
  16. struct completion ctrl_ready;
  17. wait_queue_head_t tx_buffers_empty;
  18. atomic_t ctrl_reg;
  19. int rx_seqnum;
  20. int tx_seqnum;
  21. int tx_buffers_used;
  22. };
  23. void wfx_bh_register(struct wfx_dev *wdev);
  24. void wfx_bh_unregister(struct wfx_dev *wdev);
  25. void wfx_bh_request_rx(struct wfx_dev *wdev);
  26. void wfx_bh_request_tx(struct wfx_dev *wdev);
  27. void wfx_bh_poll_irq(struct wfx_dev *wdev);
  28. #endif /* WFX_BH_H */