All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dtor_core@ameritech.net>
To: Vojtech Pavlik <vojtech@suse.cz>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 7/8] Psmouse - add packet size
Date: Wed, 29 Sep 2004 08:24:58 -0500	[thread overview]
Message-ID: <200409290824.59004.dtor_core@ameritech.net> (raw)
In-Reply-To: <20040929093103.GB3150@ucw.cz>

On Wednesday 29 September 2004 04:31 am, Vojtech Pavlik wrote:
> 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.
>

I have been battling with myself about whether to keep them consistent
with probe/init or make them as they are today... My issue with
*detect returning -1 on failure is that the caller's code will look
like:

        if (max_proto >= PSMOUSE_IMPS && !intellimouse_detect(psmouse, set_properties))
                return PSMOUSE_IMPS;

or 

        if (max_proto >= PSMOUSE_IMPS && intellimouse_detect(psmouse, set_properties) == 0)
                return PSMOUSE_IMPS;

which does not flow for me when I read the code. With pretty much every
other function caller checks for negative and exits in case of error, it
reads naturally as well. Here with multiple btanches I go "... and
intellimouse is NOT detected... oh, wait, it IS detected..."

Oh, well. I guess I will convert them... unless I managed to presuade you
to keep them as is ;).

-- 
Dmitry

  reply	other threads:[~2004-09-29 13:26 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-29  6:40 [PATCH 0/8] Set of input (psmouse) patches Dmitry Torokhov
2004-09-29  6:41 ` [PATCH 1/8] New ALPS signature Dmitry Torokhov
2004-09-29  6:42   ` [PATCH 2/8] Psmouse rate and resolution handlers Dmitry Torokhov
2004-09-29  6:43     ` [PATCH 3/8] Guest protocol switch in synaptics Dmitry Torokhov
2004-09-29  6:44       ` [PATCH 4/8] Psmouse probe fixes Dmitry Torokhov
2004-09-29  6:44         ` [PATCH 5/8] Export psmouse parameters via sysfs Dmitry Torokhov
2004-09-29  6:45           ` [PATCH 6/8] Drop PS2TPP protocol identifier Dmitry Torokhov
2004-09-29  6:46             ` [PATCH 7/8] Separate PS2PP protocol handling Dmitry Torokhov
2004-09-29  6:47               ` [PATCH 7/8] Psmouse - add packet size Dmitry Torokhov
2004-09-29  7:15                 ` Vojtech Pavlik
2004-09-29  7:29                   ` Dmitry Torokhov
2004-09-29  9:31                     ` Vojtech Pavlik
2004-09-29 13:24                       ` Dmitry Torokhov [this message]
2004-09-29 13:38                         ` Vojtech Pavlik
2004-09-30  6:43                           ` Dmitry Torokhov
2004-09-30  7:55                             ` Vojtech Pavlik
2004-09-30 10:34                             ` Jan-Benedict Glaw
2004-09-29  7:11 ` [PATCH 0/8] Set of input (psmouse) patches Vojtech Pavlik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200409290824.59004.dtor_core@ameritech.net \
    --to=dtor_core@ameritech.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vojtech@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.