Re: [PATCH v9 15/18] input: cyapa: add gen3 trackpad device read firmware image function support

From: Dmitry Torokhov
Date: Thu Dec 04 2014 - 12:46:51 EST


On Mon, Nov 10, 2014 at 11:05:39AM +0000, Dudley Du wrote:
> Thanks, Dmitry
>
> > -----Original Message-----
> > From: Dmitry Torokhov [mailto:dmitry.torokhov@xxxxxxxxx]
> > Sent: 2014?11?10? 16:40
> > To: Dudley Du
> > Cc: rydberg@xxxxxxxxxxx; Dudley Du; bleung@xxxxxxxxxx;
> > linux-input@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> > Subject: Re: [PATCH v9 15/18] input: cyapa: add gen3 trackpad device read
> > firmware image function support
> >
> > On Mon, Nov 03, 2014 at 04:33:07PM +0800, Dudley Du wrote:
> > > Add read firmware image function supported for gen3 trackpad device,
> > > it can be used through debugfs read_fw interface.
> >
> > Why do we need this? Can we do the same via usespace program accessing
> > the i2c device through /dev/i2c-N?
>
> This interface is used to test and debug only. It's defined and required by the chromium projects.
>
> And in the driver side, becase the firmware image read process is done based on interrupt signal,
> if do this in userspace through /dev/i2c-N, there will be two issues:
> 1) for gen5, after each command, an interrupt will be asserted, so if throug /dev/i2c-N,
> userspace program cannot get the interrupt signal.
> 2) and when the interrupt signal assert, driver won't know itâs a command signal for image read,
> so it will try to process it as data report.
> To avoid this, additional interface must be added to mark the image read status and
> block interrupt signal to be process as data report.

I believe that while userspace acc4esses the device through /dev/i2c-N
you should unbind the cyapa driver from the device (via sysfs driver
core bind/unbind attribute) so that it doe snot get in the way. Once
diagnostics is done you can bind the driver back to device, restoring
normal operation.

That is how we are planning to handle other devices at factory as
well.

Thanks.

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/