Commit 6f897f51 authored by Gabriel Krisman Bertazi's avatar Gabriel Krisman Bertazi Committed by Gustavo Padovan

drm: qxl: Open code teardown function for qxl

This avoids using the deprecated drm_put_dev() and unload() hook
interfaces in the qxl driver.
Signed-off-by: default avatarGabriel Krisman Bertazi <krisman@collabora.co.uk>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Gustavo Padovan <gustavo.padovan@collabora.com>
Signed-off-by: default avatarGustavo Padovan <gustavo.padovan@collabora.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170119134806.8926-2-krisman@collabora.co.uk
parent 2b65d567
...@@ -129,8 +129,16 @@ static void ...@@ -129,8 +129,16 @@ static void
qxl_pci_remove(struct pci_dev *pdev) qxl_pci_remove(struct pci_dev *pdev)
{ {
struct drm_device *dev = pci_get_drvdata(pdev); struct drm_device *dev = pci_get_drvdata(pdev);
struct qxl_device *qdev = dev->dev_private;
drm_dev_unregister(dev);
qxl_modeset_fini(qdev);
qxl_device_fini(qdev);
drm_put_dev(dev); dev->dev_private = NULL;
kfree(qdev);
drm_dev_unref(dev);
} }
static const struct file_operations qxl_fops = { static const struct file_operations qxl_fops = {
...@@ -285,7 +293,6 @@ static struct pci_driver qxl_pci_driver = { ...@@ -285,7 +293,6 @@ static struct pci_driver qxl_pci_driver = {
static struct drm_driver qxl_driver = { static struct drm_driver qxl_driver = {
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED, DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
.unload = qxl_driver_unload,
.get_vblank_counter = qxl_noop_get_vblank_counter, .get_vblank_counter = qxl_noop_get_vblank_counter,
.enable_vblank = qxl_noop_enable_vblank, .enable_vblank = qxl_noop_enable_vblank,
.disable_vblank = qxl_noop_disable_vblank, .disable_vblank = qxl_noop_disable_vblank,
......
...@@ -340,8 +340,6 @@ int qxl_device_init(struct qxl_device *qdev, struct drm_device *ddev, ...@@ -340,8 +340,6 @@ int qxl_device_init(struct qxl_device *qdev, struct drm_device *ddev,
struct pci_dev *pdev, unsigned long flags); struct pci_dev *pdev, unsigned long flags);
void qxl_device_fini(struct qxl_device *qdev); void qxl_device_fini(struct qxl_device *qdev);
void qxl_driver_unload(struct drm_device *dev);
int qxl_modeset_init(struct qxl_device *qdev); int qxl_modeset_init(struct qxl_device *qdev);
void qxl_modeset_fini(struct qxl_device *qdev); void qxl_modeset_fini(struct qxl_device *qdev);
......
...@@ -284,19 +284,3 @@ void qxl_device_fini(struct qxl_device *qdev) ...@@ -284,19 +284,3 @@ void qxl_device_fini(struct qxl_device *qdev)
qdev->mode_info.num_modes = 0; qdev->mode_info.num_modes = 0;
qxl_debugfs_remove_files(qdev); qxl_debugfs_remove_files(qdev);
} }
void qxl_driver_unload(struct drm_device *dev)
{
struct qxl_device *qdev = dev->dev_private;
if (qdev == NULL)
return;
drm_vblank_cleanup(dev);
qxl_modeset_fini(qdev);
qxl_device_fini(qdev);
kfree(qdev);
dev->dev_private = NULL;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment