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
next prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox