[oe-commits] org.oe.dev linux-ezx 2.6.21: update patches to r1995, gives you working ts, keys and some powermanagement
koen commit
openembedded-commits at lists.openembedded.org
Tue May 1 21:19:38 UTC 2007
linux-ezx 2.6.21: update patches to r1995, gives you working ts, keys and some powermanagement
Author: koen at openembedded.org
Branch: org.openembedded.dev
Revision: bc5aec3313808a99df2fc763a66773cc8d516338
ViewMTN: http://monotone.openembedded.org/revision.psp?id=bc5aec3313808a99df2fc763a66773cc8d516338
Files:
1
packages/linux/linux-ezx-2.6.21/ezx-kbd.patch
packages/linux/linux-ezx-2.6.21/ezx-pm.patch
packages/linux/linux-ezx-2.6.21/ezx-ts.patch
packages/linux/linux-ezx-2.6.21/mux-linux-2.6.20.7-fix.patch
packages/linux/linux-ezx-2.6.21/pcap_ts.c.patch
packages/linux/linux-ezx-2.6.21/pxa-kbd.patch
packages/linux/linux-ezx-2.6.21/touchscreen-fix-r0.patch
packages/linux/linux-ezx-2.6.21/wyrm-ts.diff
packages/linux/linux-ezx-2.6.21/ezx-core.patch
packages/linux/linux-ezx-2.6.21/ezx-emu.patch
packages/linux/linux-ezx-2.6.21/ezx-pcap.patch
packages/linux/linux-ezx-2.6.21/mux-linux-2.6.21-fix.patch
packages/linux/linux-ezx_2.6.21.bb
Diffs:
#
# mt diff -re4e5368d78f868a6909f5a503e76d94322e55564 -rbc5aec3313808a99df2fc763a66773cc8d516338
#
#
#
# add_file "packages/linux/linux-ezx-2.6.21/ezx-kbd.patch"
# content [724853a454c08784072b8035dc3679b37b21f900]
#
# add_file "packages/linux/linux-ezx-2.6.21/ezx-pm.patch"
# content [1c6536cb9e6dc5d22dc0a27bef6ad953351fff5b]
#
# add_file "packages/linux/linux-ezx-2.6.21/ezx-ts.patch"
# content [5354ce457efeb9d99bcf769a77e5cff4a326f34f]
#
# add_file "packages/linux/linux-ezx-2.6.21/mux-linux-2.6.20.7-fix.patch"
# content [c0fe0ce107ef3dce4d11d297ed2626db18086d8a]
#
# add_file "packages/linux/linux-ezx-2.6.21/pcap_ts.c.patch"
# content [5b95785d1f124ce80c09593eb585560f9b4b485d]
#
# add_file "packages/linux/linux-ezx-2.6.21/pxa-kbd.patch"
# content [5930a7b94449efd11e7c9b72aef7d5a3edf83b69]
#
# add_file "packages/linux/linux-ezx-2.6.21/touchscreen-fix-r0.patch"
# content [083cdd46891b18d09826215055299060200903bb]
#
# add_file "packages/linux/linux-ezx-2.6.21/wyrm-ts.diff"
# content [fa6dba7838bb6a087fa8be3155927612f706691e]
#
# patch "packages/linux/linux-ezx-2.6.21/ezx-core.patch"
# from [0db3853e75c4917300c2e187c16faa9a4180c447]
# to [e3030d5121623bc3aea1f0de422ef11a498b6298]
#
# patch "packages/linux/linux-ezx-2.6.21/ezx-emu.patch"
# from [19577ea60c9a98803017b20e499b5da34c7fa7b2]
# to [f4e804b0e726b97d66f6fc115e2fd36cfb0e4cf7]
#
# patch "packages/linux/linux-ezx-2.6.21/ezx-pcap.patch"
# from [26c2d10358fb03f66e91094c472f12437c1459a9]
# to [3684c620af09bc2814bbc4820321bb3ff14500de]
#
# patch "packages/linux/linux-ezx-2.6.21/mux-linux-2.6.21-fix.patch"
# from [696fc670335135b5f840df7a7eb27f3570a415ad]
# to [6a78ee277770d5c294930349c9ec3f90ca60289f]
#
# patch "packages/linux/linux-ezx_2.6.21.bb"
# from [c4136421b5c2a368273d4f011665dc589a473074]
# to [6e78410c26a27d00caaf5aab12c7ab16e378ccaf]
#
============================================================
--- packages/linux/linux-ezx-2.6.21/ezx-kbd.patch 724853a454c08784072b8035dc3679b37b21f900
+++ packages/linux/linux-ezx-2.6.21/ezx-kbd.patch 724853a454c08784072b8035dc3679b37b21f900
@@ -0,0 +1,139 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-kbd.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-kbd.c 2007-04-30 20:33:19.000000000 -0300
+@@ -0,0 +1,109 @@
++#include <linux/input.h>
++#include <asm/arch/kbd.h>
++#include <asm/arch/pxa-regs.h>
++
++extern void __init pxa_set_kbd_info(struct pxakbd_platform_data *);
++
++#if defined(CONFIG_PXA_EZX_E680)
++static unsigned char ezx_keycode[] = {
++ /* row 0 */
++ KEY_UP, KEY_RIGHT, KEY_RESERVED, KEY_PHONE,
++ /* row 1 */
++ KEY_DOWN, KEY_LEFT, KEY_VOLUMEUP, KEY_VOLUMEDOWN,
++ /* row 2 */
++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_KPENTER,
++};
++
++static unsigned char ezx_direct_keycode[] = {
++ KEY_CAMERA,
++ KEYPAD_RESERVED,
++ KEYPAD_RESERVED,
++ KEYPAD_HOME,
++ KEY_POWER,
++ KEYPAD_MENU,
++};
++#elif defined(CONFIG_PXA_EZX_A780)
++static unsigned char ezx_keycode[] = {
++ /* row 0 */
++ KEY_KPENTER, KEY_MENU, KEY_CANCEL, KEY_PAGEUP, KEY_UP,
++ /* row 1 */
++ KEY_KP1, KEY_KP2, KEY_KP3, KEY_ENTER, KEY_KPENTER, /*center joypad */
++ /* row 2 */
++ KEY_KP4, KEY_KP5, KEY_KP6, KEY_PAGEDOWN, KEY_PHONE,
++ /* row 3 */
++ KEY_KP7, KEY_KP8, KEY_KP9, KEY_PHONE, KEY_LEFT,
++ /* row 4 */
++ KEY_KPASTERISK, KEY_KP0, KEY_KPDOT, KEY_PAGEDOWN, KEY_DOWN,
++};
++static unsigned char ezx_direct_keycode[] = {
++ KEY_CAMERA,
++};
++#else
++#error "no EZX subarchitecture defined"
++#endif
++
++static int ezx_kbd_init(void)
++{
++#if defined(CONFIG_PXA_EZX_E680)
++ pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN); /* KP_DKIN<0>, VR Key */
++ pxa_gpio_mode(96 | GPIO_ALT_FN_1_IN); /* KP_DKIN<3>, GAME_A */
++ pxa_gpio_mode(97 | GPIO_ALT_FN_1_IN); /* KP_DKIN<4>, power key */
++ pxa_gpio_mode(98 | GPIO_ALT_FN_1_IN); /* KP_DKIN<5>, GAME_B */
++ pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN); /* KP_MKIN<0> */
++ pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN); /* KP_MKIN<1> */
++ pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN); /* KP_MKIN<2> */
++ pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */
++ pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */
++ pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */
++ pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */
++ pxa_gpio_mode(GPIO_TC_MM_EN);
++ GPDR(GPIO_TC_MM_EN) |= GPIO_bit(GPIO_TC_MM_EN);
++ GPSR(GPIO_TC_MM_EN) = GPIO_bit(GPIO_TC_MM_EN);
++ PGSR3 |= GPIO_bit(GPIO_TC_MM_EN);
++#elif defined(CONFIG_PXA_EZX_A780)
++ pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN); /* KP_DKIN<0>, voice_rec */
++ pxa_gpio_mode(97 | GPIO_ALT_FN_3_IN); /* KP_MKIN<3> */
++ pxa_gpio_mode(98 | GPIO_ALT_FN_3_IN); /* KP_MKIN<4> */
++ pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN); /* KP_MKIN<0> */
++ pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN); /* KP_MKIN<1> */
++ pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN); /* KP_MKIN<2> */
++ pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */
++ pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */
++ pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */
++ pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */
++ pxa_gpio_mode(107 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<4> */
++#endif
++ return 0;
++}
++
++static struct pxakbd_platform_data ezx_kbd_platform_data = {
++ .init = &ezx_kbd_init,
++ .scan_interval = HZ/40,
++ .matrix = {
++ .keycode = ezx_keycode,
++#if defined(CONFIG_PXA_EZX_E680)
++ .cols = 4,
++ .rows = 3,
++#elif defined(CONFIG_PXA_EZX_A780)
++ .cols = 5,
++ .rows = 5,
++#endif
++ },
++ .direct = {
++ .keycode = ezx_direct_keycode,
++#if defined(CONFIG_PXA_EZX_E680)
++ .num = 6,
++#elif defined(CONFIG_PXA_EZX_A780)
++ .num = 1,
++#endif
++ },
++};
++
++
++int __init __ezx_kbd_init (void)
++{
++ pxa_set_kbd_info(&ezx_kbd_platform_data);
++ return 0;
++}
++
++arch_initcall(__ezx_kbd_init);
+Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-04-30 20:09:21.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-04-30 20:09:34.000000000 -0300
+@@ -18,7 +18,7 @@
+ obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o
+ obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
+ obj-$(CONFIG_MACH_TOSA) += tosa.o
+-obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o ezx-mci.o
++obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o ezx-mci.o ezx-kbd.o
+ obj-$(CONFIG_PXA_EZX_EMU) += ezx-emu.o
+
+ # Support for blinky lights
+Index: linux-2.6.21/drivers/input/keyboard/pxakbd.c
+===================================================================
+--- linux-2.6.21.orig/drivers/input/keyboard/pxakbd.c 2007-04-30 20:47:29.000000000 -0300
++++ linux-2.6.21/drivers/input/keyboard/pxakbd.c 2007-04-30 20:49:32.000000000 -0300
+@@ -213,6 +213,7 @@
+ if (!input_dev)
+ goto out_pxa;
+
++ spin_lock_init(&pxakbd->lock);
+ pxakbd->irq = platform_get_irq(pdev, 0);
+ r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!r || pxakbd->irq == NO_IRQ) {
============================================================
--- packages/linux/linux-ezx-2.6.21/ezx-pm.patch 1c6536cb9e6dc5d22dc0a27bef6ad953351fff5b
+++ packages/linux/linux-ezx-2.6.21/ezx-pm.patch 1c6536cb9e6dc5d22dc0a27bef6ad953351fff5b
@@ -0,0 +1,58 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c 2007-04-26 00:08:32.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c 2007-04-30 18:29:49.000000000 -0300
+@@ -22,6 +22,10 @@
+ #include <asm/arch/pxa-regs.h>
+ #include <asm/arch/ohci.h>
+
++#ifdef CONFIG_PXA_EZX
++#include <asm/arch/ezx.h>
++#endif
++
+ #include "generic.h"
+
+ /* Crystal clock: 13MHz */
+@@ -156,7 +160,13 @@
+ break;
+ case PM_SUSPEND_MEM:
+ /* set resume return address */
++#ifdef CONFIG_PXA_EZX
++ /* set EZX flags for blob - WM */
++ *(unsigned long *)(phys_to_virt(RESUME_ADDR)) = virt_to_phys(pxa_cpu_resume);
++ *(unsigned long *)(phys_to_virt(FLAG_ADDR)) = SLEEP_FLAG;
++#else
+ PSPR = virt_to_phys(pxa_cpu_resume);
++#endif
+ pxa_cpu_suspend(PWRMODE_SLEEP);
+ break;
+ }
+Index: linux-2.6.21/arch/arm/mach-pxa/pm.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c 2007-04-26 00:08:32.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/pm.c 2007-04-30 18:29:49.000000000 -0300
+@@ -24,6 +24,10 @@
+ #include <asm/arch/lubbock.h>
+ #include <asm/mach/time.h>
+
++#ifdef CONFIG_PXA_EZX
++#include <asm/arch/ezx.h>
++#endif
++
+
+ /*
+ * Debug macros
+@@ -152,8 +156,12 @@
+ }
+
+ /* ensure not to come back here if it wasn't intended */
++#ifdef CONFIG_PXA_EZX
++ *(unsigned long *)(phys_to_virt(RESUME_ADDR)) = 0;
++ *(unsigned long *)(phys_to_virt(FLAG_ADDR)) = OFF_FLAG;
++#else
+ PSPR = 0;
+-
++#endif
+ /* restore registers */
+ RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2);
+ RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2);
============================================================
--- packages/linux/linux-ezx-2.6.21/ezx-ts.patch 5354ce457efeb9d99bcf769a77e5cff4a326f34f
+++ packages/linux/linux-ezx-2.6.21/ezx-ts.patch 5354ce457efeb9d99bcf769a77e5cff4a326f34f
@@ -0,0 +1,399 @@
+Index: linux-2.6.21/drivers/input/touchscreen/Kconfig
+===================================================================
+--- linux-2.6.21.orig/drivers/input/touchscreen/Kconfig 2007-04-26 05:08:32.000000000 +0200
++++ linux-2.6.21/drivers/input/touchscreen/Kconfig 2007-04-26 23:27:05.000000000 +0200
+@@ -164,4 +164,16 @@
+ To compile this driver as a module, choose M here: the
+ module will be called ucb1400_ts.
+
++config TOUCHSCREEN_PCAP
++ tristate "Motorola PCAP touchscreen"
++ depends on PXA_EZX_PCAP
++ help
++ Say Y here if you have a Motorola EZX (E680, A780) telephone
++ and want to support the built-in touchscreen.
++
++ If unsure, say N.
++
++ To compile this driver as a module, choose M here: the
++ module will be called hp680_ts_input.
++
+ endif
+Index: linux-2.6.21/drivers/input/touchscreen/Makefile
+===================================================================
+--- linux-2.6.21.orig/drivers/input/touchscreen/Makefile 2007-04-26 05:08:32.000000000 +0200
++++ linux-2.6.21/drivers/input/touchscreen/Makefile 2007-04-26 23:27:52.000000000 +0200
+@@ -16,3 +16,4 @@
+ obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
+ obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
+ obj-$(CONFIG_TOUCHSCREEN_UCB1400) += ucb1400_ts.o
++obj-$(CONFIG_TOUCHSCREEN_PCAP) += pcap_ts.o
+Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21/drivers/input/touchscreen/pcap_ts.c 2007-04-26 23:27:05.000000000 +0200
+@@ -0,0 +1,364 @@
++/*
++ * pcap_ts.c - Touchscreen driver for Motorola PCAP2 based touchscreen as found
++ * in the EZX phone platform.
++ *
++ * Copyright (C) 2006 Harald Welte <laforge at openezx.org>
++ *
++ * Based on information found in the original Motorola 2.4.x ezx-ts.c driver.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * TODO:
++ * split this in a hardirq handler and a tasklet/bh
++ * suspend/resume support
++ */
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/fs.h>
++#include <linux/string.h>
++#include <linux/pm.h>
++#include <linux/timer.h>
++#include <linux/config.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/input.h>
++
++#include <asm/arch/hardware.h>
++#include <asm/arch/pxa-regs.h>
++
++#include "../../misc/ezx/ssp_pcap.h"
++
++#if 1
++#define DEBUGP(x, args ...) printk(KERN_DEBUG "%s: " x, __FUNCTION__, ## args)
++#else
++#define DEBUGP(x, args ...)
++#endif
++
++#define PRESSURE 1
++#define COORDINATE 2
++
++struct pcap_ts {
++ int irq_xy;
++ int irq_touch;
++ struct input_dev *input;
++ struct timer_list timer;
++
++ u_int16_t x, y;
++ u_int16_t pressure, pressure_last;
++
++ u_int8_t read_state;
++};
++
++#define X_AXIS_MIN 0
++#define X_AXIS_MAX 1023
++
++#define Y_AXIS_MAX X_AXIS_MAX
++#define Y_AXIS_MIN X_AXIS_MIN
++
++#define PRESSURE_MAX X_AXIS_MAX
++#define PRESSURE_MIN X_AXIS_MIN
++
++static int pcap_ts_mode(u_int32_t mode)
++{
++ int ret;
++
++ u_int32_t tmp;
++
++ ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp);
++ if (ret < 0)
++ return ret;
++
++ tmp &= ~SSP_PCAP_TOUCH_PANEL_POSITION_DETECT_MODE_MASK;
++ tmp |= mode;
++ ret = ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp);
++
++ DEBUGP("set ts mode ");
++ if (mode == PCAP_TS_POSITION_XY_MEASUREMENT)
++ DEBUGP("COORD\n");
++ else if (mode == PCAP_TS_PRESSURE_MEASUREMENT)
++ DEBUGP("PRESS\n");
++ else if (mode == PCAP_TS_STANDBY_MODE)
++ DEBUGP("STANDBY\n");
++ else
++ printk("UNKNOWN\n");
++
++ return ret;
++}
++
++/* issue a XY read command to the ADC of PCAP2. Well get an ADCDONE2 interrupt
++ * once the result of the conversion is available */
++static int pcap_ts_start_xy_read(struct pcap_ts *pcap_ts)
++{
++ int ret;
++ u_int32_t tmp;
++ DEBUGP("start xy read in mode %s\n",
++ pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS");
++
++ ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp);
++ if (ret < 0)
++ return ret;
++
++ tmp &= SSP_PCAP_ADC_START_VALUE_SET_MASK;
++ tmp |= SSP_PCAP_ADC_START_VALUE;
++
++ ret = ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp);
++ if (ret < 0)
++ return ret;
++
++ ret = ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ADC2_ASC, 1);
++
++ return ret;
++}
++
++/* read the XY result from the ADC of PCAP2 */
++static int pcap_ts_get_xy_value(struct pcap_ts *pcap_ts)
++{
++ int ret;
++ u_int32_t tmp;
++
++ DEBUGP("get xy value in mode %s\n",
++ pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS");
++
++ ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC2_REGISTER, &tmp);
++ if (ret < 0)
++ return ret;
++
++ if (tmp & 0x00400000)
++ return -EIO;
++
++ if (pcap_ts->read_state == COORDINATE) {
++ pcap_ts->x = (tmp & SSP_PCAP_ADD1_VALUE_MASK);
++ pcap_ts->y = (tmp & SSP_PCAP_ADD2_VALUE_MASK)
++ >>SSP_PCAP_ADD2_VALUE_SHIFT;
++ } else {
++ pcap_ts->pressure_last = pcap_ts->pressure;
++ pcap_ts->pressure = (tmp & SSP_PCAP_ADD2_VALUE_MASK)
++ >>SSP_PCAP_ADD2_VALUE_SHIFT;
++ }
++
++ return 0;
++}
++
++/* PCAP2 interrupts us when ADC conversion result is available */
++static irqreturn_t pcap_ts_irq_xy(int irq, void *dev_id, struct pt_regs *regs)
++{
++ struct pcap_ts *pcap_ts = dev_id;
++
++ if (pcap_ts_get_xy_value(pcap_ts) < 0) {
++ printk("pcap_ts: error reading XY value\n");
++ return IRQ_HANDLED;
++ }
++
++ DEBUGP("%s X=%4d, Y=%4d Z=%4d\n",
++ pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS",
++ pcap_ts->x, pcap_ts->y, pcap_ts->pressure);
++
++ if (pcap_ts->read_state == PRESSURE) {
++ input_report_abs(pcap_ts->input, ABS_PRESSURE,
++ pcap_ts->pressure);
++ if ((pcap_ts->pressure >= PRESSURE_MAX ||
++ pcap_ts->pressure <= PRESSURE_MIN ) &&
++ pcap_ts->pressure == pcap_ts->pressure_last) {
++ /* pen has been released */
++ input_report_key(pcap_ts->input, BTN_TOUCH, 0);
++ input_sync(pcap_ts->input);
++
++ pcap_ts->x = pcap_ts->y = 0;
++
++ /* ask PCAP2 to interrupt us if touch event happens
++ * again */
++ pcap_ts->read_state = PRESSURE;
++ pcap_ts_mode(PCAP_TS_STANDBY_MODE);
++ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
++
++ /* no need for timer, we'll get interrupted with
++ * next touch down event */
++ del_timer(&pcap_ts->timer);
++ } else {
++ /* pen has been touched down */
++ input_report_key(pcap_ts->input, BTN_TOUCH, 1);
++ /* don't input_sync(), we don't know position yet */
++
++ /* switch state machine into coordinate read mode */
++ pcap_ts->%s
>>> DIFF TRUNCATED @ 16K
More information about the Openembedded-commits
mailing list