aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/misc
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2008-12-20 04:54:54 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2008-12-20 04:54:54 -0500
commit93b8eef1c098efbea2f1fc0be7e3c681f259a7e7 (patch)
tree462cc8c2bc07bbc825dab2a200891a28d8643329 /drivers/input/misc
parenta2d781fc8d9b16113dd9440107d73c0f21d7cbef (diff)
parent929096fe9ff1f4b3645cf3919527ab47e8d5e17c (diff)
Merge commit 'v2.6.28-rc9' into next
Diffstat (limited to 'drivers/input/misc')
-rw-r--r--drivers/input/misc/cm109.c37
-rw-r--r--drivers/input/misc/hp_sdc_rtc.c13
2 files changed, 36 insertions, 14 deletions
diff --git a/drivers/input/misc/cm109.c b/drivers/input/misc/cm109.c
index bce160f4349b..86457feccfc4 100644
--- a/drivers/input/misc/cm109.c
+++ b/drivers/input/misc/cm109.c
@@ -42,7 +42,7 @@
42 42
43static char *phone = "kip1000"; 43static char *phone = "kip1000";
44module_param(phone, charp, S_IRUSR); 44module_param(phone, charp, S_IRUSR);
45MODULE_PARM_DESC(phone, "Phone name {kip1000, gtalk, usbph01}"); 45MODULE_PARM_DESC(phone, "Phone name {kip1000, gtalk, usbph01, atcom}");
46 46
47enum { 47enum {
48 /* HID Registers */ 48 /* HID Registers */
@@ -258,6 +258,37 @@ static unsigned short keymap_usbph01(int scancode)
258 } 258 }
259} 259}
260 260
261/*
262 * Keymap for ATCom AU-100
263 * http://www.atcom.cn/En_products_AU100.html
264 * http://www.packetizer.com/products/au100/
265 * http://www.voip-info.org/wiki/view/AU-100
266 *
267 * Contributed by daniel@gimpelevich.san-francisco.ca.us
268 */
269static unsigned short keymap_atcom(int scancode)
270{
271 switch (scancode) { /* phone key: */
272 case 0x82: return KEY_NUMERIC_0; /* 0 */
273 case 0x11: return KEY_NUMERIC_1; /* 1 */
274 case 0x12: return KEY_NUMERIC_2; /* 2 */
275 case 0x14: return KEY_NUMERIC_3; /* 3 */
276 case 0x21: return KEY_NUMERIC_4; /* 4 */
277 case 0x22: return KEY_NUMERIC_5; /* 5 */
278 case 0x24: return KEY_NUMERIC_6; /* 6 */
279 case 0x41: return KEY_NUMERIC_7; /* 7 */
280 case 0x42: return KEY_NUMERIC_8; /* 8 */
281 case 0x44: return KEY_NUMERIC_9; /* 9 */
282 case 0x84: return KEY_NUMERIC_POUND; /* # */
283 case 0x81: return KEY_NUMERIC_STAR; /* * */
284 case 0x18: return KEY_ENTER; /* pickup */
285 case 0x28: return KEY_ESC; /* hangup */
286 case 0x48: return KEY_LEFT; /* left arrow */
287 case 0x88: return KEY_RIGHT; /* right arrow */
288 default: return special_keymap(scancode);
289 }
290}
291
261static unsigned short (*keymap)(int) = keymap_kip1000; 292static unsigned short (*keymap)(int) = keymap_kip1000;
262 293
263/* 294/*
@@ -840,6 +871,10 @@ static int __init cm109_select_keymap(void)
840 keymap = keymap_usbph01; 871 keymap = keymap_usbph01;
841 printk(KERN_INFO KBUILD_MODNAME ": " 872 printk(KERN_INFO KBUILD_MODNAME ": "
842 "Keymap for Allied-Telesis Corega USBPH01 phone loaded\n"); 873 "Keymap for Allied-Telesis Corega USBPH01 phone loaded\n");
874 } else if (!strcasecmp(phone, "atcom")) {
875 keymap = keymap_atcom;
876 printk(KERN_INFO KBUILD_MODNAME ": "
877 "Keymap for ATCom AU-100 phone loaded\n");
843 } else { 878 } else {
844 printk(KERN_ERR KBUILD_MODNAME ": " 879 printk(KERN_ERR KBUILD_MODNAME ": "
845 "Unsupported phone: %s\n", phone); 880 "Unsupported phone: %s\n", phone);
diff --git a/drivers/input/misc/hp_sdc_rtc.c b/drivers/input/misc/hp_sdc_rtc.c
index 82ec6b1b6467..216a559f55ea 100644
--- a/drivers/input/misc/hp_sdc_rtc.c
+++ b/drivers/input/misc/hp_sdc_rtc.c
@@ -71,7 +71,6 @@ static int hp_sdc_rtc_ioctl(struct inode *inode, struct file *file,
71static unsigned int hp_sdc_rtc_poll(struct file *file, poll_table *wait); 71static unsigned int hp_sdc_rtc_poll(struct file *file, poll_table *wait);
72 72
73static int hp_sdc_rtc_open(struct inode *inode, struct file *file); 73static int hp_sdc_rtc_open(struct inode *inode, struct file *file);
74static int hp_sdc_rtc_release(struct inode *inode, struct file *file);
75static int hp_sdc_rtc_fasync (int fd, struct file *filp, int on); 74static int hp_sdc_rtc_fasync (int fd, struct file *filp, int on);
76 75
77static int hp_sdc_rtc_read_proc(char *page, char **start, off_t off, 76static int hp_sdc_rtc_read_proc(char *page, char **start, off_t off,
@@ -414,17 +413,6 @@ static int hp_sdc_rtc_open(struct inode *inode, struct file *file)
414 return 0; 413 return 0;
415} 414}
416 415
417static int hp_sdc_rtc_release(struct inode *inode, struct file *file)
418{
419 /* Turn off interrupts? */
420
421 if (file->f_flags & FASYNC) {
422 hp_sdc_rtc_fasync (-1, file, 0);
423 }
424
425 return 0;
426}
427
428static int hp_sdc_rtc_fasync (int fd, struct file *filp, int on) 416static int hp_sdc_rtc_fasync (int fd, struct file *filp, int on)
429{ 417{
430 return fasync_helper (fd, filp, on, &hp_sdc_rtc_async_queue); 418 return fasync_helper (fd, filp, on, &hp_sdc_rtc_async_queue);
@@ -680,7 +668,6 @@ static const struct file_operations hp_sdc_rtc_fops = {
680 .poll = hp_sdc_rtc_poll, 668 .poll = hp_sdc_rtc_poll,
681 .ioctl = hp_sdc_rtc_ioctl, 669 .ioctl = hp_sdc_rtc_ioctl,
682 .open = hp_sdc_rtc_open, 670 .open = hp_sdc_rtc_open,
683 .release = hp_sdc_rtc_release,
684 .fasync = hp_sdc_rtc_fasync, 671 .fasync = hp_sdc_rtc_fasync,
685}; 672};
686 673