| /* | |
| * Copyright (c) 2013 Google, Inc | |
| * | |
| * SPDX-License-Identifier: GPL-2.0+ | |
| */ | |
| #include "linux/crc8.h" | |
| unsigned int crc8(const unsigned char *vptr, int len) | |
| { | |
| const unsigned char *data = vptr; | |
| unsigned int crc = 0; | |
| int i, j; | |
| for (j = len; j; j--, data++) { | |
| crc ^= (*data << 8); | |
| for (i = 8; i; i--) { | |
| if (crc & 0x8000) | |
| crc ^= (0x1070 << 3); | |
| crc <<= 1; | |
| } | |
| } | |
| return (crc >> 8) & 0xff; | |
| } |