summaryrefslogtreecommitdiffstats
path: root/drivers/staging/vboxvideo/vbox_drv.c
diff options
context:
space:
mode:
authorFabio Rafael da Rosa2018-06-04 04:24:45 +0200
committerGreg Kroah-Hartman2018-06-17 09:05:13 +0200
commit1daddbc8dec56e3c656ade8e5e6ef20a1be68823 (patch)
treec371d8df593b46e2d38208657f363d70ca2b53eb /drivers/staging/vboxvideo/vbox_drv.c
parentstaging: wilc1000: move 'txq_spinlock_flags' from 'wilc' structure to local v... (diff)
downloadkernel-qcow2-linux-1daddbc8dec56e3c656ade8e5e6ef20a1be68823.tar.gz
kernel-qcow2-linux-1daddbc8dec56e3c656ade8e5e6ef20a1be68823.tar.xz
kernel-qcow2-linux-1daddbc8dec56e3c656ade8e5e6ef20a1be68823.zip
staging: vboxvideo: Update driver to use drm_dev_register.
The use of load and unload hooks is deprecated. DRM drivers should use drm_dev_alloc|drm_dev_init and drm_dev_register for initialization and publishing. Signed-off-by: Fabio Rafael da Rosa <fdr@pid42.net> Reviewed-by: Nicholas Mc Guire <der.herr@hofr.at> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/vboxvideo/vbox_drv.c')
-rw-r--r--drivers/staging/vboxvideo/vbox_drv.c34
1 files changed, 30 insertions, 4 deletions
diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c
index f6d26beffa54..da92c493f157 100644
--- a/drivers/staging/vboxvideo/vbox_drv.c
+++ b/drivers/staging/vboxvideo/vbox_drv.c
@@ -51,14 +51,42 @@ MODULE_DEVICE_TABLE(pci, pciidlist);
static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{
- return drm_get_pci_dev(pdev, ent, &driver);
+ struct drm_device *dev = NULL;
+ int ret = 0;
+
+ dev = drm_dev_alloc(&driver, &pdev->dev);
+ if (IS_ERR(dev)) {
+ ret = PTR_ERR(dev);
+ goto err_drv_alloc;
+ }
+ dev->pdev = pdev;
+ pci_set_drvdata(pdev, dev);
+
+ ret = vbox_driver_load(dev);
+ if (ret)
+ goto err_vbox_driver_load;
+
+ ret = drm_dev_register(dev, 0);
+ if (ret)
+ goto err_drv_dev_register;
+
+ return ret;
+
+ err_drv_dev_register:
+ vbox_driver_unload(dev);
+ err_vbox_driver_load:
+ drm_dev_put(dev);
+ err_drv_alloc:
+ return ret;
}
static void vbox_pci_remove(struct pci_dev *pdev)
{
struct drm_device *dev = pci_get_drvdata(pdev);
- drm_put_dev(dev);
+ drm_dev_unregister(dev);
+ vbox_driver_unload(dev);
+ drm_dev_put(dev);
}
static int vbox_drm_freeze(struct drm_device *dev)
@@ -227,8 +255,6 @@ static struct drm_driver driver = {
DRIVER_PRIME,
.dev_priv_size = 0,
- .load = vbox_driver_load,
- .unload = vbox_driver_unload,
.lastclose = vbox_driver_lastclose,
.master_set = vbox_master_set,
.master_drop = vbox_master_drop,