diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mfd/mc13xxx.h | 7 | ||||
-rw-r--r-- | include/linux/platform_data/davinci_asp.h | 2 | ||||
-rw-r--r-- | include/linux/thinkpad_acpi.h | 15 | ||||
-rw-r--r-- | include/sound/ak4114.h | 4 | ||||
-rw-r--r-- | include/sound/compress_driver.h | 9 | ||||
-rw-r--r-- | include/sound/cs42l52.h | 2 | ||||
-rw-r--r-- | include/sound/cs42l73.h | 22 | ||||
-rw-r--r-- | include/sound/dmaengine_pcm.h | 8 | ||||
-rw-r--r-- | include/sound/memalloc.h | 5 | ||||
-rw-r--r-- | include/sound/rcar_snd.h | 1 | ||||
-rw-r--r-- | include/sound/soc-dai.h | 17 | ||||
-rw-r--r-- | include/sound/soc-dapm.h | 4 | ||||
-rw-r--r-- | include/sound/soc.h | 100 | ||||
-rw-r--r-- | include/trace/events/asoc.h | 1 | ||||
-rw-r--r-- | include/uapi/sound/Kbuild | 1 | ||||
-rw-r--r-- | include/uapi/sound/asound.h | 3 | ||||
-rw-r--r-- | include/uapi/sound/firewire.h | 51 |
17 files changed, 180 insertions, 72 deletions
diff --git a/include/linux/mfd/mc13xxx.h b/include/linux/mfd/mc13xxx.h index 41ed59276c00..67c17b5a6f44 100644 --- a/include/linux/mfd/mc13xxx.h +++ b/include/linux/mfd/mc13xxx.h | |||
@@ -41,6 +41,13 @@ int mc13xxx_adc_do_conversion(struct mc13xxx *mc13xxx, | |||
41 | unsigned int mode, unsigned int channel, | 41 | unsigned int mode, unsigned int channel, |
42 | u8 ato, bool atox, unsigned int *sample); | 42 | u8 ato, bool atox, unsigned int *sample); |
43 | 43 | ||
44 | #define MC13783_AUDIO_RX0 36 | ||
45 | #define MC13783_AUDIO_RX1 37 | ||
46 | #define MC13783_AUDIO_TX 38 | ||
47 | #define MC13783_SSI_NETWORK 39 | ||
48 | #define MC13783_AUDIO_CODEC 40 | ||
49 | #define MC13783_AUDIO_DAC 41 | ||
50 | |||
44 | #define MC13XXX_IRQ_ADCDONE 0 | 51 | #define MC13XXX_IRQ_ADCDONE 0 |
45 | #define MC13XXX_IRQ_ADCBISDONE 1 | 52 | #define MC13XXX_IRQ_ADCBISDONE 1 |
46 | #define MC13XXX_IRQ_TS 2 | 53 | #define MC13XXX_IRQ_TS 2 |
diff --git a/include/linux/platform_data/davinci_asp.h b/include/linux/platform_data/davinci_asp.h index 8db5ae03b6e3..689a856b86f9 100644 --- a/include/linux/platform_data/davinci_asp.h +++ b/include/linux/platform_data/davinci_asp.h | |||
@@ -84,6 +84,8 @@ struct snd_platform_data { | |||
84 | u8 version; | 84 | u8 version; |
85 | u8 txnumevt; | 85 | u8 txnumevt; |
86 | u8 rxnumevt; | 86 | u8 rxnumevt; |
87 | int tx_dma_channel; | ||
88 | int rx_dma_channel; | ||
87 | }; | 89 | }; |
88 | 90 | ||
89 | enum { | 91 | enum { |
diff --git a/include/linux/thinkpad_acpi.h b/include/linux/thinkpad_acpi.h new file mode 100644 index 000000000000..361de59a2285 --- /dev/null +++ b/include/linux/thinkpad_acpi.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #ifndef __THINKPAD_ACPI_H__ | ||
2 | #define __THINKPAD_ACPI_H__ | ||
3 | |||
4 | /* These two functions return 0 if success, or negative error code | ||
5 | (e g -ENODEV if no led present) */ | ||
6 | |||
7 | enum { | ||
8 | TPACPI_LED_MUTE, | ||
9 | TPACPI_LED_MICMUTE, | ||
10 | TPACPI_LED_MAX, | ||
11 | }; | ||
12 | |||
13 | int tpacpi_led_set(int whichled, bool on); | ||
14 | |||
15 | #endif | ||
diff --git a/include/sound/ak4114.h b/include/sound/ak4114.h index 3ce69fd92523..52f02a60dba7 100644 --- a/include/sound/ak4114.h +++ b/include/sound/ak4114.h | |||
@@ -170,7 +170,7 @@ struct ak4114 { | |||
170 | void * private_data; | 170 | void * private_data; |
171 | unsigned int init: 1; | 171 | unsigned int init: 1; |
172 | spinlock_t lock; | 172 | spinlock_t lock; |
173 | unsigned char regmap[7]; | 173 | unsigned char regmap[6]; |
174 | unsigned char txcsb[5]; | 174 | unsigned char txcsb[5]; |
175 | struct snd_kcontrol *kctls[AK4114_CONTROLS]; | 175 | struct snd_kcontrol *kctls[AK4114_CONTROLS]; |
176 | struct snd_pcm_substream *playback_substream; | 176 | struct snd_pcm_substream *playback_substream; |
@@ -189,7 +189,7 @@ struct ak4114 { | |||
189 | 189 | ||
190 | int snd_ak4114_create(struct snd_card *card, | 190 | int snd_ak4114_create(struct snd_card *card, |
191 | ak4114_read_t *read, ak4114_write_t *write, | 191 | ak4114_read_t *read, ak4114_write_t *write, |
192 | const unsigned char pgm[7], const unsigned char txcsb[5], | 192 | const unsigned char pgm[6], const unsigned char txcsb[5], |
193 | void *private_data, struct ak4114 **r_ak4114); | 193 | void *private_data, struct ak4114 **r_ak4114); |
194 | void snd_ak4114_reg_write(struct ak4114 *ak4114, unsigned char reg, unsigned char mask, unsigned char val); | 194 | void snd_ak4114_reg_write(struct ak4114 *ak4114, unsigned char reg, unsigned char mask, unsigned char val); |
195 | void snd_ak4114_reinit(struct ak4114 *ak4114); | 195 | void snd_ak4114_reinit(struct ak4114 *ak4114); |
diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h index 9031a26249b5..ae6c3b8ed2f5 100644 --- a/include/sound/compress_driver.h +++ b/include/sound/compress_driver.h | |||
@@ -171,4 +171,13 @@ static inline void snd_compr_fragment_elapsed(struct snd_compr_stream *stream) | |||
171 | wake_up(&stream->runtime->sleep); | 171 | wake_up(&stream->runtime->sleep); |
172 | } | 172 | } |
173 | 173 | ||
174 | static inline void snd_compr_drain_notify(struct snd_compr_stream *stream) | ||
175 | { | ||
176 | if (snd_BUG_ON(!stream)) | ||
177 | return; | ||
178 | |||
179 | stream->runtime->state = SNDRV_PCM_STATE_SETUP; | ||
180 | wake_up(&stream->runtime->sleep); | ||
181 | } | ||
182 | |||
174 | #endif | 183 | #endif |
diff --git a/include/sound/cs42l52.h b/include/sound/cs42l52.h index 4c68955f7330..7c2be4a51894 100644 --- a/include/sound/cs42l52.h +++ b/include/sound/cs42l52.h | |||
@@ -31,6 +31,8 @@ struct cs42l52_platform_data { | |||
31 | /* Charge Pump Freq. Check datasheet Pg73 */ | 31 | /* Charge Pump Freq. Check datasheet Pg73 */ |
32 | unsigned int chgfreq; | 32 | unsigned int chgfreq; |
33 | 33 | ||
34 | /* Reset GPIO */ | ||
35 | unsigned int reset_gpio; | ||
34 | }; | 36 | }; |
35 | 37 | ||
36 | #endif /* __CS42L52_H */ | 38 | #endif /* __CS42L52_H */ |
diff --git a/include/sound/cs42l73.h b/include/sound/cs42l73.h new file mode 100644 index 000000000000..f354be4cdc9e --- /dev/null +++ b/include/sound/cs42l73.h | |||
@@ -0,0 +1,22 @@ | |||
1 | /* | ||
2 | * linux/sound/cs42l73.h -- Platform data for CS42L73 | ||
3 | * | ||
4 | * Copyright (c) 2012 Cirrus Logic Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #ifndef __CS42L73_H | ||
12 | #define __CS42L73_H | ||
13 | |||
14 | struct cs42l73_platform_data { | ||
15 | /* RST GPIO */ | ||
16 | unsigned int reset_gpio; | ||
17 | unsigned int chgfreq; | ||
18 | int jack_detection; | ||
19 | unsigned int mclk_freq; | ||
20 | }; | ||
21 | |||
22 | #endif /* __CS42L73_H */ | ||
diff --git a/include/sound/dmaengine_pcm.h b/include/sound/dmaengine_pcm.h index f11c35cd5532..15017311f2e9 100644 --- a/include/sound/dmaengine_pcm.h +++ b/include/sound/dmaengine_pcm.h | |||
@@ -61,6 +61,8 @@ struct dma_chan *snd_dmaengine_pcm_get_chan(struct snd_pcm_substream *substream) | |||
61 | * @slave_id: Slave requester id for the DMA channel. | 61 | * @slave_id: Slave requester id for the DMA channel. |
62 | * @filter_data: Custom DMA channel filter data, this will usually be used when | 62 | * @filter_data: Custom DMA channel filter data, this will usually be used when |
63 | * requesting the DMA channel. | 63 | * requesting the DMA channel. |
64 | * @chan_name: Custom channel name to use when requesting DMA channel. | ||
65 | * @fifo_size: FIFO size of the DAI controller in bytes | ||
64 | */ | 66 | */ |
65 | struct snd_dmaengine_dai_dma_data { | 67 | struct snd_dmaengine_dai_dma_data { |
66 | dma_addr_t addr; | 68 | dma_addr_t addr; |
@@ -68,6 +70,8 @@ struct snd_dmaengine_dai_dma_data { | |||
68 | u32 maxburst; | 70 | u32 maxburst; |
69 | unsigned int slave_id; | 71 | unsigned int slave_id; |
70 | void *filter_data; | 72 | void *filter_data; |
73 | const char *chan_name; | ||
74 | unsigned int fifo_size; | ||
71 | }; | 75 | }; |
72 | 76 | ||
73 | void snd_dmaengine_pcm_set_config_from_dai_data( | 77 | void snd_dmaengine_pcm_set_config_from_dai_data( |
@@ -96,6 +100,10 @@ void snd_dmaengine_pcm_set_config_from_dai_data( | |||
96 | * playback. | 100 | * playback. |
97 | */ | 101 | */ |
98 | #define SND_DMAENGINE_PCM_FLAG_HALF_DUPLEX BIT(3) | 102 | #define SND_DMAENGINE_PCM_FLAG_HALF_DUPLEX BIT(3) |
103 | /* | ||
104 | * The PCM streams have custom channel names specified. | ||
105 | */ | ||
106 | #define SND_DMAENGINE_PCM_FLAG_CUSTOM_CHANNEL_NAME BIT(4) | ||
99 | 107 | ||
100 | /** | 108 | /** |
101 | * struct snd_dmaengine_pcm_config - Configuration data for dmaengine based PCM | 109 | * struct snd_dmaengine_pcm_config - Configuration data for dmaengine based PCM |
diff --git a/include/sound/memalloc.h b/include/sound/memalloc.h index cf15b8213df7..af9983970417 100644 --- a/include/sound/memalloc.h +++ b/include/sound/memalloc.h | |||
@@ -52,6 +52,11 @@ struct snd_dma_device { | |||
52 | #else | 52 | #else |
53 | #define SNDRV_DMA_TYPE_DEV_SG SNDRV_DMA_TYPE_DEV /* no SG-buf support */ | 53 | #define SNDRV_DMA_TYPE_DEV_SG SNDRV_DMA_TYPE_DEV /* no SG-buf support */ |
54 | #endif | 54 | #endif |
55 | #ifdef CONFIG_GENERIC_ALLOCATOR | ||
56 | #define SNDRV_DMA_TYPE_DEV_IRAM 4 /* generic device iram-buffer */ | ||
57 | #else | ||
58 | #define SNDRV_DMA_TYPE_DEV_IRAM SNDRV_DMA_TYPE_DEV | ||
59 | #endif | ||
55 | 60 | ||
56 | /* | 61 | /* |
57 | * info for buffer allocation | 62 | * info for buffer allocation |
diff --git a/include/sound/rcar_snd.h b/include/sound/rcar_snd.h index fb0a312bcb81..12afab18945d 100644 --- a/include/sound/rcar_snd.h +++ b/include/sound/rcar_snd.h | |||
@@ -36,7 +36,6 @@ | |||
36 | #define RSND_SSI_CLK_PIN_SHARE (1 << 31) | 36 | #define RSND_SSI_CLK_PIN_SHARE (1 << 31) |
37 | #define RSND_SSI_CLK_FROM_ADG (1 << 30) /* clock parent is master */ | 37 | #define RSND_SSI_CLK_FROM_ADG (1 << 30) /* clock parent is master */ |
38 | #define RSND_SSI_SYNC (1 << 29) /* SSI34_sync etc */ | 38 | #define RSND_SSI_SYNC (1 << 29) /* SSI34_sync etc */ |
39 | #define RSND_SSI_DEPENDENT (1 << 28) /* SSI needs SRU/SCU */ | ||
40 | 39 | ||
41 | #define RSND_SSI_PLAY (1 << 24) | 40 | #define RSND_SSI_PLAY (1 << 24) |
42 | 41 | ||
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h index ae9a227d35d3..800c101bb096 100644 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h | |||
@@ -105,6 +105,8 @@ int snd_soc_dai_set_clkdiv(struct snd_soc_dai *dai, | |||
105 | int snd_soc_dai_set_pll(struct snd_soc_dai *dai, | 105 | int snd_soc_dai_set_pll(struct snd_soc_dai *dai, |
106 | int pll_id, int source, unsigned int freq_in, unsigned int freq_out); | 106 | int pll_id, int source, unsigned int freq_in, unsigned int freq_out); |
107 | 107 | ||
108 | int snd_soc_dai_set_bclk_ratio(struct snd_soc_dai *dai, unsigned int ratio); | ||
109 | |||
108 | /* Digital Audio interface formatting */ | 110 | /* Digital Audio interface formatting */ |
109 | int snd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt); | 111 | int snd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt); |
110 | 112 | ||
@@ -131,6 +133,7 @@ struct snd_soc_dai_ops { | |||
131 | int (*set_pll)(struct snd_soc_dai *dai, int pll_id, int source, | 133 | int (*set_pll)(struct snd_soc_dai *dai, int pll_id, int source, |
132 | unsigned int freq_in, unsigned int freq_out); | 134 | unsigned int freq_in, unsigned int freq_out); |
133 | int (*set_clkdiv)(struct snd_soc_dai *dai, int div_id, int div); | 135 | int (*set_clkdiv)(struct snd_soc_dai *dai, int div_id, int div); |
136 | int (*set_bclk_ratio)(struct snd_soc_dai *dai, unsigned int ratio); | ||
134 | 137 | ||
135 | /* | 138 | /* |
136 | * DAI format configuration | 139 | * DAI format configuration |
@@ -166,6 +169,13 @@ struct snd_soc_dai_ops { | |||
166 | struct snd_soc_dai *); | 169 | struct snd_soc_dai *); |
167 | int (*prepare)(struct snd_pcm_substream *, | 170 | int (*prepare)(struct snd_pcm_substream *, |
168 | struct snd_soc_dai *); | 171 | struct snd_soc_dai *); |
172 | /* | ||
173 | * NOTE: Commands passed to the trigger function are not necessarily | ||
174 | * compatible with the current state of the dai. For example this | ||
175 | * sequence of commands is possible: START STOP STOP. | ||
176 | * So do not unconditionally use refcounting functions in the trigger | ||
177 | * function, e.g. clk_enable/disable. | ||
178 | */ | ||
169 | int (*trigger)(struct snd_pcm_substream *, int, | 179 | int (*trigger)(struct snd_pcm_substream *, int, |
170 | struct snd_soc_dai *); | 180 | struct snd_soc_dai *); |
171 | int (*bespoke_trigger)(struct snd_pcm_substream *, int, | 181 | int (*bespoke_trigger)(struct snd_pcm_substream *, int, |
@@ -276,6 +286,13 @@ static inline void snd_soc_dai_set_dma_data(struct snd_soc_dai *dai, | |||
276 | dai->capture_dma_data = data; | 286 | dai->capture_dma_data = data; |
277 | } | 287 | } |
278 | 288 | ||
289 | static inline void snd_soc_dai_init_dma_data(struct snd_soc_dai *dai, | ||
290 | void *playback, void *capture) | ||
291 | { | ||
292 | dai->playback_dma_data = playback; | ||
293 | dai->capture_dma_data = capture; | ||
294 | } | ||
295 | |||
279 | static inline void snd_soc_dai_set_drvdata(struct snd_soc_dai *dai, | 296 | static inline void snd_soc_dai_set_drvdata(struct snd_soc_dai *dai, |
280 | void *data) | 297 | void *data) |
281 | { | 298 | { |
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h index 27a72d5d4b00..2037c45adfe6 100644 --- a/include/sound/soc-dapm.h +++ b/include/sound/soc-dapm.h | |||
@@ -286,6 +286,8 @@ struct device; | |||
286 | .info = snd_soc_info_volsw, \ | 286 | .info = snd_soc_info_volsw, \ |
287 | .get = snd_soc_dapm_get_volsw, .put = snd_soc_dapm_put_volsw, \ | 287 | .get = snd_soc_dapm_get_volsw, .put = snd_soc_dapm_put_volsw, \ |
288 | .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert, 1) } | 288 | .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert, 1) } |
289 | #define SOC_DAPM_SINGLE_VIRT(xname, max) \ | ||
290 | SOC_DAPM_SINGLE(xname, SND_SOC_NOPM, 0, max, 0) | ||
289 | #define SOC_DAPM_SINGLE_TLV(xname, reg, shift, max, invert, tlv_array) \ | 291 | #define SOC_DAPM_SINGLE_TLV(xname, reg, shift, max, invert, tlv_array) \ |
290 | { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \ | 292 | { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \ |
291 | .info = snd_soc_info_volsw, \ | 293 | .info = snd_soc_info_volsw, \ |
@@ -300,6 +302,8 @@ struct device; | |||
300 | .tlv.p = (tlv_array), \ | 302 | .tlv.p = (tlv_array), \ |
301 | .get = snd_soc_dapm_get_volsw, .put = snd_soc_dapm_put_volsw, \ | 303 | .get = snd_soc_dapm_get_volsw, .put = snd_soc_dapm_put_volsw, \ |
302 | .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert, 0) } | 304 | .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert, 0) } |
305 | #define SOC_DAPM_SINGLE_TLV_VIRT(xname, max, tlv_array) \ | ||
306 | SOC_DAPM_SINGLE(xname, SND_SOC_NOPM, 0, max, 0, tlv_array) | ||
303 | #define SOC_DAPM_ENUM(xname, xenum) \ | 307 | #define SOC_DAPM_ENUM(xname, xenum) \ |
304 | { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \ | 308 | { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \ |
305 | .info = snd_soc_info_enum_double, \ | 309 | .info = snd_soc_info_enum_double, \ |
diff --git a/include/sound/soc.h b/include/sound/soc.h index d22cb0a06feb..1f741cb24f33 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h | |||
@@ -13,6 +13,7 @@ | |||
13 | #ifndef __LINUX_SND_SOC_H | 13 | #ifndef __LINUX_SND_SOC_H |
14 | #define __LINUX_SND_SOC_H | 14 | #define __LINUX_SND_SOC_H |
15 | 15 | ||
16 | #include <linux/of.h> | ||
16 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
17 | #include <linux/types.h> | 18 | #include <linux/types.h> |
18 | #include <linux/notifier.h> | 19 | #include <linux/notifier.h> |
@@ -330,7 +331,6 @@ struct soc_enum; | |||
330 | struct snd_soc_jack; | 331 | struct snd_soc_jack; |
331 | struct snd_soc_jack_zone; | 332 | struct snd_soc_jack_zone; |
332 | struct snd_soc_jack_pin; | 333 | struct snd_soc_jack_pin; |
333 | struct snd_soc_cache_ops; | ||
334 | #include <sound/soc-dapm.h> | 334 | #include <sound/soc-dapm.h> |
335 | #include <sound/soc-dpcm.h> | 335 | #include <sound/soc-dpcm.h> |
336 | 336 | ||
@@ -348,10 +348,6 @@ enum snd_soc_control_type { | |||
348 | SND_SOC_REGMAP, | 348 | SND_SOC_REGMAP, |
349 | }; | 349 | }; |
350 | 350 | ||
351 | enum snd_soc_compress_type { | ||
352 | SND_SOC_FLAT_COMPRESSION = 1, | ||
353 | }; | ||
354 | |||
355 | enum snd_soc_pcm_subclass { | 351 | enum snd_soc_pcm_subclass { |
356 | SND_SOC_PCM_CLASS_PCM = 0, | 352 | SND_SOC_PCM_CLASS_PCM = 0, |
357 | SND_SOC_PCM_CLASS_BE = 1, | 353 | SND_SOC_PCM_CLASS_BE = 1, |
@@ -369,6 +365,7 @@ int snd_soc_codec_set_pll(struct snd_soc_codec *codec, int pll_id, int source, | |||
369 | 365 | ||
370 | int snd_soc_register_card(struct snd_soc_card *card); | 366 | int snd_soc_register_card(struct snd_soc_card *card); |
371 | int snd_soc_unregister_card(struct snd_soc_card *card); | 367 | int snd_soc_unregister_card(struct snd_soc_card *card); |
368 | int devm_snd_soc_register_card(struct device *dev, struct snd_soc_card *card); | ||
372 | int snd_soc_suspend(struct device *dev); | 369 | int snd_soc_suspend(struct device *dev); |
373 | int snd_soc_resume(struct device *dev); | 370 | int snd_soc_resume(struct device *dev); |
374 | int snd_soc_poweroff(struct device *dev); | 371 | int snd_soc_poweroff(struct device *dev); |
@@ -386,6 +383,9 @@ void snd_soc_unregister_codec(struct device *dev); | |||
386 | int snd_soc_register_component(struct device *dev, | 383 | int snd_soc_register_component(struct device *dev, |
387 | const struct snd_soc_component_driver *cmpnt_drv, | 384 | const struct snd_soc_component_driver *cmpnt_drv, |
388 | struct snd_soc_dai_driver *dai_drv, int num_dai); | 385 | struct snd_soc_dai_driver *dai_drv, int num_dai); |
386 | int devm_snd_soc_register_component(struct device *dev, | ||
387 | const struct snd_soc_component_driver *cmpnt_drv, | ||
388 | struct snd_soc_dai_driver *dai_drv, int num_dai); | ||
389 | void snd_soc_unregister_component(struct device *dev); | 389 | void snd_soc_unregister_component(struct device *dev); |
390 | int snd_soc_codec_volatile_register(struct snd_soc_codec *codec, | 390 | int snd_soc_codec_volatile_register(struct snd_soc_codec *codec, |
391 | unsigned int reg); | 391 | unsigned int reg); |
@@ -403,12 +403,6 @@ int snd_soc_cache_write(struct snd_soc_codec *codec, | |||
403 | unsigned int reg, unsigned int value); | 403 | unsigned int reg, unsigned int value); |
404 | int snd_soc_cache_read(struct snd_soc_codec *codec, | 404 | int snd_soc_cache_read(struct snd_soc_codec *codec, |
405 | unsigned int reg, unsigned int *value); | 405 | unsigned int reg, unsigned int *value); |
406 | int snd_soc_default_volatile_register(struct snd_soc_codec *codec, | ||
407 | unsigned int reg); | ||
408 | int snd_soc_default_readable_register(struct snd_soc_codec *codec, | ||
409 | unsigned int reg); | ||
410 | int snd_soc_default_writable_register(struct snd_soc_codec *codec, | ||
411 | unsigned int reg); | ||
412 | int snd_soc_platform_read(struct snd_soc_platform *platform, | 406 | int snd_soc_platform_read(struct snd_soc_platform *platform, |
413 | unsigned int reg); | 407 | unsigned int reg); |
414 | int snd_soc_platform_write(struct snd_soc_platform *platform, | 408 | int snd_soc_platform_write(struct snd_soc_platform *platform, |
@@ -542,22 +536,6 @@ int snd_soc_put_strobe(struct snd_kcontrol *kcontrol, | |||
542 | struct snd_ctl_elem_value *ucontrol); | 536 | struct snd_ctl_elem_value *ucontrol); |
543 | 537 | ||
544 | /** | 538 | /** |
545 | * struct snd_soc_reg_access - Describes whether a given register is | ||
546 | * readable, writable or volatile. | ||
547 | * | ||
548 | * @reg: the register number | ||
549 | * @read: whether this register is readable | ||
550 | * @write: whether this register is writable | ||
551 | * @vol: whether this register is volatile | ||
552 | */ | ||
553 | struct snd_soc_reg_access { | ||
554 | u16 reg; | ||
555 | u16 read; | ||
556 | u16 write; | ||
557 | u16 vol; | ||
558 | }; | ||
559 | |||
560 | /** | ||
561 | * struct snd_soc_jack_pin - Describes a pin to update based on jack detection | 539 | * struct snd_soc_jack_pin - Describes a pin to update based on jack detection |
562 | * | 540 | * |
563 | * @pin: name of the pin to update | 541 | * @pin: name of the pin to update |
@@ -657,17 +635,26 @@ struct snd_soc_compr_ops { | |||
657 | int (*trigger)(struct snd_compr_stream *); | 635 | int (*trigger)(struct snd_compr_stream *); |
658 | }; | 636 | }; |
659 | 637 | ||
660 | /* SoC cache ops */ | 638 | /* component interface */ |
661 | struct snd_soc_cache_ops { | 639 | struct snd_soc_component_driver { |
640 | const char *name; | ||
641 | |||
642 | /* DT */ | ||
643 | int (*of_xlate_dai_name)(struct snd_soc_component *component, | ||
644 | struct of_phandle_args *args, | ||
645 | const char **dai_name); | ||
646 | }; | ||
647 | |||
648 | struct snd_soc_component { | ||
662 | const char *name; | 649 | const char *name; |
663 | enum snd_soc_compress_type id; | 650 | int id; |
664 | int (*init)(struct snd_soc_codec *codec); | 651 | struct device *dev; |
665 | int (*exit)(struct snd_soc_codec *codec); | 652 | struct list_head list; |
666 | int (*read)(struct snd_soc_codec *codec, unsigned int reg, | 653 | |
667 | unsigned int *value); | 654 | struct snd_soc_dai_driver *dai_drv; |
668 | int (*write)(struct snd_soc_codec *codec, unsigned int reg, | 655 | int num_dai; |
669 | unsigned int value); | 656 | |
670 | int (*sync)(struct snd_soc_codec *codec); | 657 | const struct snd_soc_component_driver *driver; |
671 | }; | 658 | }; |
672 | 659 | ||
673 | /* SoC Audio Codec device */ | 660 | /* SoC Audio Codec device */ |
@@ -683,8 +670,6 @@ struct snd_soc_codec { | |||
683 | struct list_head list; | 670 | struct list_head list; |
684 | struct list_head card_list; | 671 | struct list_head card_list; |
685 | int num_dai; | 672 | int num_dai; |
686 | enum snd_soc_compress_type compress_type; | ||
687 | size_t reg_size; /* reg_cache_size * reg_word_size */ | ||
688 | int (*volatile_register)(struct snd_soc_codec *, unsigned int); | 673 | int (*volatile_register)(struct snd_soc_codec *, unsigned int); |
689 | int (*readable_register)(struct snd_soc_codec *, unsigned int); | 674 | int (*readable_register)(struct snd_soc_codec *, unsigned int); |
690 | int (*writable_register)(struct snd_soc_codec *, unsigned int); | 675 | int (*writable_register)(struct snd_soc_codec *, unsigned int); |
@@ -708,13 +693,13 @@ struct snd_soc_codec { | |||
708 | unsigned int (*hw_read)(struct snd_soc_codec *, unsigned int); | 693 | unsigned int (*hw_read)(struct snd_soc_codec *, unsigned int); |
709 | unsigned int (*read)(struct snd_soc_codec *, unsigned int); | 694 | unsigned int (*read)(struct snd_soc_codec *, unsigned int); |
710 | int (*write)(struct snd_soc_codec *, unsigned int, unsigned int); | 695 | int (*write)(struct snd_soc_codec *, unsigned int, unsigned int); |
711 | int (*bulk_write_raw)(struct snd_soc_codec *, unsigned int, const void *, size_t); | ||
712 | void *reg_cache; | 696 | void *reg_cache; |
713 | const void *reg_def_copy; | ||
714 | const struct snd_soc_cache_ops *cache_ops; | ||
715 | struct mutex cache_rw_mutex; | 697 | struct mutex cache_rw_mutex; |
716 | int val_bytes; | 698 | int val_bytes; |
717 | 699 | ||
700 | /* component */ | ||
701 | struct snd_soc_component component; | ||
702 | |||
718 | /* dapm */ | 703 | /* dapm */ |
719 | struct snd_soc_dapm_context dapm; | 704 | struct snd_soc_dapm_context dapm; |
720 | unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */ | 705 | unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */ |
@@ -733,6 +718,7 @@ struct snd_soc_codec_driver { | |||
733 | int (*remove)(struct snd_soc_codec *); | 718 | int (*remove)(struct snd_soc_codec *); |
734 | int (*suspend)(struct snd_soc_codec *); | 719 | int (*suspend)(struct snd_soc_codec *); |
735 | int (*resume)(struct snd_soc_codec *); | 720 | int (*resume)(struct snd_soc_codec *); |
721 | struct snd_soc_component_driver component_driver; | ||
736 | 722 | ||
737 | /* Default control and setup, added after probe() is run */ | 723 | /* Default control and setup, added after probe() is run */ |
738 | const struct snd_kcontrol_new *controls; | 724 | const struct snd_kcontrol_new *controls; |
@@ -760,9 +746,6 @@ struct snd_soc_codec_driver { | |||
760 | short reg_cache_step; | 746 | short reg_cache_step; |
761 | short reg_word_size; | 747 | short reg_word_size; |
762 | const void *reg_cache_default; | 748 | const void *reg_cache_default; |
763 | short reg_access_size; | ||
764 | const struct snd_soc_reg_access *reg_access_default; | ||
765 | enum snd_soc_compress_type compress_type; | ||
766 | 749 | ||
767 | /* codec bias level */ | 750 | /* codec bias level */ |
768 | int (*set_bias_level)(struct snd_soc_codec *, | 751 | int (*set_bias_level)(struct snd_soc_codec *, |
@@ -849,20 +832,6 @@ struct snd_soc_platform { | |||
849 | #endif | 832 | #endif |
850 | }; | 833 | }; |
851 | 834 | ||
852 | struct snd_soc_component_driver { | ||
853 | const char *name; | ||
854 | }; | ||
855 | |||
856 | struct snd_soc_component { | ||
857 | const char *name; | ||
858 | int id; | ||
859 | int num_dai; | ||
860 | struct device *dev; | ||
861 | struct list_head list; | ||
862 | |||
863 | const struct snd_soc_component_driver *driver; | ||
864 | }; | ||
865 | |||
866 | struct snd_soc_dai_link { | 835 | struct snd_soc_dai_link { |
867 | /* config - must be set by machine driver */ | 836 | /* config - must be set by machine driver */ |
868 | const char *name; /* Codec name */ | 837 | const char *name; /* Codec name */ |
@@ -944,12 +913,6 @@ struct snd_soc_codec_conf { | |||
944 | * associated per device | 913 | * associated per device |
945 | */ | 914 | */ |
946 | const char *name_prefix; | 915 | const char *name_prefix; |
947 | |||
948 | /* | ||
949 | * set this to the desired compression type if you want to | ||
950 | * override the one supplied in codec->driver->compress_type | ||
951 | */ | ||
952 | enum snd_soc_compress_type compress_type; | ||
953 | }; | 916 | }; |
954 | 917 | ||
955 | struct snd_soc_aux_dev { | 918 | struct snd_soc_aux_dev { |
@@ -1088,7 +1051,8 @@ struct snd_soc_pcm_runtime { | |||
1088 | /* mixer control */ | 1051 | /* mixer control */ |
1089 | struct soc_mixer_control { | 1052 | struct soc_mixer_control { |
1090 | int min, max, platform_max; | 1053 | int min, max, platform_max; |
1091 | unsigned int reg, rreg, shift, rshift; | 1054 | int reg, rreg; |
1055 | unsigned int shift, rshift; | ||
1092 | unsigned int invert:1; | 1056 | unsigned int invert:1; |
1093 | unsigned int autodisable:1; | 1057 | unsigned int autodisable:1; |
1094 | }; | 1058 | }; |
@@ -1121,8 +1085,6 @@ struct soc_enum { | |||
1121 | unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg); | 1085 | unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg); |
1122 | unsigned int snd_soc_write(struct snd_soc_codec *codec, | 1086 | unsigned int snd_soc_write(struct snd_soc_codec *codec, |
1123 | unsigned int reg, unsigned int val); | 1087 | unsigned int reg, unsigned int val); |
1124 | unsigned int snd_soc_bulk_write_raw(struct snd_soc_codec *codec, | ||
1125 | unsigned int reg, const void *data, size_t len); | ||
1126 | 1088 | ||
1127 | /* device driver data */ | 1089 | /* device driver data */ |
1128 | 1090 | ||
@@ -1201,6 +1163,8 @@ int snd_soc_of_parse_audio_routing(struct snd_soc_card *card, | |||
1201 | const char *propname); | 1163 | const char *propname); |
1202 | unsigned int snd_soc_of_parse_daifmt(struct device_node *np, | 1164 | unsigned int snd_soc_of_parse_daifmt(struct device_node *np, |
1203 | const char *prefix); | 1165 | const char *prefix); |
1166 | int snd_soc_of_get_dai_name(struct device_node *of_node, | ||
1167 | const char **dai_name); | ||
1204 | 1168 | ||
1205 | #include <sound/soc-dai.h> | 1169 | #include <sound/soc-dai.h> |
1206 | 1170 | ||
diff --git a/include/trace/events/asoc.h b/include/trace/events/asoc.h index 5fc2dcdd21cd..03996b2bb04f 100644 --- a/include/trace/events/asoc.h +++ b/include/trace/events/asoc.h | |||
@@ -14,6 +14,7 @@ struct snd_soc_codec; | |||
14 | struct snd_soc_platform; | 14 | struct snd_soc_platform; |
15 | struct snd_soc_card; | 15 | struct snd_soc_card; |
16 | struct snd_soc_dapm_widget; | 16 | struct snd_soc_dapm_widget; |
17 | struct snd_soc_dapm_path; | ||
17 | 18 | ||
18 | /* | 19 | /* |
19 | * Log register events | 20 | * Log register events |
diff --git a/include/uapi/sound/Kbuild b/include/uapi/sound/Kbuild index 0f7d279ebde3..a7f27704f980 100644 --- a/include/uapi/sound/Kbuild +++ b/include/uapi/sound/Kbuild | |||
@@ -5,6 +5,7 @@ header-y += asound_fm.h | |||
5 | header-y += compress_offload.h | 5 | header-y += compress_offload.h |
6 | header-y += compress_params.h | 6 | header-y += compress_params.h |
7 | header-y += emu10k1.h | 7 | header-y += emu10k1.h |
8 | header-y += firewire.h | ||
8 | header-y += hdsp.h | 9 | header-y += hdsp.h |
9 | header-y += hdspm.h | 10 | header-y += hdspm.h |
10 | header-y += sb16_csp.h | 11 | header-y += sb16_csp.h |
diff --git a/include/uapi/sound/asound.h b/include/uapi/sound/asound.h index 041203f20f6d..9fc6219d3848 100644 --- a/include/uapi/sound/asound.h +++ b/include/uapi/sound/asound.h | |||
@@ -93,9 +93,10 @@ enum { | |||
93 | SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */ | 93 | SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */ |
94 | SNDRV_HWDEP_IFACE_HDA, /* HD-audio */ | 94 | SNDRV_HWDEP_IFACE_HDA, /* HD-audio */ |
95 | SNDRV_HWDEP_IFACE_USB_STREAM, /* direct access to usb stream */ | 95 | SNDRV_HWDEP_IFACE_USB_STREAM, /* direct access to usb stream */ |
96 | SNDRV_HWDEP_IFACE_FW_DICE, /* TC DICE FireWire device */ | ||
96 | 97 | ||
97 | /* Don't forget to change the following: */ | 98 | /* Don't forget to change the following: */ |
98 | SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_USB_STREAM | 99 | SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_DICE |
99 | }; | 100 | }; |
100 | 101 | ||
101 | struct snd_hwdep_info { | 102 | struct snd_hwdep_info { |
diff --git a/include/uapi/sound/firewire.h b/include/uapi/sound/firewire.h new file mode 100644 index 000000000000..59f5961302bf --- /dev/null +++ b/include/uapi/sound/firewire.h | |||
@@ -0,0 +1,51 @@ | |||
1 | #ifndef _UAPI_SOUND_FIREWIRE_H_INCLUDED | ||
2 | #define _UAPI_SOUND_FIREWIRE_H_INCLUDED | ||
3 | |||
4 | #include <linux/ioctl.h> | ||
5 | |||
6 | /* events can be read() from the hwdep device */ | ||
7 | |||
8 | #define SNDRV_FIREWIRE_EVENT_LOCK_STATUS 0x000010cc | ||
9 | #define SNDRV_FIREWIRE_EVENT_DICE_NOTIFICATION 0xd1ce004e | ||
10 | |||
11 | struct snd_firewire_event_common { | ||
12 | unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */ | ||
13 | }; | ||
14 | |||
15 | struct snd_firewire_event_lock_status { | ||
16 | unsigned int type; | ||
17 | unsigned int status; /* 0/1 = unlocked/locked */ | ||
18 | }; | ||
19 | |||
20 | struct snd_firewire_event_dice_notification { | ||
21 | unsigned int type; | ||
22 | unsigned int notification; /* DICE-specific bits */ | ||
23 | }; | ||
24 | |||
25 | union snd_firewire_event { | ||
26 | struct snd_firewire_event_common common; | ||
27 | struct snd_firewire_event_lock_status lock_status; | ||
28 | struct snd_firewire_event_dice_notification dice_notification; | ||
29 | }; | ||
30 | |||
31 | |||
32 | #define SNDRV_FIREWIRE_IOCTL_GET_INFO _IOR('H', 0xf8, struct snd_firewire_get_info) | ||
33 | #define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9) | ||
34 | #define SNDRV_FIREWIRE_IOCTL_UNLOCK _IO('H', 0xfa) | ||
35 | |||
36 | #define SNDRV_FIREWIRE_TYPE_DICE 1 | ||
37 | /* Fireworks, AV/C, RME, MOTU, ... */ | ||
38 | |||
39 | struct snd_firewire_get_info { | ||
40 | unsigned int type; /* SNDRV_FIREWIRE_TYPE_xxx */ | ||
41 | unsigned int card; /* same as fw_cdev_get_info.card */ | ||
42 | unsigned char guid[8]; | ||
43 | char device_name[16]; /* device node in /dev */ | ||
44 | }; | ||
45 | |||
46 | /* | ||
47 | * SNDRV_FIREWIRE_IOCTL_LOCK prevents the driver from streaming. | ||
48 | * Returns -EBUSY if the driver is already streaming. | ||
49 | */ | ||
50 | |||
51 | #endif /* _UAPI_SOUND_FIREWIRE_H_INCLUDED */ | ||