VirtualBox

Changeset 76976 in vbox for trunk/src/VBox/Additions


Ignore:
Timestamp:
Jan 24, 2019 2:30:53 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
128366
Message:

Additions/linux/vboxvideo: Update driver to use drm_dev_register.
bugref:8282: Additions/linux: track kernel changes to vboxvideo in our own tree

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@…>
Reviewed-by: Nicholas Mc Guire <der.herr@…>
Signed-off-by: Greg Kroah-Hartman <gregkh@…>

Location:
trunk/src/VBox/Additions/linux/drm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/linux/drm/vbox_drv.c

    r76943 r76976  
    6060static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
    6161{
     62#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
    6263        return drm_get_pci_dev(pdev, ent, &driver);
     64#else
     65        struct drm_device *dev = NULL;
     66        int ret = 0;
     67
     68        dev = drm_dev_alloc(&driver, &pdev->dev);
     69        if (IS_ERR(dev)) {
     70                ret = PTR_ERR(dev);
     71                goto err_drv_alloc;
     72        }
     73        dev->pdev = pdev;
     74        pci_set_drvdata(pdev, dev);
     75
     76        ret = vbox_driver_load(dev);
     77        if (ret)
     78                goto err_vbox_driver_load;
     79
     80        ret = drm_dev_register(dev, 0);
     81        if (ret)
     82                goto err_drv_dev_register;
     83        return ret;
     84
     85err_drv_dev_register:
     86        vbox_driver_unload(dev);
     87err_vbox_driver_load:
     88        drm_dev_put(dev);
     89err_drv_alloc:
     90        return ret;
     91#endif
    6392}
    6493
     
    6796        struct drm_device *dev = pci_get_drvdata(pdev);
    6897
     98#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
    6999        drm_put_dev(dev);
     100#else
     101        drm_dev_unregister(dev);
     102        vbox_driver_unload(dev);
     103        drm_dev_put(dev);
     104#endif
    70105}
    71106
     
    272307        .dev_priv_size = 0,
    273308
     309#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
     310    /* Legacy hooks, but still supported. */
    274311        .load = vbox_driver_load,
    275312        .unload = vbox_driver_unload,
     313#endif
    276314        .lastclose = vbox_driver_lastclose,
    277315        .master_set = vbox_master_set,
  • trunk/src/VBox/Additions/linux/drm/vbox_drv.h

    r76937 r76976  
    217217#undef CURSOR_DATA_SIZE
    218218
     219#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
    219220int vbox_driver_load(struct drm_device *dev, unsigned long flags);
     221#else
     222int vbox_driver_load(struct drm_device *dev);
     223#endif
    220224#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) || defined(RHEL_75)
    221225void vbox_driver_unload(struct drm_device *dev);
  • trunk/src/VBox/Additions/linux/drm/vbox_main.c

    r76973 r76976  
    448448}
    449449
     450#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
    450451int vbox_driver_load(struct drm_device *dev, unsigned long flags)
     452#else
     453int vbox_driver_load(struct drm_device *dev)
     454#endif
    451455{
    452456        struct vbox_private *vbox;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette