Re: [PATCH RESEND v8 2/4] input: elants: support old touch report format

From: Michał Mirosław
Date: Fri Dec 11 2020 - 12:06:34 EST


On Fri, Dec 11, 2020 at 07:39:33PM +0300, Dmitry Osipenko wrote:
> 11.12.2020 19:09, Michał Mirosław пишет:
> > On Thu, Dec 10, 2020 at 11:29:40PM -0800, Dmitry Torokhov wrote:
> >> Hi Michał,
> >> On Fri, Dec 11, 2020 at 07:53:56AM +0100, Michał Mirosław wrote:
> >>> @@ -998,17 +1011,18 @@ static irqreturn_t elants_i2c_irq(int irq, void *_dev)
> >>> }
> >>>
> >>> report_len = ts->buf[FW_HDR_LENGTH] / report_count;
> >>> - if (report_len != PACKET_SIZE) {
> >>> + if (report_len != PACKET_SIZE &&
> >>> + report_len != PACKET_SIZE_OLD) {
> >>> dev_err(&client->dev,
> >>> - "mismatching report length: %*ph\n",
> >>> + "unsupported report length: %*ph\n",
> >>> HEADER_SIZE, ts->buf);
> >> Do I understand this correctly that the old packets are only observed on
> >> EKTF3624? If so can we expand the check so that we only accept packets
> >> with "old" size when we know we are dealing with this device?
> >
> > We only have EKTF3624 and can't be sure there are no other chips needing this.
>
> In practice this older packet format should be seen only on 3624, but
> nevertheless we could make it more explicit by adding the extra chip_id
> checks.
>
> It won't be difficult to change it in the future if will be needed.
>
> I think the main point that Dmitry Torokhov conveys here is that we
> should minimize the possible impact on the current EKT3500 code since we
> don't have definitive answers regarding the firmware differences among
> the hardware variants.

The only possible impact here is that older firmware instead of breaking
would suddenly work. Maybe we can accept such a risk?

Best Regards
Michał Mirosław