Problem Summary Driver:
FocalTech ft5x06 TouchScreen driver. ft5x06_ts.c QT Code: qevdevtouchhandler.cpp, within libQt5EglDeviceIntegration.so.5.5.0 Configuration: type A processing (or not B type) single touch is true Description of problem: When QEvdevTouchScreenData::processInputEvent gets the following (see below) set of events an invalid touch location (always zero) is reported to the qt Window. You can see below the full output trace (no other events occurred). When QT is processing the input events the second touch up reports the y as 0, which is wrong. The patterns seems to be the following. When QT doesn't get a ABS_Y location after the last BTN_TOUCH Down, it reports y as 0 which is incorrect. This always happens when y or x does not change between touches. So if a user happens to touch in the same spot (like on a button) the second click may not register. Is this a problem with QT not keeping the previous Y or X location and using that or is it a problem with the driver not reporting the X or Y location after the touch down event? This is an annoying problem because it means that on screens button presses are randomly missed. *The following are from prinf statements I added to QEvdevTouchScreenData::processInputEvent* QEvdevTouchScreenData::processInputEvent EV_KEY, BTN_TOUCH, 1 DOWN ****** QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_X, 334 QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_Y, 174 QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_PRESSURE, 100 QEvdevTouchScreenData::processInputEvent EV_SYN, SYN_REPORT, 0 QEvdevTouchScreenData::addTouchPoint tp.rawPositions.append(QPointF(334, 174)); QEvdevTouchScreenData::processInputEvent reportPoints() QWindowSystemInterface::handleTouchEvent m_touchPoints.count()=1 1 x=0.695833 y=0.639706 QEvdevTouchScreenData::processInputEvent EV_KEY, BTN_TOUCH, 0 UP QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_PRESSURE, 0 QEvdevTouchScreenData::processInputEvent EV_SYN, SYN_REPORT, 0 QEvdevTouchScreenData::addTouchPoint tp.rawPositions.append(QPointF(334, 174)); QEvdevTouchScreenData::processInputEvent reportPoints() QWindowSystemInterface::handleTouchEvent m_touchPoints.count()=1 1 x=0.695833 y=0.639706 QEvdevTouchScreenData::processInputEvent EV_KEY, BTN_TOUCH, 1 DOWN *************** QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_X, 336 >>>>>>>>>>>>>>>>>>>>>>>>>> NOTICE Y not reported because it is the same location as before QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_PRESSURE, 100 QEvdevTouchScreenData::processInputEvent EV_SYN, SYN_REPORT, 0 QEvdevTouchScreenData::addTouchPoint tp.rawPositions.append(QPointF(336, 0)); <<<<< zero is wrong value QEvdevTouchScreenData::processInputEvent reportPoints() QWindowSystemInterface::handleTouchEvent m_touchPoints.count()=1 1 0.700000 0.000000 <<<<< zero is wrong value QEvdevTouchScreenData::processInputEvent EV_KEY, BTN_TOUCH, 0 UP QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_PRESSURE, 0 QEvdevTouchScreenData::processInputEvent EV_SYN, SYN_REPORT, 0 QEvdevTouchScreenData::addTouchPoint tp.rawPositions.append(QPointF(336, 0)); <<<<< zero is wrong value QWindowSystemInterface::handleTouchEvent m_touchPoints.count()=1 1 x=0.700000 y=0.000000 <<<<< zero is wrong value DTS for ft5x06 dts ft5x06_ts@38 { compatible = "focaltech,5x06"; reg = <0x38>; focaltech,family-id = <0x55>; pinctrl-names = "default"; pinctrl-0 = <&ctw6120_pins>; interrupt-parent = <&gpio0>; interrupts = <3 IRQ_TYPE_EDGE_FALLING>; vdd-supply = <&touch_3v3_regulator>; vcc_i2c-supply = <&touch_3v3_regulator>; focaltech,irq-gpio = <&gpio0 3 0x00>; focaltech,display-coords = <0 0 480 272>; focaltech,name = "ft6x06"; focaltech,no-force-update; focaltech,group-id = <1>; focaltech,hard-reset-delay-ms = <20>; focaltech,soft-reset-delay-ms = <150>; focaltech,num-max-touches = <1>; focaltech,fw-name = "ft_8610_qrd_fw.bin"; focaltech,fw-delay-aa-ms = <100>; focaltech,fw-delay-55-ms = <30>; focaltech,fw-upgrade-id1 = <0x79>; focaltech,fw-upgrade-id2 = <0x08>; focaltech,fw-delay-readid-ms = <10>; focaltech,fw-delay-era-flsh-ms = <2000>; focaltech,fw-auto-cal; //focaltech,mirror_h; //focaltech,mirror_v; }; Rob
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest