~ubuntu-branches/ubuntu/trusty/linux-linaro-omap/trusty

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): John Rigby, John Rigby
  • Date: 2011-09-26 10:44:23 UTC
  • Revision ID: package-import@ubuntu.com-20110926104423-57i0gl3v99b3lkfg
Tags: 3.0.0-1007.9
[ John Rigby ]

Enable crypto modules and remove crypto-modules from
exclude-module files
LP: #826021

Show diffs side-by-side

added added

removed removed

Lines of Context:
126
126
                         "{Intel, ICH10},"
127
127
                         "{Intel, PCH},"
128
128
                         "{Intel, CPT},"
 
129
                         "{Intel, PPT},"
129
130
                         "{Intel, PBG},"
130
131
                         "{Intel, SCH},"
131
132
                         "{ATI, SB450},"
390
391
 
391
392
        /* chip type specific */
392
393
        int driver_type;
 
394
        unsigned int driver_caps;
393
395
        int playback_streams;
394
396
        int playback_index_offset;
395
397
        int capture_streams;
463
465
        AZX_NUM_DRIVERS, /* keep this as last entry */
464
466
};
465
467
 
 
468
/* driver quirks (capabilities) */
 
469
/* bits 0-7 are used for indicating driver type */
 
470
#define AZX_DCAPS_NO_TCSEL      (1 << 8)        /* No Intel TCSEL bit */
 
471
#define AZX_DCAPS_NO_MSI        (1 << 9)        /* No MSI support */
 
472
#define AZX_DCAPS_ATI_SNOOP     (1 << 10)       /* ATI snoop enable */
 
473
#define AZX_DCAPS_NVIDIA_SNOOP  (1 << 11)       /* Nvidia snoop enable */
 
474
#define AZX_DCAPS_SCH_SNOOP     (1 << 12)       /* SCH/PCH snoop enable */
 
475
#define AZX_DCAPS_RIRB_DELAY    (1 << 13)       /* Long delay in read loop */
 
476
#define AZX_DCAPS_RIRB_PRE_DELAY (1 << 14)      /* Put a delay before read */
 
477
#define AZX_DCAPS_CTX_WORKAROUND (1 << 15)      /* X-Fi workaround */
 
478
#define AZX_DCAPS_POSFIX_LPIB   (1 << 16)       /* Use LPIB as default */
 
479
#define AZX_DCAPS_POSFIX_VIA    (1 << 17)       /* Use VIACOMBO as default */
 
480
#define AZX_DCAPS_NO_64BIT      (1 << 18)       /* No 64bit address */
 
481
#define AZX_DCAPS_SYNC_WRITE    (1 << 19)       /* sync each cmd write */
 
482
 
 
483
/* quirks for ATI SB / AMD Hudson */
 
484
#define AZX_DCAPS_PRESET_ATI_SB \
 
485
        (AZX_DCAPS_ATI_SNOOP | AZX_DCAPS_NO_TCSEL | \
 
486
         AZX_DCAPS_SYNC_WRITE | AZX_DCAPS_POSFIX_LPIB)
 
487
 
 
488
/* quirks for ATI/AMD HDMI */
 
489
#define AZX_DCAPS_PRESET_ATI_HDMI \
 
490
        (AZX_DCAPS_NO_TCSEL | AZX_DCAPS_SYNC_WRITE | AZX_DCAPS_POSFIX_LPIB)
 
491
 
 
492
/* quirks for Nvidia */
 
493
#define AZX_DCAPS_PRESET_NVIDIA \
 
494
        (AZX_DCAPS_NVIDIA_SNOOP | AZX_DCAPS_RIRB_DELAY | AZX_DCAPS_NO_MSI)
 
495
 
