lib/crc7: Shift crc7() output left 1 bit

This eliminates a 1-bit left shift in every single caller,
and makes the inner loop of the CRC computation more efficient.

Renamed crc7 to crc7_be (big-endian) since the interface changed.

Also purged #include <linux/crc7.h> from files that don't use it at all.

Signed-off-by: George Spelvin <linux@horizon.com>
Reviewed-by: Pavel Machek <pavel@ucw.cz>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
George Spelvin
2014-05-10 10:32:57 -04:00
committed by John W. Linville
parent d91a48cbae
commit 1836eea209
7 changed files with 53 additions and 49 deletions

View File

@@ -2,13 +2,13 @@
#define _LINUX_CRC7_H
#include <linux/types.h>
extern const u8 crc7_syndrome_table[256];
extern const u8 crc7_be_syndrome_table[256];
static inline u8 crc7_byte(u8 crc, u8 data)
static inline u8 crc7_be_byte(u8 crc, u8 data)
{
return crc7_syndrome_table[(crc << 1) ^ data];
return crc7_be_syndrome_table[crc ^ data];
}
extern u8 crc7(u8 crc, const u8 *buffer, size_t len);
extern u8 crc7_be(u8 crc, const u8 *buffer, size_t len);
#endif