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,