Re: [PATCH 0/16] New set of input patches

Vojtech Pavlik
2005-01-27T16:37:48Z

On Thu, Jan 27, 2005 at 05:15:18PM +0100, Vojtech Pavlik wrote:

> OK. I'll go through them, and apply as appropriate. I still need to wrap
> my mind around the start() and stop() methods and see the necessity. I
> still think a variable in the serio struct, only accessed by the serio.c
> core driver itself (and never by the port driver) that'd cause all
> serio_interrupt() calls to be ignored until set in the asynchronous port
> registration would be well enough.

I've read he start() and stop() code, and I came to the conclusion
again that we don't need them as serio port driver methods. i8042 uses
them to set the exists variable only and uses that variable _solely_ for
the purpose of skipping calls to serio_interrupt(), serio_cleanup() and
serio_unregister().

By instead checking a member of the serio struct in these functions, and
doing nothing if not set, we achieve the same goal, without adding extra
cruft to the interface, making it allowed to call these serio functions
on a non-registered or half-registered serio struct, with the effect
being defined to nothing.

Similarly, it's perfectly allowed to call input_event() on an struct
input_dev that hasn't been registered with the input layer, again with
no effect. It simplifies the driver code a lot.

--
Vojtech Pavlik
SuSE Labs, SuSE CR