aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2018-09-13 12:31:47 -0400
committerVille Syrjälä <ville.syrjala@linux.intel.com>2018-09-13 14:24:06 -0400
commit351c4dbe4fae44b747dd97114a5983ec23a49f24 (patch)
tree3d8f91bbb8fc3920c989fe576201b4ad6ef9377e
parent1feb64c49d7f2a46dc7b1e4c92c85ead2775395e (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.c12
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
1079static struct drm_driver kms_driver = { 1075static 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,