On pe, 2016-05-27 at 15:00 +0100, Chris Wilson wrote: > The module init/exit routines are a wrapper around the PCI device > init/exit, so move them across. > This is not a simple move operation (i915_init), this should be noted in the commit message or preferably split into two commits, first move, then restructure. Regards, Joonas > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.c | 51 +++-------------------------------------- > drivers/gpu/drm/i915/i915_pci.c | 45 +++++++++++++++++++++++++++++++++++- > 2 files changed, 47 insertions(+), 49 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 79b6834bc6b2..bf607ca8ddb4 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -28,7 +28,6 @@ > */ > > #include > -#include > #include > #include > #include > @@ -1563,6 +1562,9 @@ int i915_driver_load(struct pci_dev *pdev, const struct pci_device_id *ent) > struct drm_i915_private *dev_priv; > int ret; > > + if (i915.nuclear_pageflip) > + driver.driver_features |= DRIVER_ATOMIC; > + > dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL); > if (dev_priv == NULL) > return -ENOMEM; > @@ -2988,50 +2990,3 @@ static struct drm_driver driver = { > .minor = DRIVER_MINOR, > .patchlevel = DRIVER_PATCHLEVEL, > }; > - > -static int __init i915_init(void) > -{ > - extern struct pci_driver i915_pci_driver; > - > - /* > - * Enable KMS by default, unless explicitly overriden by > - * either the i915.modeset prarameter or by the > - * vga_text_mode_force boot option. > - */ > - > - if (i915.modeset == 0) > - driver.driver_features &= ~DRIVER_MODESET; > - > - if (vgacon_text_force() && i915.modeset == -1) > - driver.driver_features &= ~DRIVER_MODESET; > - > - if (!(driver.driver_features & DRIVER_MODESET)) { > - /* Silently fail loading to not upset userspace. */ > - DRM_DEBUG_DRIVER("KMS and UMS disabled.\n"); > - return 0; > - } > - > - if (i915.nuclear_pageflip) > - driver.driver_features |= DRIVER_ATOMIC; > - > - return drm_pci_init(&driver, &i915_pci_driver); > -} > - > -static void __exit i915_exit(void) > -{ > - extern struct pci_driver i915_pci_driver; > - > - if (!(driver.driver_features & DRIVER_MODESET)) > - return; /* Never loaded a driver. */ > - > - drm_pci_exit(&driver, &i915_pci_driver); > -} > - > -module_init(i915_init); > -module_exit(i915_exit); > - > -MODULE_AUTHOR("Tungsten Graphics, Inc."); > -MODULE_AUTHOR("Intel Corporation"); > - > -MODULE_DESCRIPTION(DRIVER_DESC); > -MODULE_LICENSE("GPL and additional rights"); > diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c > index 514d8b784319..3cb3a900b969 100644 > --- a/drivers/gpu/drm/i915/i915_pci.c > +++ b/drivers/gpu/drm/i915/i915_pci.c > @@ -22,6 +22,7 @@ > * > */ > > +#include > #include > #include > #include > @@ -454,10 +455,52 @@ static void i915_pci_remove(struct pci_dev *pdev) > > extern const struct dev_pm_ops i915_pm_ops; > > -struct pci_driver i915_pci_driver = { > +static struct pci_driver i915_pci_driver = { > .name = DRIVER_NAME, > .id_table = pciidlist, > .probe = i915_pci_probe, > .remove = i915_pci_remove, > .driver.pm = &i915_pm_ops, > }; > + > +static int __init i915_init(void) > +{ > + bool use_kms = true; > + > + /* > + * Enable KMS by default, unless explicitly overriden by > + * either the i915.modeset prarameter or by the > + * vga_text_mode_force boot option. > + */ > + > + if (i915.modeset == 0) > + use_kms = false; > + > + if (vgacon_text_force() && i915.modeset == -1) > + use_kms = false; > + > + if (!use_kms) { > + /* Silently fail loading to not upset userspace. */ > + DRM_DEBUG_DRIVER("KMS and UMS disabled.\n"); > + return 0; > + } > + > + return pci_register_driver(&i915_pci_driver); > +} > + > +static void __exit i915_exit(void) > +{ > + if (!i915_pci_driver.driver.owner) > + return; > + > + pci_unregister_driver(&i915_pci_driver); > +} > + > +module_init(i915_init); > +module_exit(i915_exit); > + > +MODULE_AUTHOR("Tungsten Graphics, Inc."); > +MODULE_AUTHOR("Intel Corporation"); > + > +MODULE_DESCRIPTION(DRIVER_DESC); > +MODULE_LICENSE("GPL and additional rights"); -- Joonas Lahtinen Open Source Technology Center Intel Corporation _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx