The AMD/ATI Oland [1002:6611]'s HDMI output status is not synchronous as shown on UI after hot re-plug the HDMI cable, if it is radeon in used. The amdgpu module does not hit this issue. This patch disables [1002:6611] in radeon and enables it in amdgpu. Fixes: https://gitlab.freedesktop.org/drm/amd/-/issues/1117 Signed-off-by: Jian-Hong Pan <jian-hong@xxxxxxxxxxxx> --- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 11 +++++++++++ include/drm/drm_pciids.h | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 8ea86ffdea0d..1ad6f13a5bc0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -1017,6 +1017,15 @@ MODULE_DEVICE_TABLE(pci, pciidlist); static struct drm_driver kms_driver; +static void amdgpu_pci_fixup(struct pci_dev *pdev) +{ +#ifdef CONFIG_DRM_AMDGPU_SI + /* [1002:6611] is disabled in radeon, so enable si_support in amdgpu. */ + if (pdev->vendor == PCI_VENDOR_ID_ATI && pdev->device == 0x6611) + amdgpu_si_support = 1; +#endif +} + static int amdgpu_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { @@ -1036,6 +1045,8 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, return -ENODEV; } + amdgpu_pci_fixup(pdev); + #ifdef CONFIG_DRM_AMDGPU_SI if (!amdgpu_si_support) { switch (flags & AMD_ASIC_MASK) { diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h index b7e899ce44f0..57368a0f5b82 100644 --- a/include/drm/drm_pciids.h +++ b/include/drm/drm_pciids.h @@ -171,7 +171,6 @@ {0x1002, 0x6607, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_OLAND|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6608, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_OLAND|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6610, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_OLAND|RADEON_NEW_MEMMAP}, \ - {0x1002, 0x6611, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_OLAND|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6613, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_OLAND|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6617, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_OLAND|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x6620, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_OLAND|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ -- 2.26.2