.. | .. |
---|
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 */ |
---|