Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=87e71b473ee199cf4b7b7a0ce890cd01f45e3a0e
Commit:     87e71b473ee199cf4b7b7a0ce890cd01f45e3a0e
Parent:     6dbd682b7c6d58916096616cdf94852641bc09d9
Author:     Simon Arlott <[EMAIL PROTECTED]>
AuthorDate: Thu May 10 23:04:11 2007 -0700
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Thu Jul 12 16:29:45 2007 -0700

    USB: cxacru: Cleanup sysfs attribute code
    
    This changes the format of unknown status values to be less verbose and
    uses an array instead of several different snprintf calls. Since only
    enum values are assigned to it, poll_state is changed from int to enum.
    Use abs() for dB values instead of two almost identical return lines.
    
    Signed-off-by: Simon Arlott <[EMAIL PROTECTED]>
    Acked-by: Duncan Sands <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/atm/cxacru.c |   73 +++++++++++++++++++--------------------------
 1 files changed, 31 insertions(+), 42 deletions(-)

diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
index 8bcf7fe..1bc8840 100644
--- a/drivers/usb/atm/cxacru.c
+++ b/drivers/usb/atm/cxacru.c
@@ -171,7 +171,7 @@ struct cxacru_data {
        struct delayed_work poll_work;
        u32 card_info[CXINF_MAX];
        struct mutex poll_state_serialize;
-       int poll_state;
+       enum cxacru_poll_state poll_state;
 
        /* contol handles */
        struct mutex cm_serialize;
@@ -226,58 +226,48 @@ static ssize_t cxacru_sysfs_showattr_s8(s8 value, char 
*buf)
 
 static ssize_t cxacru_sysfs_showattr_dB(s16 value, char *buf)
 {
-       if (unlikely(value < 0)) {
-               return snprintf(buf, PAGE_SIZE, "%d.%02u\n",
-                                               value / 100, -value % 100);
-       } else {
-               return snprintf(buf, PAGE_SIZE, "%d.%02u\n",
-                                               value / 100, value % 100);
-       }
+       return snprintf(buf, PAGE_SIZE, "%d.%02u\n",
+                                       value / 100, abs(value) % 100);
 }
 
 static ssize_t cxacru_sysfs_showattr_bool(u32 value, char *buf)
 {
-       switch (value) {
-       case 0: return snprintf(buf, PAGE_SIZE, "no\n");
-       case 1: return snprintf(buf, PAGE_SIZE, "yes\n");
-       default: return 0;
-       }
+       static char *str[] = { "no", "yes" };
+       if (unlikely(value >= ARRAY_SIZE(str)))
+               return snprintf(buf, PAGE_SIZE, "%u\n", value);
+       return snprintf(buf, PAGE_SIZE, "%s\n", str[value]);
 }
 
 static ssize_t cxacru_sysfs_showattr_LINK(u32 value, char *buf)
 {
-       switch (value) {
-       case 1: return snprintf(buf, PAGE_SIZE, "not connected\n");
-       case 2: return snprintf(buf, PAGE_SIZE, "connected\n");
-       case 3: return snprintf(buf, PAGE_SIZE, "lost\n");
-       default: return snprintf(buf, PAGE_SIZE, "unknown (%u)\n", value);
-       }
+       static char *str[] = { NULL, "not connected", "connected", "lost" };
+       if (unlikely(value >= ARRAY_SIZE(str) || str[value] == NULL))
+               return snprintf(buf, PAGE_SIZE, "%u\n", value);
+       return snprintf(buf, PAGE_SIZE, "%s\n", str[value]);
 }
 
 static ssize_t cxacru_sysfs_showattr_LINE(u32 value, char *buf)
 {
-       switch (value) {
-       case 0: return snprintf(buf, PAGE_SIZE, "down\n");
-       case 1: return snprintf(buf, PAGE_SIZE, "attempting to activate\n");
-       case 2: return snprintf(buf, PAGE_SIZE, "training\n");
-       case 3: return snprintf(buf, PAGE_SIZE, "channel analysis\n");
-       case 4: return snprintf(buf, PAGE_SIZE, "exchange\n");
-       case 5: return snprintf(buf, PAGE_SIZE, "up\n");
-       case 6: return snprintf(buf, PAGE_SIZE, "waiting\n");
-       case 7: return snprintf(buf, PAGE_SIZE, "initialising\n");
-       default: return snprintf(buf, PAGE_SIZE, "unknown (%u)\n", value);
-       }
+       static char *str[] = { "down", "attempting to activate",
+               "training", "channel analysis", "exchange", "up",
+               "waiting", "initialising"
+       };
+       if (unlikely(value >= ARRAY_SIZE(str)))
+               return snprintf(buf, PAGE_SIZE, "%u\n", value);
+       return snprintf(buf, PAGE_SIZE, "%s\n", str[value]);
 }
 
 static ssize_t cxacru_sysfs_showattr_MODU(u32 value, char *buf)
 {
-       switch (value) {
-       case 0: return 0;
-       case 1: return snprintf(buf, PAGE_SIZE, "ANSI T1.413\n");
-       case 2: return snprintf(buf, PAGE_SIZE, "ITU-T G.992.1 (G.DMT)\n");
-       case 3: return snprintf(buf, PAGE_SIZE, "ITU-T G.992.2 (G.LITE)\n");
-       default: return snprintf(buf, PAGE_SIZE, "unknown (%u)\n", value);
-       }
+       static char *str[] = {
+                       NULL,
+                       "ANSI T1.413",
+                       "ITU-T G.992.1 (G.DMT)",
+                       "ITU-T G.992.2 (G.LITE)"
+       };
+       if (unlikely(value >= ARRAY_SIZE(str) || str[value] == NULL))
+               return snprintf(buf, PAGE_SIZE, "%u\n", value);
+       return snprintf(buf, PAGE_SIZE, "%s\n", str[value]);
 }
 
 /*
@@ -308,11 +298,10 @@ static ssize_t cxacru_sysfs_show_adsl_state(struct device 
*dev,
        struct cxacru_data *instance = usbatm_instance->driver_data;
        u32 value = instance->card_info[CXINF_LINE_STARTABLE];
 
-       switch (value) {
-       case 0: return snprintf(buf, PAGE_SIZE, "running\n");
-       case 1: return snprintf(buf, PAGE_SIZE, "stopped\n");
-       default: return snprintf(buf, PAGE_SIZE, "unknown (%u)\n", value);
-       }
+       static char *str[] = { "running", "stopped" };
+       if (unlikely(value >= ARRAY_SIZE(str)))
+               return snprintf(buf, PAGE_SIZE, "%u\n", value);
+       return snprintf(buf, PAGE_SIZE, "%s\n", str[value]);
 }
 
 static ssize_t cxacru_sysfs_store_adsl_state(struct device *dev,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to