466
496
static char *driver_short_names[] __devinitdata = {
467
497
        [AZX_DRIVER_ICH] = "HDA Intel",
468
498
        [AZX_DRIVER_PCH] = "HDA Intel PCH",
565
595
        /* reset the rirb hw write pointer */
566
596
        azx_writew(chip, RIRBWP, ICH6_RIRBWP_RST);
567
597
        /* set N=1, get RIRB response interrupt for new entry */
568
 
        if (chip->driver_type == AZX_DRIVER_CTX)
 
598
        if (chip->driver_caps & AZX_DCAPS_CTX_WORKAROUND)
569
599
                azx_writew(chip, RINTCNT, 0xc0);
570
600
        else
571
601
                azx_writew(chip, RINTCNT, 1);
1055
1085
         * codecs.
1056
1086
         * The PCI register TCSEL is defined in the Intel manuals.
1057
1087
         */
1058
 
        if (chip->driver_type != AZX_DRIVER_ATI &&
1059
 
            chip->driver_type != AZX_DRIVER_ATIHDMI)
 
1088
        if (!(chip->driver_caps & AZX_DCAPS_NO_TCSEL)) {
 
1089
                snd_printdd(SFX "Clearing TCSEL\n");
1060
1090
                update_pci_byte(chip->pci, ICH6_PCIREG_TCSEL, 0x07, 0);
 
1091
        }
1061
1092
 
1062
 
        switch (chip->driver_type) {
1063
 
        case AZX_DRIVER_ATI:
1064
 
                /* For ATI SB450 azalia HD audio, we need to enable snoop */
 
1093
        /* For ATI SB450/600/700/800/900 and AMD Hudson azalia HD audio,
 
1094
         * we need to enable snoop.
 
1095
         */
 
1096
        if (chip->driver_caps & AZX_DCAPS_ATI_SNOOP) {
 
1097
                snd_printdd(SFX "Enabling ATI snoop\n");
1065
1098
                update_pci_byte(chip->pci,
1066
1099
                                ATI_SB450_HDAUDIO_MISC_CNTR2_ADDR, 
1067
1100
                                0x07, ATI_SB450_HDAUDIO_ENABLE_SNOOP);
1068
 
                break;
1069
 
        case AZX_DRIVER_NVIDIA:
1070
 
                /* For NVIDIA HDA, enable snoop */
 
1101
        }
 
1102
 
 
1103
        /* For NVIDIA HDA, enable snoop */
 
1104
        if (chip->driver_caps & AZX_DCAPS_NVIDIA_SNOOP) {
 
1105
                snd_printdd(SFX "Enabling Nvidia snoop\n");
1071
1106
                update_pci_byte(chip->pci,
1072
1107
                                NVIDIA_HDA_TRANSREG_ADDR,
1073
1108
                                0x0f, NVIDIA_HDA_ENABLE_COHBITS);
1077
1112
                update_pci_byte(chip->pci,
1078
1113
                                NVIDIA_HDA_OSTRM_COH,
1079
1114
                                0x01, NVIDIA_HDA_ENABLE_COHBIT);
1080
 
                break;
1081
 
        case AZX_DRIVER_SCH:
1082
 
        case AZX_DRIVER_PCH:
 
1115
        }
 
1116
 
 
1117
        /* Enable SCH/PCH snoop if needed */
 
1118
        if (chip->driver_caps & AZX_DCAPS_SCH_SNOOP) {
1083
1119
                pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop);
1084
1120
                if (snoop & INTEL_SCH_HDA_DEVC_NOSNOOP) {
1085
1121
                        pci_write_config_word(chip->pci, INTEL_SCH_HDA_DEVC,
1090
1126
                                (snoop & INTEL_SCH_HDA_DEVC_NOSNOOP)
1091
1127
                                ? "Failed" : "OK");
1092
1128
                }
1093
 
                break;
1094
 
 
1095
1129
        }
1096
1130
}
1097
1131
 
1145
1179
        status = azx_readb(chip, RIRBSTS);
