wireless: at76c50x: use native hex_pack_byte() method
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 28 Sep 2011 09:30:59 +0000 (12:30 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 30 Sep 2011 19:16:25 +0000 (15:16 -0400)
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: "John W. Linville" <linville@tuxdriver.com>
Tested-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/at76c50x-usb.c

index 298601436ee2631e2eaa8afc9b3f3989ea459e0b..39322d4121b79f17e90ecd39491b666c28c7217a 100644 (file)
@@ -500,10 +500,9 @@ exit:
 
 #define HEX2STR_BUFFERS 4
 #define HEX2STR_MAX_LEN 64
-#define BIN2HEX(x) ((x) < 10 ? '0' + (x) : (x) + 'A' - 10)
 
 /* Convert binary data into hex string */
-static char *hex2str(void *buf, int len)
+static char *hex2str(void *buf, size_t len)
 {
        static atomic_t a = ATOMIC_INIT(0);
        static char bufs[HEX2STR_BUFFERS][3 * HEX2STR_MAX_LEN + 1];
@@ -514,18 +513,17 @@ static char *hex2str(void *buf, int len)
        if (len > HEX2STR_MAX_LEN)
                len = HEX2STR_MAX_LEN;
 
-       if (len <= 0) {
-               ret[0] = '\0';
-               return ret;
-       }
+       if (len == 0)
+               goto exit;
 
        while (len--) {
-               *obuf++ = BIN2HEX(*ibuf >> 4);
-               *obuf++ = BIN2HEX(*ibuf & 0xf);
+               obuf = pack_hex_byte(obuf, *ibuf++);
                *obuf++ = '-';
-               ibuf++;
        }
-       *(--obuf) = '\0';
+       obuf--;
+
+exit:
+       *obuf = '\0';
 
        return ret;
 }