On Sat, May 27, 2006 at 04:24:07PM +0200, Ivo van Doorn wrote: > On Saturday 27 May 2006 15:55, Sergey Vlasov wrote: [skip] > > However, fs/udf/crc.c has exactly the same CRC table as rt2x00: [skip] > > This is a bit-reversed form of CRC-CCITT supported by lib/crc-ccitt.c. > > Unfortunately, this does not help much, because converting one form to > > the other is too expensive (you would need to reverse bits in all data > > bytes, and then reverse bits in the 16-bit result). > > > > BTW, there is more CRC code duplication in drivers/bluetooth/hci_bcsp.c > > (bcsp_crc_update() seems to give the same result as crc_ccitt_byte()). > > > > In drivers/media/dvb/frontends/nxt200x.c, nxt200x_crc() seems to give > > the same result as rt2x00crc_byte() (but without using a table). > > > > drivers/net/wan/cycx_drv.c:checksum() is also some mutated version of > > CRC-CCITT (adding two additional zero bytes at the end of data makes it > > return the same result as rt2x00crc()).
More stealth CRC implementations: - drivers/ieee1394/csr.c:csr_crc16() - the same as rt2x00crc(); - drivers/ieee1394/csr1212.c:csr1212_crc16() - again the same as rt2x00crc(), except the final byteswap; - drivers/net/wireless/wavelan.c:psa_crc() is plain crc16(); it is duplicated in drivers/net/wireless/wavelan_cs.c; - drivers/scsi/FlashPoint.c:FPT_CalcCrc16() is also crc16(); > Interesting, so it would actually be usefull to move the nxt200x > crc16 implemetation into the crc16 library (Is not using a table > preferred over using a table?) Using a table is probably faster, but consumes more memory. > And make rt2x00 and fs/udf/crc.c make use of this library? > > And perhaps hci_bcsp could be updated to use crc_ccitt_byte() instead?
pgpNmaXmP81qM.pgp
Description: PGP signature