aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/w1/w1_ds2433.c6
-rw-r--r--include/linux/crc16.h16
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
34extern u16 const crc16_table[256]; 20extern u16 const crc16_table[256];
35 21
36extern u16 crc16(u16 crc, const u8 *buffer, size_t len); 22extern u16 crc16(u16 crc, const u8 *buffer, size_t len);