fix-pcf50633-enum-confusion.patch

From: Andy Green <[EMAIL PROTECTED]>

Confusion in the code about bit indexes and bit values
in an enum.  Fix allows us to reclaim some 4K of text
space and stop /sys reporting <NULL> for some things

Signed-off-by: Andy Green <[EMAIL PROTECTED]>
---

 drivers/i2c/chips/pcf50633.c |   38 ++++++++++++++++++++++++--------------
 1 files changed, 24 insertions(+), 14 deletions(-)


diff --git a/drivers/i2c/chips/pcf50633.c b/drivers/i2c/chips/pcf50633.c
index 2972d67..82e69ce 100644
--- a/drivers/i2c/chips/pcf50633.c
+++ b/drivers/i2c/chips/pcf50633.c
@@ -68,16 +68,26 @@ static unsigned short normal_i2c[] = { 0x73, I2C_CLIENT_END };
 
 I2C_CLIENT_INSMOD_1(pcf50633);
 
-#define PCF50633_F_CHG_ENABLED	0x00000001	/* Charger enabled */
-#define PCF50633_F_CHG_PRESENT	0x00000002	/* Charger present */
-#define PCF50633_F_CHG_ERR	0x00000008	/* Charger Error */
-#define PCF50633_F_CHG_PROT	0x00000010	/* Charger Protection */
-#define PCF50633_F_CHG_READY	0x00000020	/* Charging completed */
+#define PCF50633_FIDX_CHG_ENABLED	0	/* Charger enabled */
+#define PCF50633_FIDX_CHG_PRESENT	1	/* Charger present */
+#define PCF50633_FIDX_CHG_ERR		3	/* Charger Error */
+#define PCF50633_FIDX_CHG_PROT		4	/* Charger Protection */
+#define PCF50633_FIDX_CHG_READY		5	/* Charging completed */
+#define PCF50633_FIDX_PWR_PRESSED	8
+#define PCF50633_FIDX_RTC_SECOND	9
+#define PCF50633_FIDX_USB_PRESENT	10
+
+#define PCF50633_F_CHG_ENABLED	(1 << PCF50633_FIDX_CHG_ENABLED)
+#define PCF50633_F_CHG_PRESENT	(1 << PCF50633_FIDX_CHG_PRESENT)
+#define PCF50633_F_CHG_ERR	(1 << PCF50633_FIDX_CHG_ERR)
+#define PCF50633_F_CHG_PROT	(1 << PCF50633_FIDX_CHG_PROT)
+#define PCF50633_F_CHG_READY	(1 << PCF50633_FIDX_CHG_READY)
+
 #define PCF50633_F_CHG_MASK	0x000000fc
 
-#define PCF50633_F_PWR_PRESSED	0x00000100
-#define PCF50633_F_RTC_SECOND	0x00000200
-#define PCF50633_F_USB_PRESENT	0x00000400
+#define PCF50633_F_PWR_PRESSED	(1 << PCF50633_FIDX_PWR_PRESSED)
+#define PCF50633_F_RTC_SECOND	(1 << PCF50633_FIDX_RTC_SECOND)
+#define PCF50633_F_USB_PRESENT	(1 << PCF50633_FIDX_USB_PRESENT)
 
 enum close_state {
 	CLOSE_STATE_NOT,
@@ -992,12 +1002,12 @@ static ssize_t set_chgmode(struct device *dev, struct device_attribute *attr,
 static DEVICE_ATTR(chgmode, S_IRUGO | S_IWUSR, show_chgmode, set_chgmode);
 
 static const char *chgstate_names[] = {
-	[PCF50633_F_CHG_ENABLED]		= "enabled",
-	[PCF50633_F_CHG_PRESENT] 		= "charger_present",
-	[PCF50633_F_USB_PRESENT] 		= "usb_present",
-	[PCF50633_F_CHG_ERR]			= "error",
-	[PCF50633_F_CHG_PROT]			= "protection",
-	[PCF50633_F_CHG_READY]			= "ready",
+	[PCF50633_FIDX_CHG_ENABLED]		= "enabled",
+	[PCF50633_FIDX_CHG_PRESENT] 		= "charger_present",
+	[PCF50633_FIDX_USB_PRESENT] 		= "usb_present",
+	[PCF50633_FIDX_CHG_ERR]			= "error",
+	[PCF50633_FIDX_CHG_PROT]		= "protection",
+	[PCF50633_FIDX_CHG_READY]		= "ready",
 };
 
 static ssize_t show_chgstate(struct device *dev, struct device_attribute *attr,

Reply via email to