diff options
Diffstat (limited to 'sound')
51 files changed, 114 insertions, 89 deletions
diff --git a/sound/hda/ext/hdac_ext_bus.c b/sound/hda/ext/hdac_ext_bus.c index 4449d1a99089..2433f7c81472 100644 --- a/sound/hda/ext/hdac_ext_bus.c +++ b/sound/hda/ext/hdac_ext_bus.c | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
21 | #include <linux/slab.h> | 21 | #include <linux/slab.h> |
22 | #include <linux/io.h> | ||
22 | #include <sound/hdaudio_ext.h> | 23 | #include <sound/hdaudio_ext.h> |
23 | 24 | ||
24 | MODULE_DESCRIPTION("HDA extended core"); | 25 | MODULE_DESCRIPTION("HDA extended core"); |
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 37f43a1b34ef..a249d5486889 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -3367,10 +3367,8 @@ int snd_hda_codec_build_pcms(struct hda_codec *codec) | |||
3367 | int dev, err; | 3367 | int dev, err; |
3368 | 3368 | ||
3369 | err = snd_hda_codec_parse_pcms(codec); | 3369 | err = snd_hda_codec_parse_pcms(codec); |
3370 | if (err < 0) { | 3370 | if (err < 0) |
3371 | snd_hda_codec_reset(codec); | ||
3372 | return err; | 3371 | return err; |
3373 | } | ||
3374 | 3372 | ||
3375 | /* attach a new PCM streams */ | 3373 | /* attach a new PCM streams */ |
3376 | list_for_each_entry(cpcm, &codec->pcm_list_head, list) { | 3374 | list_for_each_entry(cpcm, &codec->pcm_list_head, list) { |
diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c index 584a0343ab0c..85813de26da8 100644 --- a/sound/pci/hda/patch_cirrus.c +++ b/sound/pci/hda/patch_cirrus.c | |||
@@ -633,6 +633,7 @@ static const struct snd_pci_quirk cs4208_mac_fixup_tbl[] = { | |||
633 | SND_PCI_QUIRK(0x106b, 0x5e00, "MacBookPro 11,2", CS4208_MBP11), | 633 | SND_PCI_QUIRK(0x106b, 0x5e00, "MacBookPro 11,2", CS4208_MBP11), |
634 | SND_PCI_QUIRK(0x106b, 0x7100, "MacBookAir 6,1", CS4208_MBA6), | 634 | SND_PCI_QUIRK(0x106b, 0x7100, "MacBookAir 6,1", CS4208_MBA6), |
635 | SND_PCI_QUIRK(0x106b, 0x7200, "MacBookAir 6,2", CS4208_MBA6), | 635 | SND_PCI_QUIRK(0x106b, 0x7200, "MacBookAir 6,2", CS4208_MBA6), |
636 | SND_PCI_QUIRK(0x106b, 0x7b00, "MacBookPro 12,1", CS4208_MBP11), | ||
636 | {} /* terminator */ | 637 | {} /* terminator */ |
637 | }; | 638 | }; |
638 | 639 | ||
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index ca03c40609fc..2f0ec7c45fc7 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c | |||
@@ -819,6 +819,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = { | |||
819 | SND_PCI_QUIRK(0x17aa, 0x21da, "Lenovo X220", CXT_PINCFG_LENOVO_TP410), | 819 | SND_PCI_QUIRK(0x17aa, 0x21da, "Lenovo X220", CXT_PINCFG_LENOVO_TP410), |
820 | SND_PCI_QUIRK(0x17aa, 0x21db, "Lenovo X220-tablet", CXT_PINCFG_LENOVO_TP410), | 820 | SND_PCI_QUIRK(0x17aa, 0x21db, "Lenovo X220-tablet", CXT_PINCFG_LENOVO_TP410), |
821 | SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo IdeaPad Z560", CXT_FIXUP_MUTE_LED_EAPD), | 821 | SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo IdeaPad Z560", CXT_FIXUP_MUTE_LED_EAPD), |
822 | SND_PCI_QUIRK(0x17aa, 0x390b, "Lenovo G50-80", CXT_FIXUP_STEREO_DMIC), | ||
822 | SND_PCI_QUIRK(0x17aa, 0x3975, "Lenovo U300s", CXT_FIXUP_STEREO_DMIC), | 823 | SND_PCI_QUIRK(0x17aa, 0x3975, "Lenovo U300s", CXT_FIXUP_STEREO_DMIC), |
823 | SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_FIXUP_STEREO_DMIC), | 824 | SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_FIXUP_STEREO_DMIC), |
824 | SND_PCI_QUIRK(0x17aa, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC), | 825 | SND_PCI_QUIRK(0x17aa, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC), |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index afec6dc9f91f..16b8dcba5c12 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -5306,6 +5306,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
5306 | SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad T440", ALC292_FIXUP_TPT440_DOCK), | 5306 | SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad T440", ALC292_FIXUP_TPT440_DOCK), |
5307 | SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad X240", ALC292_FIXUP_TPT440_DOCK), | 5307 | SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad X240", ALC292_FIXUP_TPT440_DOCK), |
5308 | SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), | 5308 | SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), |
5309 | SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK), | ||
5309 | SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK), | 5310 | SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK), |
5310 | SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC), | 5311 | SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC), |
5311 | SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP), | 5312 | SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP), |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 9d947aef2c8b..def5cc8dff02 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -4520,7 +4520,11 @@ static int patch_stac92hd73xx(struct hda_codec *codec) | |||
4520 | return err; | 4520 | return err; |
4521 | 4521 | ||
4522 | spec = codec->spec; | 4522 | spec = codec->spec; |
4523 | codec->power_save_node = 1; | 4523 | /* enable power_save_node only for new 92HD89xx chips, as it causes |
4524 | * click noises on old 92HD73xx chips. | ||
4525 | */ | ||
4526 | if ((codec->core.vendor_id & 0xfffffff0) != 0x111d7670) | ||
4527 | codec->power_save_node = 1; | ||
4524 | spec->linear_tone_beep = 0; | 4528 | spec->linear_tone_beep = 0; |
4525 | spec->gen.mixer_nid = 0x1d; | 4529 | spec->gen.mixer_nid = 0x1d; |
4526 | spec->have_spdif_mux = 1; | 4530 | spec->have_spdif_mux = 1; |
diff --git a/sound/soc/au1x/db1200.c b/sound/soc/au1x/db1200.c index 58c3164802b8..8c907ebea189 100644 --- a/sound/soc/au1x/db1200.c +++ b/sound/soc/au1x/db1200.c | |||
@@ -129,6 +129,8 @@ static struct snd_soc_dai_link db1300_i2s_dai = { | |||
129 | .cpu_dai_name = "au1xpsc_i2s.2", | 129 | .cpu_dai_name = "au1xpsc_i2s.2", |
130 | .platform_name = "au1xpsc-pcm.2", | 130 | .platform_name = "au1xpsc-pcm.2", |
131 | .codec_name = "wm8731.0-001b", | 131 | .codec_name = "wm8731.0-001b", |
132 | .dai_fmt = SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF | | ||
133 | SND_SOC_DAIFMT_CBM_CFM, | ||
132 | .ops = &db1200_i2s_wm8731_ops, | 134 | .ops = &db1200_i2s_wm8731_ops, |
133 | }; | 135 | }; |
134 | 136 | ||
@@ -146,6 +148,8 @@ static struct snd_soc_dai_link db1550_i2s_dai = { | |||
146 | .cpu_dai_name = "au1xpsc_i2s.3", | 148 | .cpu_dai_name = "au1xpsc_i2s.3", |
147 | .platform_name = "au1xpsc-pcm.3", | 149 | .platform_name = "au1xpsc-pcm.3", |
148 | .codec_name = "wm8731.0-001b", | 150 | .codec_name = "wm8731.0-001b", |
151 | .dai_fmt = SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF | | ||
152 | SND_SOC_DAIFMT_CBM_CFM, | ||
149 | .ops = &db1200_i2s_wm8731_ops, | 153 | .ops = &db1200_i2s_wm8731_ops, |
150 | }; | 154 | }; |
151 | 155 | ||
diff --git a/sound/soc/codecs/ad1836.c b/sound/soc/codecs/ad1836.c index 95f0bec26a1b..e2ce6c4d7ece 100644 --- a/sound/soc/codecs/ad1836.c +++ b/sound/soc/codecs/ad1836.c | |||
@@ -404,7 +404,6 @@ MODULE_DEVICE_TABLE(spi, ad1836_ids); | |||
404 | static struct spi_driver ad1836_spi_driver = { | 404 | static struct spi_driver ad1836_spi_driver = { |
405 | .driver = { | 405 | .driver = { |
406 | .name = "ad1836", | 406 | .name = "ad1836", |
407 | .owner = THIS_MODULE, | ||
408 | }, | 407 | }, |
409 | .probe = ad1836_spi_probe, | 408 | .probe = ad1836_spi_probe, |
410 | .remove = ad1836_spi_remove, | 409 | .remove = ad1836_spi_remove, |
diff --git a/sound/soc/codecs/ad193x-spi.c b/sound/soc/codecs/ad193x-spi.c index 390cef9b9dc2..8199a3de0024 100644 --- a/sound/soc/codecs/ad193x-spi.c +++ b/sound/soc/codecs/ad193x-spi.c | |||
@@ -36,7 +36,6 @@ static int ad193x_spi_remove(struct spi_device *spi) | |||
36 | static struct spi_driver ad193x_spi_driver = { | 36 | static struct spi_driver ad193x_spi_driver = { |
37 | .driver = { | 37 | .driver = { |
38 | .name = "ad193x", | 38 | .name = "ad193x", |
39 | .owner = THIS_MODULE, | ||
40 | }, | 39 | }, |
41 | .probe = ad193x_spi_probe, | 40 | .probe = ad193x_spi_probe, |
42 | .remove = ad193x_spi_remove, | 41 | .remove = ad193x_spi_remove, |
diff --git a/sound/soc/codecs/adau1761-spi.c b/sound/soc/codecs/adau1761-spi.c index cce2f11f1ffb..8bc1fbd25fcc 100644 --- a/sound/soc/codecs/adau1761-spi.c +++ b/sound/soc/codecs/adau1761-spi.c | |||
@@ -64,7 +64,6 @@ MODULE_DEVICE_TABLE(spi, adau1761_spi_id); | |||
64 | static struct spi_driver adau1761_spi_driver = { | 64 | static struct spi_driver adau1761_spi_driver = { |
65 | .driver = { | 65 | .driver = { |
66 | .name = "adau1761", | 66 | .name = "adau1761", |
67 | .owner = THIS_MODULE, | ||
68 | }, | 67 | }, |
69 | .probe = adau1761_spi_probe, | 68 | .probe = adau1761_spi_probe, |
70 | .remove = adau1761_spi_remove, | 69 | .remove = adau1761_spi_remove, |
diff --git a/sound/soc/codecs/adau1781-spi.c b/sound/soc/codecs/adau1781-spi.c index 194686716bbe..33a73ff78de4 100644 --- a/sound/soc/codecs/adau1781-spi.c +++ b/sound/soc/codecs/adau1781-spi.c | |||
@@ -62,7 +62,6 @@ MODULE_DEVICE_TABLE(spi, adau1781_spi_id); | |||
62 | static struct spi_driver adau1781_spi_driver = { | 62 | static struct spi_driver adau1781_spi_driver = { |
63 | .driver = { | 63 | .driver = { |
64 | .name = "adau1781", | 64 | .name = "adau1781", |
65 | .owner = THIS_MODULE, | ||
66 | }, | 65 | }, |
67 | .probe = adau1781_spi_probe, | 66 | .probe = adau1781_spi_probe, |
68 | .remove = adau1781_spi_remove, | 67 | .remove = adau1781_spi_remove, |
diff --git a/sound/soc/codecs/adau1977-spi.c b/sound/soc/codecs/adau1977-spi.c index b05cf5da3a94..0b46d88b481c 100644 --- a/sound/soc/codecs/adau1977-spi.c +++ b/sound/soc/codecs/adau1977-spi.c | |||
@@ -63,7 +63,6 @@ MODULE_DEVICE_TABLE(spi, adau1977_spi_ids); | |||
63 | static struct spi_driver adau1977_spi_driver = { | 63 | static struct spi_driver adau1977_spi_driver = { |
64 | .driver = { | 64 | .driver = { |
65 | .name = "adau1977", | 65 | .name = "adau1977", |
66 | .owner = THIS_MODULE, | ||
67 | }, | 66 | }, |
68 | .probe = adau1977_spi_probe, | 67 | .probe = adau1977_spi_probe, |
69 | .remove = adau1977_spi_remove, | 68 | .remove = adau1977_spi_remove, |
diff --git a/sound/soc/codecs/adav801.c b/sound/soc/codecs/adav801.c index 790fce33ab10..055f1228c2b4 100644 --- a/sound/soc/codecs/adav801.c +++ b/sound/soc/codecs/adav801.c | |||
@@ -39,7 +39,6 @@ static int adav80x_spi_remove(struct spi_device *spi) | |||
39 | static struct spi_driver adav80x_spi_driver = { | 39 | static struct spi_driver adav80x_spi_driver = { |
40 | .driver = { | 40 | .driver = { |
41 | .name = "adav801", | 41 | .name = "adav801", |
42 | .owner = THIS_MODULE, | ||
43 | }, | 42 | }, |
44 | .probe = adav80x_spi_probe, | 43 | .probe = adav80x_spi_probe, |
45 | .remove = adav80x_spi_remove, | 44 | .remove = adav80x_spi_remove, |
diff --git a/sound/soc/codecs/ak4104.c b/sound/soc/codecs/ak4104.c index 1fd7f72b2a62..595d02d7602c 100644 --- a/sound/soc/codecs/ak4104.c +++ b/sound/soc/codecs/ak4104.c | |||
@@ -344,7 +344,6 @@ MODULE_DEVICE_TABLE(spi, ak4104_id_table); | |||
344 | static struct spi_driver ak4104_spi_driver = { | 344 | static struct spi_driver ak4104_spi_driver = { |
345 | .driver = { | 345 | .driver = { |
346 | .name = "ak4104", | 346 | .name = "ak4104", |
347 | .owner = THIS_MODULE, | ||
348 | .of_match_table = ak4104_of_match, | 347 | .of_match_table = ak4104_of_match, |
349 | }, | 348 | }, |
350 | .id_table = ak4104_id_table, | 349 | .id_table = ak4104_id_table, |
diff --git a/sound/soc/codecs/cs4271-spi.c b/sound/soc/codecs/cs4271-spi.c index acd49d86e706..1ff5f520196a 100644 --- a/sound/soc/codecs/cs4271-spi.c +++ b/sound/soc/codecs/cs4271-spi.c | |||
@@ -42,7 +42,6 @@ static int cs4271_spi_remove(struct spi_device *spi) | |||
42 | static struct spi_driver cs4271_spi_driver = { | 42 | static struct spi_driver cs4271_spi_driver = { |
43 | .driver = { | 43 | .driver = { |
44 | .name = "cs4271", | 44 | .name = "cs4271", |
45 | .owner = THIS_MODULE, | ||
46 | .of_match_table = of_match_ptr(cs4271_dt_ids), | 45 | .of_match_table = of_match_ptr(cs4271_dt_ids), |
47 | }, | 46 | }, |
48 | .probe = cs4271_spi_probe, | 47 | .probe = cs4271_spi_probe, |
diff --git a/sound/soc/codecs/da7210.c b/sound/soc/codecs/da7210.c index 7dc52fe67c80..af23a61b7b28 100644 --- a/sound/soc/codecs/da7210.c +++ b/sound/soc/codecs/da7210.c | |||
@@ -1339,7 +1339,6 @@ static int da7210_spi_remove(struct spi_device *spi) | |||
1339 | static struct spi_driver da7210_spi_driver = { | 1339 | static struct spi_driver da7210_spi_driver = { |
1340 | .driver = { | 1340 | .driver = { |
1341 | .name = "da7210", | 1341 | .name = "da7210", |
1342 | .owner = THIS_MODULE, | ||
1343 | }, | 1342 | }, |
1344 | .probe = da7210_spi_probe, | 1343 | .probe = da7210_spi_probe, |
1345 | .remove = da7210_spi_remove | 1344 | .remove = da7210_spi_remove |
diff --git a/sound/soc/codecs/pcm1792a.c b/sound/soc/codecs/pcm1792a.c index 57b0c94a710b..08bb4863e96f 100644 --- a/sound/soc/codecs/pcm1792a.c +++ b/sound/soc/codecs/pcm1792a.c | |||
@@ -257,7 +257,6 @@ MODULE_DEVICE_TABLE(spi, pcm1792a_spi_ids); | |||
257 | static struct spi_driver pcm1792a_codec_driver = { | 257 | static struct spi_driver pcm1792a_codec_driver = { |
258 | .driver = { | 258 | .driver = { |
259 | .name = "pcm1792a", | 259 | .name = "pcm1792a", |
260 | .owner = THIS_MODULE, | ||
261 | .of_match_table = of_match_ptr(pcm1792a_of_match), | 260 | .of_match_table = of_match_ptr(pcm1792a_of_match), |
262 | }, | 261 | }, |
263 | .id_table = pcm1792a_spi_ids, | 262 | .id_table = pcm1792a_spi_ids, |
diff --git a/sound/soc/codecs/pcm512x-spi.c b/sound/soc/codecs/pcm512x-spi.c index 7b64a9cef704..712ed6598c48 100644 --- a/sound/soc/codecs/pcm512x-spi.c +++ b/sound/soc/codecs/pcm512x-spi.c | |||
@@ -64,7 +64,6 @@ static struct spi_driver pcm512x_spi_driver = { | |||
64 | .id_table = pcm512x_spi_id, | 64 | .id_table = pcm512x_spi_id, |
65 | .driver = { | 65 | .driver = { |
66 | .name = "pcm512x", | 66 | .name = "pcm512x", |
67 | .owner = THIS_MODULE, | ||
68 | .of_match_table = pcm512x_of_match, | 67 | .of_match_table = pcm512x_of_match, |
69 | .pm = &pcm512x_pm_ops, | 68 | .pm = &pcm512x_pm_ops, |
70 | }, | 69 | }, |
diff --git a/sound/soc/codecs/rt298.c b/sound/soc/codecs/rt298.c index 3c2f0f8d6266..f823eb502367 100644 --- a/sound/soc/codecs/rt298.c +++ b/sound/soc/codecs/rt298.c | |||
@@ -50,24 +50,24 @@ struct rt298_priv { | |||
50 | }; | 50 | }; |
51 | 51 | ||
52 | static struct reg_default rt298_index_def[] = { | 52 | static struct reg_default rt298_index_def[] = { |
53 | { 0x01, 0xaaaa }, | 53 | { 0x01, 0xa5a8 }, |
54 | { 0x02, 0x8aaa }, | 54 | { 0x02, 0x8e95 }, |
55 | { 0x03, 0x0002 }, | 55 | { 0x03, 0x0002 }, |
56 | { 0x04, 0xaf01 }, | 56 | { 0x04, 0xaf67 }, |
57 | { 0x08, 0x000d }, | 57 | { 0x08, 0x200f }, |
58 | { 0x09, 0xd810 }, | 58 | { 0x09, 0xd010 }, |
59 | { 0x0a, 0x0120 }, | 59 | { 0x0a, 0x0100 }, |
60 | { 0x0b, 0x0000 }, | 60 | { 0x0b, 0x0000 }, |
61 | { 0x0d, 0x2800 }, | 61 | { 0x0d, 0x2800 }, |
62 | { 0x0f, 0x0000 }, | 62 | { 0x0f, 0x0022 }, |
63 | { 0x19, 0x0a17 }, | 63 | { 0x19, 0x0217 }, |
64 | { 0x20, 0x0020 }, | 64 | { 0x20, 0x0020 }, |
65 | { 0x33, 0x0208 }, | 65 | { 0x33, 0x0208 }, |
66 | { 0x46, 0x0300 }, | 66 | { 0x46, 0x0300 }, |
67 | { 0x49, 0x0004 }, | 67 | { 0x49, 0x4004 }, |
68 | { 0x4f, 0x50e9 }, | 68 | { 0x4f, 0x50c9 }, |
69 | { 0x50, 0x2000 }, | 69 | { 0x50, 0x3000 }, |
70 | { 0x63, 0x2902 }, | 70 | { 0x63, 0x1b02 }, |
71 | { 0x67, 0x1111 }, | 71 | { 0x67, 0x1111 }, |
72 | { 0x68, 0x1016 }, | 72 | { 0x68, 0x1016 }, |
73 | { 0x69, 0x273f }, | 73 | { 0x69, 0x273f }, |
@@ -1214,7 +1214,7 @@ static int rt298_i2c_probe(struct i2c_client *i2c, | |||
1214 | mdelay(10); | 1214 | mdelay(10); |
1215 | 1215 | ||
1216 | if (!rt298->pdata.gpio2_en) | 1216 | if (!rt298->pdata.gpio2_en) |
1217 | regmap_write(rt298->regmap, RT298_SET_DMIC2_DEFAULT, 0x4000); | 1217 | regmap_write(rt298->regmap, RT298_SET_DMIC2_DEFAULT, 0x40); |
1218 | else | 1218 | else |
1219 | regmap_write(rt298->regmap, RT298_SET_DMIC2_DEFAULT, 0); | 1219 | regmap_write(rt298->regmap, RT298_SET_DMIC2_DEFAULT, 0); |
1220 | 1220 | ||
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c index 268a28bd1df4..5c101af0ac63 100644 --- a/sound/soc/codecs/rt5645.c +++ b/sound/soc/codecs/rt5645.c | |||
@@ -519,11 +519,11 @@ static const struct snd_kcontrol_new rt5645_snd_controls[] = { | |||
519 | RT5645_L_VOL_SFT + 1, RT5645_R_VOL_SFT + 1, 63, 0, adc_vol_tlv), | 519 | RT5645_L_VOL_SFT + 1, RT5645_R_VOL_SFT + 1, 63, 0, adc_vol_tlv), |
520 | 520 | ||
521 | /* ADC Boost Volume Control */ | 521 | /* ADC Boost Volume Control */ |
522 | SOC_DOUBLE_TLV("STO1 ADC Boost Gain", RT5645_ADC_BST_VOL1, | 522 | SOC_DOUBLE_TLV("ADC Boost Capture Volume", RT5645_ADC_BST_VOL1, |
523 | RT5645_STO1_ADC_L_BST_SFT, RT5645_STO1_ADC_R_BST_SFT, 3, 0, | 523 | RT5645_STO1_ADC_L_BST_SFT, RT5645_STO1_ADC_R_BST_SFT, 3, 0, |
524 | adc_bst_tlv), | 524 | adc_bst_tlv), |
525 | SOC_DOUBLE_TLV("STO2 ADC Boost Gain", RT5645_ADC_BST_VOL1, | 525 | SOC_DOUBLE_TLV("Mono ADC Boost Capture Volume", RT5645_ADC_BST_VOL2, |
526 | RT5645_STO2_ADC_L_BST_SFT, RT5645_STO2_ADC_R_BST_SFT, 3, 0, | 526 | RT5645_MONO_ADC_L_BST_SFT, RT5645_MONO_ADC_R_BST_SFT, 3, 0, |
527 | adc_bst_tlv), | 527 | adc_bst_tlv), |
528 | 528 | ||
529 | /* I2S2 function select */ | 529 | /* I2S2 function select */ |
diff --git a/sound/soc/codecs/rt5645.h b/sound/soc/codecs/rt5645.h index 0e4cfc6ac649..8c964cfb120d 100644 --- a/sound/soc/codecs/rt5645.h +++ b/sound/soc/codecs/rt5645.h | |||
@@ -39,8 +39,8 @@ | |||
39 | #define RT5645_STO1_ADC_DIG_VOL 0x1c | 39 | #define RT5645_STO1_ADC_DIG_VOL 0x1c |
40 | #define RT5645_MONO_ADC_DIG_VOL 0x1d | 40 | #define RT5645_MONO_ADC_DIG_VOL 0x1d |
41 | #define RT5645_ADC_BST_VOL1 0x1e | 41 | #define RT5645_ADC_BST_VOL1 0x1e |
42 | /* Mixer - D-D */ | ||
43 | #define RT5645_ADC_BST_VOL2 0x20 | 42 | #define RT5645_ADC_BST_VOL2 0x20 |
43 | /* Mixer - D-D */ | ||
44 | #define RT5645_STO1_ADC_MIXER 0x27 | 44 | #define RT5645_STO1_ADC_MIXER 0x27 |
45 | #define RT5645_MONO_ADC_MIXER 0x28 | 45 | #define RT5645_MONO_ADC_MIXER 0x28 |
46 | #define RT5645_AD_DA_MIXER 0x29 | 46 | #define RT5645_AD_DA_MIXER 0x29 |
@@ -315,12 +315,14 @@ | |||
315 | #define RT5645_STO1_ADC_R_BST_SFT 12 | 315 | #define RT5645_STO1_ADC_R_BST_SFT 12 |
316 | #define RT5645_STO1_ADC_COMP_MASK (0x3 << 10) | 316 | #define RT5645_STO1_ADC_COMP_MASK (0x3 << 10) |
317 | #define RT5645_STO1_ADC_COMP_SFT 10 | 317 | #define RT5645_STO1_ADC_COMP_SFT 10 |
318 | #define RT5645_STO2_ADC_L_BST_MASK (0x3 << 8) | 318 | |
319 | #define RT5645_STO2_ADC_L_BST_SFT 8 | 319 | /* ADC Boost Volume Control (0x20) */ |
320 | #define RT5645_STO2_ADC_R_BST_MASK (0x3 << 6) | 320 | #define RT5645_MONO_ADC_L_BST_MASK (0x3 << 14) |
321 | #define RT5645_STO2_ADC_R_BST_SFT 6 | 321 | #define RT5645_MONO_ADC_L_BST_SFT 14 |
322 | #define RT5645_STO2_ADC_COMP_MASK (0x3 << 4) | 322 | #define RT5645_MONO_ADC_R_BST_MASK (0x3 << 12) |
323 | #define RT5645_STO2_ADC_COMP_SFT 4 | 323 | #define RT5645_MONO_ADC_R_BST_SFT 12 |
324 | #define RT5645_MONO_ADC_COMP_MASK (0x3 << 10) | ||
325 | #define RT5645_MONO_ADC_COMP_SFT 10 | ||
324 | 326 | ||
325 | /* Stereo2 ADC Mixer Control (0x26) */ | 327 | /* Stereo2 ADC Mixer Control (0x26) */ |
326 | #define RT5645_STO2_ADC_SRC_MASK (0x1 << 15) | 328 | #define RT5645_STO2_ADC_SRC_MASK (0x1 << 15) |
diff --git a/sound/soc/codecs/rt5677-spi.c b/sound/soc/codecs/rt5677-spi.c index 3505aafbade4..91879ea95415 100644 --- a/sound/soc/codecs/rt5677-spi.c +++ b/sound/soc/codecs/rt5677-spi.c | |||
@@ -232,7 +232,6 @@ static int rt5677_spi_probe(struct spi_device *spi) | |||
232 | static struct spi_driver rt5677_spi_driver = { | 232 | static struct spi_driver rt5677_spi_driver = { |
233 | .driver = { | 233 | .driver = { |
234 | .name = "rt5677", | 234 | .name = "rt5677", |
235 | .owner = THIS_MODULE, | ||
236 | }, | 235 | }, |
237 | .probe = rt5677_spi_probe, | 236 | .probe = rt5677_spi_probe, |
238 | }; | 237 | }; |
diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index bfda25ef0dd4..f540f82b1f27 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c | |||
@@ -1376,8 +1376,8 @@ static int sgtl5000_probe(struct snd_soc_codec *codec) | |||
1376 | sgtl5000->micbias_resistor << SGTL5000_BIAS_R_SHIFT); | 1376 | sgtl5000->micbias_resistor << SGTL5000_BIAS_R_SHIFT); |
1377 | 1377 | ||
1378 | snd_soc_update_bits(codec, SGTL5000_CHIP_MIC_CTRL, | 1378 | snd_soc_update_bits(codec, SGTL5000_CHIP_MIC_CTRL, |
1379 | SGTL5000_BIAS_R_MASK, | 1379 | SGTL5000_BIAS_VOLT_MASK, |
1380 | sgtl5000->micbias_voltage << SGTL5000_BIAS_R_SHIFT); | 1380 | sgtl5000->micbias_voltage << SGTL5000_BIAS_VOLT_SHIFT); |
1381 | /* | 1381 | /* |
1382 | * disable DAP | 1382 | * disable DAP |
1383 | * TODO: | 1383 | * TODO: |
@@ -1549,7 +1549,7 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, | |||
1549 | else { | 1549 | else { |
1550 | sgtl5000->micbias_voltage = 0; | 1550 | sgtl5000->micbias_voltage = 0; |
1551 | dev_err(&client->dev, | 1551 | dev_err(&client->dev, |
1552 | "Unsuitable MicBias resistor\n"); | 1552 | "Unsuitable MicBias voltage\n"); |
1553 | } | 1553 | } |
1554 | } else { | 1554 | } else { |
1555 | sgtl5000->micbias_voltage = 0; | 1555 | sgtl5000->micbias_voltage = 0; |
diff --git a/sound/soc/codecs/ssm2602-spi.c b/sound/soc/codecs/ssm2602-spi.c index b5df14fbe3ad..842f373045c6 100644 --- a/sound/soc/codecs/ssm2602-spi.c +++ b/sound/soc/codecs/ssm2602-spi.c | |||
@@ -35,7 +35,6 @@ MODULE_DEVICE_TABLE(of, ssm2602_of_match); | |||
35 | static struct spi_driver ssm2602_spi_driver = { | 35 | static struct spi_driver ssm2602_spi_driver = { |
36 | .driver = { | 36 | .driver = { |
37 | .name = "ssm2602", | 37 | .name = "ssm2602", |
38 | .owner = THIS_MODULE, | ||
39 | .of_match_table = ssm2602_of_match, | 38 | .of_match_table = ssm2602_of_match, |
40 | }, | 39 | }, |
41 | .probe = ssm2602_spi_probe, | 40 | .probe = ssm2602_spi_probe, |
diff --git a/sound/soc/codecs/tas2552.c b/sound/soc/codecs/tas2552.c index e3a0bca28bcf..cc1d3981fa4b 100644 --- a/sound/soc/codecs/tas2552.c +++ b/sound/soc/codecs/tas2552.c | |||
@@ -549,7 +549,7 @@ static struct snd_soc_dai_driver tas2552_dai[] = { | |||
549 | /* | 549 | /* |
550 | * DAC digital volumes. From -7 to 24 dB in 1 dB steps | 550 | * DAC digital volumes. From -7 to 24 dB in 1 dB steps |
551 | */ | 551 | */ |
552 | static DECLARE_TLV_DB_SCALE(dac_tlv, -7, 100, 0); | 552 | static DECLARE_TLV_DB_SCALE(dac_tlv, -700, 100, 0); |
553 | 553 | ||
554 | static const char * const tas2552_din_source_select[] = { | 554 | static const char * const tas2552_din_source_select[] = { |
555 | "Muted", | 555 | "Muted", |
diff --git a/sound/soc/codecs/tlv320aic23-spi.c b/sound/soc/codecs/tlv320aic23-spi.c index 3b387e41d75d..f801ae051658 100644 --- a/sound/soc/codecs/tlv320aic23-spi.c +++ b/sound/soc/codecs/tlv320aic23-spi.c | |||
@@ -43,7 +43,6 @@ static int aic23_spi_remove(struct spi_device *spi) | |||
43 | static struct spi_driver aic23_spi = { | 43 | static struct spi_driver aic23_spi = { |
44 | .driver = { | 44 | .driver = { |
45 | .name = "tlv320aic23", | 45 | .name = "tlv320aic23", |
46 | .owner = THIS_MODULE, | ||
47 | }, | 46 | }, |
48 | .probe = aic23_spi_probe, | 47 | .probe = aic23_spi_probe, |
49 | .remove = aic23_spi_remove, | 48 | .remove = aic23_spi_remove, |
diff --git a/sound/soc/codecs/tlv320aic26.c b/sound/soc/codecs/tlv320aic26.c index 620ab9ea1ef0..2c904d7150ad 100644 --- a/sound/soc/codecs/tlv320aic26.c +++ b/sound/soc/codecs/tlv320aic26.c | |||
@@ -373,7 +373,6 @@ static int aic26_spi_remove(struct spi_device *spi) | |||
373 | static struct spi_driver aic26_spi = { | 373 | static struct spi_driver aic26_spi = { |
374 | .driver = { | 374 | .driver = { |
375 | .name = "tlv320aic26-codec", | 375 | .name = "tlv320aic26-codec", |
376 | .owner = THIS_MODULE, | ||
377 | }, | 376 | }, |
378 | .probe = aic26_spi_probe, | 377 | .probe = aic26_spi_probe, |
379 | .remove = aic26_spi_remove, | 378 | .remove = aic26_spi_remove, |
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c index 1a82b19b2644..8739126a1f6f 100644 --- a/sound/soc/codecs/tlv320aic3x.c +++ b/sound/soc/codecs/tlv320aic3x.c | |||
@@ -1509,14 +1509,17 @@ static int aic3x_init(struct snd_soc_codec *codec) | |||
1509 | snd_soc_write(codec, PGAL_2_LLOPM_VOL, DEFAULT_VOL); | 1509 | snd_soc_write(codec, PGAL_2_LLOPM_VOL, DEFAULT_VOL); |
1510 | snd_soc_write(codec, PGAR_2_RLOPM_VOL, DEFAULT_VOL); | 1510 | snd_soc_write(codec, PGAR_2_RLOPM_VOL, DEFAULT_VOL); |
1511 | 1511 | ||
1512 | /* Line2 to HP Bypass default volume, disconnect from Output Mixer */ | 1512 | /* On tlv320aic3104, these registers are reserved and must not be written */ |
1513 | snd_soc_write(codec, LINE2L_2_HPLOUT_VOL, DEFAULT_VOL); | 1513 | if (aic3x->model != AIC3X_MODEL_3104) { |
1514 | snd_soc_write(codec, LINE2R_2_HPROUT_VOL, DEFAULT_VOL); | 1514 | /* Line2 to HP Bypass default volume, disconnect from Output Mixer */ |
1515 | snd_soc_write(codec, LINE2L_2_HPLCOM_VOL, DEFAULT_VOL); | 1515 | snd_soc_write(codec, LINE2L_2_HPLOUT_VOL, DEFAULT_VOL); |
1516 | snd_soc_write(codec, LINE2R_2_HPRCOM_VOL, DEFAULT_VOL); | 1516 | snd_soc_write(codec, LINE2R_2_HPROUT_VOL, DEFAULT_VOL); |
1517 | /* Line2 Line Out default volume, disconnect from Output Mixer */ | 1517 | snd_soc_write(codec, LINE2L_2_HPLCOM_VOL, DEFAULT_VOL); |
1518 | snd_soc_write(codec, LINE2L_2_LLOPM_VOL, DEFAULT_VOL); | 1518 | snd_soc_write(codec, LINE2R_2_HPRCOM_VOL, DEFAULT_VOL); |
1519 | snd_soc_write(codec, LINE2R_2_RLOPM_VOL, DEFAULT_VOL); | 1519 | /* Line2 Line Out default volume, disconnect from Output Mixer */ |
1520 | snd_soc_write(codec, LINE2L_2_LLOPM_VOL, DEFAULT_VOL); | ||
1521 | snd_soc_write(codec, LINE2R_2_RLOPM_VOL, DEFAULT_VOL); | ||
1522 | } | ||
1520 | 1523 | ||
1521 | switch (aic3x->model) { | 1524 | switch (aic3x->model) { |
1522 | case AIC3X_MODEL_3X: | 1525 | case AIC3X_MODEL_3X: |
diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c index 581ec1502228..e3c34bdc2772 100644 --- a/sound/soc/codecs/wm0010.c +++ b/sound/soc/codecs/wm0010.c | |||
@@ -998,7 +998,6 @@ static int wm0010_spi_remove(struct spi_device *spi) | |||
998 | static struct spi_driver wm0010_spi_driver = { | 998 | static struct spi_driver wm0010_spi_driver = { |
999 | .driver = { | 999 | .driver = { |
1000 | .name = "wm0010", | 1000 | .name = "wm0010", |
1001 | .owner = THIS_MODULE, | ||
1002 | }, | 1001 | }, |
1003 | .probe = wm0010_spi_probe, | 1002 | .probe = wm0010_spi_probe, |
1004 | .remove = wm0010_spi_remove, | 1003 | .remove = wm0010_spi_remove, |
diff --git a/sound/soc/codecs/wm8510.c b/sound/soc/codecs/wm8510.c index b098a83a44d8..99e40e629cca 100644 --- a/sound/soc/codecs/wm8510.c +++ b/sound/soc/codecs/wm8510.c | |||
@@ -644,7 +644,6 @@ static int wm8510_spi_remove(struct spi_device *spi) | |||
644 | static struct spi_driver wm8510_spi_driver = { | 644 | static struct spi_driver wm8510_spi_driver = { |
645 | .driver = { | 645 | .driver = { |
646 | .name = "wm8510", | 646 | .name = "wm8510", |
647 | .owner = THIS_MODULE, | ||
648 | .of_match_table = wm8510_of_match, | 647 | .of_match_table = wm8510_of_match, |
649 | }, | 648 | }, |
650 | .probe = wm8510_spi_probe, | 649 | .probe = wm8510_spi_probe, |
diff --git a/sound/soc/codecs/wm8711.c b/sound/soc/codecs/wm8711.c index 44b9e0ae7451..c759ec068e97 100644 --- a/sound/soc/codecs/wm8711.c +++ b/sound/soc/codecs/wm8711.c | |||
@@ -431,7 +431,6 @@ static int wm8711_spi_remove(struct spi_device *spi) | |||
431 | static struct spi_driver wm8711_spi_driver = { | 431 | static struct spi_driver wm8711_spi_driver = { |
432 | .driver = { | 432 | .driver = { |
433 | .name = "wm8711", | 433 | .name = "wm8711", |
434 | .owner = THIS_MODULE, | ||
435 | .of_match_table = wm8711_of_match, | 434 | .of_match_table = wm8711_of_match, |
436 | }, | 435 | }, |
437 | .probe = wm8711_spi_probe, | 436 | .probe = wm8711_spi_probe, |
diff --git a/sound/soc/codecs/wm8728.c b/sound/soc/codecs/wm8728.c index cd7b02413ccf..1564e6926527 100644 --- a/sound/soc/codecs/wm8728.c +++ b/sound/soc/codecs/wm8728.c | |||
@@ -272,7 +272,6 @@ static int wm8728_spi_remove(struct spi_device *spi) | |||
272 | static struct spi_driver wm8728_spi_driver = { | 272 | static struct spi_driver wm8728_spi_driver = { |
273 | .driver = { | 273 | .driver = { |
274 | .name = "wm8728", | 274 | .name = "wm8728", |
275 | .owner = THIS_MODULE, | ||
276 | .of_match_table = wm8728_of_match, | 275 | .of_match_table = wm8728_of_match, |
277 | }, | 276 | }, |
278 | .probe = wm8728_spi_probe, | 277 | .probe = wm8728_spi_probe, |
diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c index ace8645245a0..15bd547e3c84 100644 --- a/sound/soc/codecs/wm8731.c +++ b/sound/soc/codecs/wm8731.c | |||
@@ -718,7 +718,6 @@ static int wm8731_spi_remove(struct spi_device *spi) | |||
718 | static struct spi_driver wm8731_spi_driver = { | 718 | static struct spi_driver wm8731_spi_driver = { |
719 | .driver = { | 719 | .driver = { |
720 | .name = "wm8731", | 720 | .name = "wm8731", |
721 | .owner = THIS_MODULE, | ||
722 | .of_match_table = wm8731_of_match, | 721 | .of_match_table = wm8731_of_match, |
723 | }, | 722 | }, |
724 | .probe = wm8731_spi_probe, | 723 | .probe = wm8731_spi_probe, |
diff --git a/sound/soc/codecs/wm8737.c b/sound/soc/codecs/wm8737.c index e4a03d98aed4..e7807601e675 100644 --- a/sound/soc/codecs/wm8737.c +++ b/sound/soc/codecs/wm8737.c | |||
@@ -707,7 +707,6 @@ static int wm8737_spi_remove(struct spi_device *spi) | |||
707 | static struct spi_driver wm8737_spi_driver = { | 707 | static struct spi_driver wm8737_spi_driver = { |
708 | .driver = { | 708 | .driver = { |
709 | .name = "wm8737", | 709 | .name = "wm8737", |
710 | .owner = THIS_MODULE, | ||
711 | .of_match_table = wm8737_of_match, | 710 | .of_match_table = wm8737_of_match, |
712 | }, | 711 | }, |
713 | .probe = wm8737_spi_probe, | 712 | .probe = wm8737_spi_probe, |
diff --git a/sound/soc/codecs/wm8741.c b/sound/soc/codecs/wm8741.c index de42c0388772..36ef91fe0511 100644 --- a/sound/soc/codecs/wm8741.c +++ b/sound/soc/codecs/wm8741.c | |||
@@ -657,7 +657,6 @@ static int wm8741_spi_remove(struct spi_device *spi) | |||
657 | static struct spi_driver wm8741_spi_driver = { | 657 | static struct spi_driver wm8741_spi_driver = { |
658 | .driver = { | 658 | .driver = { |
659 | .name = "wm8741", | 659 | .name = "wm8741", |
660 | .owner = THIS_MODULE, | ||
661 | .of_match_table = wm8741_of_match, | 660 | .of_match_table = wm8741_of_match, |
662 | }, | 661 | }, |
663 | .probe = wm8741_spi_probe, | 662 | .probe = wm8741_spi_probe, |
diff --git a/sound/soc/codecs/wm8750.c b/sound/soc/codecs/wm8750.c index 873933a7966f..bd9dcd2161bc 100644 --- a/sound/soc/codecs/wm8750.c +++ b/sound/soc/codecs/wm8750.c | |||
@@ -777,7 +777,6 @@ MODULE_DEVICE_TABLE(spi, wm8750_spi_ids); | |||
777 | static struct spi_driver wm8750_spi_driver = { | 777 | static struct spi_driver wm8750_spi_driver = { |
778 | .driver = { | 778 | .driver = { |
779 | .name = "wm8750", | 779 | .name = "wm8750", |
780 | .owner = THIS_MODULE, | ||
781 | .of_match_table = wm8750_of_match, | 780 | .of_match_table = wm8750_of_match, |
782 | }, | 781 | }, |
783 | .id_table = wm8750_spi_ids, | 782 | .id_table = wm8750_spi_ids, |
diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c index a801c6d75436..61299ca372ff 100644 --- a/sound/soc/codecs/wm8753.c +++ b/sound/soc/codecs/wm8753.c | |||
@@ -1549,7 +1549,6 @@ static int wm8753_spi_remove(struct spi_device *spi) | |||
1549 | static struct spi_driver wm8753_spi_driver = { | 1549 | static struct spi_driver wm8753_spi_driver = { |
1550 | .driver = { | 1550 | .driver = { |
1551 | .name = "wm8753", | 1551 | .name = "wm8753", |
1552 | .owner = THIS_MODULE, | ||
1553 | .of_match_table = wm8753_of_match, | 1552 | .of_match_table = wm8753_of_match, |
1554 | }, | 1553 | }, |
1555 | .probe = wm8753_spi_probe, | 1554 | .probe = wm8753_spi_probe, |
diff --git a/sound/soc/codecs/wm8770.c b/sound/soc/codecs/wm8770.c index 66c1f151071d..df6178464b00 100644 --- a/sound/soc/codecs/wm8770.c +++ b/sound/soc/codecs/wm8770.c | |||
@@ -703,7 +703,6 @@ static int wm8770_spi_remove(struct spi_device *spi) | |||
703 | static struct spi_driver wm8770_spi_driver = { | 703 | static struct spi_driver wm8770_spi_driver = { |
704 | .driver = { | 704 | .driver = { |
705 | .name = "wm8770", | 705 | .name = "wm8770", |
706 | .owner = THIS_MODULE, | ||
707 | .of_match_table = wm8770_of_match, | 706 | .of_match_table = wm8770_of_match, |
708 | }, | 707 | }, |
709 | .probe = wm8770_spi_probe, | 708 | .probe = wm8770_spi_probe, |
diff --git a/sound/soc/codecs/wm8776.c b/sound/soc/codecs/wm8776.c index 183c9a4966c5..5af44f9a8cf2 100644 --- a/sound/soc/codecs/wm8776.c +++ b/sound/soc/codecs/wm8776.c | |||
@@ -488,7 +488,6 @@ static int wm8776_spi_remove(struct spi_device *spi) | |||
488 | static struct spi_driver wm8776_spi_driver = { | 488 | static struct spi_driver wm8776_spi_driver = { |
489 | .driver = { | 489 | .driver = { |
490 | .name = "wm8776", | 490 | .name = "wm8776", |
491 | .owner = THIS_MODULE, | ||
492 | .of_match_table = wm8776_of_match, | 491 | .of_match_table = wm8776_of_match, |
493 | }, | 492 | }, |
494 | .probe = wm8776_spi_probe, | 493 | .probe = wm8776_spi_probe, |
diff --git a/sound/soc/codecs/wm8804-spi.c b/sound/soc/codecs/wm8804-spi.c index 407a3cf391e5..9998c78a2325 100644 --- a/sound/soc/codecs/wm8804-spi.c +++ b/sound/soc/codecs/wm8804-spi.c | |||
@@ -42,7 +42,6 @@ MODULE_DEVICE_TABLE(of, wm8804_of_match); | |||
42 | static struct spi_driver wm8804_spi_driver = { | 42 | static struct spi_driver wm8804_spi_driver = { |
43 | .driver = { | 43 | .driver = { |
44 | .name = "wm8804", | 44 | .name = "wm8804", |
45 | .owner = THIS_MODULE, | ||
46 | .pm = &wm8804_pm, | 45 | .pm = &wm8804_pm, |
47 | .of_match_table = wm8804_of_match, | 46 | .of_match_table = wm8804_of_match, |
48 | }, | 47 | }, |
diff --git a/sound/soc/codecs/wm8900.c b/sound/soc/codecs/wm8900.c index 98900aa66dc3..5d8dca88d612 100644 --- a/sound/soc/codecs/wm8900.c +++ b/sound/soc/codecs/wm8900.c | |||
@@ -1266,7 +1266,6 @@ static int wm8900_spi_remove(struct spi_device *spi) | |||
1266 | static struct spi_driver wm8900_spi_driver = { | 1266 | static struct spi_driver wm8900_spi_driver = { |
1267 | .driver = { | 1267 | .driver = { |
1268 | .name = "wm8900", | 1268 | .name = "wm8900", |
1269 | .owner = THIS_MODULE, | ||
1270 | }, | 1269 | }, |
1271 | .probe = wm8900_spi_probe, | 1270 | .probe = wm8900_spi_probe, |
1272 | .remove = wm8900_spi_remove, | 1271 | .remove = wm8900_spi_remove, |
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c index 293e47a6ff59..39ebd7bf4f53 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c | |||
@@ -3760,7 +3760,7 @@ static int wm8962_i2c_probe(struct i2c_client *i2c, | |||
3760 | ret = snd_soc_register_codec(&i2c->dev, | 3760 | ret = snd_soc_register_codec(&i2c->dev, |
3761 | &soc_codec_dev_wm8962, &wm8962_dai, 1); | 3761 | &soc_codec_dev_wm8962, &wm8962_dai, 1); |
3762 | if (ret < 0) | 3762 | if (ret < 0) |
3763 | goto err_enable; | 3763 | goto err_pm_runtime; |
3764 | 3764 | ||
3765 | regcache_cache_only(wm8962->regmap, true); | 3765 | regcache_cache_only(wm8962->regmap, true); |
3766 | 3766 | ||
@@ -3769,6 +3769,8 @@ static int wm8962_i2c_probe(struct i2c_client *i2c, | |||
3769 | 3769 | ||
3770 | return 0; | 3770 | return 0; |
3771 | 3771 | ||
3772 | err_pm_runtime: | ||
3773 | pm_runtime_disable(&i2c->dev); | ||
3772 | err_enable: | 3774 | err_enable: |
3773 | regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies), wm8962->supplies); | 3775 | regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies), wm8962->supplies); |
3774 | err: | 3776 | err: |
@@ -3778,6 +3780,7 @@ err: | |||
3778 | static int wm8962_i2c_remove(struct i2c_client *client) | 3780 | static int wm8962_i2c_remove(struct i2c_client *client) |
3779 | { | 3781 | { |
3780 | snd_soc_unregister_codec(&client->dev); | 3782 | snd_soc_unregister_codec(&client->dev); |
3783 | pm_runtime_disable(&client->dev); | ||
3781 | return 0; | 3784 | return 0; |
3782 | } | 3785 | } |
3783 | 3786 | ||
@@ -3805,6 +3808,8 @@ static int wm8962_runtime_resume(struct device *dev) | |||
3805 | 3808 | ||
3806 | wm8962_reset(wm8962); | 3809 | wm8962_reset(wm8962); |
3807 | 3810 | ||
3811 | regcache_mark_dirty(wm8962->regmap); | ||
3812 | |||
3808 | /* SYSCLK defaults to on; make sure it is off so we can safely | 3813 | /* SYSCLK defaults to on; make sure it is off so we can safely |
3809 | * write to registers if the device is declocked. | 3814 | * write to registers if the device is declocked. |
3810 | */ | 3815 | */ |
diff --git a/sound/soc/codecs/wm8983.c b/sound/soc/codecs/wm8983.c index f3193fb751cc..7350ff654bbf 100644 --- a/sound/soc/codecs/wm8983.c +++ b/sound/soc/codecs/wm8983.c | |||
@@ -1033,7 +1033,6 @@ static int wm8983_spi_remove(struct spi_device *spi) | |||
1033 | static struct spi_driver wm8983_spi_driver = { | 1033 | static struct spi_driver wm8983_spi_driver = { |
1034 | .driver = { | 1034 | .driver = { |
1035 | .name = "wm8983", | 1035 | .name = "wm8983", |
1036 | .owner = THIS_MODULE, | ||
1037 | }, | 1036 | }, |
1038 | .probe = wm8983_spi_probe, | 1037 | .probe = wm8983_spi_probe, |
1039 | .remove = wm8983_spi_remove | 1038 | .remove = wm8983_spi_remove |
diff --git a/sound/soc/codecs/wm8985.c b/sound/soc/codecs/wm8985.c index 9c3c1517a4f3..9918152a03c7 100644 --- a/sound/soc/codecs/wm8985.c +++ b/sound/soc/codecs/wm8985.c | |||
@@ -1096,7 +1096,6 @@ static int wm8985_spi_remove(struct spi_device *spi) | |||
1096 | static struct spi_driver wm8985_spi_driver = { | 1096 | static struct spi_driver wm8985_spi_driver = { |
1097 | .driver = { | 1097 | .driver = { |
1098 | .name = "wm8985", | 1098 | .name = "wm8985", |
1099 | .owner = THIS_MODULE, | ||
1100 | }, | 1099 | }, |
1101 | .probe = wm8985_spi_probe, | 1100 | .probe = wm8985_spi_probe, |
1102 | .remove = wm8985_spi_remove | 1101 | .remove = wm8985_spi_remove |
diff --git a/sound/soc/codecs/wm8988.c b/sound/soc/codecs/wm8988.c index c88ce99ce9e1..895721a256f0 100644 --- a/sound/soc/codecs/wm8988.c +++ b/sound/soc/codecs/wm8988.c | |||
@@ -871,7 +871,6 @@ static int wm8988_spi_remove(struct spi_device *spi) | |||
871 | static struct spi_driver wm8988_spi_driver = { | 871 | static struct spi_driver wm8988_spi_driver = { |
872 | .driver = { | 872 | .driver = { |
873 | .name = "wm8988", | 873 | .name = "wm8988", |
874 | .owner = THIS_MODULE, | ||
875 | }, | 874 | }, |
876 | .probe = wm8988_spi_probe, | 875 | .probe = wm8988_spi_probe, |
877 | .remove = wm8988_spi_remove, | 876 | .remove = wm8988_spi_remove, |
diff --git a/sound/soc/codecs/wm8995.c b/sound/soc/codecs/wm8995.c index eda52a96c1fa..24500bafb0a8 100644 --- a/sound/soc/codecs/wm8995.c +++ b/sound/soc/codecs/wm8995.c | |||
@@ -2246,7 +2246,6 @@ static int wm8995_spi_remove(struct spi_device *spi) | |||
2246 | static struct spi_driver wm8995_spi_driver = { | 2246 | static struct spi_driver wm8995_spi_driver = { |
2247 | .driver = { | 2247 | .driver = { |
2248 | .name = "wm8995", | 2248 | .name = "wm8995", |
2249 | .owner = THIS_MODULE, | ||
2250 | }, | 2249 | }, |
2251 | .probe = wm8995_spi_probe, | 2250 | .probe = wm8995_spi_probe, |
2252 | .remove = wm8995_spi_remove | 2251 | .remove = wm8995_spi_remove |
diff --git a/sound/soc/codecs/wm_adsp.h b/sound/soc/codecs/wm_adsp.h index 579a6350fb01..2d117cf0e953 100644 --- a/sound/soc/codecs/wm_adsp.h +++ b/sound/soc/codecs/wm_adsp.h | |||
@@ -53,7 +53,7 @@ struct wm_adsp { | |||
53 | 53 | ||
54 | int fw; | 54 | int fw; |
55 | int fw_ver; | 55 | int fw_ver; |
56 | u32 running; | 56 | bool running; |
57 | 57 | ||
58 | struct list_head ctl_list; | 58 | struct list_head ctl_list; |
59 | 59 | ||
diff --git a/sound/soc/dwc/designware_i2s.c b/sound/soc/dwc/designware_i2s.c index a3e97b46b64e..ba34252b7bba 100644 --- a/sound/soc/dwc/designware_i2s.c +++ b/sound/soc/dwc/designware_i2s.c | |||
@@ -131,23 +131,32 @@ static inline void i2s_clear_irqs(struct dw_i2s_dev *dev, u32 stream) | |||
131 | 131 | ||
132 | if (stream == SNDRV_PCM_STREAM_PLAYBACK) { | 132 | if (stream == SNDRV_PCM_STREAM_PLAYBACK) { |
133 | for (i = 0; i < 4; i++) | 133 | for (i = 0; i < 4; i++) |
134 | i2s_write_reg(dev->i2s_base, TOR(i), 0); | 134 | i2s_read_reg(dev->i2s_base, TOR(i)); |
135 | } else { | 135 | } else { |
136 | for (i = 0; i < 4; i++) | 136 | for (i = 0; i < 4; i++) |
137 | i2s_write_reg(dev->i2s_base, ROR(i), 0); | 137 | i2s_read_reg(dev->i2s_base, ROR(i)); |
138 | } | 138 | } |
139 | } | 139 | } |
140 | 140 | ||
141 | static void i2s_start(struct dw_i2s_dev *dev, | 141 | static void i2s_start(struct dw_i2s_dev *dev, |
142 | struct snd_pcm_substream *substream) | 142 | struct snd_pcm_substream *substream) |
143 | { | 143 | { |
144 | 144 | u32 i, irq; | |
145 | i2s_write_reg(dev->i2s_base, IER, 1); | 145 | i2s_write_reg(dev->i2s_base, IER, 1); |
146 | 146 | ||
147 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) | 147 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { |
148 | for (i = 0; i < 4; i++) { | ||
149 | irq = i2s_read_reg(dev->i2s_base, IMR(i)); | ||
150 | i2s_write_reg(dev->i2s_base, IMR(i), irq & ~0x30); | ||
151 | } | ||
148 | i2s_write_reg(dev->i2s_base, ITER, 1); | 152 | i2s_write_reg(dev->i2s_base, ITER, 1); |
149 | else | 153 | } else { |
154 | for (i = 0; i < 4; i++) { | ||
155 | irq = i2s_read_reg(dev->i2s_base, IMR(i)); | ||
156 | i2s_write_reg(dev->i2s_base, IMR(i), irq & ~0x03); | ||
157 | } | ||
150 | i2s_write_reg(dev->i2s_base, IRER, 1); | 158 | i2s_write_reg(dev->i2s_base, IRER, 1); |
159 | } | ||
151 | 160 | ||
152 | i2s_write_reg(dev->i2s_base, CER, 1); | 161 | i2s_write_reg(dev->i2s_base, CER, 1); |
153 | } | 162 | } |
diff --git a/sound/soc/fsl/imx-ssi.c b/sound/soc/fsl/imx-ssi.c index 48b2d24dd1f0..b95132e2f9dc 100644 --- a/sound/soc/fsl/imx-ssi.c +++ b/sound/soc/fsl/imx-ssi.c | |||
@@ -95,7 +95,8 @@ static int imx_ssi_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt) | |||
95 | switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { | 95 | switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { |
96 | case SND_SOC_DAIFMT_I2S: | 96 | case SND_SOC_DAIFMT_I2S: |
97 | /* data on rising edge of bclk, frame low 1clk before data */ | 97 | /* data on rising edge of bclk, frame low 1clk before data */ |
98 | strcr |= SSI_STCR_TFSI | SSI_STCR_TEFS | SSI_STCR_TXBIT0; | 98 | strcr |= SSI_STCR_TXBIT0 | SSI_STCR_TSCKP | SSI_STCR_TFSI | |
99 | SSI_STCR_TEFS; | ||
99 | scr |= SSI_SCR_NET; | 100 | scr |= SSI_SCR_NET; |
100 | if (ssi->flags & IMX_SSI_USE_I2S_SLAVE) { | 101 | if (ssi->flags & IMX_SSI_USE_I2S_SLAVE) { |
101 | scr &= ~SSI_I2S_MODE_MASK; | 102 | scr &= ~SSI_I2S_MODE_MASK; |
@@ -104,33 +105,31 @@ static int imx_ssi_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt) | |||
104 | break; | 105 | break; |
105 | case SND_SOC_DAIFMT_LEFT_J: | 106 | case SND_SOC_DAIFMT_LEFT_J: |
106 | /* data on rising edge of bclk, frame high with data */ | 107 | /* data on rising edge of bclk, frame high with data */ |
107 | strcr |= SSI_STCR_TXBIT0; | 108 | strcr |= SSI_STCR_TXBIT0 | SSI_STCR_TSCKP; |
108 | break; | 109 | break; |
109 | case SND_SOC_DAIFMT_DSP_B: | 110 | case SND_SOC_DAIFMT_DSP_B: |
110 | /* data on rising edge of bclk, frame high with data */ | 111 | /* data on rising edge of bclk, frame high with data */ |
111 | strcr |= SSI_STCR_TFSL | SSI_STCR_TXBIT0; | 112 | strcr |= SSI_STCR_TXBIT0 | SSI_STCR_TSCKP | SSI_STCR_TFSL; |
112 | break; | 113 | break; |
113 | case SND_SOC_DAIFMT_DSP_A: | 114 | case SND_SOC_DAIFMT_DSP_A: |
114 | /* data on rising edge of bclk, frame high 1clk before data */ | 115 | /* data on rising edge of bclk, frame high 1clk before data */ |
115 | strcr |= SSI_STCR_TFSL | SSI_STCR_TXBIT0 | SSI_STCR_TEFS; | 116 | strcr |= SSI_STCR_TXBIT0 | SSI_STCR_TSCKP | SSI_STCR_TFSL | |
117 | SSI_STCR_TEFS; | ||
116 | break; | 118 | break; |
117 | } | 119 | } |
118 | 120 | ||
119 | /* DAI clock inversion */ | 121 | /* DAI clock inversion */ |
120 | switch (fmt & SND_SOC_DAIFMT_INV_MASK) { | 122 | switch (fmt & SND_SOC_DAIFMT_INV_MASK) { |
121 | case SND_SOC_DAIFMT_IB_IF: | 123 | case SND_SOC_DAIFMT_IB_IF: |
122 | strcr |= SSI_STCR_TFSI; | 124 | strcr ^= SSI_STCR_TSCKP | SSI_STCR_TFSI; |
123 | strcr &= ~SSI_STCR_TSCKP; | ||
124 | break; | 125 | break; |
125 | case SND_SOC_DAIFMT_IB_NF: | 126 | case SND_SOC_DAIFMT_IB_NF: |
126 | strcr &= ~(SSI_STCR_TSCKP | SSI_STCR_TFSI); | 127 | strcr ^= SSI_STCR_TSCKP; |
127 | break; | 128 | break; |
128 | case SND_SOC_DAIFMT_NB_IF: | 129 | case SND_SOC_DAIFMT_NB_IF: |
129 | strcr |= SSI_STCR_TFSI | SSI_STCR_TSCKP; | 130 | strcr ^= SSI_STCR_TFSI; |
130 | break; | 131 | break; |
131 | case SND_SOC_DAIFMT_NB_NF: | 132 | case SND_SOC_DAIFMT_NB_NF: |
132 | strcr &= ~SSI_STCR_TFSI; | ||
133 | strcr |= SSI_STCR_TSCKP; | ||
134 | break; | 133 | break; |
135 | } | 134 | } |
136 | 135 | ||
diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c index 100d92b5b77e..05977ae1ff2a 100644 --- a/sound/soc/soc-ops.c +++ b/sound/soc/soc-ops.c | |||
@@ -207,6 +207,34 @@ int snd_soc_info_volsw(struct snd_kcontrol *kcontrol, | |||
207 | EXPORT_SYMBOL_GPL(snd_soc_info_volsw); | 207 | EXPORT_SYMBOL_GPL(snd_soc_info_volsw); |
208 | 208 | ||
209 | /** | 209 | /** |
210 | * snd_soc_info_volsw_sx - Mixer info callback for SX TLV controls | ||
211 | * @kcontrol: mixer control | ||
212 | * @uinfo: control element information | ||
213 | * | ||
214 | * Callback to provide information about a single mixer control, or a double | ||
215 | * mixer control that spans 2 registers of the SX TLV type. SX TLV controls | ||
216 | * have a range that represents both positive and negative values either side | ||
217 | * of zero but without a sign bit. | ||
218 | * | ||
219 | * Returns 0 for success. | ||
220 | */ | ||
221 | int snd_soc_info_volsw_sx(struct snd_kcontrol *kcontrol, | ||
222 | struct snd_ctl_elem_info *uinfo) | ||
223 | { | ||
224 | struct soc_mixer_control *mc = | ||
225 | (struct soc_mixer_control *)kcontrol->private_value; | ||
226 | |||
227 | snd_soc_info_volsw(kcontrol, uinfo); | ||
228 | /* Max represents the number of levels in an SX control not the | ||
229 | * maximum value, so add the minimum value back on | ||
230 | */ | ||
231 | uinfo->value.integer.max += mc->min; | ||
232 | |||
233 | return 0; | ||
234 | } | ||
235 | EXPORT_SYMBOL_GPL(snd_soc_info_volsw_sx); | ||
236 | |||
237 | /** | ||
210 | * snd_soc_get_volsw - single mixer get callback | 238 | * snd_soc_get_volsw - single mixer get callback |
211 | * @kcontrol: mixer control | 239 | * @kcontrol: mixer control |
212 | * @ucontrol: control element information | 240 | * @ucontrol: control element information |
diff --git a/sound/synth/emux/emux_oss.c b/sound/synth/emux/emux_oss.c index 82e350e9501c..ac75816ada7c 100644 --- a/sound/synth/emux/emux_oss.c +++ b/sound/synth/emux/emux_oss.c | |||
@@ -69,7 +69,8 @@ snd_emux_init_seq_oss(struct snd_emux *emu) | |||
69 | struct snd_seq_oss_reg *arg; | 69 | struct snd_seq_oss_reg *arg; |
70 | struct snd_seq_device *dev; | 70 | struct snd_seq_device *dev; |
71 | 71 | ||
72 | if (snd_seq_device_new(emu->card, 0, SNDRV_SEQ_DEV_ID_OSS, | 72 | /* using device#1 here for avoiding conflicts with OPL3 */ |
73 | if (snd_seq_device_new(emu->card, 1, SNDRV_SEQ_DEV_ID_OSS, | ||
73 | sizeof(struct snd_seq_oss_reg), &dev) < 0) | 74 | sizeof(struct snd_seq_oss_reg), &dev) < 0) |
74 | return; | 75 | return; |
75 | 76 | ||