diff options
-rw-r--r-- | drivers/w1/w1_ds2433.c | 6 | ||||
-rw-r--r-- | include/linux/crc16.h | 16 |
2 files changed, 6 insertions, 16 deletions
diff --git a/drivers/w1/w1_ds2433.c b/drivers/w1/w1_ds2433.c index b7c24b34d270..279e0e0363d6 100644 --- a/drivers/w1/w1_ds2433.c +++ b/drivers/w1/w1_ds2433.c | |||
@@ -15,6 +15,10 @@ | |||
15 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
16 | #ifdef CONFIG_W1_F23_CRC | 16 | #ifdef CONFIG_W1_F23_CRC |
17 | #include <linux/crc16.h> | 17 | #include <linux/crc16.h> |
18 | |||
19 | #define CRC16_INIT 0 | ||
20 | #define CRC16_VALID 0xb001 | ||
21 | |||
18 | #endif | 22 | #endif |
19 | 23 | ||
20 | #include "w1.h" | 24 | #include "w1.h" |
@@ -214,7 +218,7 @@ static ssize_t w1_f23_write_bin(struct kobject *kobj, char *buf, loff_t off, | |||
214 | #ifdef CONFIG_W1_F23_CRC | 218 | #ifdef CONFIG_W1_F23_CRC |
215 | /* can only write full blocks in cached mode */ | 219 | /* can only write full blocks in cached mode */ |
216 | if ((off & W1_PAGE_MASK) || (count & W1_PAGE_MASK)) { | 220 | if ((off & W1_PAGE_MASK) || (count & W1_PAGE_MASK)) { |
217 | dev_err(&sl->dev, "invalid offset/count off=%d cnt=%d\n", | 221 | dev_err(&sl->dev, "invalid offset/count off=%d cnt=%zd\n", |
218 | (int)off, count); | 222 | (int)off, count); |
219 | return -EINVAL; | 223 | return -EINVAL; |
220 | } | 224 | } |
diff --git a/include/linux/crc16.h b/include/linux/crc16.h index bdedf825b04a..9443c084f881 100644 --- a/include/linux/crc16.h +++ b/include/linux/crc16.h | |||
@@ -1,22 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * crc16.h - CRC-16 routine | 2 | * crc16.h - CRC-16 routine |
3 | * | 3 | * |
4 | * Implements the standard CRC-16, as used with 1-wire devices: | 4 | * Implements the standard CRC-16: |
5 | * Width 16 | 5 | * Width 16 |
6 | * Poly 0x8005 (x^16 + x^15 + x^2 + 1) | 6 | * Poly 0x8005 (x^16 + x^15 + x^2 + 1) |
7 | * Init 0 | 7 | * Init 0 |
8 | * | 8 | * |
9 | * For 1-wire devices, the CRC is stored inverted, LSB-first | ||
10 | * | ||
11 | * Example buffer with the CRC attached: | ||
12 | * 31 32 33 34 35 36 37 38 39 C2 44 | ||
13 | * | ||
14 | * The CRC over a buffer with the CRC attached is 0xB001. | ||
15 | * So, if (crc16(0, buf, size) == 0xB001) then the buffer is valid. | ||
16 | * | ||
17 | * Refer to "Application Note 937: Book of iButton Standards" for details. | ||
18 | * http://www.maxim-ic.com/appnotes.cfm/appnote_number/937 | ||
19 | * | ||
20 | * Copyright (c) 2005 Ben Gardner <bgardner@wabtec.com> | 9 | * Copyright (c) 2005 Ben Gardner <bgardner@wabtec.com> |
21 | * | 10 | * |
22 | * This source code is licensed under the GNU General Public License, | 11 | * This source code is licensed under the GNU General Public License, |
@@ -28,9 +17,6 @@ | |||
28 | 17 | ||
29 | #include <linux/types.h> | 18 | #include <linux/types.h> |
30 | 19 | ||
31 | #define CRC16_INIT 0 | ||
32 | #define CRC16_VALID 0xb001 | ||
33 | |||
34 | extern u16 const crc16_table[256]; | 20 | extern u16 const crc16_table[256]; |
35 | 21 | ||
36 | extern u16 crc16(u16 crc, const u8 *buffer, size_t len); | 22 | extern u16 crc16(u16 crc, const u8 *buffer, size_t len); |