On Fri, Jul 08, 2016 at 07:36:45AM -0700, jeffrey.lin wrote: > >This is not offset, this is size, or length, of CRC. > I'll change namming as RM_CONTACT_CRC_SIZE > > >> @@ -798,33 +803,54 @@ static void raydium_mt_event(struct raydium_data *ts) > >> input_mt_slot(ts->input, i); > >> input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, state); > >> > >> - if (!state) > >> - continue; > >> - > >> - input_report_abs(ts->input, ABS_MT_POSITION_X, > >> + if (state == 0x01) { > > >Why we need this change? How is it related to CRC? Do you intent to > >report contact as active but not emit any position data of state is > >neither 0 nor 1? > This is no relationship with CRC, just want to make sure report points as > state equal to 1.
If active contact only reported when state is 0x01 you need to update the statements above like this: input_mt_report_slot_state(ts->input, MT_TOOL_FINGER, state == 0x01); if (state != 0x01) continue; but I am surprised that your firmware would report anything but 0 for inactive contact. Could you document all possible state values? Thanks. -- Dmitry