The load/unload callbacks in struct drm_driver are deprecated. Remove them and call functions explicitly.
Signed-off-by: Thomas Zimmermann tzimmermann@suse.de --- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 44 +++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index e962048f65d2..f34f1eb57cfa 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -28,10 +28,10 @@ #include <linux/console.h> #include <linux/dma-mapping.h> #include <linux/module.h> +#include <linux/pci.h>
#include <drm/drm_drv.h> #include <drm/drm_ioctl.h> -#include <drm/drm_pci.h> #include <drm/drm_sysfs.h> #include <drm/ttm/ttm_bo_driver.h> #include <drm/ttm/ttm_module.h> @@ -1211,8 +1211,10 @@ static void vmw_remove(struct pci_dev *pdev) { struct drm_device *dev = pci_get_drvdata(pdev);
+ drm_dev_unregister(dev); + vmw_driver_unload(dev); + drm_dev_put(dev); pci_disable_device(pdev); - drm_put_dev(dev); }
static int vmwgfx_pm_notifier(struct notifier_block *nb, unsigned long val, @@ -1329,7 +1331,7 @@ static int vmw_pm_freeze(struct device *kdev)
vmw_fence_fifo_down(dev_priv->fman); __vmw_svga_disable(dev_priv); - + vmw_release_device_late(dev_priv); return 0; } @@ -1391,8 +1393,6 @@ static const struct file_operations vmwgfx_driver_fops = { static struct drm_driver driver = { .driver_features = DRIVER_MODESET | DRIVER_RENDER | DRIVER_ATOMIC, - .load = vmw_driver_load, - .unload = vmw_driver_unload, .get_vblank_counter = vmw_get_vblank_counter, .enable_vblank = vmw_enable_vblank, .disable_vblank = vmw_disable_vblank, @@ -1431,7 +1431,39 @@ static struct pci_driver vmw_pci_driver = {
static int vmw_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { - return drm_get_pci_dev(pdev, ent, &driver); + struct drm_device *dev; + int ret; + + ret = pci_enable_device(pdev); + if (ret) + return ret; + + dev = drm_dev_alloc(&driver, &pdev->dev); + if (IS_ERR(dev)) { + ret = PTR_ERR(dev); + goto err_pci_disable_device; + } + + dev->pdev = pdev; + pci_set_drvdata(pdev, dev); + + ret = vmw_driver_load(dev, ent->driver_data); + if (ret) + goto err_drm_dev_put; + + ret = drm_dev_register(dev, ent->driver_data); + if (ret) + goto err_vmw_driver_unload; + + return 0; + +err_vmw_driver_unload: + vmw_driver_unload(dev); +err_drm_dev_put: + drm_dev_put(dev); +err_pci_disable_device: + pci_disable_device(pdev); + return ret; }
static int __init vmwgfx_init(void) -- 2.24.0
Hi,
On 12/9/19 12:06 PM, Thomas Zimmermann wrote:
The load/unload callbacks in struct drm_driver are deprecated. Remove them and call functions explicitly.
Signed-off-by: Thomas Zimmermann tzimmermann@suse.de
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 44 +++++++
Hmm, which tree is this diff against? I get
Applying: drm/vmwgfx: Call vmw_driver_{load, unload}() before registering device Using index info to reconstruct a base tree... M drivers/gpu/drm/vmwgfx/vmwgfx_drv.c error: patch failed: drivers/gpu/drm/vmwgfx/vmwgfx_drv.c:1329 error: drivers/gpu/drm/vmwgfx/vmwgfx_drv.c: patch does not apply error: Did you hand edit your patch? It does not apply to blobs recorded in its index. Patch failed at 0001 drm/vmwgfx: Call vmw_driver_{load, unload}() before registering device
On both drm-misc-next and linus' master?
Thanks,
Thomas
Hi
Am 10.12.19 um 11:37 schrieb Thomas Hellstrom:
Hi,
On 12/9/19 12:06 PM, Thomas Zimmermann wrote:
The load/unload callbacks in struct drm_driver are deprecated. Remove them and call functions explicitly.
Signed-off-by: Thomas Zimmermann tzimmermann@suse.de
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 44 +++++++
Hmm, which tree is this diff against? I get
Applying: drm/vmwgfx: Call vmw_driver_{load, unload}() before registering device Using index info to reconstruct a base tree... M drivers/gpu/drm/vmwgfx/vmwgfx_drv.c error: patch failed: drivers/gpu/drm/vmwgfx/vmwgfx_drv.c:1329 error: drivers/gpu/drm/vmwgfx/vmwgfx_drv.c: patch does not apply error: Did you hand edit your patch? It does not apply to blobs recorded in its index. Patch failed at 0001 drm/vmwgfx: Call vmw_driver_{load, unload}() before registering device
On both drm-misc-next and linus' master?
It's against one of yesterday's drm-tip. Let me know if you prefer a patch against drm-misc-next.
Best regards Thomas
Thanks,
Thomas
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On 12/9/19 12:06 PM, Thomas Zimmermann wrote:
The load/unload callbacks in struct drm_driver are deprecated. Remove them and call functions explicitly.
Signed-off-by: Thomas Zimmermann tzimmermann@suse.de
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 44 +++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index e962048f65d2..f34f1eb57cfa 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -28,10 +28,10 @@ #include <linux/console.h> #include <linux/dma-mapping.h> #include <linux/module.h> +#include <linux/pci.h>
#include <drm/drm_drv.h> #include <drm/drm_ioctl.h> -#include <drm/drm_pci.h> #include <drm/drm_sysfs.h> #include <drm/ttm/ttm_bo_driver.h> #include <drm/ttm/ttm_module.h> @@ -1211,8 +1211,10 @@ static void vmw_remove(struct pci_dev *pdev) { struct drm_device *dev = pci_get_drvdata(pdev);
- drm_dev_unregister(dev);
- vmw_driver_unload(dev);
- drm_dev_put(dev); pci_disable_device(pdev);
- drm_put_dev(dev);
}
static int vmwgfx_pm_notifier(struct notifier_block *nb, unsigned long val, @@ -1329,7 +1331,7 @@ static int vmw_pm_freeze(struct device *kdev)
vmw_fence_fifo_down(dev_priv->fman); __vmw_svga_disable(dev_priv);
Unrelated whitespace-fixup.
Otherwise looks good, but still conflicts in the above hunk when I try to apply it. Could be some TAB-mangling on the way perhaps.
Could you remove that hunk and resend?
Thanks,
Thomas
dri-devel@lists.freedesktop.org