This is a note to let you know that I've just added the patch titled
gma500: sort out the file operations
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6.git
in the staging-next branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will also will be merged in the next major kernel release
during the merge window.
If you have any questions about this process, please let me know.
>From ea1ce3762b0ed9647d002dad8f3745c2ae534d0a Mon Sep 17 00:00:00 2001
From: Alan Cox <[email protected]>
Date: Mon, 9 May 2011 16:04:32 +0100
Subject: gma500: sort out the file operations
Route everything via the proper DRM layer calls. This fixes the crash in
plymouth and is also necessary to begin supporting libkms.
Signed-off-by: Alan Cox <[email protected]>
Cc: stable <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/staging/gma500/psb_drv.c | 50 ++++---------------------------------
1 files changed, 6 insertions(+), 44 deletions(-)
diff --git a/drivers/staging/gma500/psb_drv.c b/drivers/staging/gma500/psb_drv.c
index 4d0d1fe..46ab028 100644
--- a/drivers/staging/gma500/psb_drv.c
+++ b/drivers/staging/gma500/psb_drv.c
@@ -1313,13 +1313,6 @@ static int psb_register_rw_ioctl(struct drm_device *dev,
void *data,
return 0;
}
-/* always available as we are SIGIO'd */
-static unsigned int psb_poll(struct file *filp,
- struct poll_table_struct *wait)
-{
- return POLLIN | POLLRDNORM;
-}
-
static int psb_driver_open(struct drm_device *dev, struct drm_file *priv)
{
return 0;
@@ -1345,29 +1338,9 @@ static long psb_unlocked_ioctl(struct file *filp,
unsigned int cmd,
pm_runtime_allow(&dev->pdev->dev);
dev_priv->rpm_enabled = 1;
}
- /*
- * The driver private ioctls should be thread-safe.
- */
-
- if ((nr >= DRM_COMMAND_BASE) && (nr < DRM_COMMAND_END)
- && (nr < DRM_COMMAND_BASE + dev->driver->num_ioctls)) {
- struct drm_ioctl_desc *ioctl =
- &psb_ioctls[nr - DRM_COMMAND_BASE];
-
- if (unlikely(ioctl->cmd != cmd)) {
- DRM_ERROR(
- "Invalid drm cmnd %d ioctl->cmd %x, cmd %x\n",
- nr - DRM_COMMAND_BASE, ioctl->cmd, cmd);
- return -EINVAL;
- }
-
- return drm_ioctl(filp, cmd, arg);
- }
- /*
- * Not all old drm ioctls are thread-safe.
- */
-
return drm_ioctl(filp, cmd, arg);
+
+ /* FIXME: do we need to wrap the other side of this */
}
@@ -1384,17 +1357,6 @@ static void psb_remove(struct pci_dev *pdev)
drm_put_dev(dev);
}
-static int psb_open(struct inode *inode, struct file *filp)
-{
- return 0;
-}
-
-static int psb_release(struct inode *inode, struct file *filp)
-{
- return 0;
-}
-
-
static const struct dev_pm_ops psb_pm_ops = {
.runtime_suspend = psb_runtime_suspend,
.runtime_resume = psb_runtime_resume,
@@ -1438,11 +1400,11 @@ static struct drm_driver driver = {
.fops = {
.owner = THIS_MODULE,
- .open = psb_open,
- .release = psb_release,
+ .open = drm_open,
+ .release = drm_release,
.unlocked_ioctl = psb_unlocked_ioctl,
- /* .mmap = psb_mmap, */
- .poll = psb_poll,
+ .mmap = drm_mmap,
+ .poll = drm_poll,
.fasync = drm_fasync,
.read = drm_read,
},
--
1.7.4.2
_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable