diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2018-09-13 12:31:47 -0400 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2018-09-13 14:24:06 -0400 |
commit | 351c4dbe4fae44b747dd97114a5983ec23a49f24 (patch) | |
tree | 3d8f91bbb8fc3920c989fe576201b4ad6ef9377e | |
parent | 1feb64c49d7f2a46dc7b1e4c92c85ead2775395e (diff) |
drm/amdgpu: Use per-device driver_features to disable atomic
Disable atomic on a per-device basis instead of for all devices.
Made possible by the new device.driver_features thing.
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Michel Dänzer <michel@daenzer.net>
Suggested-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180913163147.27900-2-ville.syrjala@linux.intel.com
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 6870909da926..8c1db96be070 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | |||
@@ -816,17 +816,13 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, | |||
816 | if (ret) | 816 | if (ret) |
817 | return ret; | 817 | return ret; |
818 | 818 | ||
819 | /* warn the user if they mix atomic and non-atomic capable GPUs */ | ||
820 | if ((kms_driver.driver_features & DRIVER_ATOMIC) && !supports_atomic) | ||
821 | DRM_ERROR("Mixing atomic and non-atomic capable GPUs!\n"); | ||
822 | /* support atomic early so the atomic debugfs stuff gets created */ | ||
823 | if (supports_atomic) | ||
824 | kms_driver.driver_features |= DRIVER_ATOMIC; | ||
825 | |||
826 | dev = drm_dev_alloc(&kms_driver, &pdev->dev); | 819 | dev = drm_dev_alloc(&kms_driver, &pdev->dev); |
827 | if (IS_ERR(dev)) | 820 | if (IS_ERR(dev)) |
828 | return PTR_ERR(dev); | 821 | return PTR_ERR(dev); |
829 | 822 | ||
823 | if (!supports_atomic) | ||
824 | dev->driver_features &= ~DRIVER_ATOMIC; | ||
825 | |||
830 | ret = pci_enable_device(pdev); | 826 | ret = pci_enable_device(pdev); |
831 | if (ret) | 827 | if (ret) |
832 | goto err_free; | 828 | goto err_free; |
@@ -1078,7 +1074,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe, | |||
1078 | 1074 | ||
1079 | static struct drm_driver kms_driver = { | 1075 | static struct drm_driver kms_driver = { |
1080 | .driver_features = | 1076 | .driver_features = |
1081 | DRIVER_USE_AGP | | 1077 | DRIVER_USE_AGP | DRIVER_ATOMIC | |
1082 | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | | 1078 | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | |
1083 | DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ, | 1079 | DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ, |
1084 | .load = amdgpu_driver_load_kms, | 1080 | .load = amdgpu_driver_load_kms, |