Add PCI ID and quirk for Intersil/Techwell TW686[4589] AV capture cards.
PATCH 1/1 Add PCI ID and quirk for Intersil/Techwell TW686[4589] AV capture cards.
Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) class code. Fix it.
drivers/pci/quirks.c +20 -0
@@ -3662,6 +3662,26 @@ DECLARE_PCI_FIXUP_HEADER(0x1283, 0x8892, quirk_use_pcie_bridge_dma_alias);DECLARE_PCI_FIXUP_HEADER (0x8086 ,0x244e , quirk_use_pcie_bridge_dma_alias);/* +* Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) +* class code. Fix it. +*/ + +static void quirk_tw686x_class (struct pci_dev *pdev) +{ +/* Use "Multimedia controller" class */ + pdev->class =0x048001 ; +dev_info (&pdev->dev,"TW686x PCI class workaround enabled\n" ); +} +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6864 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6865 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6868 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6869 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); + +/* * AMD has indicated that the devices below do not support peer-to-peer * in any system where they are found in the southbridge with an AMD * IOMMU in the system. Multifunction devices that do not support
Quoted 4 lines · Krzysztof Hałasa
Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) class code. Fix it.
Signed-off-by Krzysztof Hałasa <[email protected]>
Applied to pci/misc for v4.2, with minor tweak as below to use PCI_CLASS_MULTIMEDIA_OTHER instead of a bare number. Let me know if you see any issues with this. Thanks!
commit c1aa4f19cb8f7974126f2da74a35ae4ca1e60017
Author: Krzysztof =?utf-8?Q?Ha=C5=82asa?= <[email protected]> Date: Fri Jun 19 10:00:15 2015 +0200
PCI: Add quirk for Intersil/Techwell TW686[4589] AV capture cards
Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) class code. Fix it.
drivers/pci/quirks.c +22 -0
@@ -3671,6 +3671,28 @@ DECLARE_PCI_FIXUP_HEADER(0x1283, 0x8892, quirk_use_pcie_bridge_dma_alias);DECLARE_PCI_FIXUP_HEADER (0x8086 ,0x244e , quirk_use_pcie_bridge_dma_alias);/* +* Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) +* class code. Fix it. +*/ +static void quirk_tw686x_class (struct pci_dev *pdev) +{ +u32 class = pdev->class; + +/* Use "Multimedia controller" class */ + pdev->class = (PCI_CLASS_MULTIMEDIA_OTHER <<8 ) |0x01 ; +dev_info (&pdev->dev,"TW686x PCI class overridden (%#08x -> %#08x)\n" , + class, pdev->class); +} +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6864 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6865 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6868 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6869 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); + +/* * AMD has indicated that the devices below do not support peer-to-peer * in any system where they are found in the southbridge with an AMD * IOMMU in the system. Multifunction devices that do not support
Quoted 20 lines
drivers/pci/quirks.c +13
-0@@ -3662,6 +3662,26 @@ DECLARE_PCI_FIXUP_HEADER(0x1283, 0x8892, quirk_use_pcie_bridge_dma_alias);DECLARE_PCI_FIXUP_HEADER (0x8086 ,0x244e , quirk_use_pcie_bridge_dma_alias);/* +* Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) +* class code. Fix it. +*/ + +static void quirk_tw686x_class (struct pci_dev *pdev) +{ +/* Use "Multimedia controller" class */ + pdev->class =0x048001 ; +dev_info (&pdev->dev,"TW686x PCI class workaround enabled\n" ); +} +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6864 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); +DECLARE_PCI_FIXUP_CLASS_EARLY(0x1797, 0x6865, PCI_CLASS_NOT_DEFINED, 0,
drivers/pci/quirks.c DECLARE_PCI_FIXUP_HEADER(0x1283, 0x8892, quirk_use_pcie_bridge_dma_alias); · line 3687
Quoted 10 lines
drivers/pci/quirks.c +7
-0+ quirk_tw686x_class); +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6868 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); +DECLARE_PCI_FIXUP_CLASS_EARLY (0x1797 ,0x6869 ,PCI_CLASS_NOT_DEFINED ,0 , + quirk_tw686x_class); + +/* * AMD has indicated that the devices below do not support peer-to-peer * in any system where they are found in the southbridge with an AMD * IOMMU in the system. Multifunction devices that do not support
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
Quoted 6 lines · Bjorn Helgaas
Quoted 3 lines
Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) class code. Fix it.
Applied to pci/misc for v4.2, with minor tweak as below to use
PCI_CLASS_MULTIMEDIA_OTHERinstead of a bare number. Let me know if you see any issues with this. Thanks!
Can't see any, thanks a lot.
Signature · 7 lines
Krzysztof Halasa Industrial Research Institute for Automation and Measurements PIAP Al. Jerozolimskie 202, 02-486 Warsaw, Poland -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in Please read the FAQ at http://www.tux.org/lkml/