Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.13 188 lines 6.5 kB view raw
1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ 2/* 3 * This file is provided under a dual BSD/GPLv2 license. When using or 4 * redistributing this file, you may do so under either license. 5 * 6 * Copyright(c) 2022-2023 Intel Corporation 7 */ 8 9struct hdac_bus; 10struct hdac_ext_link; 11 12#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_MLINK) 13 14int hda_bus_ml_init(struct hdac_bus *bus); 15void hda_bus_ml_free(struct hdac_bus *bus); 16 17int hdac_bus_eml_get_count(struct hdac_bus *bus, bool alt, int elid); 18void hdac_bus_eml_enable_interrupt_unlocked(struct hdac_bus *bus, bool alt, int elid, bool enable); 19void hdac_bus_eml_enable_interrupt(struct hdac_bus *bus, bool alt, int elid, bool enable); 20bool hdac_bus_eml_check_interrupt(struct hdac_bus *bus, bool alt, int elid); 21 22int hdac_bus_eml_set_syncprd_unlocked(struct hdac_bus *bus, bool alt, int elid, u32 syncprd); 23int hdac_bus_eml_sdw_set_syncprd_unlocked(struct hdac_bus *bus, u32 syncprd); 24 25int hdac_bus_eml_wait_syncpu_unlocked(struct hdac_bus *bus, bool alt, int elid); 26int hdac_bus_eml_sdw_wait_syncpu_unlocked(struct hdac_bus *bus); 27 28void hdac_bus_eml_sync_arm_unlocked(struct hdac_bus *bus, bool alt, int elid, int sublink); 29void hdac_bus_eml_sdw_sync_arm_unlocked(struct hdac_bus *bus, int sublink); 30 31int hdac_bus_eml_sync_go_unlocked(struct hdac_bus *bus, bool alt, int elid); 32int hdac_bus_eml_sdw_sync_go_unlocked(struct hdac_bus *bus); 33 34bool hdac_bus_eml_check_cmdsync_unlocked(struct hdac_bus *bus, bool alt, int elid); 35bool hdac_bus_eml_sdw_check_cmdsync_unlocked(struct hdac_bus *bus); 36 37int hdac_bus_eml_power_up(struct hdac_bus *bus, bool alt, int elid, int sublink); 38int hdac_bus_eml_power_up_unlocked(struct hdac_bus *bus, bool alt, int elid, int sublink); 39 40int hdac_bus_eml_power_down(struct hdac_bus *bus, bool alt, int elid, int sublink); 41int hdac_bus_eml_power_down_unlocked(struct hdac_bus *bus, bool alt, int elid, int sublink); 42 43int hdac_bus_eml_sdw_power_up_unlocked(struct hdac_bus *bus, int sublink); 44int hdac_bus_eml_sdw_power_down_unlocked(struct hdac_bus *bus, int sublink); 45 46int hdac_bus_eml_sdw_get_lsdiid_unlocked(struct hdac_bus *bus, int sublink, u16 *lsdiid); 47int hdac_bus_eml_sdw_set_lsdiid(struct hdac_bus *bus, int sublink, int dev_num); 48 49int hdac_bus_eml_sdw_map_stream_ch(struct hdac_bus *bus, int sublink, int y, 50 int channel_mask, int stream_id, int dir); 51 52void hda_bus_ml_put_all(struct hdac_bus *bus); 53void hda_bus_ml_reset_losidv(struct hdac_bus *bus); 54int hda_bus_ml_resume(struct hdac_bus *bus); 55int hda_bus_ml_suspend(struct hdac_bus *bus); 56 57struct hdac_ext_link *hdac_bus_eml_ssp_get_hlink(struct hdac_bus *bus); 58struct hdac_ext_link *hdac_bus_eml_dmic_get_hlink(struct hdac_bus *bus); 59struct hdac_ext_link *hdac_bus_eml_sdw_get_hlink(struct hdac_bus *bus); 60 61struct mutex *hdac_bus_eml_get_mutex(struct hdac_bus *bus, bool alt, int elid); 62 63int hdac_bus_eml_enable_offload(struct hdac_bus *bus, bool alt, int elid, bool enable); 64 65#else 66 67static inline int 68hda_bus_ml_init(struct hdac_bus *bus) { return 0; } 69 70static inline void hda_bus_ml_free(struct hdac_bus *bus) { } 71 72static inline int 73hdac_bus_eml_get_count(struct hdac_bus *bus, bool alt, int elid) { return 0; } 74 75static inline void 76hdac_bus_eml_enable_interrupt_unlocked(struct hdac_bus *bus, bool alt, int elid, bool enable) { } 77 78static inline void 79hdac_bus_eml_enable_interrupt(struct hdac_bus *bus, bool alt, int elid, bool enable) { } 80 81static inline bool 82hdac_bus_eml_check_interrupt(struct hdac_bus *bus, bool alt, int elid) { return false; } 83 84static inline int 85hdac_bus_eml_set_syncprd_unlocked(struct hdac_bus *bus, bool alt, int elid, u32 syncprd) 86{ 87 return 0; 88} 89 90static inline int 91hdac_bus_eml_sdw_set_syncprd_unlocked(struct hdac_bus *bus, u32 syncprd) 92{ 93 return 0; 94} 95 96static inline int 97hdac_bus_eml_wait_syncpu_unlocked(struct hdac_bus *bus, bool alt, int elid) 98{ 99 return 0; 100} 101 102static inline int 103hdac_bus_eml_sdw_wait_syncpu_unlocked(struct hdac_bus *bus) { return 0; } 104 105static inline void 106hdac_bus_eml_sync_arm_unlocked(struct hdac_bus *bus, bool alt, int elid, int sublink) { } 107 108static inline void 109hdac_bus_eml_sdw_sync_arm_unlocked(struct hdac_bus *bus, int sublink) { } 110 111static inline int 112hdac_bus_eml_sync_go_unlocked(struct hdac_bus *bus, bool alt, int elid) { return 0; } 113 114static inline int 115hdac_bus_eml_sdw_sync_go_unlocked(struct hdac_bus *bus) { return 0; } 116 117static inline bool 118hdac_bus_eml_check_cmdsync_unlocked(struct hdac_bus *bus, bool alt, int elid) { return false; } 119 120static inline bool 121hdac_bus_eml_sdw_check_cmdsync_unlocked(struct hdac_bus *bus) { return false; } 122 123static inline int 124hdac_bus_eml_power_up(struct hdac_bus *bus, bool alt, int elid, int sublink) 125{ 126 return 0; 127} 128 129static inline int 130hdac_bus_eml_power_up_unlocked(struct hdac_bus *bus, bool alt, int elid, int sublink) 131{ 132 return 0; 133} 134 135static inline int 136hdac_bus_eml_power_down(struct hdac_bus *bus, bool alt, int elid, int sublink) 137{ 138 return 0; 139} 140 141static inline int 142hdac_bus_eml_power_down_unlocked(struct hdac_bus *bus, bool alt, int elid, int sublink) 143{ 144 return 0; 145} 146 147static inline int 148hdac_bus_eml_sdw_power_up_unlocked(struct hdac_bus *bus, int sublink) { return 0; } 149 150static inline int 151hdac_bus_eml_sdw_power_down_unlocked(struct hdac_bus *bus, int sublink) { return 0; } 152 153static inline int 154hdac_bus_eml_sdw_get_lsdiid_unlocked(struct hdac_bus *bus, int sublink, u16 *lsdiid) { return 0; } 155 156static inline int 157hdac_bus_eml_sdw_set_lsdiid(struct hdac_bus *bus, int sublink, int dev_num) { return 0; } 158 159static inline int 160hdac_bus_eml_sdw_map_stream_ch(struct hdac_bus *bus, int sublink, int y, 161 int channel_mask, int stream_id, int dir) 162{ 163 return 0; 164} 165 166static inline void hda_bus_ml_put_all(struct hdac_bus *bus) { } 167static inline void hda_bus_ml_reset_losidv(struct hdac_bus *bus) { } 168static inline int hda_bus_ml_resume(struct hdac_bus *bus) { return 0; } 169static inline int hda_bus_ml_suspend(struct hdac_bus *bus) { return 0; } 170 171static inline struct hdac_ext_link * 172hdac_bus_eml_ssp_get_hlink(struct hdac_bus *bus) { return NULL; } 173 174static inline struct hdac_ext_link * 175hdac_bus_eml_dmic_get_hlink(struct hdac_bus *bus) { return NULL; } 176 177static inline struct hdac_ext_link * 178hdac_bus_eml_sdw_get_hlink(struct hdac_bus *bus) { return NULL; } 179 180static inline struct mutex * 181hdac_bus_eml_get_mutex(struct hdac_bus *bus, bool alt, int elid) { return NULL; } 182 183static inline int 184hdac_bus_eml_enable_offload(struct hdac_bus *bus, bool alt, int elid, bool enable) 185{ 186 return 0; 187} 188#endif /* CONFIG_SND_SOC_SOF_HDA_MLINK */