| .. | .. |
|---|
| 264 | 264 | AZX_DRIVER_ATI, |
|---|
| 265 | 265 | AZX_DRIVER_ATIHDMI, |
|---|
| 266 | 266 | AZX_DRIVER_ATIHDMI_NS, |
|---|
| 267 | + AZX_DRIVER_GFHDMI, |
|---|
| 267 | 268 | AZX_DRIVER_VIA, |
|---|
| 268 | 269 | AZX_DRIVER_SIS, |
|---|
| 269 | 270 | AZX_DRIVER_ULI, |
|---|
| .. | .. |
|---|
| 365 | 366 | #define needs_eld_notify_link(chip) false |
|---|
| 366 | 367 | #endif |
|---|
| 367 | 368 | |
|---|
| 368 | | -#define CONTROLLER_IN_GPU(pci) (((pci)->device == 0x0a0c) || \ |
|---|
| 369 | +#define CONTROLLER_IN_GPU(pci) (((pci)->vendor == 0x8086) && \ |
|---|
| 370 | + (((pci)->device == 0x0a0c) || \ |
|---|
| 369 | 371 | ((pci)->device == 0x0c0c) || \ |
|---|
| 370 | 372 | ((pci)->device == 0x0d0c) || \ |
|---|
| 371 | 373 | ((pci)->device == 0x160c) || \ |
|---|
| 372 | 374 | ((pci)->device == 0x490d) || \ |
|---|
| 373 | 375 | ((pci)->device == 0x4f90) || \ |
|---|
| 374 | 376 | ((pci)->device == 0x4f91) || \ |
|---|
| 375 | | - ((pci)->device == 0x4f92)) |
|---|
| 377 | + ((pci)->device == 0x4f92))) |
|---|
| 376 | 378 | |
|---|
| 377 | 379 | #define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98) |
|---|
| 378 | 380 | |
|---|
| .. | .. |
|---|
| 385 | 387 | [AZX_DRIVER_ATI] = "HDA ATI SB", |
|---|
| 386 | 388 | [AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI", |
|---|
| 387 | 389 | [AZX_DRIVER_ATIHDMI_NS] = "HDA ATI HDMI", |
|---|
| 390 | + [AZX_DRIVER_GFHDMI] = "HDA GF HDMI", |
|---|
| 388 | 391 | [AZX_DRIVER_VIA] = "HDA VIA VT82xx", |
|---|
| 389 | 392 | [AZX_DRIVER_SIS] = "HDA SIS966", |
|---|
| 390 | 393 | [AZX_DRIVER_ULI] = "HDA ULI M5461", |
|---|
| .. | .. |
|---|
| 1782 | 1785 | } |
|---|
| 1783 | 1786 | |
|---|
| 1784 | 1787 | switch (chip->driver_type) { |
|---|
| 1788 | + /* |
|---|
| 1789 | + * increase the bdl size for Glenfly Gpus for hardware |
|---|
| 1790 | + * limitation on hdac interrupt interval |
|---|
| 1791 | + */ |
|---|
| 1792 | + case AZX_DRIVER_GFHDMI: |
|---|
| 1793 | + return 128; |
|---|
| 1785 | 1794 | case AZX_DRIVER_ICH: |
|---|
| 1786 | 1795 | case AZX_DRIVER_PCH: |
|---|
| 1787 | 1796 | return 1; |
|---|
| .. | .. |
|---|
| 1901 | 1910 | pci_write_config_dword(pci, PCI_BASE_ADDRESS_1, 0); |
|---|
| 1902 | 1911 | } |
|---|
| 1903 | 1912 | #endif |
|---|
| 1913 | + /* |
|---|
| 1914 | + * Fix response write request not synced to memory when handle |
|---|
| 1915 | + * hdac interrupt on Glenfly Gpus |
|---|
| 1916 | + */ |
|---|
| 1917 | + if (chip->driver_type == AZX_DRIVER_GFHDMI) |
|---|
| 1918 | + bus->polling_mode = 1; |
|---|
| 1904 | 1919 | |
|---|
| 1905 | 1920 | err = pci_request_regions(pci, "ICH HD audio"); |
|---|
| 1906 | 1921 | if (err < 0) |
|---|
| .. | .. |
|---|
| 2010 | 2025 | chip->playback_streams = ATIHDMI_NUM_PLAYBACK; |
|---|
| 2011 | 2026 | chip->capture_streams = ATIHDMI_NUM_CAPTURE; |
|---|
| 2012 | 2027 | break; |
|---|
| 2028 | + case AZX_DRIVER_GFHDMI: |
|---|
| 2013 | 2029 | case AZX_DRIVER_GENERIC: |
|---|
| 2014 | 2030 | default: |
|---|
| 2015 | 2031 | chip->playback_streams = ICH6_NUM_PLAYBACK; |
|---|
| .. | .. |
|---|
| 2255 | 2271 | SND_PCI_QUIRK(0x8086, 0x2068, "Intel NUC7i3BNB", 0), |
|---|
| 2256 | 2272 | /* https://bugzilla.kernel.org/show_bug.cgi?id=198611 */ |
|---|
| 2257 | 2273 | SND_PCI_QUIRK(0x17aa, 0x2227, "Lenovo X1 Carbon 3rd Gen", 0), |
|---|
| 2274 | + SND_PCI_QUIRK(0x17aa, 0x316e, "Lenovo ThinkCentre M70q", 0), |
|---|
| 2258 | 2275 | /* https://bugzilla.redhat.com/show_bug.cgi?id=1689623 */ |
|---|
| 2259 | 2276 | SND_PCI_QUIRK(0x17aa, 0x367b, "Lenovo IdeaCentre B550", 0), |
|---|
| 2260 | 2277 | /* https://bugzilla.redhat.com/show_bug.cgi?id=1572975 */ |
|---|
| .. | .. |
|---|
| 2755 | 2772 | { PCI_DEVICE(0x1002, 0xab38), |
|---|
| 2756 | 2773 | .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS | |
|---|
| 2757 | 2774 | AZX_DCAPS_PM_RUNTIME }, |
|---|
| 2775 | + /* GLENFLY */ |
|---|
| 2776 | + { PCI_DEVICE(0x6766, PCI_ANY_ID), |
|---|
| 2777 | + .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8, |
|---|
| 2778 | + .class_mask = 0xffffff, |
|---|
| 2779 | + .driver_data = AZX_DRIVER_GFHDMI | AZX_DCAPS_POSFIX_LPIB | |
|---|
| 2780 | + AZX_DCAPS_NO_MSI | AZX_DCAPS_NO_64BIT }, |
|---|
| 2758 | 2781 | /* VIA VT8251/VT8237A */ |
|---|
| 2759 | 2782 | { PCI_DEVICE(0x1106, 0x3288), .driver_data = AZX_DRIVER_VIA }, |
|---|
| 2760 | 2783 | /* VIA GFX VT7122/VX900 */ |
|---|