Message ID | 20180913163147.27900-2-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] drm/nouveau: Disable atomic support on a per-device basis | expand |
On 2018-09-13 6:31 p.m., Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > 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> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 12 ++++-------- > 1 file 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, > if (ret) > return ret; > > - /* warn the user if they mix atomic and non-atomic capable GPUs */ > - if ((kms_driver.driver_features & DRIVER_ATOMIC) && !supports_atomic) > - DRM_ERROR("Mixing atomic and non-atomic capable GPUs!\n"); > - /* support atomic early so the atomic debugfs stuff gets created */ > - if (supports_atomic) > - kms_driver.driver_features |= DRIVER_ATOMIC; > - > dev = drm_dev_alloc(&kms_driver, &pdev->dev); > if (IS_ERR(dev)) > return PTR_ERR(dev); > > + if (!supports_atomic) > + dev->driver_features &= ~DRIVER_ATOMIC; > + > ret = pci_enable_device(pdev); > if (ret) > goto err_free; > @@ -1078,7 +1074,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe, > > static struct drm_driver kms_driver = { > .driver_features = > - DRIVER_USE_AGP | > + DRIVER_USE_AGP | DRIVER_ATOMIC | > DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | > DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ, > .load = amdgpu_driver_load_kms, > Thanks Ville for taking care of this! Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> If Alex agrees, probably best to push this to drm-misc-next as well.
On Thu, Sep 13, 2018 at 12:39 PM Michel Dänzer <michel@daenzer.net> wrote: > > On 2018-09-13 6:31 p.m., Ville Syrjala wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > 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> > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 12 ++++-------- > > 1 file 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, > > if (ret) > > return ret; > > > > - /* warn the user if they mix atomic and non-atomic capable GPUs */ > > - if ((kms_driver.driver_features & DRIVER_ATOMIC) && !supports_atomic) > > - DRM_ERROR("Mixing atomic and non-atomic capable GPUs!\n"); > > - /* support atomic early so the atomic debugfs stuff gets created */ > > - if (supports_atomic) > > - kms_driver.driver_features |= DRIVER_ATOMIC; > > - > > dev = drm_dev_alloc(&kms_driver, &pdev->dev); > > if (IS_ERR(dev)) > > return PTR_ERR(dev); > > > > + if (!supports_atomic) > > + dev->driver_features &= ~DRIVER_ATOMIC; > > + > > ret = pci_enable_device(pdev); > > if (ret) > > goto err_free; > > @@ -1078,7 +1074,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe, > > > > static struct drm_driver kms_driver = { > > .driver_features = > > - DRIVER_USE_AGP | > > + DRIVER_USE_AGP | DRIVER_ATOMIC | > > DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | > > DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ, > > .load = amdgpu_driver_load_kms, > > > > Thanks Ville for taking care of this! > > Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> > > If Alex agrees, probably best to push this to drm-misc-next as well. > Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Please go ahead and merge through drm-misc. Thanks! Alex > > -- > Earthling Michel Dänzer | http://www.amd.com > Libre software enthusiast | Mesa and X developer > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Thu, Sep 13, 2018 at 12:40:20PM -0400, Alex Deucher wrote: > On Thu, Sep 13, 2018 at 12:39 PM Michel Dänzer <michel@daenzer.net> wrote: > > > > On 2018-09-13 6:31 p.m., Ville Syrjala wrote: > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > > > 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> > > > --- > > > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 12 ++++-------- > > > 1 file 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, > > > if (ret) > > > return ret; > > > > > > - /* warn the user if they mix atomic and non-atomic capable GPUs */ > > > - if ((kms_driver.driver_features & DRIVER_ATOMIC) && !supports_atomic) > > > - DRM_ERROR("Mixing atomic and non-atomic capable GPUs!\n"); > > > - /* support atomic early so the atomic debugfs stuff gets created */ > > > - if (supports_atomic) > > > - kms_driver.driver_features |= DRIVER_ATOMIC; > > > - > > > dev = drm_dev_alloc(&kms_driver, &pdev->dev); > > > if (IS_ERR(dev)) > > > return PTR_ERR(dev); > > > > > > + if (!supports_atomic) > > > + dev->driver_features &= ~DRIVER_ATOMIC; > > > + > > > ret = pci_enable_device(pdev); > > > if (ret) > > > goto err_free; > > > @@ -1078,7 +1074,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe, > > > > > > static struct drm_driver kms_driver = { > > > .driver_features = > > > - DRIVER_USE_AGP | > > > + DRIVER_USE_AGP | DRIVER_ATOMIC | > > > DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | > > > DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ, > > > .load = amdgpu_driver_load_kms, > > > > > > > Thanks Ville for taking care of this! > > > > Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> > > > > If Alex agrees, probably best to push this to drm-misc-next as well. > > > > Reviewed-by: Alex Deucher <alexander.deucher@amd.com> > > Please go ahead and merge through drm-misc. > > Thanks! You are welcome, and thanks for the r-bs. Pushed.
On 2018-09-13 12:31 PM, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > 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> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Harry > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 12 ++++-------- > 1 file 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, > if (ret) > return ret; > > - /* warn the user if they mix atomic and non-atomic capable GPUs */ > - if ((kms_driver.driver_features & DRIVER_ATOMIC) && !supports_atomic) > - DRM_ERROR("Mixing atomic and non-atomic capable GPUs!\n"); > - /* support atomic early so the atomic debugfs stuff gets created */ > - if (supports_atomic) > - kms_driver.driver_features |= DRIVER_ATOMIC; > - > dev = drm_dev_alloc(&kms_driver, &pdev->dev); > if (IS_ERR(dev)) > return PTR_ERR(dev); > > + if (!supports_atomic) > + dev->driver_features &= ~DRIVER_ATOMIC; > + > ret = pci_enable_device(pdev); > if (ret) > goto err_free; > @@ -1078,7 +1074,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe, > > static struct drm_driver kms_driver = { > .driver_features = > - DRIVER_USE_AGP | > + DRIVER_USE_AGP | DRIVER_ATOMIC | > DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | > DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ, > .load = amdgpu_driver_load_kms, >
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, if (ret) return ret; - /* warn the user if they mix atomic and non-atomic capable GPUs */ - if ((kms_driver.driver_features & DRIVER_ATOMIC) && !supports_atomic) - DRM_ERROR("Mixing atomic and non-atomic capable GPUs!\n"); - /* support atomic early so the atomic debugfs stuff gets created */ - if (supports_atomic) - kms_driver.driver_features |= DRIVER_ATOMIC; - dev = drm_dev_alloc(&kms_driver, &pdev->dev); if (IS_ERR(dev)) return PTR_ERR(dev); + if (!supports_atomic) + dev->driver_features &= ~DRIVER_ATOMIC; + ret = pci_enable_device(pdev); if (ret) goto err_free; @@ -1078,7 +1074,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe, static struct drm_driver kms_driver = { .driver_features = - DRIVER_USE_AGP | + DRIVER_USE_AGP | DRIVER_ATOMIC | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ, .load = amdgpu_driver_load_kms,