diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-12 12:40:41 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-12 12:40:41 -0800 |
commit | 2485a4b610171f4e1c4ab0d053569747795c1bbe (patch) | |
tree | 1a4532e447c2640bc1378e25e1ead9a7ba7847a5 /drivers/input/serio | |
parent | 6733e54b669c600eb8e451939ad55130db664fed (diff) | |
parent | 52965cc012f7a3cf35f06485ec275ebf3b3fddae (diff) | |
download | linux-2485a4b610171f4e1c4ab0d053569747795c1bbe.tar.bz2 |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: bcm5974 - set BUTTONPAD property
Input: serio_raw - return proper result when serio_raw_write fails
Input: serio_raw - really signal HUP upon disconnect
Input: serio_raw - remove stray semicolon
Input: revert some over-zealous conversions to module_platform_driver()
Diffstat (limited to 'drivers/input/serio')
-rw-r--r-- | drivers/input/serio/at32psif.c | 14 | ||||
-rw-r--r-- | drivers/input/serio/serio_raw.c | 8 |
2 files changed, 17 insertions, 5 deletions
diff --git a/drivers/input/serio/at32psif.c b/drivers/input/serio/at32psif.c index 421a7442e464..95280f9207e1 100644 --- a/drivers/input/serio/at32psif.c +++ b/drivers/input/serio/at32psif.c @@ -358,7 +358,19 @@ static struct platform_driver psif_driver = { .suspend = psif_suspend, .resume = psif_resume, }; -module_platform_driver(psif_driver); + +static int __init psif_init(void) +{ + return platform_driver_probe(&psif_driver, psif_probe); +} + +static void __exit psif_exit(void) +{ + platform_driver_unregister(&psif_driver); +} + +module_init(psif_init); +module_exit(psif_exit); MODULE_AUTHOR("Hans-Christian Egtvedt <egtvedt@samfundet.no>"); MODULE_DESCRIPTION("Atmel AVR32 PSIF PS/2 driver"); diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c index 4d4cd142bbbb..8250299fd64f 100644 --- a/drivers/input/serio/serio_raw.c +++ b/drivers/input/serio/serio_raw.c @@ -220,11 +220,11 @@ static ssize_t serio_raw_write(struct file *file, const char __user *buffer, goto out; } written++; - }; + } out: mutex_unlock(&serio_raw_mutex); - return written; + return written ?: retval; } static unsigned int serio_raw_poll(struct file *file, poll_table *wait) @@ -237,9 +237,9 @@ static unsigned int serio_raw_poll(struct file *file, poll_table *wait) mask = serio_raw->dead ? POLLHUP | POLLERR : POLLOUT | POLLWRNORM; if (serio_raw->head != serio_raw->tail) - return POLLIN | POLLRDNORM; + mask |= POLLIN | POLLRDNORM; - return 0; + return mask; } static const struct file_operations serio_raw_fops = { |