Thread (5 messages) 5 messages, 3 authors, 2009-09-09

Re: [PATCH v2]add analog devices AD714X captouch input driver

From: David Brownell <hidden>
Date: 2009-09-08 18:49:28

Possibly related (same subject, not in this thread)

On Tuesday 08 September 2009, Barry Song wrote:
+static int __init ad714x_init(void)
+{
+#if (defined(CONFIG_SPI) || defined(CONFIG_SPI_MODULE)) && \
+       !(defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE))
+       return spi_register_driver(&ad714x_spi_driver);
+#endif
+
+#if (defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE))  && \
+       !(defined(CONFIG_SPI) || defined(CONFIG_SPI_MODULE))
+       return i2c_add_driver(&ad714x_i2c_driver);
+#endif
+
+#if (defined(CONFIG_SPI) || defined(CONFIG_SPI_MODULE)) && \
+       (defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE))
+       int ret = 0;
+       ret = spi_register_driver(&ad714x_spi_driver);
+       if (ret)
+               goto err;
+       ret = i2c_add_driver(&ad714x_i2c_driver);
+       if (ret)
+               spi_unregister_driver(&ad714x_spi_driver);
+err:
+       return ret;
+#endif
+}
Ugly and error prone.
You should have only one block of code not four ...

Absolutely the cleanest solution adds inlined NOP stubs
for I2C and SPI driver register/unregister calls, and
gets rid of all that #ifdeffery; there are other solutions.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help