Thread (72 messages) flat view 72 messages, 12 authors, 2011-10-27

[PATCH v2 6/7] clk: Add initial WM831x clock driver

From: Grant Likely <hidden>
Date: 2011-10-04 18:18:27
Also in: lkml

On Mon, Sep 26, 2011 at 10:38:58AM +0100, Mark Brown wrote:
On Sat, Sep 24, 2011 at 10:08:36PM -0600, Grant Likely wrote:
quoted
On Thu, Sep 22, 2011 at 03:27:01PM -0700, Mike Turquette wrote:
quoted
quoted
+	ret = platform_driver_register(&wm831x_clk_driver);
+	if (ret != 0)
+		pr_err("Failed to register WM831x clock driver: %d\n", ret);
+
+	return ret;
quoted
No need for this song-and-dance.  The driver core is pretty well
debugged.  Just use "return platform_driver_register(...);"
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.

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.

g.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help