From: "Hennerich, Michael" <Michael.Hennerich@analog.com>
To: "Hennerich, Michael" <Michael.Hennerich@analog.com>,
Barry Song <21cnbao@gmail.com>,
dmitry.torokhov@gmail.com
Cc: David Brownell <david-b@pacbell.net>,
uclinux-dist-devel@blackfin.uclinux.org,
linux-input@vger.kernel.org
Subject: RE: [Uclinux-dist-devel] [PATCH v3] add analog devices AD714Xcaptouchinput driver
Date: Fri, 11 Sep 2009 14:28:18 +0100 [thread overview]
Message-ID: <8A42379416420646B9BFAC9682273B6D0DC3BE1B@limkexm3.ad.analog.com> (raw)
In-Reply-To: <8A42379416420646B9BFAC9682273B6D0DC3BD95@limkexm3.ad.analog.com>
On Friday 11 September 2009, Hennerich, Michael wrote:
>On Friday 11 September 2009, Song, Barry wrote:
>+static int __init ad714x_init(void)
>+{
>+
>+ int ret = 0;
>+ ret = ad714x_spi_register_driver(&ad714x_spi_driver);
>+ if (ret)
>+ goto err;
>+ ret = ad714x_i2c_add_driver(&ad714x_i2c_driver);
>+ if (ret)
>+ ad714x_spi_unregister_driver(&ad714x_spi_driver);
>+err:
>+ return ret;
>+}
>+
>+static void __exit ad714x_exit(void)
>+{
>+ ad714x_spi_unregister_driver(&ad714x_spi_driver);
>+ ad714x_i2c_del_driver(&ad714x_i2c_driver);
>+}
>
>This doesn't make much sense!
>Assuming we have two AD714x in a system. One connected by SPI the other
>by I2C.
>Why would I remove the SPI one in case the other I2C fails, or not even
>try the SPI one if the I2C fails?
>
>Who says that a driver can't have two module_init()?
>
>Use two entry points and let them individually return its status.
>
>Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
>
>Index: drivers/input/misc/ad714x.c
>
>===================================================================
>
>--- drivers/input/misc/ad714x.c (revision 7296)
>
>+++ drivers/input/misc/ad714x.c (working copy)
>
>@@ -1479,19 +1479,18 @@
>
> .resume = ad714x_spi_resume,
>
> };
>
>
>
>-static inline int ad714x_spi_register_driver(struct spi_driver
>*spi_drv)
>+static inline int ad714x_spi_init(struct spi_driver *spi_drv)
>
> {
>
> return spi_register_driver(spi_drv);
>
> }
>
>
>
>-static inline void ad714x_spi_unregister_driver(struct spi_driver
>*spi_drv)
>+static inline void ad714x_spi_exit(struct spi_driver *spi_drv)
>
> {
>
> spi_unregister_driver(spi_drv);
>
> }
>
>
>
>-#else
>
>-#define ad714x_spi_register_driver(p) 0
>
>-#define ad714x_spi_unregister_driver(p)
>
>+module_init(ad714x_spi_init);
>
>+module_exit(ad714x_spi_exit);
>
> #endif
>
>
>
> #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
>
>@@ -1609,44 +1608,20 @@
>
> .id_table = ad714x_id,
>
> };
>
>
>
>-static inline int ad714x_i2c_add_driver(struct i2c_driver *i2c_drv)
>
>+static __init int ad714x_i2c_init(struct i2c_driver *i2c_drv)
>
> {
>
> return i2c_add_driver(i2c_drv);
> }
>
>-static inline void ad714x_i2c_del_driver(struct i2c_driver *i2c_drv)
>+static __init void ad714x_i2c_exit(struct i2c_driver *i2c_drv)
> {
> i2c_del_driver(i2c_drv);
> }
>
>-#else
>-#define ad714x_i2c_add_driver(p) 0
>-#define ad714x_i2c_del_driver(p)
>+module_init(ad714x_i2c_init);
>+module_exit(ad714x_i2c_exit);
> #endif
>
>-static int __init ad714x_init(void)
>-{
>-
>- int ret = 0;
>- ret = ad714x_spi_register_driver(&ad714x_spi_driver);
>- if (ret)
>- goto err;
>- ret = ad714x_i2c_add_driver(&ad714x_i2c_driver);
>- if (ret)
>- ad714x_spi_unregister_driver(&ad714x_spi_driver);
>-err:
>- return ret;
>-}
>-
>-static void __exit ad714x_exit(void)
>-{
>- ad714x_spi_unregister_driver(&ad714x_spi_driver);
>- ad714x_i2c_del_driver(&ad714x_i2c_driver);
>-}
>-
>-module_init(ad714x_init);
>-module_exit(ad714x_exit);
>-
> MODULE_DESCRIPTION("Analog Devices AD714X Capacitance Touch Sensor
>Driver");
> MODULE_AUTHOR("Barry Song <21cnbao@gmail.com>");
> MODULE_LICENSE("GPL");
Sorry for the noise - wrong patch attached.
This one should work better...
Index: drivers/input/misc/ad714x.c
===================================================================
--- drivers/input/misc/ad714x.c (revision 7296)
+++ drivers/input/misc/ad714x.c (working copy)
@@ -1479,19 +1479,18 @@
.resume = ad714x_spi_resume,
};
-static inline int ad714x_spi_register_driver(struct spi_driver
*spi_drv)
+static __init int ad714x_spi_init(void)
{
- return spi_register_driver(spi_drv);
+ return spi_register_driver(&ad714x_spi_driver);
}
-static inline void ad714x_spi_unregister_driver(struct spi_driver
*spi_drv)
+static __init void ad714x_spi_exit(void)
{
- spi_unregister_driver(spi_drv);
+ spi_unregister_driver(&ad714x_spi_driver);
}
-#else
-#define ad714x_spi_register_driver(p) 0
-#define ad714x_spi_unregister_driver(p)
+module_init(ad714x_spi_init);
+module_exit(ad714x_spi_exit);
#endif
#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
@@ -1609,44 +1608,20 @@
.id_table = ad714x_id,
};
-static inline int ad714x_i2c_add_driver(struct i2c_driver *i2c_drv)
+static __init int ad714x_i2c_init(void)
{
- return i2c_add_driver(i2c_drv);
+ return i2c_add_driver(&ad714x_i2c_driver);
}
-static inline void ad714x_i2c_del_driver(struct i2c_driver *i2c_drv)
+static __init void ad714x_i2c_exit(void)
{
- i2c_del_driver(i2c_drv);
+ i2c_del_driver(&ad714x_i2c_driver);
}
-#else
-#define ad714x_i2c_add_driver(p) 0
-#define ad714x_i2c_del_driver(p)
+module_init(ad714x_i2c_init);
+module_exit(ad714x_i2c_exit);
#endif
-static int __init ad714x_init(void)
-{
-
- int ret = 0;
- ret = ad714x_spi_register_driver(&ad714x_spi_driver);
- if (ret)
- goto err;
- ret = ad714x_i2c_add_driver(&ad714x_i2c_driver);
- if (ret)
- ad714x_spi_unregister_driver(&ad714x_spi_driver);
-err:
- return ret;
-}
-
-static void __exit ad714x_exit(void)
-{
- ad714x_spi_unregister_driver(&ad714x_spi_driver);
- ad714x_i2c_del_driver(&ad714x_i2c_driver);
-}
-
-module_init(ad714x_init);
-module_exit(ad714x_exit);
-
MODULE_DESCRIPTION("Analog Devices AD714X Capacitance Touch Sensor
Driver");
MODULE_AUTHOR("Barry Song <21cnbao@gmail.com>");
MODULE_LICENSE("GPL");
next prev parent reply other threads:[~2009-09-11 13:28 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-11 6:53 [PATCH v3] add analog devices AD714X captouch input driver Barry Song
2009-09-11 13:19 ` [Uclinux-dist-devel] [PATCH v3] add analog devices AD714X captouchinput driver Hennerich, Michael
2009-09-11 13:28 ` Hennerich, Michael [this message]
[not found] ` <8A42379416420646B9BFAC9682273B6D0DC3BD95-pcKY8lWzTjquVPpjEGsWsTcYPEmu4y7e@public.gmane.org>
2009-10-09 8:56 ` Mike Frysinger
[not found] ` <8bd0f97a0910090156g2a8fba58r4085422f3a79c892-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-10-09 9:03 ` David Woodhouse
[not found] ` <1255079007.8362.70.camel-uXGAPMMVk8bAQYKIod7YupZV94DADvEd@public.gmane.org>
2009-10-09 9:18 ` Mike Frysinger
[not found] ` <8bd0f97a0910090218j6a2aa6aaq497fba3f04d7b19f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-10-09 9:20 ` David Woodhouse
2009-10-09 10:11 ` Mike Frysinger
[not found] ` <8bd0f97a0910090311t5f5167c8r336afaa6f790e1a9-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-10-09 16:22 ` Dmitry Torokhov
[not found] ` <20091009162219.GB1092-WlK9ik9hQGAhIp7JRqBPierSzoNAToWh@public.gmane.org>
2009-10-10 2:24 ` Barry Song
[not found] ` <3c17e3570910091924p68a248e6q3dd2640acc17c90d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-10-10 20:38 ` Mike Frysinger
[not found] ` <8bd0f97a0910101338y46cb227hdc6d83c3c6622a21-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-10-12 17:08 ` Mike Frysinger
[not found] ` <8bd0f97a0910121008l1563803bu766e7d0868254a9f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-10-13 3:05 ` Barry Song
[not found] ` <3c17e3570910122005j16c5e0fcgc542172ca9c4a0d2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-10-13 4:26 ` Barry Song
2009-10-09 21:33 ` Jiri Kosina
[not found] ` <alpine.LRH.2.00.0910092331040.12171-1ReQVI26iDCaZKY3DrU6dA@public.gmane.org>
2009-10-09 21:36 ` Mike Frysinger
2009-10-09 10:34 ` [PATCH v3] add analog devices AD714Xcaptouchinput driver Song, Barry
2009-09-14 3:36 ` [Uclinux-dist-devel] [PATCH v3] add analog devices AD714X captouch input driver Mike Frysinger
[not found] ` <1252652006-5270-1-git-send-email-21cnbao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-10-13 6:02 ` [PATCH v4] input/misc: add Analog Devices AD714x " Mike Frysinger
2009-10-20 8:37 ` [PATCH v5] " Mike Frysinger
[not found] ` <1256027864-26126-1-git-send-email-vapier-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
2009-12-15 4:52 ` Barry Song
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=8A42379416420646B9BFAC9682273B6D0DC3BE1B@limkexm3.ad.analog.com \
--to=michael.hennerich@analog.com \
--cc=21cnbao@gmail.com \
--cc=david-b@pacbell.net \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=uclinux-dist-devel@blackfin.uclinux.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 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).