Skip to contentSkip to conversation

I2C: Kill outdated defines in i2c.h

PATCH New Jean Delvare 2 participants 2 messages May 19, 2005 I2C

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 I2C: Kill outdated defines in i2c.h

Hi Greg,

Some defines in i2c.h (I2C_CLIENT_MODPARM and friends) are now useless. They should have been removed when the i2c client parameters were converted from MODULE_PARAM to module_parm_array, but where not. This patch removes them now.

Additionally, it moves the definition of I2C_CLIENT_MAX_OPTS next to where it is used rather than 220 lines before, which is preferable IMHO.

As a side note, I think that there is a bug in the way these options are handled. The i2c code looks for I2C_CLIENT_END as a list terminator, but if the maximum number of parameters are actually provided, no terminator will be left. It's rather unlikely to happen because nobody will probably ever provide that many parameters, but this should probably be fixed. I'll address this issue later, since I plan to completely rewrite the way these parameters are handled anyway.

Please apply,
thanks.

include/linux/i2c.h renamed from include/linux/i2c.h.orig +3 -10
@@ -306,9 +306,6 @@
 #define ANY_I2C_BUS		0xffff
 #define ANY_I2C_ISA_BUS		9191
 
-/* The length of the option lists */
-#define I2C_CLIENT_MAX_OPTS 48
-
 
 /* ----- functions exported by i2c.o */
 
@@ -526,6 +523,9 @@
 #define I2C_MAJOR	89		/* Device major number		*/
 
 /* These defines are used for probing i2c client addresses */
+/* The length of the option lists */
+#define I2C_CLIENT_MAX_OPTS 48
+
 /* Default fill of many variables */
 #define I2C_CLIENT_DEFAULTS {I2C_CLIENT_END, I2C_CLIENT_END, I2C_CLIENT_END, \
                           I2C_CLIENT_END, I2C_CLIENT_END, I2C_CLIENT_END, \
@@ -544,19 +544,12 @@
                           I2C_CLIENT_END, I2C_CLIENT_END, I2C_CLIENT_END, \
                           I2C_CLIENT_END, I2C_CLIENT_END, I2C_CLIENT_END}
 
-/* This is ugly. We need to evaluate I2C_CLIENT_MAX_OPTS before it is 
-   stringified */
-#define I2C_CLIENT_MODPARM_AUX1(x) "1-" #x "h"
-#define I2C_CLIENT_MODPARM_AUX(x) I2C_CLIENT_MODPARM_AUX1(x)
-#define I2C_CLIENT_MODPARM I2C_CLIENT_MODPARM_AUX(I2C_CLIENT_MAX_OPTS)
-
 /* I2C_CLIENT_MODULE_PARM creates a module parameter, and puts it in the
    module header */
 
 #define I2C_CLIENT_MODULE_PARM(var,desc) \
   static unsigned short var[I2C_CLIENT_MAX_OPTS] = I2C_CLIENT_DEFAULTS; \
   static unsigned int var##_num; \
-  /*MODULE_PARM(var,I2C_CLIENT_MODPARM);*/ \
   module_param_array(var, short, &var##_num, 0); \
   MODULE_PARM_DESC(var,desc)
 
Signature · 1 line
Jean Delvare
Applied
#1 lore raw

PATCH 1/1 I2C: Kill outdated defines in i2c.h

Quoted 18 lines · Jean Delvare

Hi Greg,

Some defines in i2c.h (I2C_CLIENT_MODPARM and friends) are now useless. They should have been removed when the i2c client parameters were converted from MODULE_PARAM to module_parm_array, but where not. This patch removes them now.

Additionally, it moves the definition of I2C_CLIENT_MAX_OPTS next to where it is used rather than 220 lines before, which is preferable IMHO.

As a side note, I think that there is a bug in the way these options are handled. The i2c code looks for I2C_CLIENT_END as a list terminator, but if the maximum number of parameters are actually provided, no terminator will be left. It's rather unlikely to happen because nobody will probably ever provide that many parameters, but this should probably be fixed. I'll address this issue later, since I plan to completely rewrite the way these parameters are handled anyway.

Quoted 1 line

Please apply,

Applied, thanks.

greg k-h