1146
1180
        if (status & RIRB_INT_MASK) {
1147
1181
                if (status & RIRB_INT_RESPONSE) {
1148
 
                        if (chip->driver_type == AZX_DRIVER_CTX)
 
1182
                        if (chip->driver_caps & AZX_DCAPS_RIRB_PRE_DELAY)
1149
1183
                                udelay(80);
1150
1184
                        azx_update_rirb(chip);
1151
1185
                }
1414
1448
        if (err < 0)
1415
1449
                return err;
1416
1450
 
1417
 
        if (chip->driver_type == AZX_DRIVER_NVIDIA)
 
1451
        if (chip->driver_caps & AZX_DCAPS_RIRB_DELAY) {
 
1452
                snd_printd(SFX "Enable delay in RIRB handling\n");
1418
1453
                chip->bus->needs_damn_long_delay = 1;
 
1454
        }
1419
1455
 
1420
1456
        codecs = 0;
1421
1457
        max_slots = azx_max_codecs[chip->driver_type];
1446
1482
                }
1447
1483
        }
1448
1484
 
 
1485
        /* AMD chipsets often cause the communication stalls upon certain
 
1486
         * sequence like the pin-detection.  It seems that forcing the synced
 
1487
         * access works around the stall.  Grrr...
 
1488
         */
 
1489
        if (chip->driver_caps & AZX_DCAPS_SYNC_WRITE) {
 
1490
                snd_printd(SFX "Enable sync_write for stable communication\n");
 
1491
                chip->bus->sync_write = 1;
 
1492
                chip->bus->allow_bus_reset = 1;
 
1493
        }
 
1494
 
1449
1495
        /* Then create codec instances */
