summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/drmP.h1
-rw-r--r--linux-core/drm_drv.c15
-rw-r--r--linux-core/drm_stub.c1
-rw-r--r--linux/drmP.h1
-rw-r--r--linux/drm_drv.h15
-rw-r--r--linux/drm_stub.h1
6 files changed, 18 insertions, 16 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h
index 8ac39bb0..1928fabd 100644
--- a/linux-core/drmP.h
+++ b/linux-core/drmP.h
@@ -728,6 +728,7 @@ extern int DRM(lock)(struct inode *inode, struct file *filp,
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,
diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c
index 6dcb6271..94fbca8e 100644
--- a/linux-core/drm_drv.c
+++ b/linux-core/drm_drv.c
@@ -103,10 +103,10 @@
#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()
@@ -115,7 +115,7 @@
#define DRIVER_PRETAKEDOWN(dev)
#endif
#ifndef DRIVER_POSTCLEANUP
-#define DRIVER_POSTCLEANUP()
+#define DRIVER_POSTCLEANUP(dev)
#endif
#ifndef DRIVER_PRESETUP
#define DRIVER_PRESETUP()
@@ -131,7 +131,7 @@
#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), \
@@ -596,7 +596,7 @@ static int drm_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
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
@@ -643,8 +643,8 @@ static int drm_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
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;
@@ -765,6 +765,7 @@ static void __exit drm_cleanup( drm_device_t *dev )
dev->agp = NULL;
}
#endif
+ DRIVER_POSTCLEANUP(dev);
}
static void __exit drm_exit (void)
diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c
index 9a4430d3..e993c99e 100644
--- a/linux-core/drm_stub.c
+++ b/linux-core/drm_stub.c
@@ -139,7 +139,6 @@ static int drm_hotplug (struct class_device *dev, char **envp, int num_envp,
return -ENOMEM;
}
envp[i] = 0;
- DRM_DEBUG(" - ok\n");
return 0;
}
diff --git a/linux/drmP.h b/linux/drmP.h
index 8ac39bb0..1928fabd 100644
--- a/linux/drmP.h
+++ b/linux/drmP.h
@@ -728,6 +728,7 @@ extern int DRM(lock)(struct inode *inode, struct file *filp,
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,
diff --git a/linux/drm_drv.h b/linux/drm_drv.h
index 6dcb6271..94fbca8e 100644
--- a/linux/drm_drv.h
+++ b/linux/drm_drv.h
@@ -103,10 +103,10 @@
#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()
@@ -115,7 +115,7 @@
#define DRIVER_PRETAKEDOWN(dev)
#endif
#ifndef DRIVER_POSTCLEANUP
-#define DRIVER_POSTCLEANUP()
+#define DRIVER_POSTCLEANUP(dev)
#endif
#ifndef DRIVER_PRESETUP
#define DRIVER_PRESETUP()
@@ -131,7 +131,7 @@
#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), \
@@ -596,7 +596,7 @@ static int drm_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
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
@@ -643,8 +643,8 @@ static int drm_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
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;
@@ -765,6 +765,7 @@ static void __exit drm_cleanup( drm_device_t *dev )
dev->agp = NULL;
}
#endif
+ DRIVER_POSTCLEANUP(dev);
}
static void __exit drm_exit (void)
diff --git a/linux/drm_stub.h b/linux/drm_stub.h
index 9a4430d3..e993c99e 100644
--- a/linux/drm_stub.h
+++ b/linux/drm_stub.h
@@ -139,7 +139,6 @@ static int drm_hotplug (struct class_device *dev, char **envp, int num_envp,
return -ENOMEM;
}
envp[i] = 0;
- DRM_DEBUG(" - ok\n");
return 0;
}