|
@@ -97,6 +97,7 @@
|
|
|
#include <linux/gameport.h>
|
|
|
#include <linux/device.h>
|
|
|
#include <linux/firmware.h>
|
|
|
+#include <linux/kernel.h>
|
|
|
#include <asm/io.h>
|
|
|
#include <sound/core.h>
|
|
|
#include <sound/info.h>
|
|
@@ -667,13 +668,12 @@ static u32 atoh(const unsigned char *in, unsigned int len)
|
|
|
unsigned char c;
|
|
|
|
|
|
while (len) {
|
|
|
+ int value;
|
|
|
+
|
|
|
c = in[len - 1];
|
|
|
- if ((c >= '0') && (c <= '9'))
|
|
|
- sum += mult * (c - '0');
|
|
|
- else if ((c >= 'A') && (c <= 'F'))
|
|
|
- sum += mult * (c - ('A' - 10));
|
|
|
- else if ((c >= 'a') && (c <= 'f'))
|
|
|
- sum += mult * (c - ('a' - 10));
|
|
|
+ value = hex_to_bin(c);
|
|
|
+ if (value >= 0)
|
|
|
+ sum += mult * value;
|
|
|
mult *= 16;
|
|
|
--len;
|
|
|
}
|