1450
1496
        for (c = 0; c < max_slots; c++) {
1451
1497
                if ((chip->codec_mask & (1 << c)) & chip->codec_probe_mask) {
1702
1748
 
1703
1749
        stream_tag = azx_dev->stream_tag;
1704
1750
        /* CA-IBG chips need the playback stream starting from 1 */
1705
 
        if (chip->driver_type == AZX_DRIVER_CTX &&
 
1751
        if ((chip->driver_caps & AZX_DCAPS_CTX_WORKAROUND) &&
1706
1752
            stream_tag > chip->capture_streams)
1707
1753
                stream_tag -= chip->capture_streams;
1708
1754
        return snd_hda_codec_prepare(apcm->codec, hinfo, stream_tag,
2359
2405
        }
2360
2406
 
2361
2407
        /* Check VIA/ATI HD Audio Controller exist */
2362
 
        switch (chip->driver_type) {
2363
 
        case AZX_DRIVER_VIA:
2364
 
                /* Use link position directly, avoid any transfer problem. */
 
2408
        if (chip->driver_caps & AZX_DCAPS_POSFIX_VIA) {
 
2409
                snd_printd(SFX "Using VIACOMBO position fix\n");
2365
2410
                return POS_FIX_VIACOMBO;
2366
 
        case AZX_DRIVER_ATI:
2367
 
                /* ATI chipsets don't work well with position-buffer */
 
2411
        }
 
2412
        if (chip->driver_caps & AZX_DCAPS_POSFIX_LPIB) {
 
2413
                snd_printd(SFX "Using LPIB position fix\n");
2368
2414
                return POS_FIX_LPIB;
2369
 
        case AZX_DRIVER_GENERIC:
2370
 
                /* AMD chipsets also don't work with position-buffer */
2371
 
                if (chip->pci->vendor == PCI_VENDOR_ID_AMD)
2372
 
                        return POS_FIX_LPIB;
2373
 
                break;
2374
2415
        }
2375
 
 
2376
2416
        return POS_FIX_AUTO;
2377
2417
}
2378
2418
 
2454
2494
        }
2455
2495
 
2456
2496
        /* NVidia chipsets seem to cause troubles with MSI */
2457
 
        if (chip->driver_type == AZX_DRIVER_NVIDIA) {
2458
 
                printk(KERN_INFO "hda_intel: Disable MSI for Nvidia chipset\n");
 
2497
        if (chip->driver_caps & AZX_DCAPS_NO_MSI) {
 
2498
                printk(KERN_INFO "hda_intel: Disabling MSI\n");
2459
2499
                chip->msi = 0;
2460
2500
        }
2461
2501
}
2465
2505
 * constructor
2466
2506
 */
2467
2507
static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
2468
 
                                int dev, int driver_type,
 
2508
                                int dev, unsigned int driver_caps,
2469
2509
                                struct azx **rchip)
2470
2510
{
2471
2511
        struct azx *chip;
2493
2533
        chip->card = card;
2494
2534
        chip->pci = pci;
2495
2535
        chip->irq = -1;
2496
 
        chip->driver_type = driver_type;
 
2536
        chip->driver_caps = driver_caps;
 
2537
        chip->driver_type = driver_caps & 0xff;
2497
2538
        check_msi(chip);
2498
2539
        chip->dev_index = dev;
2499
2540
        INIT_WORK(&chip->irq_pending_work, azx_irq_pending_work);
2557
2598
        snd_printdd(SFX "chipset global capabilities = 0x%x\n", gcap);
2558
2599
 
2559
2600
        /* disable SB600 64bit support for safety */
2560
 
        if ((chip->driver_type == AZX_DRIVER_ATI) ||
2561
 
            (chip->driver_type == AZX_DRIVER_ATIHDMI)) {
 
2601
        if (chip->pci->vendor == PCI_VENDOR_ID_ATI) {
2562
2602
                struct pci_dev *p_smbus;
2563
2603
                p_smbus = pci_get_device(PCI_VENDOR_ID_ATI,
2564
2604
                                         PCI_DEVICE_ID_ATI_SBX00_SMBUS,
2570
2610
                }
2571
2611
        }
2572
2612
 
2573
 
        /* disable 64bit DMA address for Teradici */
2574
 
        /* it does not work with device 6549:1200 subsys e4a2:040b */
2575
 
        if (chip->driver_type == AZX_DRIVER_TERA)
 
2613
        /* disable 64bit DMA address on some devices */
 
2614
        if (chip->driver_caps & AZX_DCAPS_NO_64BIT) {
 
2615
                snd_printd(SFX "Disabling 64bit DMA\n");
2576
2616
                gcap &= ~ICH6_GCAP_64OK;
 
2617
        }
2577
2618
 
2578
2619
        /* allow 64bit DMA address if supported by H/W */
2579
2620
        if ((gcap & ICH6_GCAP_64OK) && !pci_set_dma_mask(pci, DMA_BIT_MASK(64)))
2775
2816
/* PCI IDs */
2776
2817
static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
2777
2818
        /* CPT */
2778
 
        { PCI_DEVICE(0x8086, 0x1c20), .driver_data = AZX_DRIVER_PCH },
 
2819
        { PCI_DEVICE(0x8086, 0x1c20),
 
2820
          .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_SCH_SNOOP },
2779
2821
        /* PBG */
2780
 
        { PCI_DEVICE(0x8086, 0x1d20), .driver_data = AZX_DRIVER_PCH },
 
2822
        { PCI_DEVICE(0x8086, 0x1d20),
 
2823
          .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_SCH_SNOOP },
 
2824
        /* Panther Point */
 
2825
        { PCI_DEVICE(0x8086, 0x1e20),
 
2826
          .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_SCH_SNOOP },
2781
2827
        /* SCH */
2782
 
        { PCI_DEVICE(0x8086, 0x811b), .driver_data = AZX_DRIVER_SCH },
 
2828
        { PCI_DEVICE(0x8086, 0x811b),
 
2829
          .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_SCH_SNOOP },
2783
2830
        /* Generic Intel */
2784
2831
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_ANY_ID),
2785
2832
          .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8,
2786
2833
          .class_mask = 0xffffff,
2787
2834
          .driver_data = AZX_DRIVER_ICH },
2788
 
        /* ATI SB 450/600 */
2789
 
        { PCI_DEVICE(0x1002, 0x437b), .driver_data = AZX_DRIVER_ATI },
2790
 
        { PCI_DEVICE(0x1002, 0x4383), .driver_data = AZX_DRIVER_ATI },
 
2835
        /* ATI SB 450/600/700/800/900 */
 
2836
        { PCI_DEVICE(0x1002, 0x437b),
 
2837
          .driver_data = AZX_DRIVER_ATI | AZX_DCAPS_PRESET_ATI_SB },
 
2838
        { PCI_DEVICE(0x1002, 0x4383),
 
2839
          .driver_data = AZX_DRIVER_ATI | AZX_DCAPS_PRESET_ATI_SB },
 
2840
        /* AMD Hudson */
 
2841
        { PCI_DEVICE(0x1022, 0x780d),
 
2842
          .driver_data = AZX_DRIVER_GENERIC | AZX_DCAPS_PRESET_ATI_SB },
2791
2843
        /* ATI HDMI */
2792
 
        { PCI_DEVICE(0x1002, 0x793b), .driver_data = AZX_DRIVER_ATIHDMI },
2793
 
        { PCI_DEVICE(0x1002, 0x7919), .driver_data = AZX_DRIVER_ATIHDMI },
2794
 
        { PCI_DEVICE(0x1002, 0x960f), .driver_data = AZX_DRIVER_ATIHDMI },
2795
 
        { PCI_DEVICE(0x1002, 0x970f), .driver_data = AZX_DRIVER_ATIHDMI },
2796
 
        { PCI_DEVICE(0x1002, 0xaa00), .driver_data = AZX_DRIVER_ATIHDMI },
2797
 
        { PCI_DEVICE(0x1002, 0xaa08), .driver_data = AZX_DRIVER_ATIHDMI },
2798
 
        { PCI_DEVICE(0x1002, 0xaa10), .driver_data = AZX_DRIVER_ATIHDMI },
2799
 
        { PCI_DEVICE(0x1002, 0xaa18), .driver_data = AZX_DRIVER_ATIHDMI },
2800
 
        { PCI_DEVICE(0x1002, 0xaa20), .driver_data = AZX_DRIVER_ATIHDMI },
2801
 
        { PCI_DEVICE(0x1002, 0xaa28), .driver_data = AZX_DRIVER_ATIHDMI },
2802
 
        { PCI_DEVICE(0x1002, 0xaa30), .driver_data = AZX_DRIVER_ATIHDMI },
2803
 
        { PCI_DEVICE(0x1002, 0xaa38), .driver_data = AZX_DRIVER_ATIHDMI },
2804
 
        { PCI_DEVICE(0x1002, 0xaa40), .driver_data = AZX_DRIVER_ATIHDMI },
2805
 
        { PCI_DEVICE(0x1002, 0xaa48), .driver_data = AZX_DRIVER_ATIHDMI },
 
2844
        { PCI_DEVICE(0x1002, 0x793b),
 
2845
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2846
        { PCI_DEVICE(0x1002, 0x7919),
 
2847
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2848
        { PCI_DEVICE(0x1002, 0x960f),
 
2849
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2850
        { PCI_DEVICE(0x1002, 0x970f),
 
2851
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2852
        { PCI_DEVICE(0x1002, 0xaa00),
 
2853
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2854
        { PCI_DEVICE(0x1002, 0xaa08),
 
2855
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2856
        { PCI_DEVICE(0x1002, 0xaa10),
 
2857
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2858
        { PCI_DEVICE(0x1002, 0xaa18),
 
2859
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2860
        { PCI_DEVICE(0x1002, 0xaa20),
 
2861
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2862
        { PCI_DEVICE(0x1002, 0xaa28),
 
2863
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2864
        { PCI_DEVICE(0x1002, 0xaa30),
 
2865
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2866
        { PCI_DEVICE(0x1002, 0xaa38),
 
2867
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2868
        { PCI_DEVICE(0x1002, 0xaa40),
 
2869
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
 
2870
        { PCI_DEVICE(0x1002, 0xaa48),
 
2871
          .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
2806
2872
        /* VIA VT8251/VT8237A */
2807
 
        { PCI_DEVICE(0x1106, 0x3288), .driver_data = AZX_DRIVER_VIA },
 
2873
        { PCI_DEVICE(0x1106, 0x3288),
 
2874
          .driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA },
2808
2875
        /* SIS966 */
2809
2876
        { PCI_DEVICE(0x1039, 0x7502), .driver_data = AZX_DRIVER_SIS },
2810
2877
        /* ULI M5461 */
2813
2880
        { PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID),
2814
2881
          .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8,
2815
2882
          .class_mask = 0xffffff,
2816
 
          .driver_data = AZX_DRIVER_NVIDIA },
 
2883
          .driver_data = AZX_DRIVER_NVIDIA | AZX_DCAPS_PRESET_NVIDIA },
2817
2884
        /* Teradici */
2818
 
        { PCI_DEVICE(0x6549, 0x1200), .driver_data = AZX_DRIVER_TERA },
 
2885
        { PCI_DEVICE(0x6549, 0x1200),
 
2886
          .driver_data = AZX_DRIVER_TERA | AZX_DCAPS_NO_64BIT },
2819
2887
        /* Creative X-Fi (CA0110-IBG) */
2820
2888
#if !defined(CONFIG_SND_CTXFI) && !defined(CONFIG_SND_CTXFI_MODULE)
2821
2889
        /* the following entry conflicts with snd-ctxfi driver,
2825
2893
        { PCI_DEVICE(PCI_VENDOR_ID_CREATIVE, PCI_ANY_ID),
2826
2894
          .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8,
2827
2895
          .class_mask = 0xffffff,
2828
 
          .driver_data = AZX_DRIVER_CTX },
 
2896
          .driver_data = AZX_DRIVER_CTX | AZX_DCAPS_CTX_WORKAROUND |
 
2897
          AZX_DCAPS_RIRB_PRE_DELAY },
2829
2898
#else
2830
2899
        /* this entry seems still valid -- i.e. without emu20kx chip */
2831
 
        { PCI_DEVICE(0x1102, 0x0009), .driver_data = AZX_DRIVER_CTX },
 
2900
        { PCI_DEVICE(0x1102, 0x0009),
 
2901
          .driver_data = AZX_DRIVER_CTX | AZX_DCAPS_CTX_WORKAROUND |
 
2902
          AZX_DCAPS_RIRB_PRE_DELAY },
2832
2903
#endif
2833
2904
        /* Vortex86MX */
2834
2905
        { PCI_DEVICE(0x17f3, 0x3010), .driver_data = AZX_DRIVER_GENERIC },
2838
2909
        { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_ANY_ID),
2839
2910
          .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8,
2840
2911
          .class_mask = 0xffffff,
2841
 
          .driver_data = AZX_DRIVER_GENERIC },
 
2912
          .driver_data = AZX_DRIVER_GENERIC | AZX_DCAPS_PRESET_ATI_HDMI },
2842
2913
        { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_ANY_ID),
2843
2914
          .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8,
2844
2915
          .class_mask = 0xffffff,
2845
 
          .driver_data = AZX_DRIVER_GENERIC },
 
2916
          .driver_data = AZX_DRIVER_GENERIC | AZX_DCAPS_PRESET_ATI_HDMI },
2846
2917
        { 0, }
2847
2918
};
2848
2919
MODULE_DEVICE_TABLE(pci, azx_ids);