aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-09-20 03:50:49 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-09-20 03:50:49 -0400
commitd82920849f305a83b893a90eca6391de411d77ef (patch)
tree6da6d697b1b4a34eb4237d05f3f0a8dd2f558bb9 /include
parenteb9a29f9e585044ec71e82d815298ad7e4908858 (diff)
parent196f4eeeb78f53e0a598db8f9408b6f8b270c355 (diff)
Merge tag 'sound-4.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Takashi writes: "sound fixes for 4.19-rc5 here comes a collection of various fixes, mostly for stable-tree or regression fixes. Two relatively high LOCs are about the (rather simple) conversion of uapi integer types in topology API, and a regression fix about HDMI hotplug notification on AMD HD-audio. The rest are all small individual fixes like ASoC Intel Skylake race condition, minor uninitialized page leak in emu10k1 ioctl, Firewire audio error paths, and so on." * tag 'sound-4.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (33 commits) ALSA: fireworks: fix memory leak of response buffer at error path ALSA: oxfw: fix memory leak of discovered stream formats at error path ALSA: oxfw: fix memory leak for model-dependent data at error path ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path ALSA: hda - Enable runtime PM only for discrete GPU ALSA: oxfw: fix memory leak of private data ALSA: firewire-tascam: fix memory leak of private data ALSA: firewire-digi00x: fix memory leak of private data sound: don't call skl_init_chip() to reset intel skl soc sound: enable interrupt after dma buffer initialization Revert "ASoC: Intel: Skylake: Acquire irq after RIRB allocation" ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO ASoC: cs4265: fix MMTLR Data switch control ASoC: AMD: Ensure reset bit is cleared before configuring ALSA: fireface: fix memory leak in ff400_switch_fetching_mode() ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping ASoC: rsnd: don't fallback to PIO mode when -EPROBE_DEFER ASoC: rsnd: adg: care clock-frequency size ASoC: uniphier: change status to orphan ASoC: rsnd: fixup not to call clk_get/set under non-atomic ...
Diffstat (limited to 'include')
-rw-r--r--include/linux/vga_switcheroo.h3
-rw-r--r--include/sound/hdaudio.h1
-rw-r--r--include/sound/soc-dapm.h1
-rw-r--r--include/uapi/sound/skl-tplg-interface.h106
4 files changed, 59 insertions, 52 deletions
diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h
index a34539b7f750..7e6ac0114d55 100644
--- a/include/linux/vga_switcheroo.h
+++ b/include/linux/vga_switcheroo.h
@@ -133,15 +133,18 @@ struct vga_switcheroo_handler {
133 * @can_switch: check if the device is in a position to switch now. 133 * @can_switch: check if the device is in a position to switch now.
134 * Mandatory. The client should return false if a user space process 134 * Mandatory. The client should return false if a user space process
135 * has one of its device files open 135 * has one of its device files open
136 * @gpu_bound: notify the client id to audio client when the GPU is bound.
136 * 137 *
137 * Client callbacks. A client can be either a GPU or an audio device on a GPU. 138 * Client callbacks. A client can be either a GPU or an audio device on a GPU.
138 * The @set_gpu_state and @can_switch methods are mandatory, @reprobe may be 139 * The @set_gpu_state and @can_switch methods are mandatory, @reprobe may be
139 * set to NULL. For audio clients, the @reprobe member is bogus. 140 * set to NULL. For audio clients, the @reprobe member is bogus.
141 * OTOH, @gpu_bound is only for audio clients, and not used for GPU clients.
140 */ 142 */
141struct vga_switcheroo_client_ops { 143struct vga_switcheroo_client_ops {
142 void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state); 144 void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state);
143 void (*reprobe)(struct pci_dev *dev); 145 void (*reprobe)(struct pci_dev *dev);
144 bool (*can_switch)(struct pci_dev *dev); 146 bool (*can_switch)(struct pci_dev *dev);
147 void (*gpu_bound)(struct pci_dev *dev, enum vga_switcheroo_client_id);
145}; 148};
146 149
147#if defined(CONFIG_VGA_SWITCHEROO) 150#if defined(CONFIG_VGA_SWITCHEROO)
diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
index 6f1e1f3b3063..cd1773d0e08f 100644
--- a/include/sound/hdaudio.h
+++ b/include/sound/hdaudio.h
@@ -412,6 +412,7 @@ void snd_hdac_bus_init_cmd_io(struct hdac_bus *bus);
412void snd_hdac_bus_stop_cmd_io(struct hdac_bus *bus); 412void snd_hdac_bus_stop_cmd_io(struct hdac_bus *bus);
413void snd_hdac_bus_enter_link_reset(struct hdac_bus *bus); 413void snd_hdac_bus_enter_link_reset(struct hdac_bus *bus);
414void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus); 414void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus);
415int snd_hdac_bus_reset_link(struct hdac_bus *bus, bool full_reset);
415 416
416void snd_hdac_bus_update_rirb(struct hdac_bus *bus); 417void snd_hdac_bus_update_rirb(struct hdac_bus *bus);
417int snd_hdac_bus_handle_stream_irq(struct hdac_bus *bus, unsigned int status, 418int snd_hdac_bus_handle_stream_irq(struct hdac_bus *bus, unsigned int status,
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
index af9ef16cc34d..fdaaafdc7a00 100644
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -407,6 +407,7 @@ int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm,
407int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card); 407int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card);
408void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card); 408void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card);
409int snd_soc_dapm_new_pcm(struct snd_soc_card *card, 409int snd_soc_dapm_new_pcm(struct snd_soc_card *card,
410 struct snd_soc_pcm_runtime *rtd,
410 const struct snd_soc_pcm_stream *params, 411 const struct snd_soc_pcm_stream *params,
411 unsigned int num_params, 412 unsigned int num_params,
412 struct snd_soc_dapm_widget *source, 413 struct snd_soc_dapm_widget *source,
diff --git a/include/uapi/sound/skl-tplg-interface.h b/include/uapi/sound/skl-tplg-interface.h
index f58cafa42f18..f39352cef382 100644
--- a/include/uapi/sound/skl-tplg-interface.h
+++ b/include/uapi/sound/skl-tplg-interface.h
@@ -10,6 +10,8 @@
10#ifndef __HDA_TPLG_INTERFACE_H__ 10#ifndef __HDA_TPLG_INTERFACE_H__
11#define __HDA_TPLG_INTERFACE_H__ 11#define __HDA_TPLG_INTERFACE_H__
12 12
13#include <linux/types.h>
14
13/* 15/*
14 * Default types range from 0~12. type can range from 0 to 0xff 16 * Default types range from 0~12. type can range from 0 to 0xff
15 * SST types start at higher to avoid any overlapping in future 17 * SST types start at higher to avoid any overlapping in future
@@ -143,10 +145,10 @@ enum skl_module_param_type {
143}; 145};
144 146
145struct skl_dfw_algo_data { 147struct skl_dfw_algo_data {
146 u32 set_params:2; 148 __u32 set_params:2;
147 u32 rsvd:30; 149 __u32 rsvd:30;
148 u32 param_id; 150 __u32 param_id;
149 u32 max; 151 __u32 max;
150 char params[0]; 152 char params[0];
151} __packed; 153} __packed;
152 154
@@ -163,68 +165,68 @@ enum skl_tuple_type {
163/* v4 configuration data */ 165/* v4 configuration data */
164 166
165struct skl_dfw_v4_module_pin { 167struct skl_dfw_v4_module_pin {
166 u16 module_id; 168 __u16 module_id;
167 u16 instance_id; 169 __u16 instance_id;
168} __packed; 170} __packed;
169 171
170struct skl_dfw_v4_module_fmt { 172struct skl_dfw_v4_module_fmt {
171 u32 channels; 173 __u32 channels;
172 u32 freq; 174 __u32 freq;
173 u32 bit_depth; 175 __u32 bit_depth;
174 u32 valid_bit_depth; 176 __u32 valid_bit_depth;
175 u32 ch_cfg; 177 __u32 ch_cfg;
176 u32 interleaving_style; 178 __u32 interleaving_style;
177 u32 sample_type; 179 __u32 sample_type;
178 u32 ch_map; 180 __u32 ch_map;
179} __packed; 181} __packed;
180 182
181struct skl_dfw_v4_module_caps { 183struct skl_dfw_v4_module_caps {
182 u32 set_params:2; 184 __u32 set_params:2;
183 u32 rsvd:30; 185 __u32 rsvd:30;
184 u32 param_id; 186 __u32 param_id;
185 u32 caps_size; 187 __u32 caps_size;
186 u32 caps[HDA_SST_CFG_MAX]; 188 __u32 caps[HDA_SST_CFG_MAX];
187} __packed; 189} __packed;
188 190
189struct skl_dfw_v4_pipe { 191struct skl_dfw_v4_pipe {
190 u8 pipe_id; 192 __u8 pipe_id;
191 u8 pipe_priority; 193 __u8 pipe_priority;
192 u16 conn_type:4; 194 __u16 conn_type:4;
193 u16 rsvd:4; 195 __u16 rsvd:4;
194 u16 memory_pages:8; 196 __u16 memory_pages:8;
195} __packed; 197} __packed;
196 198
197struct skl_dfw_v4_module { 199struct skl_dfw_v4_module {
198 char uuid[SKL_UUID_STR_SZ]; 200 char uuid[SKL_UUID_STR_SZ];
199 201
200 u16 module_id; 202 __u16 module_id;
201 u16 instance_id; 203 __u16 instance_id;
202 u32 max_mcps; 204 __u32 max_mcps;
203 u32 mem_pages; 205 __u32 mem_pages;
204 u32 obs; 206 __u32 obs;
205 u32 ibs; 207 __u32 ibs;
206 u32 vbus_id; 208 __u32 vbus_id;
207 209
208 u32 max_in_queue:8; 210 __u32 max_in_queue:8;
209 u32 max_out_queue:8; 211 __u32 max_out_queue:8;
210 u32 time_slot:8; 212 __u32 time_slot:8;
211 u32 core_id:4; 213 __u32 core_id:4;
212 u32 rsvd1:4; 214 __u32 rsvd1:4;
213 215
214 u32 module_type:8; 216 __u32 module_type:8;
215 u32 conn_type:4; 217 __u32 conn_type:4;
216 u32 dev_type:4; 218 __u32 dev_type:4;
217 u32 hw_conn_type:4; 219 __u32 hw_conn_type:4;
218 u32 rsvd2:12; 220 __u32 rsvd2:12;
219 221
220 u32 params_fixup:8; 222 __u32 params_fixup:8;
221 u32 converter:8; 223 __u32 converter:8;
222 u32 input_pin_type:1; 224 __u32 input_pin_type:1;
223 u32 output_pin_type:1; 225 __u32 output_pin_type:1;
224 u32 is_dynamic_in_pin:1; 226 __u32 is_dynamic_in_pin:1;
225 u32 is_dynamic_out_pin:1; 227 __u32 is_dynamic_out_pin:1;
226 u32 is_loadable:1; 228 __u32 is_loadable:1;
227 u32 rsvd3:11; 229 __u32 rsvd3:11;
228 230
229 struct skl_dfw_v4_pipe pipe; 231 struct skl_dfw_v4_pipe pipe;
230 struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE]; 232 struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE];