Merge branch 'origin' into devel
Conflicts: sound/soc/pxa/pxa2xx-i2s.c
This commit is contained in:
@@ -94,11 +94,8 @@ static void evdev_event(struct input_handle *handle,
|
||||
static int evdev_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
struct evdev_client *client = file->private_data;
|
||||
int retval;
|
||||
|
||||
retval = fasync_helper(fd, file, on, &client->fasync);
|
||||
|
||||
return retval < 0 ? retval : 0;
|
||||
return fasync_helper(fd, file, on, &client->fasync);
|
||||
}
|
||||
|
||||
static int evdev_flush(struct file *file, fl_owner_t id)
|
||||
|
@@ -159,12 +159,9 @@ static void joydev_event(struct input_handle *handle,
|
||||
|
||||
static int joydev_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
int retval;
|
||||
struct joydev_client *client = file->private_data;
|
||||
|
||||
retval = fasync_helper(fd, file, on, &client->fasync);
|
||||
|
||||
return retval < 0 ? retval : 0;
|
||||
return fasync_helper(fd, file, on, &client->fasync);
|
||||
}
|
||||
|
||||
static void joydev_free(struct device *dev)
|
||||
|
@@ -3,7 +3,7 @@
|
||||
* Based on drivers/usb/iforce.c
|
||||
*
|
||||
* Copyright Yaegashi Takeshi, 2001
|
||||
* Adrian McMenamin, 2008
|
||||
* Adrian McMenamin, 2008 - 2009
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
@@ -29,7 +29,7 @@ static void dc_pad_callback(struct mapleq *mq)
|
||||
struct maple_device *mapledev = mq->dev;
|
||||
struct dc_pad *pad = maple_get_drvdata(mapledev);
|
||||
struct input_dev *dev = pad->dev;
|
||||
unsigned char *res = mq->recvbuf;
|
||||
unsigned char *res = mq->recvbuf->buf;
|
||||
|
||||
buttons = ~le16_to_cpup((__le16 *)(res + 8));
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* SEGA Dreamcast keyboard driver
|
||||
* Based on drivers/usb/usbkbd.c
|
||||
* Copyright YAEGASHI Takeshi, 2001
|
||||
* Porting to 2.6 Copyright Adrian McMenamin, 2007, 2008
|
||||
* Copyright (c) YAEGASHI Takeshi, 2001
|
||||
* Porting to 2.6 Copyright (c) Adrian McMenamin, 2007 - 2009
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -33,7 +33,7 @@ static DEFINE_MUTEX(maple_keyb_mutex);
|
||||
|
||||
#define NR_SCANCODES 256
|
||||
|
||||
MODULE_AUTHOR("YAEGASHI Takeshi, Adrian McMenamin");
|
||||
MODULE_AUTHOR("Adrian McMenamin <adrian@mcmen.demon.co.uk");
|
||||
MODULE_DESCRIPTION("SEGA Dreamcast keyboard driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
@@ -115,7 +115,7 @@ static void dc_scan_kbd(struct dc_kbd *kbd)
|
||||
input_event(dev, EV_MSC, MSC_SCAN, code);
|
||||
input_report_key(dev, keycode, 0);
|
||||
} else
|
||||
printk(KERN_DEBUG "maple_keyb: "
|
||||
dev_dbg(&dev->dev,
|
||||
"Unknown key (scancode %#x) released.",
|
||||
code);
|
||||
}
|
||||
@@ -127,7 +127,7 @@ static void dc_scan_kbd(struct dc_kbd *kbd)
|
||||
input_event(dev, EV_MSC, MSC_SCAN, code);
|
||||
input_report_key(dev, keycode, 1);
|
||||
} else
|
||||
printk(KERN_DEBUG "maple_keyb: "
|
||||
dev_dbg(&dev->dev,
|
||||
"Unknown key (scancode %#x) pressed.",
|
||||
code);
|
||||
}
|
||||
@@ -140,7 +140,7 @@ static void dc_kbd_callback(struct mapleq *mq)
|
||||
{
|
||||
struct maple_device *mapledev = mq->dev;
|
||||
struct dc_kbd *kbd = maple_get_drvdata(mapledev);
|
||||
unsigned long *buf = mq->recvbuf;
|
||||
unsigned long *buf = (unsigned long *)(mq->recvbuf->buf);
|
||||
|
||||
/*
|
||||
* We should always get the lock because the only
|
||||
@@ -159,22 +159,27 @@ static void dc_kbd_callback(struct mapleq *mq)
|
||||
|
||||
static int probe_maple_kbd(struct device *dev)
|
||||
{
|
||||
struct maple_device *mdev = to_maple_dev(dev);
|
||||
struct maple_driver *mdrv = to_maple_driver(dev->driver);
|
||||
struct maple_device *mdev;
|
||||
struct maple_driver *mdrv;
|
||||
int i, error;
|
||||
struct dc_kbd *kbd;
|
||||
struct input_dev *idev;
|
||||
|
||||
if (!(mdev->function & MAPLE_FUNC_KEYBOARD))
|
||||
return -EINVAL;
|
||||
mdev = to_maple_dev(dev);
|
||||
mdrv = to_maple_driver(dev->driver);
|
||||
|
||||
kbd = kzalloc(sizeof(struct dc_kbd), GFP_KERNEL);
|
||||
idev = input_allocate_device();
|
||||
if (!kbd || !idev) {
|
||||
if (!kbd) {
|
||||
error = -ENOMEM;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
idev = input_allocate_device();
|
||||
if (!idev) {
|
||||
error = -ENOMEM;
|
||||
goto fail_idev_alloc;
|
||||
}
|
||||
|
||||
kbd->dev = idev;
|
||||
memcpy(kbd->keycode, dc_kbd_keycode, sizeof(kbd->keycode));
|
||||
|
||||
@@ -195,7 +200,7 @@ static int probe_maple_kbd(struct device *dev)
|
||||
|
||||
error = input_register_device(idev);
|
||||
if (error)
|
||||
goto fail;
|
||||
goto fail_register;
|
||||
|
||||
/* Maple polling is locked to VBLANK - which may be just 50/s */
|
||||
maple_getcond_callback(mdev, dc_kbd_callback, HZ/50,
|
||||
@@ -207,10 +212,12 @@ static int probe_maple_kbd(struct device *dev)
|
||||
|
||||
return error;
|
||||
|
||||
fail:
|
||||
input_free_device(idev);
|
||||
kfree(kbd);
|
||||
fail_register:
|
||||
maple_set_drvdata(mdev, NULL);
|
||||
input_free_device(idev);
|
||||
fail_idev_alloc:
|
||||
kfree(kbd);
|
||||
fail:
|
||||
return error;
|
||||
}
|
||||
|
||||
|
@@ -219,6 +219,8 @@ static int __devinit sh_keysc_probe(struct platform_device *pdev)
|
||||
pdata->scan_timing, priv->iomem_base + KYCR1_OFFS);
|
||||
iowrite16(0, priv->iomem_base + KYOUTDR_OFFS);
|
||||
iowrite16(KYCR2_IRQ_LEVEL, priv->iomem_base + KYCR2_OFFS);
|
||||
|
||||
device_init_wakeup(&pdev->dev, 1);
|
||||
return 0;
|
||||
err5:
|
||||
free_irq(irq, pdev);
|
||||
@@ -253,17 +255,33 @@ static int __devexit sh_keysc_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sh_keysc_suspend(struct device *dev)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
struct sh_keysc_priv *priv = platform_get_drvdata(pdev);
|
||||
unsigned short value;
|
||||
|
||||
#define sh_keysc_suspend NULL
|
||||
#define sh_keysc_resume NULL
|
||||
value = ioread16(priv->iomem_base + KYCR1_OFFS);
|
||||
|
||||
if (device_may_wakeup(dev))
|
||||
value |= 0x80;
|
||||
else
|
||||
value &= ~0x80;
|
||||
|
||||
iowrite16(value, priv->iomem_base + KYCR1_OFFS);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct dev_pm_ops sh_keysc_dev_pm_ops = {
|
||||
.suspend = sh_keysc_suspend,
|
||||
};
|
||||
|
||||
struct platform_driver sh_keysc_device_driver = {
|
||||
.probe = sh_keysc_probe,
|
||||
.remove = __devexit_p(sh_keysc_remove),
|
||||
.suspend = sh_keysc_suspend,
|
||||
.resume = sh_keysc_resume,
|
||||
.driver = {
|
||||
.name = "sh_keysc",
|
||||
.pm = &sh_keysc_dev_pm_ops,
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -403,12 +403,9 @@ static void mousedev_event(struct input_handle *handle,
|
||||
|
||||
static int mousedev_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
int retval;
|
||||
struct mousedev_client *client = file->private_data;
|
||||
|
||||
retval = fasync_helper(fd, file, on, &client->fasync);
|
||||
|
||||
return retval < 0 ? retval : 0;
|
||||
return fasync_helper(fd, file, on, &client->fasync);
|
||||
}
|
||||
|
||||
static void mousedev_free(struct device *dev)
|
||||
|
@@ -58,10 +58,8 @@ static unsigned int serio_raw_no;
|
||||
static int serio_raw_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
struct serio_raw_list *list = file->private_data;
|
||||
int retval;
|
||||
|
||||
retval = fasync_helper(fd, file, on, &list->fasync);
|
||||
return retval < 0 ? retval : 0;
|
||||
return fasync_helper(fd, file, on, &list->fasync);
|
||||
}
|
||||
|
||||
static struct serio_raw *serio_raw_locate(int minor)
|
||||
|
Reference in New Issue
Block a user