linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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");


  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).