Hi, On Sat, 8 Mar 2008 08:44:13 +0100 Martin Michlmayr <tbm@xxxxxxxxxx> wrote: > * Yoichi Yuasa <yoichi_yuasa@xxxxxxxxxxxxxx> [2008-03-08 09:19]: > > > Maybe some Cobalt hacker can sort out these issues in the latest kernel. > > > I could try to fix the build but don't have any Cobalt kit for testing ... > > > > I already sent the patch to Dmitry Torokhov. > > He said I will apply it. > > But, it has not been applied yet. > > That was quite a while ago, wasn't it? Maybe you could ping him again > or ask Ralf or Andrew to send the patch to Linus. I sent a mail to him 10 days ago. But, there is no reply. Ralf, Could you send the patch to Linus? Yoichi Fix cobalt_btns loadable keymaps support. Signed-off-by: Yoichi Yuasa <yoichi_yuasa@xxxxxxxxxxxxxx> diff -pruN -X /home/yuasa/Memo/dontdiff linux-orig/drivers/input/misc/cobalt_btns.c linux/drivers/input/misc/cobalt_btns.c --- linux-orig/drivers/input/misc/cobalt_btns.c 2008-02-10 20:16:54.621304697 +0900 +++ linux/drivers/input/misc/cobalt_btns.c 2008-02-10 23:02:30.875539556 +0900 @@ -1,7 +1,7 @@ /* * Cobalt button interface driver. * - * Copyright (C) 2007 Yoichi Yuasa <yoichi_yuasa@xxxxxxxxxxxxxx> + * Copyright (C) 2007-2008 Yoichi Yuasa <yoichi_yuasa@xxxxxxxxxxxxxx> * * 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 @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include <linux/init.h> #include <linux/input-polldev.h> @@ -55,7 +55,7 @@ static void handle_buttons(struct input_ status = ~readl(bdev->reg) >> 24; for (i = 0; i < ARRAY_SIZE(bdev->keymap); i++) { - if (status & (1UL << i)) { + if (status & (1U << i)) { if (++bdev->count[i] == BUTTONS_COUNT_THRESHOLD) { input_event(input, EV_MSC, MSC_SCAN, i); input_report_key(input, bdev->keymap[i], 1); @@ -97,16 +97,16 @@ static int __devinit cobalt_buttons_prob input->name = "Cobalt buttons"; input->phys = "cobalt/input0"; input->id.bustype = BUS_HOST; - input->cdev.dev = &pdev->dev; + input->dev.parent = &pdev->dev; - input->keycode = pdev->keymap; - input->keycodemax = ARRAY_SIZE(pdev->keymap); + input->keycode = bdev->keymap; + input->keycodemax = ARRAY_SIZE(bdev->keymap); input->keycodesize = sizeof(unsigned short); input_set_capability(input, EV_MSC, MSC_SCAN); __set_bit(EV_KEY, input->evbit); - for (i = 0; i < ARRAY_SIZE(buttons_map); i++) - __set_bit(input->keycode[i], input->keybit); + for (i = 0; i < ARRAY_SIZE(cobalt_map); i++) + __set_bit(bdev->keymap[i], input->keybit); __clear_bit(KEY_RESERVED, input->keybit); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);