lib/crc16.c: Rename cyg_crc16() to crc16_ccitt() and add crc start value
authorStefan Roese <sr@denx.de>
Thu, 3 Mar 2016 08:34:12 +0000 (09:34 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 14 Mar 2016 23:18:42 +0000 (19:18 -0400)
The original name of this function is unclear. This patch renames this
CRC16 function to crc16_ccitt() matching its name with its
implementation.

To make the usage of this function more flexible, lets add the CRC start
value as parameter to this function. This way it can be used by other
functions requiring different start values than 0 as well.

Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
common/xyzModem.c
drivers/mmc/mmc_spi.c
include/crc.h
lib/crc16.c

index 56f4bcaf99453d04bac277b39a63688ed6836263..5656aac48fb1b688a10247adf572444392779194 100644 (file)
@@ -446,7 +446,7 @@ xyzModem_get_hdr (void)
   /* Verify checksum/CRC */
   if (xyz.crc_mode)
     {
-      cksum = cyg_crc16 (xyz.pkt, xyz.len);
+      cksum = crc16_ccitt(0, xyz.pkt, xyz.len);
       if (cksum != ((xyz.crc1 << 8) | xyz.crc2))
        {
          ZM_DEBUG (zm_dprintf ("CRC error - recvd: %02x%02x, computed: %x\n",
index 9032a73d7834754cb5d7a9e9f0a2ecbb7edce7df..7547e1aef88c1bdee9937471e8e217a4b87793c7 100644 (file)
@@ -91,7 +91,7 @@ static uint mmc_spi_readdata(struct mmc *mmc, void *xbuf,
                        spi_xfer(spi, bsize * 8, NULL, buf, 0);
                        spi_xfer(spi, 2 * 8, NULL, &crc, 0);
 #ifdef CONFIG_MMC_SPI_CRC_ON
-                       if (be_to_cpu16(cyg_crc16(buf, bsize)) != crc) {
+                       if (be_to_cpu16(crc16_ccitt(0, buf, bsize)) != crc) {
                                debug("%s: CRC error\n", mmc->cfg->name);
                                r1 = R1_SPI_COM_CRC;
                                break;
@@ -120,7 +120,7 @@ static uint mmc_spi_writedata(struct mmc *mmc, const void *xbuf,
        tok[1] = multi ? SPI_TOKEN_MULTI_WRITE : SPI_TOKEN_SINGLE;
        while (bcnt--) {
 #ifdef CONFIG_MMC_SPI_CRC_ON
-               crc = cpu_to_be16(cyg_crc16((u8 *)buf, bsize));
+               crc = cpu_to_be16(crc16_ccitt(0, (u8 *)buf, bsize));
 #endif
                spi_xfer(spi, 2 * 8, tok, NULL, 0);
                spi_xfer(spi, bsize * 8, buf, NULL, 0);
index 5085d4ed477919c0f01390742c7b5b23892e9894..b0031b20ab2e608eb49c0d3ff72be8f82f677e82 100644 (file)
@@ -62,8 +62,8 @@ cyg_ether_crc32(unsigned char *s, int len);
 extern uint32_t
 cyg_ether_crc32_accumulate(uint32_t crc, unsigned char *s, int len);
 
-/* 16 bit CRC with polynomial x^16+x^12+x^5+1 */
+/* 16 bit CRC with polynomial x^16+x^12+x^5+1 (CRC-CCITT) */
 
-extern uint16_t cyg_crc16(unsigned char *s, int len);
+uint16_t crc16_ccitt(uint16_t crc_start, unsigned char *s, int len);
 
 #endif /* _SERVICES_CRC_CRC_H_ */
index 57e46f82d903dc5da3bf1d76a9511650cd87d43e..753b987b0206e8f8cac1dc78fe132c5ab4e86622 100644 (file)
@@ -61,12 +61,12 @@ static const uint16_t crc16_tab[] = {
        0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0,
 };
 
-uint16_t cyg_crc16(unsigned char *buf, int len)
+uint16_t crc16_ccitt(uint16_t crc_start, unsigned char *buf, int len)
 {
        int i;
        uint16_t cksum;
 
-       cksum = 0;
+       cksum = crc_start;
        for (i = 0;  i < len;  i++)
                cksum = crc16_tab[((cksum>>8) ^ *buf++) & 0xff] ^ (cksum << 8);