From: broonie@opensource.wolfsonmicro.com (Mark Brown)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 6/7] clk: Add initial WM831x clock driver
Date: Tue, 4 Oct 2011 21:50:02 +0100 [thread overview]
Message-ID: <20111004205002.GA20296@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <20111004181818.GD2870@ponder.secretlab.ca>
On Tue, Oct 04, 2011 at 12:18:18PM -0600, Grant Likely wrote:
> On Mon, Sep 26, 2011 at 10:38:58AM +0100, Mark Brown wrote:
> > No, that's not helpful. The issue isn't the device probe code itself,
> > the issue is things like module unload not doing what they're supposed
> > to do and leaving the device lying around or something - there's rather
> > more going on than just the plain API call.
> Then lets fix the core code. I see this pattern show up again and
> again of extra boilerplate going around
> platform_driver_{register,unregister}(). That says to me that there
> either needs to be a new helper, or the core code needs to be made
> more verbose.
I'd go with the latter, it's pretty much the approach the subsystems I
help maintain have been taking. In fast paths it's a bit different but
in slow paths it tends to be helpful to know why things just fell over.
> In fact, I've been considering adding a macro for
> {platform,i2c,spi,...}_drivers that does all the module boilerplate
> for the common case of only registering a driver at init time.
> Something like:
> #define module_platform_driver(__driver) \
> int __driver##_init(void) \
> { \
> return platform_driver_register(&(__driver)); \
> } \
> module_init(__driver##_init); \
> void ##__driver##_exit(void) \
> { \
> platform_driver_unregister(&(__driver)); \
> } \
> module_exit(##__driver##_exit);
> It's not a lot of code, but I dislike how much boilerplate every
> single driver has to use if it doesn't do anything special.
Yeah, this sort of stuff would be helpful - there's quite a bit of
boilerplate you end up having to write to get drivers going.
WARNING: multiple messages have this Message-ID (diff)
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: Mike Turquette <mturquette@ti.com>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, jeremy.kerr@canonical.com,
tglx@linutronix.de, linus.walleij@stericsson.com,
amit.kucheria@linaro.org, dsaxena@linaro.org, patches@linaro.org,
linaro-dev@lists.linaro.org, paul@pwsan.com, sboyd@quiinc.com,
shawn.guo@freescale.com, skannan@quicinc.com,
magnus.damm@gmail.com, arnd.bergmann@linaro.org,
linux@arm.linux.org.uk, eric.miao@linaro.org,
richard.zhao@linaro.org
Subject: Re: [PATCH v2 6/7] clk: Add initial WM831x clock driver
Date: Tue, 4 Oct 2011 21:50:02 +0100 [thread overview]
Message-ID: <20111004205002.GA20296@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <20111004181818.GD2870@ponder.secretlab.ca>
On Tue, Oct 04, 2011 at 12:18:18PM -0600, Grant Likely wrote:
> On Mon, Sep 26, 2011 at 10:38:58AM +0100, Mark Brown wrote:
> > No, that's not helpful. The issue isn't the device probe code itself,
> > the issue is things like module unload not doing what they're supposed
> > to do and leaving the device lying around or something - there's rather
> > more going on than just the plain API call.
> Then lets fix the core code. I see this pattern show up again and
> again of extra boilerplate going around
> platform_driver_{register,unregister}(). That says to me that there
> either needs to be a new helper, or the core code needs to be made
> more verbose.
I'd go with the latter, it's pretty much the approach the subsystems I
help maintain have been taking. In fast paths it's a bit different but
in slow paths it tends to be helpful to know why things just fell over.
> In fact, I've been considering adding a macro for
> {platform,i2c,spi,...}_drivers that does all the module boilerplate
> for the common case of only registering a driver at init time.
> Something like:
> #define module_platform_driver(__driver) \
> int __driver##_init(void) \
> { \
> return platform_driver_register(&(__driver)); \
> } \
> module_init(__driver##_init); \
> void ##__driver##_exit(void) \
> { \
> platform_driver_unregister(&(__driver)); \
> } \
> module_exit(##__driver##_exit);
> It's not a lot of code, but I dislike how much boilerplate every
> single driver has to use if it doesn't do anything special.
Yeah, this sort of stuff would be helpful - there's quite a bit of
boilerplate you end up having to write to get drivers going.
next prev parent reply other threads:[~2011-10-04 20:50 UTC|newest]
Thread overview: 144+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-22 22:26 [PATCH v2 0/7] Add a generic struct clk Mike Turquette
2011-09-22 22:26 ` Mike Turquette
2011-09-22 22:26 ` [PATCH v2 1/7] clk: Add a generic clock infrastructure Mike Turquette
2011-09-22 22:26 ` Mike Turquette
2011-09-25 3:55 ` Grant Likely
2011-09-25 3:55 ` Grant Likely
2011-09-25 5:26 ` Turquette, Mike
2011-09-25 5:26 ` Turquette, Mike
2011-10-03 14:17 ` Rob Herring
2011-10-03 14:17 ` Rob Herring
2011-10-03 14:25 ` Mark Brown
2011-10-03 14:25 ` Mark Brown
2011-10-03 15:24 ` Rob Herring
2011-10-03 15:24 ` Rob Herring
2011-10-03 16:31 ` Mark Brown
2011-10-03 16:31 ` Mark Brown
2011-10-03 16:43 ` Russell King - ARM Linux
2011-10-03 16:43 ` Russell King - ARM Linux
2011-10-03 17:05 ` Mark Brown
2011-10-03 17:05 ` Mark Brown
2011-10-04 18:09 ` Grant Likely
2011-10-04 18:09 ` Grant Likely
2011-10-27 11:54 ` Domenico Andreoli
2011-10-27 11:54 ` Domenico Andreoli
2011-10-03 22:02 ` Rob Herring
2011-10-03 22:02 ` Rob Herring
2011-10-03 22:15 ` Turquette, Mike
2011-10-03 22:15 ` Turquette, Mike
2011-10-06 1:17 ` Saravana Kannan
2011-10-06 1:17 ` Saravana Kannan
2011-10-06 16:11 ` Turquette, Mike
2011-10-06 16:11 ` Turquette, Mike
2011-10-11 11:25 ` Richard Zhao
2011-10-11 11:25 ` Richard Zhao
2011-10-13 14:44 ` Russell King - ARM Linux
2011-10-13 14:44 ` Russell King - ARM Linux
2011-10-13 17:16 ` Turquette, Mike
2011-10-13 17:16 ` Turquette, Mike
2011-10-14 8:10 ` Richard Zhao
2011-10-14 8:10 ` Richard Zhao
2011-10-14 10:05 ` Mark Brown
2011-10-14 10:05 ` Mark Brown
2011-10-14 10:32 ` Richard Zhao
2011-10-14 10:32 ` Richard Zhao
2011-10-16 17:55 ` Sascha Hauer
2011-10-16 17:55 ` Sascha Hauer
2011-10-17 8:48 ` Richard Zhao
2011-10-17 8:48 ` Richard Zhao
2011-10-17 9:20 ` Mark Brown
2011-10-17 9:20 ` Mark Brown
2011-10-17 10:53 ` Richard Zhao
2011-10-17 10:53 ` Richard Zhao
2011-10-17 11:05 ` Sascha Hauer
2011-10-17 11:05 ` Sascha Hauer
2011-10-17 11:30 ` Russell King - ARM Linux
2011-10-17 11:30 ` Russell King - ARM Linux
2011-10-14 18:14 ` Turquette, Mike
2011-10-14 18:14 ` Turquette, Mike
2011-10-15 2:24 ` Richard Zhao
2011-10-15 2:24 ` Richard Zhao
2011-10-15 2:34 ` Richard Zhao
2011-10-15 2:34 ` Richard Zhao
2011-10-16 21:17 ` Turquette, Mike
2011-10-16 21:17 ` Turquette, Mike
2011-10-17 11:31 ` Richard Zhao
2011-10-17 11:31 ` Richard Zhao
2011-10-21 9:00 ` Richard Zhao
2011-10-21 9:00 ` Richard Zhao
2011-10-23 12:55 ` Shawn Guo
2011-10-23 12:55 ` Shawn Guo
2011-10-23 16:49 ` Turquette, Mike
2011-10-23 16:49 ` Turquette, Mike
2011-09-22 22:26 ` [PATCH v2 2/7] clk: Implement clk_set_rate Mike Turquette
2011-09-22 22:26 ` Mike Turquette
2011-10-11 11:49 ` Richard Zhao
2011-10-11 11:49 ` Richard Zhao
2011-10-23 14:24 ` Shawn Guo
2011-10-23 14:24 ` Shawn Guo
2011-10-23 16:50 ` Turquette, Mike
2011-10-23 16:50 ` Turquette, Mike
2011-09-22 22:26 ` [PATCH v2 3/7] clk: Add fixed-rate clock Mike Turquette
2011-09-22 22:26 ` Mike Turquette
2011-10-23 14:30 ` Shawn Guo
2011-10-23 14:30 ` Shawn Guo
2011-10-23 16:51 ` Turquette, Mike
2011-10-23 16:51 ` Turquette, Mike
2011-09-22 22:26 ` [PATCH v2 4/7] clk: Add simple gated clock Mike Turquette
2011-09-22 22:26 ` Mike Turquette
2011-09-25 4:02 ` Grant Likely
2011-09-25 4:02 ` Grant Likely
2011-09-25 5:27 ` Turquette, Mike
2011-09-25 5:27 ` Turquette, Mike
2011-09-26 18:33 ` Rob Herring
2011-09-26 18:33 ` Rob Herring
2011-09-26 18:40 ` Jamie Iles
2011-09-26 18:40 ` Jamie Iles
2011-09-26 19:10 ` Rob Herring
2011-09-26 19:10 ` Rob Herring
2011-09-26 19:37 ` Jamie Iles
2011-09-26 19:37 ` Jamie Iles
2011-09-26 22:37 ` Turquette, Mike
2011-09-26 22:37 ` Turquette, Mike
2011-09-26 23:30 ` Rob Herring
2011-09-26 23:30 ` Rob Herring
2011-10-05 1:41 ` Saravana Kannan
2011-10-05 1:41 ` Saravana Kannan
2011-10-12 6:46 ` Richard Zhao
2011-10-12 6:46 ` Richard Zhao
2011-10-12 14:59 ` Turquette, Mike
2011-10-12 14:59 ` Turquette, Mike
2011-10-16 18:26 ` Sascha Hauer
2011-10-16 18:26 ` Sascha Hauer
2011-10-17 6:42 ` Richard Zhao
2011-10-17 6:42 ` Richard Zhao
2011-10-17 17:46 ` Turquette, Mike
2011-10-17 17:46 ` Turquette, Mike
2011-10-13 14:45 ` Russell King - ARM Linux
2011-10-13 14:45 ` Russell King - ARM Linux
2011-10-13 17:18 ` Turquette, Mike
2011-10-13 17:18 ` Turquette, Mike
2011-09-22 22:27 ` [PATCH v2 5/7] clk: Add Kconfig option to build all generic clk drivers Mike Turquette
2011-09-22 22:27 ` Mike Turquette
2011-09-22 22:27 ` [PATCH v2 6/7] clk: Add initial WM831x clock driver Mike Turquette
2011-09-22 22:27 ` Mike Turquette
2011-09-25 4:08 ` Grant Likely
2011-09-25 4:08 ` Grant Likely
2011-09-25 5:29 ` Turquette, Mike
2011-09-25 5:29 ` Turquette, Mike
2011-09-26 9:38 ` Mark Brown
2011-09-26 9:38 ` Mark Brown
2011-10-04 18:18 ` Grant Likely
2011-10-04 18:18 ` Grant Likely
2011-10-04 20:50 ` Mark Brown [this message]
2011-10-04 20:50 ` Mark Brown
2011-10-04 23:22 ` Grant Likely
2011-10-04 23:22 ` Grant Likely
2011-09-22 22:27 ` [PATCH v2 7/7] x86: Enable generic clk API on x86 Mike Turquette
2011-09-22 22:27 ` Mike Turquette
2011-09-22 23:17 ` [PATCH v2 0/7] Add a generic struct clk Turquette, Mike
2011-09-22 23:17 ` Turquette, Mike
2011-09-25 4:10 ` Grant Likely
2011-09-25 4:10 ` Grant Likely
2011-09-29 18:54 ` Mark Brown
2011-09-29 18:54 ` Mark Brown
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=20111004205002.GA20296@opensource.wolfsonmicro.com \
--to=broonie@opensource.wolfsonmicro.com \
--cc=linux-arm-kernel@lists.infradead.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.