extern int DRM(unlock)(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg);
extern int DRM(fb_loaded);
+extern struct file_operations DRM(fops);
/* Device support (drm_fops.h) */
extern int DRM(open_helper)(struct inode *inode, struct file *filp,
#endif
#ifndef DRIVER_PREINIT
-#define DRIVER_PREINIT(dev) 0
+#define DRIVER_PREINIT(dev, flags) 0
#endif
#ifndef DRIVER_POSTINIT
-#define DRIVER_POSTINIT(dev) 0
+#define DRIVER_POSTINIT(dev, flags) 0
#endif
#ifndef DRIVER_PRERELEASE
#define DRIVER_PRERELEASE()
#define DRIVER_PRETAKEDOWN(dev)
#endif
#ifndef DRIVER_POSTCLEANUP
-#define DRIVER_POSTCLEANUP()
+#define DRIVER_POSTCLEANUP(dev)
#endif
#ifndef DRIVER_PRESETUP
#define DRIVER_PRESETUP()
#endif
#ifndef DRIVER_FOPS
#define DRIVER_FOPS \
-static struct file_operations DRM(fops) = { \
+struct file_operations DRM(fops) = { \
.owner = THIS_MODULE, \
.open = DRM(open), \
.flush = DRM(flush), \
dev->pci_func = PCI_FUNC(pdev->devfn);
dev->irq = pdev->irq;
- if ((retcode = DRIVER_PREINIT(dev)))
+ if ((retcode = DRIVER_PREINIT(dev, ent->driver_data)))
goto error_out_unreg;
#if __REALLY_HAVE_AGP
dev->minor,
pci_pretty_name(pdev)
);
-
- if ((retcode = DRIVER_POSTINIT(dev)))
+ /* drivers add secondary heads here if needed */
+ if ((retcode = DRIVER_POSTINIT(dev, ent->driver_data)))
goto error_out_unreg;
return 0;
dev->agp = NULL;
}
#endif
+ DRIVER_POSTCLEANUP(dev);
}
static void __exit drm_exit (void)
return -ENOMEM;
}
envp[i] = 0;
- DRM_DEBUG(" - ok\n");
return 0;
}
extern int DRM(unlock)(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg);
extern int DRM(fb_loaded);
+extern struct file_operations DRM(fops);
/* Device support (drm_fops.h) */
extern int DRM(open_helper)(struct inode *inode, struct file *filp,
#endif
#ifndef DRIVER_PREINIT
-#define DRIVER_PREINIT(dev) 0
+#define DRIVER_PREINIT(dev, flags) 0
#endif
#ifndef DRIVER_POSTINIT
-#define DRIVER_POSTINIT(dev) 0
+#define DRIVER_POSTINIT(dev, flags) 0
#endif
#ifndef DRIVER_PRERELEASE
#define DRIVER_PRERELEASE()
#define DRIVER_PRETAKEDOWN(dev)
#endif
#ifndef DRIVER_POSTCLEANUP
-#define DRIVER_POSTCLEANUP()
+#define DRIVER_POSTCLEANUP(dev)
#endif
#ifndef DRIVER_PRESETUP
#define DRIVER_PRESETUP()
#endif
#ifndef DRIVER_FOPS
#define DRIVER_FOPS \
-static struct file_operations DRM(fops) = { \
+struct file_operations DRM(fops) = { \
.owner = THIS_MODULE, \
.open = DRM(open), \
.flush = DRM(flush), \
dev->pci_func = PCI_FUNC(pdev->devfn);
dev->irq = pdev->irq;
- if ((retcode = DRIVER_PREINIT(dev)))
+ if ((retcode = DRIVER_PREINIT(dev, ent->driver_data)))
goto error_out_unreg;
#if __REALLY_HAVE_AGP
dev->minor,
pci_pretty_name(pdev)
);
-
- if ((retcode = DRIVER_POSTINIT(dev)))
+ /* drivers add secondary heads here if needed */
+ if ((retcode = DRIVER_POSTINIT(dev, ent->driver_data)))
goto error_out_unreg;
return 0;
dev->agp = NULL;
}
#endif
+ DRIVER_POSTCLEANUP(dev);
}
static void __exit drm_exit (void)
return -ENOMEM;
}
envp[i] = 0;
- DRM_DEBUG(" - ok\n");
return 0;
}