consolidate crc16 calculations (irda part)
Subsystems (2)
PATCH 1/1 consolidate crc16 calculations (irda part)
Hi,
attached patch (2.5.64) converts irda subsystem to use common crc16 module.
Please consider applying.
Best regards.
Signature · 2 lines
Andrey Panin | Embedded systems software developer [email protected] | PGP key: wwwkeys.pgp.net
drivers/net/irda/donauboe.c +1 -43
@@ -52,10 +52,6 @@/* See below for a description of the logic in this driver */ -/* Is irda_crc16_table[] exported? not yet */ -/* define this if you get errors about multiple defns of irda_crc16_table */ -#undef CRC_EXPORTED -/* User servicable parts */ /* Enable the code which probes the chip and does a few tests */ /* Probe code is very useful for understanding how the hardware works */
@@ -159,6 +155,7 @@#include <linux/init.h> #include <linux/pci.h> #include <linux/rtnetlink.h> +#include <linux/crc16.h> #include <asm/system.h> #include <asm/io.h>
@@ -205,45 +202,6 @@/**********************************************************************/ /* Fcs code */ - -#ifdef CRC_EXPORTED -extern __u16 const irda_crc16_table[]; -#else -static __u16 const irda_crc16_table[256 ] = { -0x0000 ,0x1189 ,0x2312 ,0x329b ,0x4624 ,0x57ad ,0x6536 ,0x74bf , -0x8c48 ,0x9dc1 ,0xaf5a ,0xbed3 ,0xca6c ,0xdbe5 ,0xe97e ,0xf8f7 , -0x1081 ,0x0108 ,0x3393 ,0x221a ,0x56a5 ,0x472c ,0x75b7 ,0x643e , -0x9cc9 ,0x8d40 ,0xbfdb ,0xae52 ,0xdaed ,0xcb64 ,0xf9ff ,0xe876 , -0x2102 ,0x308b ,0x0210 ,0x1399 ,0x6726 ,0x76af ,0x4434 ,0x55bd , -0xad4a ,0xbcc3 ,0x8e58 ,0x9fd1 ,0xeb6e ,0xfae7 ,0xc87c ,0xd9f5 , -0x3183 ,0x200a ,0x1291 ,0x0318 ,0x77a7 ,0x662e ,0x54b5 ,0x453c , -0xbdcb ,0xac42 ,0x9ed9 ,0x8f50 ,0xfbef ,0xea66 ,0xd8fd ,0xc974 , -0x4204 ,0x538d ,0x6116 ,0x709f ,0x0420 ,0x15a9 ,0x2732 ,0x36bb , -0xce4c ,0xdfc5 ,0xed5e ,0xfcd7 ,0x8868 ,0x99e1 ,0xab7a ,0xbaf3 , -0x5285 ,0x430c ,0x7197 ,0x601e ,0x14a1 ,0x0528 ,0x37b3 ,0x263a , -0xdecd ,0xcf44 ,0xfddf ,0xec56 ,0x98e9 ,0x8960 ,0xbbfb ,0xaa72 , -0x6306 ,0x728f ,0x4014 ,0x519d ,0x2522 ,0x34ab ,0x0630 ,0x17b9 , -0xef4e ,0xfec7 ,0xcc5c ,0xddd5 ,0xa96a ,0xb8e3 ,0x8a78 ,0x9bf1 , -0x7387 ,0x620e ,0x5095 ,0x411c ,0x35a3 ,0x242a ,0x16b1 ,0x0738 , -0xffcf ,0xee46 ,0xdcdd ,0xcd54 ,0xb9eb ,0xa862 ,0x9af9 ,0x8b70 , -0x8408 ,0x9581 ,0xa71a ,0xb693 ,0xc22c ,0xd3a5 ,0xe13e ,0xf0b7 , -0x0840 ,0x19c9 ,0x2b52 ,0x3adb ,0x4e64 ,0x5fed ,0x6d76 ,0x7cff , -0x9489 ,0x8500 ,0xb79b ,0xa612 ,0xd2ad ,0xc324 ,0xf1bf ,0xe036 , -0x18c1 ,0x0948 ,0x3bd3 ,0x2a5a ,0x5ee5 ,0x4f6c ,0x7df7 ,0x6c7e , -0xa50a ,0xb483 ,0x8618 ,0x9791 ,0xe32e ,0xf2a7 ,0xc03c ,0xd1b5 , -0x2942 ,0x38cb ,0x0a50 ,0x1bd9 ,0x6f66 ,0x7eef ,0x4c74 ,0x5dfd , -0xb58b ,0xa402 ,0x9699 ,0x8710 ,0xf3af ,0xe226 ,0xd0bd ,0xc134 , -0x39c3 ,0x284a ,0x1ad1 ,0x0b58 ,0x7fe7 ,0x6e6e ,0x5cf5 ,0x4d7c , -0xc60c ,0xd785 ,0xe51e ,0xf497 ,0x8028 ,0x91a1 ,0xa33a ,0xb2b3 , -0x4a44 ,0x5bcd ,0x6956 ,0x78df ,0x0c60 ,0x1de9 ,0x2f72 ,0x3efb , -0xd68d ,0xc704 ,0xf59f ,0xe416 ,0x90a9 ,0x8120 ,0xb3bb ,0xa232 , -0x5ac5 ,0x4b4c ,0x79d7 ,0x685e ,0x1ce1 ,0x0d68 ,0x3ff3 ,0x2e7a , -0xe70e ,0xf687 ,0xc41c ,0xd595 ,0xa12a ,0xb0a3 ,0x8238 ,0x93b1 , -0x6b46 ,0x7acf ,0x4854 ,0x59dd ,0x2d62 ,0x3ceb ,0x0e70 ,0x1ff9 , -0xf78f ,0xe606 ,0xd49d ,0xc514 ,0xb1ab ,0xa022 ,0x92b9 ,0x8330 , -0x7bc7 ,0x6a4e ,0x58d5 ,0x495c ,0x3de3 ,0x2c6a ,0x1ef1 ,0x0f78 -}; -#endif STATIC inttoshoboe_checkfcs (unsigned char *buf,int len)
include/net/irda/crc.h +3 -7
@@ -15,19 +15,15 @@#define IRDA_CRC_H #include <linux/types.h> +#include <linux/crc16.h> #define INIT_FCS 0xffff/* Initial FCS value */ #define GOOD_FCS 0xf0b8/* Good final FCS value */ -extern __u16 const irda_crc16_table[]; -/* Recompute the FCS with one more character appended. */ -static inline __u16 irda_fcs (__u16 fcs,__u8 c) -{ -return (((fcs) >>8 ) ^ irda_crc16_table[((fcs) ^ (c)) &0xff ]); -} +#define irda_fcs (fcs, c) crc16_byte(fcs, c)/* Recompute the FCS with len bytes appended. */ -unsigned short irda_calc_crc16 (__u16 fcs,__u8 const *buf,size_t len); +#define irda_calc_crc16 (fcs, buf, len) crc16(fcs, buf, len)#endif
net/irda/Makefile +1 -1
@@ -9,7 +9,7 @@ irda-y := iriap.o iriap_event.o irlmp.o irlmp_event.o irlmp_frame.o \ irlap.o irlap_event.o irlap_frame.o timer.o qos.o irqueue.o \ - irttp.o irda_device.o irias_object.o crc.o wrapper.o af_irda.o \ + irttp.o irda_device.o irias_object.o wrapper.o af_irda.o \ discovery.o parameters.o irsyms.o irda-$(CONFIG_PROC_FS) += irproc.o irda-$(CONFIG_SYSCTL) += irsysctl.o
net/irda/crc.c +0 -65
65 lines not on this page · raw message
net/irda/irsyms.c +0 -2
@@ -164,8 +164,6 @@EXPORT_SYMBOL (async_wrap_skb);EXPORT_SYMBOL (async_unwrap_char); -EXPORT_SYMBOL (irda_calc_crc16); -EXPORT_SYMBOL (irda_crc16_table);EXPORT_SYMBOL (irda_start_timer);EXPORT_SYMBOL (setup_dma);EXPORT_SYMBOL (infrared_mode);