diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-03-22 13:23:46 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-03-22 13:23:46 -0400 |
commit | 74511020dde10252f8b8e648690d99dba721de14 (patch) | |
tree | 04fc22bc7dd5d5b8d9294b2e57985b093858bd84 /sound | |
parent | 69266866a5790080d7fe80094b28d670ff8aa765 (diff) | |
parent | 3cc4e53f86dab635166929bfa47cc68d59b28c26 (diff) |
Merge branch 'for-2.6.34' into for-2.6.35
Diffstat (limited to 'sound')
-rw-r--r-- | sound/arm/pxa2xx-ac97-lib.c | 68 | ||||
-rw-r--r-- | sound/arm/pxa2xx-pcm-lib.c | 1 | ||||
-rw-r--r-- | sound/isa/opti9xx/opti92x-ad1848.c | 3 | ||||
-rw-r--r-- | sound/oss/sequencer.c | 2 | ||||
-rw-r--r-- | sound/pci/hda/hda_codec.c | 4 | ||||
-rw-r--r-- | sound/pci/hda/hda_intel.c | 10 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 14 | ||||
-rw-r--r-- | sound/pci/rme9652/hdspm.c | 2 | ||||
-rw-r--r-- | sound/soc/codecs/wm8990.c | 2 | ||||
-rw-r--r-- | sound/soc/imx/Kconfig | 2 | ||||
-rw-r--r-- | sound/soc/pxa/pxa-ssp.c | 93 | ||||
-rw-r--r-- | sound/soc/s3c24xx/s3c64xx-i2s.c | 4 |
12 files changed, 100 insertions, 105 deletions
diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c index 6fdca97186e7..88eec3847df2 100644 --- a/sound/arm/pxa2xx-ac97-lib.c +++ b/sound/arm/pxa2xx-ac97-lib.c | |||
@@ -22,7 +22,6 @@ | |||
22 | 22 | ||
23 | #include <asm/irq.h> | 23 | #include <asm/irq.h> |
24 | #include <mach/regs-ac97.h> | 24 | #include <mach/regs-ac97.h> |
25 | #include <mach/pxa2xx-gpio.h> | ||
26 | #include <mach/audio.h> | 25 | #include <mach/audio.h> |
27 | 26 | ||
28 | static DEFINE_MUTEX(car_mutex); | 27 | static DEFINE_MUTEX(car_mutex); |
@@ -32,6 +31,8 @@ static struct clk *ac97_clk; | |||
32 | static struct clk *ac97conf_clk; | 31 | static struct clk *ac97conf_clk; |
33 | static int reset_gpio; | 32 | static int reset_gpio; |
34 | 33 | ||
34 | extern void pxa27x_assert_ac97reset(int reset_gpio, int on); | ||
35 | |||
35 | /* | 36 | /* |
36 | * Beware PXA27x bugs: | 37 | * Beware PXA27x bugs: |
37 | * | 38 | * |
@@ -42,45 +43,6 @@ static int reset_gpio; | |||
42 | * 1 jiffy timeout if interrupt never comes). | 43 | * 1 jiffy timeout if interrupt never comes). |
43 | */ | 44 | */ |
44 | 45 | ||
45 | enum { | ||
46 | RESETGPIO_FORCE_HIGH, | ||
47 | RESETGPIO_FORCE_LOW, | ||
48 | RESETGPIO_NORMAL_ALTFUNC | ||
49 | }; | ||
50 | |||
51 | /** | ||
52 | * set_resetgpio_mode - computes and sets the AC97_RESET gpio mode on PXA | ||
53 | * @mode: chosen action | ||
54 | * | ||
55 | * As the PXA27x CPUs suffer from a AC97 bug, a manual control of the reset line | ||
56 | * must be done to insure proper work of AC97 reset line. This function | ||
57 | * computes the correct gpio_mode for further use by reset functions, and | ||
58 | * applied the change through pxa_gpio_mode. | ||
59 | */ | ||
60 | static void set_resetgpio_mode(int resetgpio_action) | ||
61 | { | ||
62 | int mode = 0; | ||
63 | |||
64 | if (reset_gpio) | ||
65 | switch (resetgpio_action) { | ||
66 | case RESETGPIO_NORMAL_ALTFUNC: | ||
67 | if (reset_gpio == 113) | ||
68 | mode = 113 | GPIO_ALT_FN_2_OUT; | ||
69 | if (reset_gpio == 95) | ||
70 | mode = 95 | GPIO_ALT_FN_1_OUT; | ||
71 | break; | ||
72 | case RESETGPIO_FORCE_LOW: | ||
73 | mode = reset_gpio | GPIO_OUT | GPIO_DFLT_LOW; | ||
74 | break; | ||
75 | case RESETGPIO_FORCE_HIGH: | ||
76 | mode = reset_gpio | GPIO_OUT | GPIO_DFLT_HIGH; | ||
77 | break; | ||
78 | }; | ||
79 | |||
80 | if (mode) | ||
81 | pxa_gpio_mode(mode); | ||
82 | } | ||
83 | |||
84 | unsigned short pxa2xx_ac97_read(struct snd_ac97 *ac97, unsigned short reg) | 46 | unsigned short pxa2xx_ac97_read(struct snd_ac97 *ac97, unsigned short reg) |
85 | { | 47 | { |
86 | unsigned short val = -1; | 48 | unsigned short val = -1; |
@@ -174,12 +136,11 @@ static inline void pxa_ac97_warm_pxa27x(void) | |||
174 | { | 136 | { |
175 | gsr_bits = 0; | 137 | gsr_bits = 0; |
176 | 138 | ||
177 | /* warm reset broken on Bulverde, | 139 | /* warm reset broken on Bulverde, so manually keep AC97 reset high */ |
178 | so manually keep AC97 reset high */ | 140 | pxa27x_assert_ac97reset(reset_gpio, 1); |
179 | set_resetgpio_mode(RESETGPIO_FORCE_HIGH); | ||
180 | udelay(10); | 141 | udelay(10); |
181 | GCR |= GCR_WARM_RST; | 142 | GCR |= GCR_WARM_RST; |
182 | set_resetgpio_mode(RESETGPIO_NORMAL_ALTFUNC); | 143 | pxa27x_assert_ac97reset(reset_gpio, 0); |
183 | udelay(500); | 144 | udelay(500); |
184 | } | 145 | } |
185 | 146 | ||
@@ -345,16 +306,6 @@ EXPORT_SYMBOL_GPL(pxa2xx_ac97_hw_suspend); | |||
345 | 306 | ||
346 | int pxa2xx_ac97_hw_resume(void) | 307 | int pxa2xx_ac97_hw_resume(void) |
347 | { | 308 | { |
348 | if (cpu_is_pxa25x() || cpu_is_pxa27x()) { | ||
349 | pxa_gpio_mode(GPIO31_SYNC_AC97_MD); | ||
350 | pxa_gpio_mode(GPIO30_SDATA_OUT_AC97_MD); | ||
351 | pxa_gpio_mode(GPIO28_BITCLK_AC97_MD); | ||
352 | pxa_gpio_mode(GPIO29_SDATA_IN_AC97_MD); | ||
353 | } | ||
354 | if (cpu_is_pxa27x()) { | ||
355 | /* Use GPIO 113 or 95 as AC97 Reset on Bulverde */ | ||
356 | set_resetgpio_mode(RESETGPIO_NORMAL_ALTFUNC); | ||
357 | } | ||
358 | clk_enable(ac97_clk); | 309 | clk_enable(ac97_clk); |
359 | return 0; | 310 | return 0; |
360 | } | 311 | } |
@@ -386,16 +337,9 @@ int __devinit pxa2xx_ac97_hw_probe(struct platform_device *dev) | |||
386 | reset_gpio = 113; | 337 | reset_gpio = 113; |
387 | } | 338 | } |
388 | 339 | ||
389 | if (cpu_is_pxa25x() || cpu_is_pxa27x()) { | ||
390 | pxa_gpio_mode(GPIO31_SYNC_AC97_MD); | ||
391 | pxa_gpio_mode(GPIO30_SDATA_OUT_AC97_MD); | ||
392 | pxa_gpio_mode(GPIO28_BITCLK_AC97_MD); | ||
393 | pxa_gpio_mode(GPIO29_SDATA_IN_AC97_MD); | ||
394 | } | ||
395 | |||
396 | if (cpu_is_pxa27x()) { | 340 | if (cpu_is_pxa27x()) { |
397 | /* Use GPIO 113 as AC97 Reset on Bulverde */ | 341 | /* Use GPIO 113 as AC97 Reset on Bulverde */ |
398 | set_resetgpio_mode(RESETGPIO_NORMAL_ALTFUNC); | 342 | pxa27x_assert_ac97reset(reset_gpio, 0); |
399 | ac97conf_clk = clk_get(&dev->dev, "AC97CONFCLK"); | 343 | ac97conf_clk = clk_get(&dev->dev, "AC97CONFCLK"); |
400 | if (IS_ERR(ac97conf_clk)) { | 344 | if (IS_ERR(ac97conf_clk)) { |
401 | ret = PTR_ERR(ac97conf_clk); | 345 | ret = PTR_ERR(ac97conf_clk); |
diff --git a/sound/arm/pxa2xx-pcm-lib.c b/sound/arm/pxa2xx-pcm-lib.c index 743ac6a29065..fd51fa8b06a1 100644 --- a/sound/arm/pxa2xx-pcm-lib.c +++ b/sound/arm/pxa2xx-pcm-lib.c | |||
@@ -205,6 +205,7 @@ int __pxa2xx_pcm_open(struct snd_pcm_substream *substream) | |||
205 | if (!rtd->dma_desc_array) | 205 | if (!rtd->dma_desc_array) |
206 | goto err1; | 206 | goto err1; |
207 | 207 | ||
208 | rtd->dma_ch = -1; | ||
208 | runtime->private_data = rtd; | 209 | runtime->private_data = rtd; |
209 | return 0; | 210 | return 0; |
210 | 211 | ||
diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c index becd90d7536d..4d2d0405bdc7 100644 --- a/sound/isa/opti9xx/opti92x-ad1848.c +++ b/sound/isa/opti9xx/opti92x-ad1848.c | |||
@@ -217,8 +217,9 @@ static int __devinit snd_opti9xx_init(struct snd_opti9xx *chip, | |||
217 | if (isapnp && chip->mc_base) | 217 | if (isapnp && chip->mc_base) |
218 | /* PnP resource gives the least 10 bits */ | 218 | /* PnP resource gives the least 10 bits */ |
219 | chip->mc_base |= 0xc00; | 219 | chip->mc_base |= 0xc00; |
220 | else | ||
220 | #endif /* CONFIG_PNP */ | 221 | #endif /* CONFIG_PNP */ |
221 | else { | 222 | { |
222 | chip->mc_base = 0xf8c; | 223 | chip->mc_base = 0xf8c; |
223 | chip->mc_base_size = opti9xx_mc_size[hardware]; | 224 | chip->mc_base_size = opti9xx_mc_size[hardware]; |
224 | } | 225 | } |
diff --git a/sound/oss/sequencer.c b/sound/oss/sequencer.c index c79874696bec..e85789e53816 100644 --- a/sound/oss/sequencer.c +++ b/sound/oss/sequencer.c | |||
@@ -1631,8 +1631,6 @@ unsigned long compute_finetune(unsigned long base_freq, int bend, int range, | |||
1631 | } | 1631 | } |
1632 | 1632 | ||
1633 | semitones = bend / 100; | 1633 | semitones = bend / 100; |
1634 | if (semitones > 99) | ||
1635 | semitones = 99; | ||
1636 | cents = bend % 100; | 1634 | cents = bend % 100; |
1637 | 1635 | ||
1638 | amount = (int) (semitone_tuning[semitones] * multiplier * cent_tuning[cents]) / 10000; | 1636 | amount = (int) (semitone_tuning[semitones] * multiplier * cent_tuning[cents]) / 10000; |
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 5bd7cf45f3a5..0e76ac2b2ace 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -1806,6 +1806,8 @@ int snd_hda_add_nid(struct hda_codec *codec, struct snd_kcontrol *kctl, | |||
1806 | item->nid = nid; | 1806 | item->nid = nid; |
1807 | return 0; | 1807 | return 0; |
1808 | } | 1808 | } |
1809 | printk(KERN_ERR "hda-codec: no NID for mapping control %s:%d:%d\n", | ||
1810 | kctl->id.name, kctl->id.index, index); | ||
1809 | return -EINVAL; | 1811 | return -EINVAL; |
1810 | } | 1812 | } |
1811 | EXPORT_SYMBOL_HDA(snd_hda_add_nid); | 1813 | EXPORT_SYMBOL_HDA(snd_hda_add_nid); |
@@ -2884,7 +2886,7 @@ int /*__devinit*/ snd_hda_build_controls(struct hda_bus *bus) | |||
2884 | list_for_each_entry(codec, &bus->codec_list, list) { | 2886 | list_for_each_entry(codec, &bus->codec_list, list) { |
2885 | int err = snd_hda_codec_build_controls(codec); | 2887 | int err = snd_hda_codec_build_controls(codec); |
2886 | if (err < 0) { | 2888 | if (err < 0) { |
2887 | printk(KERN_ERR "hda_codec: cannot build controls" | 2889 | printk(KERN_ERR "hda_codec: cannot build controls " |
2888 | "for #%d (error %d)\n", codec->addr, err); | 2890 | "for #%d (error %d)\n", codec->addr, err); |
2889 | err = snd_hda_codec_reset(codec); | 2891 | err = snd_hda_codec_reset(codec); |
2890 | if (err < 0) { | 2892 | if (err < 0) { |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 43b7cfb7cffd..8b2915631cc3 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -2271,6 +2271,7 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = { | |||
2271 | SND_PCI_QUIRK(0x1043, 0x813d, "ASUS P5AD2", POS_FIX_LPIB), | 2271 | SND_PCI_QUIRK(0x1043, 0x813d, "ASUS P5AD2", POS_FIX_LPIB), |
2272 | SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB), | 2272 | SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB), |
2273 | SND_PCI_QUIRK(0x1565, 0x820f, "Biostar Microtech", POS_FIX_LPIB), | 2273 | SND_PCI_QUIRK(0x1565, 0x820f, "Biostar Microtech", POS_FIX_LPIB), |
2274 | SND_PCI_QUIRK(0x8086, 0xd601, "eMachines T5212", POS_FIX_LPIB), | ||
2274 | {} | 2275 | {} |
2275 | }; | 2276 | }; |
2276 | 2277 | ||
@@ -2358,6 +2359,7 @@ static void __devinit check_probe_mask(struct azx *chip, int dev) | |||
2358 | static struct snd_pci_quirk msi_black_list[] __devinitdata = { | 2359 | static struct snd_pci_quirk msi_black_list[] __devinitdata = { |
2359 | SND_PCI_QUIRK(0x1043, 0x81f2, "ASUS", 0), /* Athlon64 X2 + nvidia */ | 2360 | SND_PCI_QUIRK(0x1043, 0x81f2, "ASUS", 0), /* Athlon64 X2 + nvidia */ |
2360 | SND_PCI_QUIRK(0x1043, 0x81f6, "ASUS", 0), /* nvidia */ | 2361 | SND_PCI_QUIRK(0x1043, 0x81f6, "ASUS", 0), /* nvidia */ |
2362 | SND_PCI_QUIRK(0x1043, 0x822d, "ASUS", 0), /* Athlon64 X2 + nvidia MCP55 */ | ||
2361 | SND_PCI_QUIRK(0x1849, 0x0888, "ASRock", 0), /* Athlon64 X2 + nvidia */ | 2363 | SND_PCI_QUIRK(0x1849, 0x0888, "ASRock", 0), /* Athlon64 X2 + nvidia */ |
2362 | {} | 2364 | {} |
2363 | }; | 2365 | }; |
@@ -2377,6 +2379,13 @@ static void __devinit check_msi(struct azx *chip) | |||
2377 | "hda_intel: msi for device %04x:%04x set to %d\n", | 2379 | "hda_intel: msi for device %04x:%04x set to %d\n", |
2378 | q->subvendor, q->subdevice, q->value); | 2380 | q->subvendor, q->subdevice, q->value); |
2379 | chip->msi = q->value; | 2381 | chip->msi = q->value; |
2382 | return; | ||
2383 | } | ||
2384 | |||
2385 | /* NVidia chipsets seem to cause troubles with MSI */ | ||
2386 | if (chip->driver_type == AZX_DRIVER_NVIDIA) { | ||
2387 | printk(KERN_INFO "hda_intel: Disable MSI for Nvidia chipset\n"); | ||
2388 | chip->msi = 0; | ||
2380 | } | 2389 | } |
2381 | } | 2390 | } |
2382 | 2391 | ||
@@ -2705,6 +2714,7 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = { | |||
2705 | { PCI_DEVICE(0x8086, 0x3a6e), .driver_data = AZX_DRIVER_ICH }, | 2714 | { PCI_DEVICE(0x8086, 0x3a6e), .driver_data = AZX_DRIVER_ICH }, |
2706 | /* PCH */ | 2715 | /* PCH */ |
2707 | { PCI_DEVICE(0x8086, 0x3b56), .driver_data = AZX_DRIVER_ICH }, | 2716 | { PCI_DEVICE(0x8086, 0x3b56), .driver_data = AZX_DRIVER_ICH }, |
2717 | { PCI_DEVICE(0x8086, 0x3b57), .driver_data = AZX_DRIVER_ICH }, | ||
2708 | /* CPT */ | 2718 | /* CPT */ |
2709 | { PCI_DEVICE(0x8086, 0x1c20), .driver_data = AZX_DRIVER_PCH }, | 2719 | { PCI_DEVICE(0x8086, 0x1c20), .driver_data = AZX_DRIVER_PCH }, |
2710 | /* SCH */ | 2720 | /* SCH */ |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 5d2fbb87b871..4ec57633af88 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -411,6 +411,8 @@ static int alc_mux_enum_info(struct snd_kcontrol *kcontrol, | |||
411 | unsigned int mux_idx = snd_ctl_get_ioffidx(kcontrol, &uinfo->id); | 411 | unsigned int mux_idx = snd_ctl_get_ioffidx(kcontrol, &uinfo->id); |
412 | if (mux_idx >= spec->num_mux_defs) | 412 | if (mux_idx >= spec->num_mux_defs) |
413 | mux_idx = 0; | 413 | mux_idx = 0; |
414 | if (!spec->input_mux[mux_idx].num_items && mux_idx > 0) | ||
415 | mux_idx = 0; | ||
414 | return snd_hda_input_mux_info(&spec->input_mux[mux_idx], uinfo); | 416 | return snd_hda_input_mux_info(&spec->input_mux[mux_idx], uinfo); |
415 | } | 417 | } |
416 | 418 | ||
@@ -439,6 +441,8 @@ static int alc_mux_enum_put(struct snd_kcontrol *kcontrol, | |||
439 | 441 | ||
440 | mux_idx = adc_idx >= spec->num_mux_defs ? 0 : adc_idx; | 442 | mux_idx = adc_idx >= spec->num_mux_defs ? 0 : adc_idx; |
441 | imux = &spec->input_mux[mux_idx]; | 443 | imux = &spec->input_mux[mux_idx]; |
444 | if (!imux->num_items && mux_idx > 0) | ||
445 | imux = &spec->input_mux[0]; | ||
442 | 446 | ||
443 | type = get_wcaps_type(get_wcaps(codec, nid)); | 447 | type = get_wcaps_type(get_wcaps(codec, nid)); |
444 | if (type == AC_WID_AUD_MIX) { | 448 | if (type == AC_WID_AUD_MIX) { |
@@ -6473,7 +6477,7 @@ static struct alc_config_preset alc260_presets[] = { | |||
6473 | .num_dacs = ARRAY_SIZE(alc260_dac_nids), | 6477 | .num_dacs = ARRAY_SIZE(alc260_dac_nids), |
6474 | .dac_nids = alc260_dac_nids, | 6478 | .dac_nids = alc260_dac_nids, |
6475 | .num_adc_nids = ARRAY_SIZE(alc260_dual_adc_nids), | 6479 | .num_adc_nids = ARRAY_SIZE(alc260_dual_adc_nids), |
6476 | .adc_nids = alc260_adc_nids, | 6480 | .adc_nids = alc260_dual_adc_nids, |
6477 | .num_channel_mode = ARRAY_SIZE(alc260_modes), | 6481 | .num_channel_mode = ARRAY_SIZE(alc260_modes), |
6478 | .channel_mode = alc260_modes, | 6482 | .channel_mode = alc260_modes, |
6479 | .input_mux = &alc260_capture_source, | 6483 | .input_mux = &alc260_capture_source, |
@@ -9191,6 +9195,7 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = { | |||
9191 | SND_PCI_QUIRK(0x1462, 0x4314, "MSI", ALC883_TARGA_DIG), | 9195 | SND_PCI_QUIRK(0x1462, 0x4314, "MSI", ALC883_TARGA_DIG), |
9192 | SND_PCI_QUIRK(0x1462, 0x4319, "MSI", ALC883_TARGA_DIG), | 9196 | SND_PCI_QUIRK(0x1462, 0x4319, "MSI", ALC883_TARGA_DIG), |
9193 | SND_PCI_QUIRK(0x1462, 0x4324, "MSI", ALC883_TARGA_DIG), | 9197 | SND_PCI_QUIRK(0x1462, 0x4324, "MSI", ALC883_TARGA_DIG), |
9198 | SND_PCI_QUIRK(0x1462, 0x4570, "MSI Wind Top AE2220", ALC883_TARGA_DIG), | ||
9194 | SND_PCI_QUIRK(0x1462, 0x6510, "MSI GX620", ALC883_TARGA_8ch_DIG), | 9199 | SND_PCI_QUIRK(0x1462, 0x6510, "MSI GX620", ALC883_TARGA_8ch_DIG), |
9195 | SND_PCI_QUIRK(0x1462, 0x6668, "MSI", ALC883_6ST_DIG), | 9200 | SND_PCI_QUIRK(0x1462, 0x6668, "MSI", ALC883_6ST_DIG), |
9196 | SND_PCI_QUIRK(0x1462, 0x7187, "MSI", ALC883_6ST_DIG), | 9201 | SND_PCI_QUIRK(0x1462, 0x7187, "MSI", ALC883_6ST_DIG), |
@@ -9200,6 +9205,7 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = { | |||
9200 | SND_PCI_QUIRK(0x1462, 0x7280, "MSI", ALC883_6ST_DIG), | 9205 | SND_PCI_QUIRK(0x1462, 0x7280, "MSI", ALC883_6ST_DIG), |
9201 | SND_PCI_QUIRK(0x1462, 0x7327, "MSI", ALC883_6ST_DIG), | 9206 | SND_PCI_QUIRK(0x1462, 0x7327, "MSI", ALC883_6ST_DIG), |
9202 | SND_PCI_QUIRK(0x1462, 0x7350, "MSI", ALC883_6ST_DIG), | 9207 | SND_PCI_QUIRK(0x1462, 0x7350, "MSI", ALC883_6ST_DIG), |
9208 | SND_PCI_QUIRK(0x1462, 0x7437, "MSI NetOn AP1900", ALC883_TARGA_DIG), | ||
9203 | SND_PCI_QUIRK(0x1462, 0xa422, "MSI", ALC883_TARGA_2ch_DIG), | 9209 | SND_PCI_QUIRK(0x1462, 0xa422, "MSI", ALC883_TARGA_2ch_DIG), |
9204 | SND_PCI_QUIRK(0x1462, 0xaa08, "MSI", ALC883_TARGA_2ch_DIG), | 9210 | SND_PCI_QUIRK(0x1462, 0xaa08, "MSI", ALC883_TARGA_2ch_DIG), |
9205 | 9211 | ||
@@ -9231,7 +9237,7 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = { | |||
9231 | SND_PCI_QUIRK(0x8086, 0x0022, "DX58SO", ALC889_INTEL), | 9237 | SND_PCI_QUIRK(0x8086, 0x0022, "DX58SO", ALC889_INTEL), |
9232 | SND_PCI_QUIRK(0x8086, 0x0021, "Intel IbexPeak", ALC889A_INTEL), | 9238 | SND_PCI_QUIRK(0x8086, 0x0021, "Intel IbexPeak", ALC889A_INTEL), |
9233 | SND_PCI_QUIRK(0x8086, 0x3b56, "Intel IbexPeak", ALC889A_INTEL), | 9239 | SND_PCI_QUIRK(0x8086, 0x3b56, "Intel IbexPeak", ALC889A_INTEL), |
9234 | SND_PCI_QUIRK(0x8086, 0xd601, "D102GGC", ALC883_3ST_6ch), | 9240 | SND_PCI_QUIRK(0x8086, 0xd601, "D102GGC", ALC882_6ST_DIG), |
9235 | 9241 | ||
9236 | {} | 9242 | {} |
9237 | }; | 9243 | }; |
@@ -10105,6 +10111,8 @@ static void alc882_auto_init_input_src(struct hda_codec *codec) | |||
10105 | continue; | 10111 | continue; |
10106 | mux_idx = c >= spec->num_mux_defs ? 0 : c; | 10112 | mux_idx = c >= spec->num_mux_defs ? 0 : c; |
10107 | imux = &spec->input_mux[mux_idx]; | 10113 | imux = &spec->input_mux[mux_idx]; |
10114 | if (!imux->num_items && mux_idx > 0) | ||
10115 | imux = &spec->input_mux[0]; | ||
10108 | for (idx = 0; idx < conns; idx++) { | 10116 | for (idx = 0; idx < conns; idx++) { |
10109 | /* if the current connection is the selected one, | 10117 | /* if the current connection is the selected one, |
10110 | * unmute it as default - otherwise mute it | 10118 | * unmute it as default - otherwise mute it |
@@ -13201,7 +13209,7 @@ static int patch_alc268(struct hda_codec *codec) | |||
13201 | 13209 | ||
13202 | if (board_config < 0 || board_config >= ALC268_MODEL_LAST) | 13210 | if (board_config < 0 || board_config >= ALC268_MODEL_LAST) |
13203 | board_config = snd_hda_check_board_codec_sid_config(codec, | 13211 | board_config = snd_hda_check_board_codec_sid_config(codec, |
13204 | ALC882_MODEL_LAST, alc268_models, alc268_ssid_cfg_tbl); | 13212 | ALC268_MODEL_LAST, alc268_models, alc268_ssid_cfg_tbl); |
13205 | 13213 | ||
13206 | if (board_config < 0 || board_config >= ALC268_MODEL_LAST) { | 13214 | if (board_config < 0 || board_config >= ALC268_MODEL_LAST) { |
13207 | printk(KERN_INFO "hda_codec: %s: BIOS auto-probing.\n", | 13215 | printk(KERN_INFO "hda_codec: %s: BIOS auto-probing.\n", |
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index 3d72c1effeef..547b713d7204 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c | |||
@@ -2479,7 +2479,7 @@ static int snd_hdspm_put_qs_wire(struct snd_kcontrol *kcontrol, | |||
2479 | on MADICARD | 2479 | on MADICARD |
2480 | - playback mixer matrix: [channelout+64] [output] [value] | 2480 | - playback mixer matrix: [channelout+64] [output] [value] |
2481 | - input(thru) mixer matrix: [channelin] [output] [value] | 2481 | - input(thru) mixer matrix: [channelin] [output] [value] |
2482 | (better do 2 kontrols for seperation ?) | 2482 | (better do 2 kontrols for separation ?) |
2483 | */ | 2483 | */ |
2484 | 2484 | ||
2485 | #define HDSPM_MIXER(xname, xindex) \ | 2485 | #define HDSPM_MIXER(xname, xindex) \ |
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c index a54dc77b7f34..056b787b6ee0 100644 --- a/sound/soc/codecs/wm8990.c +++ b/sound/soc/codecs/wm8990.c | |||
@@ -990,7 +990,7 @@ static int wm8990_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id, | |||
990 | reg = snd_soc_read(codec, WM8990_CLOCKING_2); | 990 | reg = snd_soc_read(codec, WM8990_CLOCKING_2); |
991 | snd_soc_write(codec, WM8990_CLOCKING_2, reg | WM8990_SYSCLK_SRC); | 991 | snd_soc_write(codec, WM8990_CLOCKING_2, reg | WM8990_SYSCLK_SRC); |
992 | 992 | ||
993 | /* set up N , fractional mode and pre-divisor if neccessary */ | 993 | /* set up N , fractional mode and pre-divisor if necessary */ |
994 | snd_soc_write(codec, WM8990_PLL1, pll_div.n | WM8990_SDM | | 994 | snd_soc_write(codec, WM8990_PLL1, pll_div.n | WM8990_SDM | |
995 | (pll_div.div2?WM8990_PRESCALE:0)); | 995 | (pll_div.div2?WM8990_PRESCALE:0)); |
996 | snd_soc_write(codec, WM8990_PLL2, (u8)(pll_div.k>>8)); | 996 | snd_soc_write(codec, WM8990_PLL2, (u8)(pll_div.k>>8)); |
diff --git a/sound/soc/imx/Kconfig b/sound/soc/imx/Kconfig index c045da8ff61c..eba9b9d257a1 100644 --- a/sound/soc/imx/Kconfig +++ b/sound/soc/imx/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config SND_IMX_SOC | 1 | config SND_IMX_SOC |
2 | tristate "SoC Audio for Freescale i.MX CPUs" | 2 | tristate "SoC Audio for Freescale i.MX CPUs" |
3 | depends on ARCH_MXC && BROKEN | 3 | depends on ARCH_MXC |
4 | select SND_PCM | 4 | select SND_PCM |
5 | select FIQ | 5 | select FIQ |
6 | select SND_SOC_AC97_BUS | 6 | select SND_SOC_AC97_BUS |
diff --git a/sound/soc/pxa/pxa-ssp.c b/sound/soc/pxa/pxa-ssp.c index 5d65a00e4bc0..6959c5199160 100644 --- a/sound/soc/pxa/pxa-ssp.c +++ b/sound/soc/pxa/pxa-ssp.c | |||
@@ -42,11 +42,14 @@ | |||
42 | * SSP audio private data | 42 | * SSP audio private data |
43 | */ | 43 | */ |
44 | struct ssp_priv { | 44 | struct ssp_priv { |
45 | struct ssp_dev dev; | 45 | struct ssp_device *ssp; |
46 | unsigned int sysclk; | 46 | unsigned int sysclk; |
47 | int dai_fmt; | 47 | int dai_fmt; |
48 | #ifdef CONFIG_PM | 48 | #ifdef CONFIG_PM |
49 | struct ssp_state state; | 49 | uint32_t cr0; |
50 | uint32_t cr1; | ||
51 | uint32_t to; | ||
52 | uint32_t psp; | ||
50 | #endif | 53 | #endif |
51 | }; | 54 | }; |
52 | 55 | ||
@@ -61,6 +64,22 @@ static void dump_registers(struct ssp_device *ssp) | |||
61 | ssp_read_reg(ssp, SSACD)); | 64 | ssp_read_reg(ssp, SSACD)); |
62 | } | 65 | } |
63 | 66 | ||
67 | static void ssp_enable(struct ssp_device *ssp) | ||
68 | { | ||
69 | uint32_t sscr0; | ||
70 | |||
71 | sscr0 = __raw_readl(ssp->mmio_base + SSCR0) | SSCR0_SSE; | ||
72 | __raw_writel(sscr0, ssp->mmio_base + SSCR0); | ||
73 | } | ||
74 | |||
75 | static void ssp_disable(struct ssp_device *ssp) | ||
76 | { | ||
77 | uint32_t sscr0; | ||
78 | |||
79 | sscr0 = __raw_readl(ssp->mmio_base + SSCR0) & ~SSCR0_SSE; | ||
80 | __raw_writel(sscr0, ssp->mmio_base + SSCR0); | ||
81 | } | ||
82 | |||
64 | struct pxa2xx_pcm_dma_data { | 83 | struct pxa2xx_pcm_dma_data { |
65 | struct pxa2xx_pcm_dma_params params; | 84 | struct pxa2xx_pcm_dma_params params; |
66 | char name[20]; | 85 | char name[20]; |
@@ -94,13 +113,12 @@ static int pxa_ssp_startup(struct snd_pcm_substream *substream, | |||
94 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 113 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
95 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 114 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
96 | struct ssp_priv *priv = cpu_dai->private_data; | 115 | struct ssp_priv *priv = cpu_dai->private_data; |
116 | struct ssp_device *ssp = priv->ssp; | ||
97 | int ret = 0; | 117 | int ret = 0; |
98 | 118 | ||
99 | if (!cpu_dai->active) { | 119 | if (!cpu_dai->active) { |
100 | priv->dev.port = cpu_dai->id + 1; | 120 | clk_enable(ssp->clk); |
101 | priv->dev.irq = NO_IRQ; | 121 | ssp_disable(ssp); |
102 | clk_enable(priv->dev.ssp->clk); | ||
103 | ssp_disable(&priv->dev); | ||
104 | } | 122 | } |
105 | 123 | ||
106 | kfree(snd_soc_dai_get_dma_data(cpu_dai, substream)); | 124 | kfree(snd_soc_dai_get_dma_data(cpu_dai, substream)); |
@@ -115,10 +133,11 @@ static void pxa_ssp_shutdown(struct snd_pcm_substream *substream, | |||
115 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 133 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
116 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 134 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
117 | struct ssp_priv *priv = cpu_dai->private_data; | 135 | struct ssp_priv *priv = cpu_dai->private_data; |
136 | struct ssp_device *ssp = priv->ssp; | ||
118 | 137 | ||
119 | if (!cpu_dai->active) { | 138 | if (!cpu_dai->active) { |
120 | ssp_disable(&priv->dev); | 139 | ssp_disable(ssp); |
121 | clk_disable(priv->dev.ssp->clk); | 140 | clk_disable(ssp->clk); |
122 | } | 141 | } |
123 | 142 | ||
124 | kfree(snd_soc_dai_get_dma_data(cpu_dai, substream)); | 143 | kfree(snd_soc_dai_get_dma_data(cpu_dai, substream)); |
@@ -130,27 +149,39 @@ static void pxa_ssp_shutdown(struct snd_pcm_substream *substream, | |||
130 | static int pxa_ssp_suspend(struct snd_soc_dai *cpu_dai) | 149 | static int pxa_ssp_suspend(struct snd_soc_dai *cpu_dai) |
131 | { | 150 | { |
132 | struct ssp_priv *priv = cpu_dai->private_data; | 151 | struct ssp_priv *priv = cpu_dai->private_data; |
152 | struct ssp_device *ssp = priv->ssp; | ||
133 | 153 | ||
134 | if (!cpu_dai->active) | 154 | if (!cpu_dai->active) |
135 | clk_enable(priv->dev.ssp->clk); | 155 | clk_enable(ssp->clk); |
136 | 156 | ||
137 | ssp_save_state(&priv->dev, &priv->state); | 157 | priv->cr0 = __raw_readl(ssp->mmio_base + SSCR0); |
138 | clk_disable(priv->dev.ssp->clk); | 158 | priv->cr1 = __raw_readl(ssp->mmio_base + SSCR1); |
159 | priv->to = __raw_readl(ssp->mmio_base + SSTO); | ||
160 | priv->psp = __raw_readl(ssp->mmio_base + SSPSP); | ||
139 | 161 | ||
162 | ssp_disable(ssp); | ||
163 | clk_disable(ssp->clk); | ||
140 | return 0; | 164 | return 0; |
141 | } | 165 | } |
142 | 166 | ||
143 | static int pxa_ssp_resume(struct snd_soc_dai *cpu_dai) | 167 | static int pxa_ssp_resume(struct snd_soc_dai *cpu_dai) |
144 | { | 168 | { |
145 | struct ssp_priv *priv = cpu_dai->private_data; | 169 | struct ssp_priv *priv = cpu_dai->private_data; |
170 | struct ssp_device *ssp = priv->ssp; | ||
171 | uint32_t sssr = SSSR_ROR | SSSR_TUR | SSSR_BCE; | ||
172 | |||
173 | clk_enable(ssp->clk); | ||
146 | 174 | ||
147 | clk_enable(priv->dev.ssp->clk); | 175 | __raw_writel(sssr, ssp->mmio_base + SSSR); |
148 | ssp_restore_state(&priv->dev, &priv->state); | 176 | __raw_writel(priv->cr0 & ~SSCR0_SSE, ssp->mmio_base + SSCR0); |
177 | __raw_writel(priv->cr1, ssp->mmio_base + SSCR1); | ||
178 | __raw_writel(priv->to, ssp->mmio_base + SSTO); | ||
179 | __raw_writel(priv->psp, ssp->mmio_base + SSPSP); | ||
149 | 180 | ||
150 | if (cpu_dai->active) | 181 | if (cpu_dai->active) |
151 | ssp_enable(&priv->dev); | 182 | ssp_enable(ssp); |
152 | else | 183 | else |
153 | clk_disable(priv->dev.ssp->clk); | 184 | clk_disable(ssp->clk); |
154 | 185 | ||
155 | return 0; | 186 | return 0; |
156 | } | 187 | } |
@@ -200,7 +231,7 @@ static int pxa_ssp_set_dai_sysclk(struct snd_soc_dai *cpu_dai, | |||
200 | int clk_id, unsigned int freq, int dir) | 231 | int clk_id, unsigned int freq, int dir) |
201 | { | 232 | { |
202 | struct ssp_priv *priv = cpu_dai->private_data; | 233 | struct ssp_priv *priv = cpu_dai->private_data; |
203 | struct ssp_device *ssp = priv->dev.ssp; | 234 | struct ssp_device *ssp = priv->ssp; |
204 | int val; | 235 | int val; |
205 | 236 | ||
206 | u32 sscr0 = ssp_read_reg(ssp, SSCR0) & | 237 | u32 sscr0 = ssp_read_reg(ssp, SSCR0) & |
@@ -241,11 +272,11 @@ static int pxa_ssp_set_dai_sysclk(struct snd_soc_dai *cpu_dai, | |||
241 | /* The SSP clock must be disabled when changing SSP clock mode | 272 | /* The SSP clock must be disabled when changing SSP clock mode |
242 | * on PXA2xx. On PXA3xx it must be enabled when doing so. */ | 273 | * on PXA2xx. On PXA3xx it must be enabled when doing so. */ |
243 | if (!cpu_is_pxa3xx()) | 274 | if (!cpu_is_pxa3xx()) |
244 | clk_disable(priv->dev.ssp->clk); | 275 | clk_disable(ssp->clk); |
245 | val = ssp_read_reg(ssp, SSCR0) | sscr0; | 276 | val = ssp_read_reg(ssp, SSCR0) | sscr0; |
246 | ssp_write_reg(ssp, SSCR0, val); | 277 | ssp_write_reg(ssp, SSCR0, val); |
247 | if (!cpu_is_pxa3xx()) | 278 | if (!cpu_is_pxa3xx()) |
248 | clk_enable(priv->dev.ssp->clk); | 279 | clk_enable(ssp->clk); |
249 | 280 | ||
250 | return 0; | 281 | return 0; |
251 | } | 282 | } |
@@ -257,7 +288,7 @@ static int pxa_ssp_set_dai_clkdiv(struct snd_soc_dai *cpu_dai, | |||
257 | int div_id, int div) | 288 | int div_id, int div) |
258 | { | 289 | { |
259 | struct ssp_priv *priv = cpu_dai->private_data; | 290 | struct ssp_priv *priv = cpu_dai->private_data; |
260 | struct ssp_device *ssp = priv->dev.ssp; | 291 | struct ssp_device *ssp = priv->ssp; |
261 | int val; | 292 | int val; |
262 | 293 | ||
263 | switch (div_id) { | 294 | switch (div_id) { |
@@ -308,7 +339,7 @@ static int pxa_ssp_set_dai_pll(struct snd_soc_dai *cpu_dai, int pll_id, | |||
308 | int source, unsigned int freq_in, unsigned int freq_out) | 339 | int source, unsigned int freq_in, unsigned int freq_out) |
309 | { | 340 | { |
310 | struct ssp_priv *priv = cpu_dai->private_data; | 341 | struct ssp_priv *priv = cpu_dai->private_data; |
311 | struct ssp_device *ssp = priv->dev.ssp; | 342 | struct ssp_device *ssp = priv->ssp; |
312 | u32 ssacd = ssp_read_reg(ssp, SSACD) & ~0x70; | 343 | u32 ssacd = ssp_read_reg(ssp, SSACD) & ~0x70; |
313 | 344 | ||
314 | #if defined(CONFIG_PXA3xx) | 345 | #if defined(CONFIG_PXA3xx) |
@@ -377,7 +408,7 @@ static int pxa_ssp_set_dai_tdm_slot(struct snd_soc_dai *cpu_dai, | |||
377 | unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width) | 408 | unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width) |
378 | { | 409 | { |
379 | struct ssp_priv *priv = cpu_dai->private_data; | 410 | struct ssp_priv *priv = cpu_dai->private_data; |
380 | struct ssp_device *ssp = priv->dev.ssp; | 411 | struct ssp_device *ssp = priv->ssp; |
381 | u32 sscr0; | 412 | u32 sscr0; |
382 | 413 | ||
383 | sscr0 = ssp_read_reg(ssp, SSCR0); | 414 | sscr0 = ssp_read_reg(ssp, SSCR0); |
@@ -412,7 +443,7 @@ static int pxa_ssp_set_dai_tristate(struct snd_soc_dai *cpu_dai, | |||
412 | int tristate) | 443 | int tristate) |
413 | { | 444 | { |
414 | struct ssp_priv *priv = cpu_dai->private_data; | 445 | struct ssp_priv *priv = cpu_dai->private_data; |
415 | struct ssp_device *ssp = priv->dev.ssp; | 446 | struct ssp_device *ssp = priv->ssp; |
416 | u32 sscr1; | 447 | u32 sscr1; |
417 | 448 | ||
418 | sscr1 = ssp_read_reg(ssp, SSCR1); | 449 | sscr1 = ssp_read_reg(ssp, SSCR1); |
@@ -434,7 +465,7 @@ static int pxa_ssp_set_dai_fmt(struct snd_soc_dai *cpu_dai, | |||
434 | unsigned int fmt) | 465 | unsigned int fmt) |
435 | { | 466 | { |
436 | struct ssp_priv *priv = cpu_dai->private_data; | 467 | struct ssp_priv *priv = cpu_dai->private_data; |
437 | struct ssp_device *ssp = priv->dev.ssp; | 468 | struct ssp_device *ssp = priv->ssp; |
438 | u32 sscr0; | 469 | u32 sscr0; |
439 | u32 sscr1; | 470 | u32 sscr1; |
440 | u32 sspsp; | 471 | u32 sspsp; |
@@ -529,7 +560,7 @@ static int pxa_ssp_hw_params(struct snd_pcm_substream *substream, | |||
529 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | 560 | struct snd_soc_pcm_runtime *rtd = substream->private_data; |
530 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 561 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
531 | struct ssp_priv *priv = cpu_dai->private_data; | 562 | struct ssp_priv *priv = cpu_dai->private_data; |
532 | struct ssp_device *ssp = priv->dev.ssp; | 563 | struct ssp_device *ssp = priv->ssp; |
533 | int chn = params_channels(params); | 564 | int chn = params_channels(params); |
534 | u32 sscr0; | 565 | u32 sscr0; |
535 | u32 sspsp; | 566 | u32 sspsp; |
@@ -643,12 +674,12 @@ static int pxa_ssp_trigger(struct snd_pcm_substream *substream, int cmd, | |||
643 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; | 674 | struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; |
644 | int ret = 0; | 675 | int ret = 0; |
645 | struct ssp_priv *priv = cpu_dai->private_data; | 676 | struct ssp_priv *priv = cpu_dai->private_data; |
646 | struct ssp_device *ssp = priv->dev.ssp; | 677 | struct ssp_device *ssp = priv->ssp; |
647 | int val; | 678 | int val; |
648 | 679 | ||
649 | switch (cmd) { | 680 | switch (cmd) { |
650 | case SNDRV_PCM_TRIGGER_RESUME: | 681 | case SNDRV_PCM_TRIGGER_RESUME: |
651 | ssp_enable(&priv->dev); | 682 | ssp_enable(ssp); |
652 | break; | 683 | break; |
653 | case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: | 684 | case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: |
654 | val = ssp_read_reg(ssp, SSCR1); | 685 | val = ssp_read_reg(ssp, SSCR1); |
@@ -667,7 +698,7 @@ static int pxa_ssp_trigger(struct snd_pcm_substream *substream, int cmd, | |||
667 | else | 698 | else |
668 | val |= SSCR1_RSRE; | 699 | val |= SSCR1_RSRE; |
669 | ssp_write_reg(ssp, SSCR1, val); | 700 | ssp_write_reg(ssp, SSCR1, val); |
670 | ssp_enable(&priv->dev); | 701 | ssp_enable(ssp); |
671 | break; | 702 | break; |
672 | case SNDRV_PCM_TRIGGER_STOP: | 703 | case SNDRV_PCM_TRIGGER_STOP: |
673 | val = ssp_read_reg(ssp, SSCR1); | 704 | val = ssp_read_reg(ssp, SSCR1); |
@@ -678,7 +709,7 @@ static int pxa_ssp_trigger(struct snd_pcm_substream *substream, int cmd, | |||
678 | ssp_write_reg(ssp, SSCR1, val); | 709 | ssp_write_reg(ssp, SSCR1, val); |
679 | break; | 710 | break; |
680 | case SNDRV_PCM_TRIGGER_SUSPEND: | 711 | case SNDRV_PCM_TRIGGER_SUSPEND: |
681 | ssp_disable(&priv->dev); | 712 | ssp_disable(ssp); |
682 | break; | 713 | break; |
683 | case SNDRV_PCM_TRIGGER_PAUSE_PUSH: | 714 | case SNDRV_PCM_TRIGGER_PAUSE_PUSH: |
684 | val = ssp_read_reg(ssp, SSCR1); | 715 | val = ssp_read_reg(ssp, SSCR1); |
@@ -708,8 +739,8 @@ static int pxa_ssp_probe(struct platform_device *pdev, | |||
708 | if (!priv) | 739 | if (!priv) |
709 | return -ENOMEM; | 740 | return -ENOMEM; |
710 | 741 | ||
711 | priv->dev.ssp = ssp_request(dai->id + 1, "SoC audio"); | 742 | priv->ssp = ssp_request(dai->id + 1, "SoC audio"); |
712 | if (priv->dev.ssp == NULL) { | 743 | if (priv->ssp == NULL) { |
713 | ret = -ENODEV; | 744 | ret = -ENODEV; |
714 | goto err_priv; | 745 | goto err_priv; |
715 | } | 746 | } |
@@ -728,7 +759,7 @@ static void pxa_ssp_remove(struct platform_device *pdev, | |||
728 | struct snd_soc_dai *dai) | 759 | struct snd_soc_dai *dai) |
729 | { | 760 | { |
730 | struct ssp_priv *priv = dai->private_data; | 761 | struct ssp_priv *priv = dai->private_data; |
731 | ssp_free(priv->dev.ssp); | 762 | ssp_free(priv->ssp); |
732 | } | 763 | } |
733 | 764 | ||
734 | #define PXA_SSP_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\ | 765 | #define PXA_SSP_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\ |
diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.c b/sound/soc/s3c24xx/s3c64xx-i2s.c index 65528943579b..ab1fa159d3ae 100644 --- a/sound/soc/s3c24xx/s3c64xx-i2s.c +++ b/sound/soc/s3c24xx/s3c64xx-i2s.c | |||
@@ -19,8 +19,8 @@ | |||
19 | #include <sound/soc.h> | 19 | #include <sound/soc.h> |
20 | 20 | ||
21 | #include <plat/regs-s3c2412-iis.h> | 21 | #include <plat/regs-s3c2412-iis.h> |
22 | #include <plat/gpio-bank-d.h> | 22 | #include <mach/gpio-bank-d.h> |
23 | #include <plat/gpio-bank-e.h> | 23 | #include <mach/gpio-bank-e.h> |
24 | #include <plat/gpio-cfg.h> | 24 | #include <plat/gpio-cfg.h> |
25 | 25 | ||
26 | #include <mach/map.h> | 26 | #include <mach/map.h> |