Porting to JB an Open Source Renesas-based tablet (https://groups.google.com/forum/?hl=en&fromgroups=#!forum/renesas-emev-osp) and having troubles with the touch screen.
While GB implementation perfectly supported the touch panels (PixCir or Goodix mdels, depending of hardware revision), with the JB build these have some issues. Touch enters in "Pointer" mode by default: a circle shows on screen the processed touch points, telling at least the driver is working, but I have to use two fingers to make it feel the touch. What's worst the touch point isn't calibrated, as the circle doesn't show up under my finger, but in a different place of the screen, as if wrong touch X and Y were captured. What's strange, touch data are received correctly, e.g. I can read the touch position using "adb shell dump input": ... Last Raw Touch: pointerCount=1 [0]: id=0, x=399, y=246, pressure=0, touchMajor=33, touchMinor=33, toolMajor=33, toolMinor=33, orientation=0, tiltX=0, tiltY=0, distance=0, toolType=1, isHovering=false Last Cooked Touch: pointerCount=1 [0]: id=0, x=398.502, y=245.489, pressure=1.000, touchMajor=32.945, touchMinor=32.945, toolMajor=32.945, toolMinor=32.945, orientation=0.000, tilt=0.000, distance=0.000, toolType=1, isHovering=false ... This is for example (with a Goodix device) while touching in the mid of screen (complete dump below). As it's a 800x480 7" one, reported X=399 and Y=246 are correct. But these looks like not being translated, or received by the main window (the locker screen in this case) and the circle is in a completely different position than the screen center. I've checked the kernel driver, and it complies (as far as I could see) to the requirements also described in: http://source.android.com/tech/input/touch-devices.html Both with the Goodix and Pixcir devices results are very similar. Also after adding a .idc configuration, as suggested on the same, results are similar, except that I can force the device to work in real Touchscreen mode (not Pointer - circle isn't shown). Find in the following the full dump while touching in the mid of the screen: ------------------ $ adb shell dumpsys input adb server is out of date. killing... * daemon started successfully * INPUT MANAGER (dumpsys input) Event Hub State: BuiltInKeyboardId: -2 Devices: -1: Virtual Classes: 0x40000023 Path: <virtual> Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd Location: UniqueId: <virtual> Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 KeyLayoutFile: /system/usr/keylayout/Generic.kl KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm ConfigurationFile: HaveKeyboardLayoutOverlay: false 1: ekt2201 Classes: 0x00000001 Path: /dev/input/event1 Descriptor: 54fb2efd84449f14715b8981fd0fd6fd2bcd1830 Location: UniqueId: Identifier: bus=0x0018, vendor=0x0000, product=0x0000, version=0x0000 KeyLayoutFile: /system/usr/keylayout/Generic.kl KeyCharacterMapFile: /system/usr/keychars/Generic.kcm ConfigurationFile: HaveKeyboardLayoutOverlay: false 2: gt80x Classes: 0x00000014 Path: /dev/input/event2 Descriptor: 9e6143a1bc5dd41251b165ed559e32d49b5aad8f Location: input/ts) UniqueId: Identifier: bus=0x0018, vendor=0xdead, product=0xbeef, version=0x1103 KeyLayoutFile: KeyCharacterMapFile: ConfigurationFile: HaveKeyboardLayoutOverlay: false 3: gpio-keys Classes: 0x00000001 Path: /dev/input/event0 Descriptor: 485d69228e24f5e46da1598745890b214130dbc4 Location: gpio-keys/input0 UniqueId: Identifier: bus=0x0019, vendor=0x0001, product=0x0001, version=0x0100 KeyLayoutFile: /system/usr/keylayout/Generic.kl KeyCharacterMapFile: /system/usr/keychars/Generic.kcm ConfigurationFile: HaveKeyboardLayoutOverlay: false Input Reader State: Device -1: Virtual Generation: 2 IsExternal: false Sources: 0x00000301 KeyboardType: 2 Keyboard Input Mapper: Parameters: AssociatedDisplayId: -1 OrientationAware: false KeyboardType: 2 Orientation: 0 KeyDowns: 0 keys currently down MetaState: 0x0 DownTime: 0 Device 1: ekt2201 Generation: 8 IsExternal: false Sources: 0x00000101 KeyboardType: 1 Keyboard Input Mapper: Parameters: AssociatedDisplayId: -1 OrientationAware: false KeyboardType: 1 Orientation: 0 KeyDowns: 0 keys currently down MetaState: 0x0 DownTime: 0 Device 2: gt80x Generation: 10 IsExternal: false Sources: 0x00002002 KeyboardType: 0 Motion Ranges: X: source=0x00002002, min=0.000, max=799.001, flat=0.000, fuzz=0.999 Y: source=0x00002002, min=0.000, max=479.002, flat=0.000, fuzz=0.998 PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000 SIZE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000 TOUCH_MAJOR: source=0x00002002, min=0.000, max=932.952, flat=0.000, fuzz=0.000 TOUCH_MINOR: source=0x00002002, min=0.000, max=932.952, flat=0.000, fuzz=0.000 TOOL_MAJOR: source=0x00002002, min=0.000, max=932.952, flat=0.000, fuzz=0.000 TOOL_MINOR: source=0x00002002, min=0.000, max=932.952, flat=0.000, fuzz=0.000 Touch Input Mapper: Parameters: GestureMode: spots DeviceType: pointer AssociatedDisplay: id=0, isExternal=false OrientationAware: false Raw Touch Axes: X: min=0, max=800, flat=0, fuzz=0, resolution=0 Y: min=0, max=480, flat=0, fuzz=0, resolution=0 Pressure: unknown range TouchMajor: min=0, max=255, flat=0, fuzz=0, resolution=0 TouchMinor: unknown range ToolMajor: min=0, max=255, flat=0, fuzz=0, resolution=0 ToolMinor: unknown range Orientation: unknown range Distance: unknown range TiltX: unknown range TiltY: unknown range TrackingId: unknown range Slot: unknown range Calibration: touch.size.calibration: geometric touch.pressure.calibration: none touch.orientation.calibration: none touch.distance.calibration: none SurfaceWidth: 800px SurfaceHeight: 480px SurfaceOrientation: 0 Translation and Scaling Factors: XScale: 0.999 YScale: 0.998 XPrecision: 1.001 YPrecision: 1.002 GeometricScale: 0.998 PressureScale: 0.000 SizeScale: 0.004 OrientationCenter: 0.000 OrientationScale: 0.000 DistanceScale: 0.000 HaveTilt: false TiltXCenter: 0.000 TiltXScale: 0.000 TiltYCenter: 0.000 TiltYScale: 0.000 Last Button State: 0x00000000 Last Raw Touch: pointerCount=1 [0]: id=0, x=399, y=246, pressure=0, touchMajor=33, touchMinor=33, toolMajor=33, toolMinor=33, orientation=0, tiltX=0, tiltY=0, distance=0, toolType=1, isHovering=false Last Cooked Touch: pointerCount=1 [0]: id=0, x=398.502, y=245.489, pressure=1.000, touchMajor=32.945, touchMinor=32.945, toolMajor=32.945, toolMinor=32.945, orientation=0.000, tilt=0.000, distance=0.000, toolType=1, isHovering=false Pointer Gesture Detector: XMovementScale: 0.799 YMovementScale: 0.799 XZoomScale: 0.300 YZoomScale: 0.300 MaxSwipeWidth: 233.581085 Device 3: gpio-keys Generation: 4 IsExternal: false Sources: 0x00000101 KeyboardType: 1 Keyboard Input Mapper: Parameters: AssociatedDisplayId: -1 OrientationAware: false KeyboardType: 1 Orientation: 0 KeyDowns: 1 keys currently down MetaState: 0x0 DownTime: 839534522000 Configuration: ExcludedDeviceNames: [] VirtualKeyQuietTime: 0.0ms PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000 WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000 PointerGesture: Enabled: true QuietInterval: 100.0ms DragMinSwitchSpeed: 50.0px/s TapInterval: 150.0ms TapDragInterval: 300.0ms TapSlop: 20.0px MultitouchSettleInterval: 100.0ms MultitouchMinDistance: 15.0px SwipeTransitionAngleCosine: 0.3 SwipeMaxWidthRatio: 0.2 MovementSpeedRatio: 0.8 ZoomSpeedRatio: 0.3 Input Dispatcher State: DispatchEnabled: 1 DispatchFrozen: 0 FocusedApplication: name='AppWindowToken{411195e8 token=Token{4116c558 ActivityRecord{40fbe1e0 com.android.launcher/com.android.launcher2.Launcher}}}', dispatchingTimeout=5000.000ms FocusedWindow: name='Window{411240b8 Keyguard paused=false}' TouchDown: false TouchSplit: false TouchDeviceId: -1 TouchSource: 0x00000000 TouchedWindows: <none> Windows: 0: name='Window{41266a38 RecentsPanel paused=false}', paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x00820102, type=0x000007de, layer=161000, frame=[0,0][800,480], scale=1.000000, touchableRegion=[0,0][800,480], inputFeatures=0x00000000, ownerPid=277, ownerUid=10005, dispatchingTimeout=5000.000ms 1: name='Window{41267b90 StatusBar paused=false}', paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x01800048, type=0x000007d0, layer=151000, frame=[0,0][800,25], scale=1.000000, touchableRegion=[0,0][800,25], inputFeatures=0x00000000, ownerPid=277, ownerUid=10005, dispatchingTimeout=5000.000ms 2: name='Window{411240b8 Keyguard paused=false}', paused=false, hasFocus=true, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x04120800, type=0x000007d4, layer=111000, frame=[0,25][800,480], scale=1.000000, touchableRegion=[0,25][800,480], inputFeatures=0x00000000, ownerPid=220, ownerUid=1000, dispatchingTimeout=5000.000ms 3: name='Window{41287280 com.android.systemui.ImageWallpaper paused=false}', paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x00000318, type=0x000007dd, layer=21005, frame=[0,0][960,800], scale=1.000000, touchableRegion=[0,0][960,800], inputFeatures=0x00000000, ownerPid=277, ownerUid=10005, dispatchingTimeout=5000.000ms 4: name='Window{41233ba0 com.android.launcher/com.android.launcher2.Launcher paused=false}', paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x01910100, type=0x00000001, layer=21000, frame=[0,0][800,480], scale=1.000000, touchableRegion=[0,0][800,480], inputFeatures=0x00000000, ownerPid=315, ownerUid=10022, dispatchingTimeout=5000.000ms MonitoringChannels: <none> InboundQueue: <empty> Connections: 0: channelName='411240b8 Keyguard (server)', windowName='Window{411240b8 Keyguard paused=false}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> 1: channelName='41266a38 RecentsPanel (server)', windowName='Window{41266a38 RecentsPanel paused=false}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> 2: channelName='41267b90 StatusBar (server)', windowName='Window{41267b90 StatusBar paused=false}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> 3: channelName='41287280 com.android.systemui.ImageWallpaper (server)', windowName='Window{41287280 com.android.systemui.ImageWallpaper paused=false}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> 4: channelName='41233ba0 com.android.launcher/com.android.launcher2.Launcher (server)', windowName='Window{41233ba0 com.android.launcher/com.android.launcher2.Launcher paused=false}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> AppSwitch: not pending Configuration: KeyRepeatDelay: 50.0ms KeyRepeatTimeout: 500.0ms -- unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting