Re: [PATCH 7/8] Psmouse - add packet size

Vojtech Pavlik
2004-09-29T09:30:49Z

On Wed, Sep 29, 2004 at 02:29:28AM -0500, Dmitry Torokhov wrote:
> On Wednesday 29 September 2004 02:15 am, Vojtech Pavlik wrote:
> > On Wed, Sep 29, 2004 at 01:47:34AM -0500, Dmitry Torokhov wrote:
> >
> > > -int alps_detect(struct psmouse *psmouse)
> > > +int alps_detect(struct psmouse *psmouse, int set_properties)
> > > {
> > > - return alps_get_model(psmouse) < 0 ? 0 : 1;
> > > + if (alps_get_model(psmouse) < 0)
> > > + return 0;
> > > +
> > > + if (set_properties) {
> > > + psmouse->vendor = "ALPS";
> > > + psmouse->name = "TouchPad";
> > > + }
> > > + return 1;
> > > }
> >
> > I think we should return -1 (or -errno) on failure and 0 on success,
> > like everybody else does.
> >
>
> All *detect functions return boolean value - either the device was detected or
> not. I think it makes most sense. Negative error is convenient when function
> normally returns some other meaningful value, like length. *detect is a simple
> yes/no question, it is not really an error at all.

psmouse_probe() is very similar in its use, as are a lot of other
functions in the serio framework - and they return 0 on success, and -1
on failure.

I see it as "detected/initialized" = success (0) and "not detected / failed
to initialize" = fail (-1).

I agree that your view also makes sense, however I'd like to keep the
driver return values consistent to make it easier to read.

Maybe renaming the *_detect functions to *_probe would make it more
obvious.

> > This should be:
> >
> > if (param[0] != 3)
> > return -1;
> > if (set_properties) {
> > set_bit(REL_WHEEL, psmouse->dev.relbit);
> > if (!psmouse->vendor) psmouse->vendor = "Generic";
> > if (!psmouse->name) psmouse->name = "Wheel Mouse";
> > psmouse->pktsize = 4;
> > }
> > return 0;
> >
> > ... and similarly elsewhere. You save one level of nesting and it makes
> > more sense.
> >
>
> Ok, will change.
>
> --
> Dmitry
>

--
Vojtech Pavlik
SuSE Labs, SuSE CR