From: Richard Purdie <rpurdie@rpsys.net>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: Andrew Morton <akpm@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] led-class: always implement blinking
Date: Tue, 21 Sep 2010 22:24:08 +0100 [thread overview]
Message-ID: <1285104248.1290.551.camel@rex> (raw)
In-Reply-To: <1285098497.12764.18.camel@jlt3.sipsolutions.net>
On Tue, 2010-09-21 at 21:48 +0200, Johannes Berg wrote:
> On Tue, 2010-09-21 at 12:44 -0700, Andrew Morton wrote:
> > On Fri, 20 Aug 2010 11:21:42 +0200
> > Johannes Berg <johannes@sipsolutions.net> wrote:
> >
> > > +static int led_blink_set(struct led_classdev *led_cdev,
> > > + unsigned long *delay_on, unsigned long *delay_off)
>
> > > + if (*delay_on == led_cdev->blink_delay_on &&
> > > + *delay_off == led_cdev->blink_delay_off)
> > > + return 0;
> > > +
> > > + /* deactivate previous settings */
> > > + del_timer_sync(&led_cdev->blink_timer);
> > > +
> > > + led_cdev->blink_delay_on = *delay_on;
> > > + led_cdev->blink_delay_off = *delay_off;
>
> > delay_on and delay_off could have been pass-by-value rather than
> > pass-by-reference? That would clean up some gunk in callers, too.
> >
> > If there was some reason for doing it with pass-by-reference then that
> > reason should have been documented!
>
> Well, this function gets assigned to led_cdev->blink_set(), which is a
> function pointer that takes pass-by-reference arguments. The comment
> there says:
>
> /* Activate hardware accelerated blink, delays are in
> * miliseconds and if none is provided then a sensible default
> * should be chosen. The call can adjust the timings if it can't
> * match the values specified exactly. */
> int (*blink_set)(struct led_classdev *led_cdev,
> unsigned long *delay_on,
> unsigned long *delay_off);
>
> but the software implementation doesn't adjust the timings, of course. I
> suppose the "adjust the timings" was also meant to update the values.
The idea was that hardware fallbacks would let the caller know what
values it had actually fallen back to. The software fallback using
timers is generic so doesn't need to change the values.
I've been meaning to look more closely at the patch but I haven't got to
it yet, sorry :(.
Richard
next prev parent reply other threads:[~2010-09-21 21:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-20 9:21 [RFC] led-class: always implement blinking Johannes Berg
2010-09-16 12:04 ` Johannes Berg
2010-09-21 19:44 ` Andrew Morton
2010-09-21 19:48 ` Johannes Berg
2010-09-21 19:51 ` Johannes Berg
2010-09-21 21:24 ` Richard Purdie [this message]
2010-09-22 8:56 ` Johannes Berg
2010-09-22 9:45 ` [PATCH v2] " Johannes Berg
2010-09-22 13:53 ` [PATCH v3] " Johannes Berg
2010-09-23 22:35 ` Andrew Morton
2010-09-24 9:29 ` Johannes Berg
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=1285104248.1290.551.camel@rex \
--to=rpurdie@rpsys.net \
--cc=akpm@linux-foundation.org \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
/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.