1*5d5cb86fSPierre-Louis Bossart /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
2*5d5cb86fSPierre-Louis Bossart /*
3*5d5cb86fSPierre-Louis Bossart * This file is provided under a dual BSD/GPLv2 license. When using or
4*5d5cb86fSPierre-Louis Bossart * redistributing this file, you may do so under either license.
5*5d5cb86fSPierre-Louis Bossart *
6*5d5cb86fSPierre-Louis Bossart * Copyright(c) 2025 Intel Corporation.
7*5d5cb86fSPierre-Louis Bossart */
8*5d5cb86fSPierre-Louis Bossart
9*5d5cb86fSPierre-Louis Bossart #ifndef __HDA_SDW_BPT_H
10*5d5cb86fSPierre-Louis Bossart #define __HDA_SDW_BPT_H
11*5d5cb86fSPierre-Louis Bossart
12*5d5cb86fSPierre-Louis Bossart #include <linux/device.h>
13*5d5cb86fSPierre-Louis Bossart
14*5d5cb86fSPierre-Louis Bossart struct hdac_ext_stream;
15*5d5cb86fSPierre-Louis Bossart struct snd_dma_buffer;
16*5d5cb86fSPierre-Louis Bossart
17*5d5cb86fSPierre-Louis Bossart #if IS_ENABLED(CONFIG_SND_SOF_SOF_HDA_SDW_BPT)
18*5d5cb86fSPierre-Louis Bossart int hda_sdw_bpt_open(struct device *dev, int link_id, struct hdac_ext_stream **bpt_tx_stream,
19*5d5cb86fSPierre-Louis Bossart struct snd_dma_buffer *dmab_tx_bdl, u32 bpt_tx_num_bytes,
20*5d5cb86fSPierre-Louis Bossart u32 tx_dma_bandwidth, struct hdac_ext_stream **bpt_rx_stream,
21*5d5cb86fSPierre-Louis Bossart struct snd_dma_buffer *dmab_rx_bdl, u32 bpt_rx_num_bytes,
22*5d5cb86fSPierre-Louis Bossart u32 rx_dma_bandwidth);
23*5d5cb86fSPierre-Louis Bossart
24*5d5cb86fSPierre-Louis Bossart int hda_sdw_bpt_send_async(struct device *dev, struct hdac_ext_stream *bpt_tx_stream,
25*5d5cb86fSPierre-Louis Bossart struct hdac_ext_stream *bpt_rx_stream);
26*5d5cb86fSPierre-Louis Bossart
27*5d5cb86fSPierre-Louis Bossart int hda_sdw_bpt_wait(struct device *dev, struct hdac_ext_stream *bpt_tx_stream,
28*5d5cb86fSPierre-Louis Bossart struct hdac_ext_stream *bpt_rx_stream);
29*5d5cb86fSPierre-Louis Bossart
30*5d5cb86fSPierre-Louis Bossart int hda_sdw_bpt_close(struct device *dev, struct hdac_ext_stream *bpt_tx_stream,
31*5d5cb86fSPierre-Louis Bossart struct snd_dma_buffer *dmab_tx_bdl, struct hdac_ext_stream *bpt_rx_stream,
32*5d5cb86fSPierre-Louis Bossart struct snd_dma_buffer *dmab_rx_bdl);
33*5d5cb86fSPierre-Louis Bossart #else
hda_sdw_bpt_open(struct device * dev,int link_id,struct hdac_ext_stream ** bpt_tx_stream,struct snd_dma_buffer * dmab_tx_bdl,u32 bpt_tx_num_bytes,u32 tx_dma_bandwidth,struct hdac_ext_stream ** bpt_rx_stream,struct snd_dma_buffer * dmab_rx_bdl,u32 bpt_rx_num_bytes,u32 rx_dma_bandwidth)34*5d5cb86fSPierre-Louis Bossart static inline int hda_sdw_bpt_open(struct device *dev, int link_id,
35*5d5cb86fSPierre-Louis Bossart struct hdac_ext_stream **bpt_tx_stream,
36*5d5cb86fSPierre-Louis Bossart struct snd_dma_buffer *dmab_tx_bdl, u32 bpt_tx_num_bytes,
37*5d5cb86fSPierre-Louis Bossart u32 tx_dma_bandwidth, struct hdac_ext_stream **bpt_rx_stream,
38*5d5cb86fSPierre-Louis Bossart struct snd_dma_buffer *dmab_rx_bdl, u32 bpt_rx_num_bytes,
39*5d5cb86fSPierre-Louis Bossart u32 rx_dma_bandwidth)
40*5d5cb86fSPierre-Louis Bossart {
41*5d5cb86fSPierre-Louis Bossart WARN_ONCE(1, "SoundWire BPT is disabled");
42*5d5cb86fSPierre-Louis Bossart return -EOPNOTSUPP;
43*5d5cb86fSPierre-Louis Bossart }
44*5d5cb86fSPierre-Louis Bossart
hda_sdw_bpt_send_async(struct device * dev,struct hdac_ext_stream * bpt_tx_stream,struct hdac_ext_stream * bpt_rx_stream)45*5d5cb86fSPierre-Louis Bossart static inline int hda_sdw_bpt_send_async(struct device *dev, struct hdac_ext_stream *bpt_tx_stream,
46*5d5cb86fSPierre-Louis Bossart struct hdac_ext_stream *bpt_rx_stream)
47*5d5cb86fSPierre-Louis Bossart {
48*5d5cb86fSPierre-Louis Bossart WARN_ONCE(1, "SoundWire BPT is disabled");
49*5d5cb86fSPierre-Louis Bossart return -EOPNOTSUPP;
50*5d5cb86fSPierre-Louis Bossart }
51*5d5cb86fSPierre-Louis Bossart
hda_sdw_bpt_wait(struct device * dev,struct hdac_ext_stream * bpt_tx_stream,struct hdac_ext_stream * bpt_rx_stream)52*5d5cb86fSPierre-Louis Bossart static inline int hda_sdw_bpt_wait(struct device *dev, struct hdac_ext_stream *bpt_tx_stream,
53*5d5cb86fSPierre-Louis Bossart struct hdac_ext_stream *bpt_rx_stream)
54*5d5cb86fSPierre-Louis Bossart {
55*5d5cb86fSPierre-Louis Bossart WARN_ONCE(1, "SoundWire BPT is disabled");
56*5d5cb86fSPierre-Louis Bossart return -EOPNOTSUPP;
57*5d5cb86fSPierre-Louis Bossart }
58*5d5cb86fSPierre-Louis Bossart
hda_sdw_bpt_close(struct device * dev,struct hdac_ext_stream * bpt_tx_stream,struct snd_dma_buffer * dmab_tx_bdl,struct hdac_ext_stream * bpt_rx_stream,struct snd_dma_buffer * dmab_rx_bdl)59*5d5cb86fSPierre-Louis Bossart static inline int hda_sdw_bpt_close(struct device *dev, struct hdac_ext_stream *bpt_tx_stream,
60*5d5cb86fSPierre-Louis Bossart struct snd_dma_buffer *dmab_tx_bdl,
61*5d5cb86fSPierre-Louis Bossart struct hdac_ext_stream *bpt_rx_stream,
62*5d5cb86fSPierre-Louis Bossart struct snd_dma_buffer *dmab_rx_bdl)
63*5d5cb86fSPierre-Louis Bossart {
64*5d5cb86fSPierre-Louis Bossart WARN_ONCE(1, "SoundWire BPT is disabled");
65*5d5cb86fSPierre-Louis Bossart return -EOPNOTSUPP;
66*5d5cb86fSPierre-Louis Bossart }
67*5d5cb86fSPierre-Louis Bossart #endif
68*5d5cb86fSPierre-Louis Bossart
69*5d5cb86fSPierre-Louis Bossart #endif /* __HDA_SDW_BPT_H */
70