From 3ff16c257a103febb63a92f305043fc36c83e9ad Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Tue, 15 Jun 2010 17:25:38 +0300 Subject: [PATCH 172/524] Staging: don't use custom hex_to_bin() implementation Signed-off-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/jr3_pci.c | 17 +++++++++-------- drivers/staging/rtl8192su/r8192S_Efuse.c | 19 +------------------ 2 files changed, 10 insertions(+), 26 deletions(-) diff --git a/drivers/staging/comedi/drivers/jr3_pci.c b/drivers/staging/comedi/drivers/jr3_pci.c index ba900a8..8b383ee 100644 --- a/drivers/staging/comedi/drivers/jr3_pci.c +++ b/drivers/staging/comedi/drivers/jr3_pci.c @@ -48,6 +48,7 @@ Devices: [JR3] PCI force sensor board (jr3_pci) #include #include #include +#include #include "comedi_pci.h" #include "jr3_pci.h" @@ -397,14 +398,14 @@ int read_idm_word(const u8 * data, size_t size, int *pos, unsigned int *val) } /* Collect value */ *val = 0; - for (; *pos < size && isxdigit(data[*pos]); (*pos)++) { - char ch = tolower(data[*pos]); - result = 1; - if ('0' <= ch && ch <= '9') { - *val = (*val << 4) + (ch - '0'); - } else if ('a' <= ch && ch <= 'f') { - *val = (*val << 4) + (ch - 'a' + 10); - } + for (; *pos < size; (*pos)++) { + int value; + value = hex_to_bin(data[*pos]); + if (value >= 0) { + result = 1; + *val = (*val << 4) + value; + } else + break; } } return result; diff --git a/drivers/staging/rtl8192su/r8192S_Efuse.c b/drivers/staging/rtl8192su/r8192S_Efuse.c index f0ce656..1e1d55e 100644 --- a/drivers/staging/rtl8192su/r8192S_Efuse.c +++ b/drivers/staging/rtl8192su/r8192S_Efuse.c @@ -1848,22 +1848,6 @@ bool IsHexDigit( char chTmp) } } -// -// Description: -// Translate a character to hex digit. -// -u32 MapCharToHexDigit(char chTmp) -{ - if(chTmp >= '0' && chTmp <= '9') - return (chTmp - '0'); - else if(chTmp >= 'a' && chTmp <= 'f') - return (10 + (chTmp - 'a')); - else if(chTmp >= 'A' && chTmp <= 'F') - return (10 + (chTmp - 'A')); - else - return 0; -} - /*----------------------------------------------------------------------------- * Function: efuse_ParsingMap * @@ -1917,8 +1901,7 @@ efuse_ParsingMap(char* szStr,u32* pu4bVal,u32* pu4bMove) // Parse each digit. do { - (*pu4bVal) <<= 4; - *pu4bVal += MapCharToHexDigit(*szScan); + *pu4bVal = (*pu4bVal << 4) + hex_to_bin(*szScan); szScan++; (*pu4bMove)++; -- 1.7.1