~ubuntu-branches/ubuntu/quantal/linux-lowlatency/quantal

« back to all changes in this revision

Viewing changes to sound/pci/hda/patch_conexant.c

  • Committer: Package Import Robot
  • Author(s): Andy Whitcroft, Andy Whitcroft, Ubuntu: 3.5.0-16.24
  • Date: 2012-09-28 09:58:29 UTC
  • Revision ID: package-import@ubuntu.com-20120928095829-9hd4d67ut21hasqe
Tags: 3.5.0-16.15
[ Andy Whitcroft ]

* rebase to Ubuntu-3.5.0-16.24

[ Ubuntu: 3.5.0-16.24 ]

* SAUCE: ata_piix: add a disable_driver option
  - LP: #994870
* (pre-stable) drm/radeon: make 64bit fences more robust v3 (3.5 stable)
  - LP: #1029582
* SAUCE: ALSA: hda - use both input paths on Conexant auto parser
  - LP: #1037642
* SAUCE: ALSA: hda - fix control names for multiple speaker out on
  IDT/STAC
  - LP: #1046734
* SAUCE: ALSA: hda/via - don't report presence on HPs with no presence
  support
  - LP: #1052499
* SAUCE: ext4: fix crash when accessing /proc/mounts concurrently
  - LP: #1053019
* SAUCE: ALSA: hda/realtek - Fix detection of ALC271X codec
  - LP: #1006690
* SAUCE: input: Cypress PS/2 Trackpad fix disabling tap-to-click
  - LP: #1048816
* [Config] Disable CONFIG_DRM_AST
  - LP: #1053290
* [Config] Disable the Cirrus QEMU drm driver
  - LP: #1038055
* Revert "KVM: VMX: Fix KVM_SET_SREGS with big real mode segments"
  - LP: #1045027
* x86, efi: Handover Protocol
* drm/i915: HDMI - Clear Audio Enable bit for Hot Plug
  - LP: #1056729
* UBUNTU SAUCE: apparmor: fix IRQ stack overflow
  - LP: #1056078
* drm/nouveau: fix booting with plymouth + dumb support
  - LP: #1043518
* ALSA: hda - Add DeviceID for Haswell HDA
  - LP: #1057698
* ALSA: hda - add Haswell HDMI codec id
  - LP: #1057698
* ALSA: hda - Fix driver type of Haswell controller to AZX_DRIVER_SCH
  - LP: #1057698
* ALSA: hda_intel: Add Device IDs for Intel Lynx Point-LP PCH
  - LP: #1011438, #1057698
* SAUCE: ALSA: hda - Add another pci id for Haswell board
  - LP: #1057698
* SAUCE: drm/i915: Explicitly disable RC6 for certain models
  - LP: #1002170, #1008867

Show diffs side-by-side

added added

removed removed

Lines of Context:
3545
3545
                                     hda_nid_t pin, hda_nid_t *srcp,
3546
3546
                                     bool do_select, int depth)
3547
3547
{
 
3548
        struct conexant_spec *spec = codec->spec;
3548
3549
        hda_nid_t conn[HDA_MAX_NUM_INPUTS];
3549
 
        int i, nums;
 
3550
        int startidx, i, nums;
3550
3551
 
3551
3552
        switch (get_wcaps_type(get_wcaps(codec, mux))) {
3552
3553
        case AC_WID_AUD_IN:
3570
3571
        depth++;
3571
3572
        if (depth == 2)
3572
3573
                return -1;
 
3574
 
 
3575
        /* Try to rotate around connections to avoid one boost controlling
 
3576
           another input path as well */
 
3577
        startidx = 0;
 
3578
        for (i = 0; i < spec->private_imux.num_items; i++)
 
3579
                if (spec->imux_info[i].pin == pin) {
 
3580
                        startidx = i;
 
3581
                        break;
 
3582
                }
 
3583
 
3573
3584
        for (i = 0; i < nums; i++) {
3574
 
                int ret  = __select_input_connection(codec, conn[i], pin, srcp,
 
3585
                int j = (i + startidx) % nums;
 
3586
                int ret  = __select_input_connection(codec, conn[j], pin, srcp,
3575
3587
                                                     do_select, depth);
3576
3588
                if (ret >= 0) {
3577
3589
                        if (do_select)
3578
3590
                                snd_hda_codec_write(codec, mux, 0,
3579
 
                                                    AC_VERB_SET_CONNECT_SEL, i);
3580
 
                        return i;
 
3591
                                                    AC_VERB_SET_CONNECT_SEL, j);
 
3592
                        return j;
3581
3593
                }
3582
3594
        }
3583
3595
        return -1;