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

Merge branch 'for-linus' into for-next

Back-merged for refactoring beep stuff.

+167 -61
+1 -1
Documentation/sound/alsa/ALSA-Configuration.txt
··· 912 912 models depending on the codec chip. The list of available models 913 913 is found in HD-Audio-Models.txt 914 914 915 - The model name "genric" is treated as a special case. When this 915 + The model name "generic" is treated as a special case. When this 916 916 model is given, the driver uses the generic codec parser without 917 917 "codec-patch". It's sometimes good for testing and debugging. 918 918
+1 -1
Documentation/sound/alsa/seq_oss.html
··· 285 285 <H4> 286 286 7.2.4 Close Callback</H4> 287 287 The <TT>close</TT> callback is called when this device is closed by the 288 - applicaion. If any private data was allocated in open callback, it must 288 + application. If any private data was allocated in open callback, it must 289 289 be released in the close callback. The deletion of ALSA port should be 290 290 done here, too. This callback must not be NULL. 291 291 <H4>
+12 -2
sound/core/seq/oss/seq_oss_event.c
··· 285 285 static int 286 286 note_on_event(struct seq_oss_devinfo *dp, int dev, int ch, int note, int vel, struct snd_seq_event *ev) 287 287 { 288 - struct seq_oss_synthinfo *info = &dp->synths[dev]; 288 + struct seq_oss_synthinfo *info; 289 + 290 + if (!snd_seq_oss_synth_is_valid(dp, dev)) 291 + return -ENXIO; 292 + 293 + info = &dp->synths[dev]; 289 294 switch (info->arg.event_passing) { 290 295 case SNDRV_SEQ_OSS_PROCESS_EVENTS: 291 296 if (! info->ch || ch < 0 || ch >= info->nr_voices) { ··· 345 340 static int 346 341 note_off_event(struct seq_oss_devinfo *dp, int dev, int ch, int note, int vel, struct snd_seq_event *ev) 347 342 { 348 - struct seq_oss_synthinfo *info = &dp->synths[dev]; 343 + struct seq_oss_synthinfo *info; 344 + 345 + if (!snd_seq_oss_synth_is_valid(dp, dev)) 346 + return -ENXIO; 347 + 348 + info = &dp->synths[dev]; 349 349 switch (info->arg.event_passing) { 350 350 case SNDRV_SEQ_OSS_PROCESS_EVENTS: 351 351 if (! info->ch || ch < 0 || ch >= info->nr_voices) {
+4 -4
sound/core/seq/seq_timer.c
··· 290 290 tid.device = SNDRV_TIMER_GLOBAL_SYSTEM; 291 291 err = snd_timer_open(&t, str, &tid, q->queue); 292 292 } 293 - if (err < 0) { 294 - snd_printk(KERN_ERR "seq fatal error: cannot create timer (%i)\n", err); 295 - return err; 296 - } 293 + } 294 + if (err < 0) { 295 + snd_printk(KERN_ERR "seq fatal error: cannot create timer (%i)\n", err); 296 + return err; 297 297 } 298 298 t->callback = snd_seq_timer_interrupt; 299 299 t->callback_data = q;
+4 -1
sound/core/vmaster.c
··· 213 213 } 214 214 if (!changed) 215 215 return 0; 216 - return slave_put_val(slave, ucontrol); 216 + err = slave_put_val(slave, ucontrol); 217 + if (err < 0) 218 + return err; 219 + return 1; 217 220 } 218 221 219 222 static int slave_tlv_cmd(struct snd_kcontrol *kcontrol,
+6
sound/oss/sequencer.c
··· 545 545 case MIDI_PGM_CHANGE: 546 546 if (seq_mode == SEQ_2) 547 547 { 548 + if (chn > 15) 549 + break; 550 + 548 551 synth_devs[dev]->chn_info[chn].pgm_num = p1; 549 552 if ((int) dev >= num_synths) 550 553 synth_devs[dev]->set_instr(dev, chn, p1); ··· 599 596 case MIDI_PITCH_BEND: 600 597 if (seq_mode == SEQ_2) 601 598 { 599 + if (chn > 15) 600 + break; 601 + 602 602 synth_devs[dev]->chn_info[chn].bender_value = w14; 603 603 604 604 if ((int) dev < num_synths)
+2 -1
sound/pci/asihpi/asihpi.c
··· 2549 2549 2550 2550 static int snd_card_asihpi_mixer_new(struct snd_card_asihpi *asihpi) 2551 2551 { 2552 - struct snd_card *card = asihpi->card; 2552 + struct snd_card *card; 2553 2553 unsigned int idx = 0; 2554 2554 unsigned int subindex = 0; 2555 2555 int err; ··· 2557 2557 2558 2558 if (snd_BUG_ON(!asihpi)) 2559 2559 return -EINVAL; 2560 + card = asihpi->card; 2560 2561 strcpy(card->mixername, "Asihpi Mixer"); 2561 2562 2562 2563 err =
+24 -13
sound/pci/hda/hda_codec.c
··· 494 494 495 495 int snd_hda_get_num_raw_conns(struct hda_codec *codec, hda_nid_t nid) 496 496 { 497 - return get_num_conns(codec, nid) & AC_CLIST_LENGTH; 497 + return snd_hda_get_raw_connections(codec, nid, NULL, 0); 498 498 } 499 499 500 500 /** ··· 516 516 unsigned int shift, num_elems, mask; 517 517 hda_nid_t prev_nid; 518 518 int null_count = 0; 519 - 520 - if (snd_BUG_ON(!conn_list || max_conns <= 0)) 521 - return -EINVAL; 522 519 523 520 parm = get_num_conns(codec, nid); 524 521 if (!parm) ··· 542 545 AC_VERB_GET_CONNECT_LIST, 0); 543 546 if (parm == -1 && codec->bus->rirb_error) 544 547 return -EIO; 545 - conn_list[0] = parm & mask; 548 + if (conn_list) 549 + conn_list[0] = parm & mask; 546 550 return 1; 547 551 } 548 552 ··· 578 580 continue; 579 581 } 580 582 for (n = prev_nid + 1; n <= val; n++) { 581 - if (conns >= max_conns) 582 - return -ENOSPC; 583 - conn_list[conns++] = n; 583 + if (conn_list) { 584 + if (conns >= max_conns) 585 + return -ENOSPC; 586 + conn_list[conns] = n; 587 + } 588 + conns++; 584 589 } 585 590 } else { 586 - if (conns >= max_conns) 587 - return -ENOSPC; 588 - conn_list[conns++] = val; 591 + if (conn_list) { 592 + if (conns >= max_conns) 593 + return -ENOSPC; 594 + conn_list[conns] = val; 595 + } 596 + conns++; 589 597 } 590 598 prev_nid = val; 591 599 } ··· 3335 3331 return -EBUSY; 3336 3332 } 3337 3333 spdif = snd_array_new(&codec->spdif_out); 3334 + if (!spdif) 3335 + return -ENOMEM; 3338 3336 for (dig_mix = dig_mixes; dig_mix->name; dig_mix++) { 3339 3337 kctl = snd_ctl_new1(dig_mix, codec); 3340 3338 if (!kctl) ··· 3434 3428 int snd_hda_create_spdif_share_sw(struct hda_codec *codec, 3435 3429 struct hda_multi_out *mout) 3436 3430 { 3431 + struct snd_kcontrol *kctl; 3432 + 3437 3433 if (!mout->dig_out_nid) 3438 3434 return 0; 3435 + 3436 + kctl = snd_ctl_new1(&spdif_share_sw, mout); 3437 + if (!kctl) 3438 + return -ENOMEM; 3439 3439 /* ATTENTION: here mout is passed as private_data, instead of codec */ 3440 - return snd_hda_ctl_add(codec, mout->dig_out_nid, 3441 - snd_ctl_new1(&spdif_share_sw, mout)); 3440 + return snd_hda_ctl_add(codec, mout->dig_out_nid, kctl); 3442 3441 } 3443 3442 EXPORT_SYMBOL_HDA(snd_hda_create_spdif_share_sw); 3444 3443
+21 -15
sound/pci/hda/patch_ca0132.c
··· 2298 2298 hda_frame_size_words = ((sample_rate_div == 0) ? 0 : 2299 2299 (num_chans * sample_rate_mul / sample_rate_div)); 2300 2300 2301 + if (hda_frame_size_words == 0) { 2302 + snd_printdd(KERN_ERR "frmsz zero\n"); 2303 + return -EINVAL; 2304 + } 2305 + 2301 2306 buffer_size_words = min(buffer_size_words, 2302 2307 (unsigned int)(UC_RANGE(chip_addx, 1) ? 2303 2308 65536 : 32768)); ··· 2313 2308 chip_addx, hda_frame_size_words, num_chans, 2314 2309 sample_rate_mul, sample_rate_div, buffer_size_words); 2315 2310 2316 - if ((buffer_addx == NULL) || (hda_frame_size_words == 0) || 2317 - (buffer_size_words < hda_frame_size_words)) { 2311 + if (buffer_size_words < hda_frame_size_words) { 2318 2312 snd_printdd(KERN_ERR "dspxfr_one_seg:failed\n"); 2319 2313 return -EINVAL; 2320 2314 } ··· 3239 3235 struct ca0132_spec *spec = codec->spec; 3240 3236 unsigned int tmp; 3241 3237 3242 - if (!dspload_is_loaded(codec)) 3238 + if (spec->dsp_state != DSP_DOWNLOADED) 3243 3239 return 0; 3244 3240 3245 3241 /* if CrystalVoice if off, vipsource should be 0 */ ··· 4267 4263 */ 4268 4264 static void ca0132_setup_defaults(struct hda_codec *codec) 4269 4265 { 4266 + struct ca0132_spec *spec = codec->spec; 4270 4267 unsigned int tmp; 4271 4268 int num_fx; 4272 4269 int idx, i; 4273 4270 4274 - if (!dspload_is_loaded(codec)) 4271 + if (spec->dsp_state != DSP_DOWNLOADED) 4275 4272 return; 4276 4273 4277 4274 /* out, in effects + voicefx */ ··· 4352 4347 return false; 4353 4348 4354 4349 dsp_os_image = (struct dsp_image_seg *)(fw_entry->data); 4355 - dspload_image(codec, dsp_os_image, 0, 0, true, 0); 4350 + if (dspload_image(codec, dsp_os_image, 0, 0, true, 0)) { 4351 + pr_err("ca0132 dspload_image failed.\n"); 4352 + goto exit_download; 4353 + } 4354 + 4356 4355 dsp_loaded = dspload_wait_loaded(codec); 4357 4356 4357 + exit_download: 4358 4358 release_firmware(fw_entry); 4359 - 4360 4359 4361 4360 return dsp_loaded; 4362 4361 } ··· 4372 4363 #ifndef CONFIG_SND_HDA_CODEC_CA0132_DSP 4373 4364 return; /* NOP */ 4374 4365 #endif 4375 - spec->dsp_state = DSP_DOWNLOAD_INIT; 4376 4366 4377 - if (spec->dsp_state == DSP_DOWNLOAD_INIT) { 4378 - chipio_enable_clocks(codec); 4379 - spec->dsp_state = DSP_DOWNLOADING; 4380 - if (!ca0132_download_dsp_images(codec)) 4381 - spec->dsp_state = DSP_DOWNLOAD_FAILED; 4382 - else 4383 - spec->dsp_state = DSP_DOWNLOADED; 4384 - } 4367 + chipio_enable_clocks(codec); 4368 + spec->dsp_state = DSP_DOWNLOADING; 4369 + if (!ca0132_download_dsp_images(codec)) 4370 + spec->dsp_state = DSP_DOWNLOAD_FAILED; 4371 + else 4372 + spec->dsp_state = DSP_DOWNLOADED; 4385 4373 4386 4374 if (spec->dsp_state == DSP_DOWNLOADED) 4387 4375 ca0132_set_dsp_msr(codec, true);
+4
sound/pci/hda/patch_cirrus.c
··· 506 506 if (!spec) 507 507 return -ENOMEM; 508 508 509 + spec->gen.automute_hook = cs_automute; 510 + 509 511 snd_hda_pick_fixup(codec, cs420x_models, cs420x_fixup_tbl, 510 512 cs420x_fixups); 511 513 snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); ··· 894 892 spec = cs_alloc_spec(codec, CS4210_VENDOR_NID); 895 893 if (!spec) 896 894 return -ENOMEM; 895 + 896 + spec->gen.automute_hook = cs_automute; 897 897 898 898 snd_hda_pick_fixup(codec, cs421x_models, cs421x_fixup_tbl, 899 899 cs421x_fixups);
+11 -5
sound/pci/hda/patch_conexant.c
··· 1142 1142 } 1143 1143 1144 1144 if (spec->beep_amp) 1145 - snd_hda_attach_beep_device(codec, spec->beep_amp); 1145 + snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); 1146 1146 1147 1147 return 0; 1148 1148 } ··· 1921 1921 } 1922 1922 1923 1923 if (spec->beep_amp) 1924 - snd_hda_attach_beep_device(codec, spec->beep_amp); 1924 + snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); 1925 1925 1926 1926 return 0; 1927 1927 } ··· 3099 3099 } 3100 3100 3101 3101 if (spec->beep_amp) 3102 - snd_hda_attach_beep_device(codec, spec->beep_amp); 3102 + snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); 3103 3103 3104 3104 return 0; 3105 3105 } ··· 3191 3191 return 0; 3192 3192 } 3193 3193 3194 + static void cx_auto_free(struct hda_codec *codec) 3195 + { 3196 + snd_hda_detach_beep_device(codec); 3197 + snd_hda_gen_free(codec); 3198 + } 3199 + 3194 3200 static const struct hda_codec_ops cx_auto_patch_ops = { 3195 3201 .build_controls = cx_auto_build_controls, 3196 3202 .build_pcms = snd_hda_gen_build_pcms, 3197 3203 .init = snd_hda_gen_init, 3198 - .free = snd_hda_gen_free, 3204 + .free = cx_auto_free, 3199 3205 .unsol_event = snd_hda_jack_unsol_event, 3200 3206 #ifdef CONFIG_PM 3201 3207 .check_power_status = snd_hda_gen_check_power_status, ··· 3396 3390 3397 3391 codec->patch_ops = cx_auto_patch_ops; 3398 3392 if (spec->beep_amp) 3399 - snd_hda_attach_beep_device(codec, spec->beep_amp); 3393 + snd_hda_attach_beep_device(codec, get_amp_nid_(spec->beep_amp)); 3400 3394 3401 3395 /* Some laptops with Conexant chips show stalls in S3 resume, 3402 3396 * which falls into the single-cmd mode.
+2
sound/pci/hda/patch_realtek.c
··· 3182 3182 case 0x10ec0290: 3183 3183 spec->codec_variant = ALC269_TYPE_ALC280; 3184 3184 break; 3185 + case 0x10ec0233: 3185 3186 case 0x10ec0282: 3186 3187 case 0x10ec0283: 3187 3188 spec->codec_variant = ALC269_TYPE_ALC282; ··· 3882 3881 */ 3883 3882 static const struct hda_codec_preset snd_hda_preset_realtek[] = { 3884 3883 { .id = 0x10ec0221, .name = "ALC221", .patch = patch_alc269 }, 3884 + { .id = 0x10ec0233, .name = "ALC233", .patch = patch_alc269 }, 3885 3885 { .id = 0x10ec0260, .name = "ALC260", .patch = patch_alc260 }, 3886 3886 { .id = 0x10ec0262, .name = "ALC262", .patch = patch_alc262 }, 3887 3887 { .id = 0x10ec0267, .name = "ALC267", .patch = patch_alc268 },
+29
sound/pci/hda/patch_sigmatel.c
··· 815 815 return 0; 816 816 } 817 817 818 + /* check whether a built-in speaker is included in parsed pins */ 819 + static bool has_builtin_speaker(struct hda_codec *codec) 820 + { 821 + struct sigmatel_spec *spec = codec->spec; 822 + hda_nid_t *nid_pin; 823 + int nids, i; 824 + 825 + if (spec->gen.autocfg.line_out_type == AUTO_PIN_SPEAKER_OUT) { 826 + nid_pin = spec->gen.autocfg.line_out_pins; 827 + nids = spec->gen.autocfg.line_outs; 828 + } else { 829 + nid_pin = spec->gen.autocfg.speaker_pins; 830 + nids = spec->gen.autocfg.speaker_outs; 831 + } 832 + 833 + for (i = 0; i < nids; i++) { 834 + unsigned int def_conf = snd_hda_codec_get_pincfg(codec, nid_pin[i]); 835 + if (snd_hda_get_input_pin_attr(def_conf) == INPUT_PIN_ATTR_INT) 836 + return true; 837 + } 838 + return false; 839 + } 840 + 818 841 /* 819 842 * PC beep controls 820 843 */ ··· 3913 3890 stac_free(codec); 3914 3891 return err; 3915 3892 } 3893 + 3894 + /* Don't GPIO-mute speakers if there are no internal speakers, because 3895 + * the GPIO might be necessary for Headphone 3896 + */ 3897 + if (spec->eapd_switch && !has_builtin_speaker(codec)) 3898 + spec->eapd_switch = 0; 3916 3899 3917 3900 codec->proc_widget_hook = stac92hd7x_proc_hook; 3918 3901
+2
sound/pci/ice1712/ice1712.c
··· 2594 2594 snd_ice1712_proc_init(ice); 2595 2595 synchronize_irq(pci->irq); 2596 2596 2597 + card->private_data = ice; 2598 + 2597 2599 err = pci_request_regions(pci, "ICE1712"); 2598 2600 if (err < 0) { 2599 2601 kfree(ice);
+13 -2
sound/soc/codecs/wm5102.c
··· 573 573 { 0x025e, 0x0112 }, 574 574 }; 575 575 576 + static const struct reg_default wm5102_sysclk_revb_patch[] = { 577 + { 0x3081, 0x08FE }, 578 + { 0x3083, 0x00ED }, 579 + { 0x30C1, 0x08FE }, 580 + { 0x30C3, 0x00ED }, 581 + }; 582 + 576 583 static int wm5102_sysclk_ev(struct snd_soc_dapm_widget *w, 577 584 struct snd_kcontrol *kcontrol, int event) 578 585 { ··· 593 586 case 0: 594 587 patch = wm5102_sysclk_reva_patch; 595 588 patch_size = ARRAY_SIZE(wm5102_sysclk_reva_patch); 589 + break; 590 + default: 591 + patch = wm5102_sysclk_revb_patch; 592 + patch_size = ARRAY_SIZE(wm5102_sysclk_revb_patch); 596 593 break; 597 594 } 598 595 ··· 766 755 767 756 SOC_DOUBLE_R("HPOUT1 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_1L, 768 757 ARIZONA_DAC_DIGITAL_VOLUME_1R, ARIZONA_OUT1L_MUTE_SHIFT, 1, 1), 769 - SOC_DOUBLE_R("OUT2 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_2L, 758 + SOC_DOUBLE_R("HPOUT2 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_2L, 770 759 ARIZONA_DAC_DIGITAL_VOLUME_2R, ARIZONA_OUT2L_MUTE_SHIFT, 1, 1), 771 760 SOC_SINGLE("EPOUT Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_3L, 772 761 ARIZONA_OUT3L_MUTE_SHIFT, 1, 1), ··· 778 767 SOC_DOUBLE_R_TLV("HPOUT1 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_1L, 779 768 ARIZONA_DAC_DIGITAL_VOLUME_1R, ARIZONA_OUT1L_VOL_SHIFT, 780 769 0xbf, 0, digital_tlv), 781 - SOC_DOUBLE_R_TLV("OUT2 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_2L, 770 + SOC_DOUBLE_R_TLV("HPOUT2 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_2L, 782 771 ARIZONA_DAC_DIGITAL_VOLUME_2R, ARIZONA_OUT2L_VOL_SHIFT, 783 772 0xbf, 0, digital_tlv), 784 773 SOC_SINGLE_TLV("EPOUT Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_3L,
+8 -8
sound/soc/codecs/wm5110.c
··· 213 213 214 214 SOC_SINGLE("HPOUT1 High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_1L, 215 215 ARIZONA_OUT1_OSR_SHIFT, 1, 0), 216 - SOC_SINGLE("OUT2 High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_2L, 216 + SOC_SINGLE("HPOUT2 High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_2L, 217 217 ARIZONA_OUT2_OSR_SHIFT, 1, 0), 218 - SOC_SINGLE("OUT3 High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_3L, 218 + SOC_SINGLE("HPOUT3 High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_3L, 219 219 ARIZONA_OUT3_OSR_SHIFT, 1, 0), 220 220 SOC_SINGLE("Speaker High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_4L, 221 221 ARIZONA_OUT4_OSR_SHIFT, 1, 0), ··· 226 226 227 227 SOC_DOUBLE_R("HPOUT1 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_1L, 228 228 ARIZONA_DAC_DIGITAL_VOLUME_1R, ARIZONA_OUT1L_MUTE_SHIFT, 1, 1), 229 - SOC_DOUBLE_R("OUT2 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_2L, 229 + SOC_DOUBLE_R("HPOUT2 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_2L, 230 230 ARIZONA_DAC_DIGITAL_VOLUME_2R, ARIZONA_OUT2L_MUTE_SHIFT, 1, 1), 231 - SOC_DOUBLE_R("OUT3 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_3L, 231 + SOC_DOUBLE_R("HPOUT3 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_3L, 232 232 ARIZONA_DAC_DIGITAL_VOLUME_3R, ARIZONA_OUT3L_MUTE_SHIFT, 1, 1), 233 233 SOC_DOUBLE_R("Speaker Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_4L, 234 234 ARIZONA_DAC_DIGITAL_VOLUME_4R, ARIZONA_OUT4L_MUTE_SHIFT, 1, 1), ··· 240 240 SOC_DOUBLE_R_TLV("HPOUT1 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_1L, 241 241 ARIZONA_DAC_DIGITAL_VOLUME_1R, ARIZONA_OUT1L_VOL_SHIFT, 242 242 0xbf, 0, digital_tlv), 243 - SOC_DOUBLE_R_TLV("OUT2 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_2L, 243 + SOC_DOUBLE_R_TLV("HPOUT2 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_2L, 244 244 ARIZONA_DAC_DIGITAL_VOLUME_2R, ARIZONA_OUT2L_VOL_SHIFT, 245 245 0xbf, 0, digital_tlv), 246 - SOC_DOUBLE_R_TLV("OUT3 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_3L, 246 + SOC_DOUBLE_R_TLV("HPOUT3 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_3L, 247 247 ARIZONA_DAC_DIGITAL_VOLUME_3R, ARIZONA_OUT3L_VOL_SHIFT, 248 248 0xbf, 0, digital_tlv), 249 249 SOC_DOUBLE_R_TLV("Speaker Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_4L, ··· 260 260 ARIZONA_OUTPUT_PATH_CONFIG_1R, 261 261 ARIZONA_OUT1L_PGA_VOL_SHIFT, 262 262 0x34, 0x40, 0, ana_tlv), 263 - SOC_DOUBLE_R_RANGE_TLV("OUT2 Volume", ARIZONA_OUTPUT_PATH_CONFIG_2L, 263 + SOC_DOUBLE_R_RANGE_TLV("HPOUT2 Volume", ARIZONA_OUTPUT_PATH_CONFIG_2L, 264 264 ARIZONA_OUTPUT_PATH_CONFIG_2R, 265 265 ARIZONA_OUT2L_PGA_VOL_SHIFT, 266 266 0x34, 0x40, 0, ana_tlv), 267 - SOC_DOUBLE_R_RANGE_TLV("OUT3 Volume", ARIZONA_OUTPUT_PATH_CONFIG_3L, 267 + SOC_DOUBLE_R_RANGE_TLV("HPOUT3 Volume", ARIZONA_OUTPUT_PATH_CONFIG_3L, 268 268 ARIZONA_OUTPUT_PATH_CONFIG_3R, 269 269 ARIZONA_OUT3L_PGA_VOL_SHIFT, 0x34, 0x40, 0, ana_tlv), 270 270
+2 -2
sound/soc/codecs/wm8350.c
··· 1301 1301 if (device_may_wakeup(wm8350->dev)) 1302 1302 pm_wakeup_event(wm8350->dev, 250); 1303 1303 1304 - schedule_delayed_work(&priv->hpl.work, 200); 1304 + schedule_delayed_work(&priv->hpl.work, msecs_to_jiffies(200)); 1305 1305 1306 1306 return IRQ_HANDLED; 1307 1307 } ··· 1318 1318 if (device_may_wakeup(wm8350->dev)) 1319 1319 pm_wakeup_event(wm8350->dev, 250); 1320 1320 1321 - schedule_delayed_work(&priv->hpr.work, 200); 1321 + schedule_delayed_work(&priv->hpr.work, msecs_to_jiffies(200)); 1322 1322 1323 1323 return IRQ_HANDLED; 1324 1324 }
+4 -4
sound/soc/codecs/wm8960.c
··· 53 53 * using 2 wire for device control, so we cache them instead. 54 54 */ 55 55 static const struct reg_default wm8960_reg_defaults[] = { 56 - { 0x0, 0x0097 }, 57 - { 0x1, 0x0097 }, 56 + { 0x0, 0x00a7 }, 57 + { 0x1, 0x00a7 }, 58 58 { 0x2, 0x0000 }, 59 59 { 0x3, 0x0000 }, 60 60 { 0x4, 0x0000 }, ··· 323 323 SND_SOC_DAPM_MIXER("Right Input Mixer", WM8960_POWER3, 4, 0, 324 324 wm8960_rin, ARRAY_SIZE(wm8960_rin)), 325 325 326 - SND_SOC_DAPM_ADC("Left ADC", "Capture", WM8960_POWER2, 3, 0), 327 - SND_SOC_DAPM_ADC("Right ADC", "Capture", WM8960_POWER2, 2, 0), 326 + SND_SOC_DAPM_ADC("Left ADC", "Capture", WM8960_POWER1, 3, 0), 327 + SND_SOC_DAPM_ADC("Right ADC", "Capture", WM8960_POWER1, 2, 0), 328 328 329 329 SND_SOC_DAPM_DAC("Left DAC", "Playback", WM8960_POWER2, 8, 0), 330 330 SND_SOC_DAPM_DAC("Right DAC", "Playback", WM8960_POWER2, 7, 0),
+1 -1
sound/soc/tegra/tegra20_i2s.h
··· 121 121 122 122 #define TEGRA20_I2S_TIMING_NON_SYM_ENABLE (1 << 12) 123 123 #define TEGRA20_I2S_TIMING_CHANNEL_BIT_COUNT_SHIFT 0 124 - #define TEGRA20_I2S_TIMING_CHANNEL_BIT_COUNT_MASK_US 0x7fff 124 + #define TEGRA20_I2S_TIMING_CHANNEL_BIT_COUNT_MASK_US 0x7ff 125 125 #define TEGRA20_I2S_TIMING_CHANNEL_BIT_COUNT_MASK (TEGRA20_I2S_TIMING_CHANNEL_BIT_COUNT_MASK_US << TEGRA20_I2S_TIMING_CHANNEL_BIT_COUNT_SHIFT) 126 126 127 127 /* Fields in TEGRA20_I2S_FIFO_SCR */
+1 -1
sound/soc/tegra/tegra30_i2s.h
··· 110 110 111 111 #define TEGRA30_I2S_TIMING_NON_SYM_ENABLE (1 << 12) 112 112 #define TEGRA30_I2S_TIMING_CHANNEL_BIT_COUNT_SHIFT 0 113 - #define TEGRA30_I2S_TIMING_CHANNEL_BIT_COUNT_MASK_US 0x7fff 113 + #define TEGRA30_I2S_TIMING_CHANNEL_BIT_COUNT_MASK_US 0x7ff 114 114 #define TEGRA30_I2S_TIMING_CHANNEL_BIT_COUNT_MASK (TEGRA30_I2S_TIMING_CHANNEL_BIT_COUNT_MASK_US << TEGRA30_I2S_TIMING_CHANNEL_BIT_COUNT_SHIFT) 115 115 116 116 /* Fields in TEGRA30_I2S_OFFSET */
+15
sound/usb/card.c
··· 244 244 usb_ifnum_to_if(dev, ctrlif)->intf_assoc; 245 245 246 246 if (!assoc) { 247 + /* 248 + * Firmware writers cannot count to three. So to find 249 + * the IAD on the NuForce UDH-100, also check the next 250 + * interface. 251 + */ 252 + struct usb_interface *iface = 253 + usb_ifnum_to_if(dev, ctrlif + 1); 254 + if (iface && 255 + iface->intf_assoc && 256 + iface->intf_assoc->bFunctionClass == USB_CLASS_AUDIO && 257 + iface->intf_assoc->bFunctionProtocol == UAC_VERSION_2) 258 + assoc = iface->intf_assoc; 259 + } 260 + 261 + if (!assoc) { 247 262 snd_printk(KERN_ERR "Audio class v2 interfaces need an interface association\n"); 248 263 return -EINVAL; 249 264 }