linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anton Vorontsov <cbouatmailru@gmail.com>
To: Alex Courbot <acourbot@nvidia.com>
Cc: Stephen Warren <swarren@nvidia.com>,
	Thierry Reding <thierry.reding@avionic-design.de>,
	Mark Zhang <markz@nvidia.com>,
	Grant Likely <grant.likely@secretlab.ca>,
	Rob Herring <rob.herring@calxeda.com>,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Leela Krishna Amudala <l.krishna@samsung.com>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-fbdev@vger.kernel.org" <linux-fbdev@vger.kernel.org>,
	"devicetree-discuss@lists.ozlabs.org"
	<devicetree-discuss@lists.ozlabs.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	Alexandre Courbot <gnurou@gmail.com>
Subject: Re: [PATCH v8 1/3] Runtime Interpreted Power Sequences
Date: Fri, 16 Nov 2012 12:25:41 +0000	[thread overview]
Message-ID: <20121116122540.GA2198@lizard> (raw)
In-Reply-To: <50A60AF6.9080509@nvidia.com>

On Fri, Nov 16, 2012 at 06:44:22PM +0900, Alex Courbot wrote:
> On 11/16/2012 04:26 PM, Anton Vorontsov wrote:
> >>+#include "power_seq_delay.c"
> >>+#include "power_seq_regulator.c"
> >>+#include "power_seq_pwm.c"
> >>+#include "power_seq_gpio.c"
> >
> >This is odd, although I remember you already explained why you have to
> >include the .c files, instead of linking them separately. But I forgot the
> >reason. :) I think this deserves a comment in the code.
> 
> This is because of the table right after these includes:
> 
> static const struct power_seq_res_ops power_seq_ops[POWER_SEQ_NUM_TYPES] = {
> 	[POWER_SEQ_DELAY] = POWER_SEQ_DELAY_TYPE,
> 	[POWER_SEQ_REGULATOR] = POWER_SEQ_REGULATOR_TYPE,
> 	[POWER_SEQ_PWM] = POWER_SEQ_PWM_TYPE,
> 	[POWER_SEQ_GPIO] = POWER_SEQ_GPIO_TYPE,
> };
> 
> The POWER_SEQ_*_TYPE macros are defined in the C files. It's the
> simplest way to initialize this table, and the code inside these C
> files is short and simple enough that I thought I would be forgiven.
> :)

I think in the header file you could just write

extern ..... power_seq_delay_type;
#ifndef ...
#define power_seq_delay_type NULL
#endif

And then, in the .c file:

static const struct power_seq_res_ops power_seq_ops[POWER_SEQ_NUM_TYPES] = {
	[POWER_SEQ_DELAY] = power_seq_delay_type,
	...
};

And then you can stop including the .c files directly, and link them
instead.

> At first everything was in power_seq.c and it was fine, then I
> thought it would be better to move resource support code into their
> own filesm and now everybody is asking. :P
> 
> But yeah, maybe it would be even better to not stop halfway and use
> dynamic linking.
> 
> Comment added for the time being. ;)
> 
> >>+static int of_power_seq_parse_step(struct device *dev,
> >>+				   struct device_node *node,
> >>+				   struct power_seq *seq,
> >>+				   unsigned int step_nbr,
> >>+				   struct list_head *resources)
> >>+{
> >>+	struct power_seq_step *step = &seq->steps[step_nbr];
> >>+	struct power_seq_resource res, *res2;
> >>+	const char *type;
> >>+	int i, err;
> >
> >nit: one variable declaration per line.
> 
> Fair enough - but is that a convention? checkpatch.pl was happy with these.

It's not a rule, although there is a small passage about it in CodingStyle
file when it describes commenting style. Though, some folks choose to
ignore this suggestion quite frequently, especially if variables have no
comments.

Often, the multiple declarations per line are used to hide ugly functions
w/ tons of variables, or just to confuse the reader for the fun of it.

There are exceptions, of course. E.g.

	int i, j, k; /* Our iterators. */

Is perfectly fine.

But
	int i, err;

At least to me seems weird, this stuff is logically disjunct.

Only human can truly differentiate when the stuff "looks better" together
or apart, so that's why checkpatch doesn't complain. Personally, I use
this rule of thumb: when in doubt, use just one declaration per line, it
is always OK. :)

Thanks,
Anton.

  reply	other threads:[~2012-11-16 12:25 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-16  6:38 [PATCH v8 0/3] Runtime Interpreted Power Sequences Alexandre Courbot
2012-11-16  6:38 ` [PATCH v8 3/3] Take maintainership of power sequences Alexandre Courbot
     [not found]   ` <1353047903-14363-4-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-16 17:09     ` Stephen Warren
     [not found]       ` <50A6733F.7020101-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-17  6:41         ` Alexandre Courbot
     [not found] ` <1353047903-14363-1-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-16  6:38   ` [PATCH v8 1/3] Runtime Interpreted Power Sequences Alexandre Courbot
2012-11-16  7:26     ` Anton Vorontsov
2012-11-16  9:44       ` Alex Courbot
2012-11-16 12:25         ` Anton Vorontsov [this message]
2012-11-17 10:12           ` Alexandre Courbot
2012-11-16  7:58     ` Srinivas KANDAGATLA
     [not found]       ` <50A5F225.6000200-qxv4g6HH51o@public.gmane.org>
2012-11-16  8:31         ` Alex Courbot
2012-11-16  9:04           ` Srinivas KANDAGATLA
2012-11-16 10:35     ` Mark Rutland
     [not found]       ` <20121116103511.GB16084-NuALmloUBlrZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2012-11-17  4:04         ` Alexandre Courbot
2012-11-16  6:38   ` [PATCH v8 2/3] pwm_backlight: use power sequences Alexandre Courbot
     [not found]     ` <1353047903-14363-3-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-16  8:49       ` Thierry Reding
     [not found]         ` <20121116084958.GB20785-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-11-16  9:39           ` Anton Vorontsov
2012-11-16  8:44   ` [PATCH v8 0/3] Runtime Interpreted Power Sequences Thierry Reding
2012-11-16 17:08   ` Stephen Warren
2013-04-26 18:55 ` Simon Glass
     [not found]   ` <CAPnjgZ1P6dmRB0sO2qBUtd=WBiNcY339NAit2faaotAfEqQDeQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-26 18:30     ` Anton Vorontsov
2013-04-27 15:36     ` Alexandre Courbot

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=20121116122540.GA2198@lizard \
    --to=cbouatmailru@gmail.com \
    --cc=acourbot@nvidia.com \
    --cc=arnd@arndb.de \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=dwmw2@infradead.org \
    --cc=gnurou@gmail.com \
    --cc=grant.likely@secretlab.ca \
    --cc=l.krishna@samsung.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=markz@nvidia.com \
    --cc=rob.herring@calxeda.com \
    --cc=swarren@nvidia.com \
    --cc=thierry.reding@avionic-design.de \
    /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;
as well as URLs for NNTP newsgroup(s).