int evdi_driver_unload(struct drm_device *dev) { struct evdi_device *evdi = dev->dev_private; EVDI_CHECKPT(); drm_vblank_cleanup(dev); drm_kms_helper_poll_fini(dev); #if KERNEL_VERSION(4, 8, 0) <= LINUX_VERSION_CODE #elif KERNEL_VERSION(4, 7, 0) <= LINUX_VERSION_CODE drm_connector_unregister_all(dev); #else drm_connector_unplug_all(dev); #endif evdi_fbdev_unplug(dev); if (evdi->cursor) evdi_cursor_free(evdi->cursor); evdi_painter_cleanup(evdi); evdi_stats_cleanup(evdi); evdi_fbdev_cleanup(dev); evdi_modeset_cleanup(dev); kfree(evdi); return 0; }
static void udl_usb_disconnect(struct usb_interface *interface) { struct drm_device *dev = usb_get_intfdata(interface); drm_kms_helper_poll_disable(dev); drm_connector_unregister_all(dev); udl_fbdev_unplug(dev); udl_drop_usb(dev); drm_unplug_dev(dev); }