diff options
Diffstat (limited to 'target/linux/omap24xx/patches-2.6.38/310-n8x0-gpioswitch-input.patch')
-rw-r--r-- | target/linux/omap24xx/patches-2.6.38/310-n8x0-gpioswitch-input.patch | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/target/linux/omap24xx/patches-2.6.38/310-n8x0-gpioswitch-input.patch b/target/linux/omap24xx/patches-2.6.38/310-n8x0-gpioswitch-input.patch deleted file mode 100644 index 30a169f536..0000000000 --- a/target/linux/omap24xx/patches-2.6.38/310-n8x0-gpioswitch-input.patch +++ /dev/null @@ -1,98 +0,0 @@ ---- - arch/arm/mach-omap2/board-n8x0.c | 73 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 73 insertions(+) - ---- a/arch/arm/mach-omap2/board-n8x0.c -+++ b/arch/arm/mach-omap2/board-n8x0.c -@@ -225,6 +225,77 @@ extern struct mipid_platform_data n8x0_m - extern void n8x0_mipid_init(void); - extern void n8x0_blizzard_init(void); - -+struct gpio_switch_input_dev { -+ struct input_dev *idev; -+ unsigned int swcode; -+}; -+ -+static struct gpio_switch_input_dev *slide_input; -+static struct gpio_switch_input_dev *kblock_input; -+ -+static void n8x0_gpio_switch_input_notify(struct gpio_switch_input_dev *gdev, -+ int state) -+{ -+ if (gdev) { -+ input_report_switch(gdev->idev, gdev->swcode, state); -+ input_sync(gdev->idev); -+ } -+} -+ -+static void n8x0_slide_notify(void *data, int state) -+{ -+ n8x0_gpio_switch_input_notify(slide_input, state); -+} -+ -+static void n8x0_kb_lock_notify(void *data, int state) -+{ -+ n8x0_gpio_switch_input_notify(kblock_input, state); -+} -+ -+static struct gpio_switch_input_dev * __init gpioswitch_input_init( -+ const char *name, -+ unsigned int swcode) -+{ -+ struct gpio_switch_input_dev *gdev; -+ int err; -+ -+ gdev = kzalloc(sizeof(*gdev), GFP_KERNEL); -+ if (!gdev) -+ goto error; -+ gdev->swcode = swcode; -+ -+ gdev->idev = input_allocate_device(); -+ if (!gdev->idev) -+ goto err_free; -+ -+ gdev->idev->evbit[0] = BIT_MASK(EV_SW); -+ gdev->idev->swbit[BIT_WORD(swcode)] = BIT_MASK(swcode); -+ gdev->idev->name = name; -+ -+ err = input_register_device(gdev->idev); -+ if (err) -+ goto err_free_idev; -+ -+ return gdev; -+ -+err_free_idev: -+ input_free_device(gdev->idev); -+err_free: -+ kfree(gdev); -+error: -+ return NULL; -+} -+ -+static int __init n8x0_gpio_switches_input_init(void) -+{ -+ slide_input = gpioswitch_input_init("slide", SW_KEYPAD_SLIDE); -+ kblock_input = gpioswitch_input_init("kb_lock", SW_LID); -+ if (WARN_ON(!slide_input || !kblock_input)) -+ return -ENODEV; -+ return 0; -+} -+late_initcall(n8x0_gpio_switches_input_init); -+ - static struct omap_gpio_switch n8x0_gpio_switches[] __initdata = { - { - .name = "headphone", -@@ -246,11 +317,13 @@ static struct omap_gpio_switch n8x0_gpio - .gpio = -1, - .debounce_rising = 200, - .debounce_falling = 200, -+ .notify = n8x0_slide_notify, - }, { - .name = "kb_lock", - .gpio = -1, - .debounce_rising = 200, - .debounce_falling = 200, -+ .notify = n8x0_kb_lock_notify, - }, - }; - |