diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 13 | 
1 files changed, 11 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 7383272c6a3a..b4f2d61ea0d5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -2039,6 +2039,15 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,  			 "See modparam exp_hw_support\n");  		return -ENODEV;  	} +	/* differentiate between P10 and P11 asics with the same DID */ +	if (pdev->device == 0x67FF && +	    (pdev->revision == 0xE3 || +	     pdev->revision == 0xE7 || +	     pdev->revision == 0xF3 || +	     pdev->revision == 0xF7)) { +		flags &= ~AMD_ASIC_MASK; +		flags |= CHIP_POLARIS10; +	}  	/* Due to hardware bugs, S/G Display on raven requires a 1:1 IOMMU mapping,  	 * however, SME requires an indirect IOMMU mapping because the encryption @@ -2108,12 +2117,12 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,  	pci_set_drvdata(pdev, ddev); -	ret = amdgpu_driver_load_kms(adev, ent->driver_data); +	ret = amdgpu_driver_load_kms(adev, flags);  	if (ret)  		goto err_pci;  retry_init: -	ret = drm_dev_register(ddev, ent->driver_data); +	ret = drm_dev_register(ddev, flags);  	if (ret == -EAGAIN && ++retry <= 3) {  		DRM_INFO("retry init %d\n", retry);  		/* Don't request EX mode too frequently which is attacking */ |