Re: [PATCH v2 2/2] PCI: mediatek: Fixup class type for MT7622
From: Yong Wu <yong.wu@mediatek.com>
Date: 2017-12-21 06:46:39
Also in:
linux-arm-kernel, linux-mediatek, linux-pci, lkml
From: Yong Wu <yong.wu@mediatek.com>
Date: 2017-12-21 06:46:39
Also in:
linux-arm-kernel, linux-mediatek, linux-pci, lkml
On Thu, 2017-12-21 at 10:11 +0800, honghui.zhang@mediatek.com wrote:
From: Honghui Zhang <redacted> The host bridge of MT7622 has hardware code the class code to an arbitrary, meaningless value, fix that. Signed-off-by: Honghui Zhang <redacted> --- drivers/pci/host/pcie-mediatek.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)diff --git a/drivers/pci/host/pcie-mediatek.c b/drivers/pci/host/pcie-mediatek.c index 3248771..ae8d367 100644 --- a/drivers/pci/host/pcie-mediatek.c +++ b/drivers/pci/host/pcie-mediatek.c@@ -1174,3 +1174,15 @@ static struct platform_driver mtk_pcie_driver = { }, }; builtin_platform_driver(mtk_pcie_driver); + +/* The host bridge of MT7622 advertises the wrong device class. */ +static void mtk_fixup_class(struct pci_dev *dev) +{ + dev->class = PCI_CLASS_BRIDGE_PCI << 8; +} + +/* + * The HW default value of vendor id and device id for mt7622 are 0x0e8d, + * 0x3258, which are arbitrary, meaningless values. + */
What's the right vendor id and device id? is it possible to fix them too?
+DECLARE_PCI_FIXUP_EARLY(0x0e8d, 0x3258, mtk_fixup_class);