Lines Matching full:fcs
101 /* SOF, ADDR, CTRL, LEN1, LEN2, ..., FCS, EOF */
293 u8 fcs; member
463 * gsm_fcs_add - update FCS
464 * @fcs: Current FCS
467 * Update the FCS to include c. Uses the algorithm in the specification
471 static inline u8 gsm_fcs_add(u8 fcs, u8 c) in gsm_fcs_add() argument
473 return gsm_fcs8[fcs ^ c]; in gsm_fcs_add()
477 * gsm_fcs_add_block - update FCS for a block
478 * @fcs: Current FCS
482 * Update the FCS to include c. Uses the algorithm in the specification
486 static inline u8 gsm_fcs_add_block(u8 fcs, u8 *c, int len) in gsm_fcs_add_block() argument
489 fcs = gsm_fcs8[fcs ^ *c++]; in gsm_fcs_add_block()
490 return fcs; in gsm_fcs_add_block()
904 #define HDR_LEN 6 /* ADDR CTRL [LEN.2] DATA FCS */
910 * @len: length excluding header and FCS
925 m->data = m->buffer + HDR_LEN - 1; /* Allow for FCS */ in gsm_data_alloc()
1095 u8 *fcs = dp + msg->len; in __gsm_data_queue() local
1112 *fcs = gsm_fcs_add_block(INIT_FCS, dp , msg->data - dp); in __gsm_data_queue()
1115 *fcs = gsm_fcs_add_block(*fcs, msg->data, msg->len); in __gsm_data_queue()
1116 *fcs = 0xFF - *fcs; in __gsm_data_queue()
1121 /* Move the header back and adjust the length, also allow for the FCS in __gsm_data_queue()
2750 * The fcs holds the header FCS but any data FCS must be added here.
2759 if (gsm->fcs != GOOD_FCS) { in gsm_queue()
2762 pr_debug("BAD FCS %02x\n", gsm->fcs); in gsm_queue()
2868 gsm->fcs = INIT_FCS; in gsm0_receive()
2872 gsm->fcs = gsm_fcs_add(gsm->fcs, c); in gsm0_receive()
2877 gsm->fcs = gsm_fcs_add(gsm->fcs, c); in gsm0_receive()
2882 gsm->fcs = gsm_fcs_add(gsm->fcs, c); in gsm0_receive()
2899 gsm->fcs = gsm_fcs_add(gsm->fcs, c); in gsm0_receive()
2916 /* Calculate final FCS for UI frames over all data */ in gsm0_receive()
2918 gsm->fcs = gsm_fcs_add_block(gsm->fcs, gsm->buf, in gsm0_receive()
2924 case GSM_FCS: /* FCS follows the packet */ in gsm0_receive()
2925 gsm->fcs = gsm_fcs_add(gsm->fcs, c); in gsm0_receive()
2970 /* Remove the FCS from data */ in gsm1_receive()
2973 /* Calculate final FCS for UI frames over all in gsm1_receive()
2974 * data but FCS in gsm1_receive()
2976 gsm->fcs = gsm_fcs_add_block(gsm->fcs, gsm->buf, in gsm1_receive()
2979 /* Add the FCS itself to test against GOOD_FCS */ in gsm1_receive()
2980 gsm->fcs = gsm_fcs_add(gsm->fcs, gsm->buf[gsm->count]); in gsm1_receive()
3014 gsm->fcs = INIT_FCS; in gsm1_receive()
3017 gsm->fcs = gsm_fcs_add(gsm->fcs, c); in gsm1_receive()
3022 gsm->fcs = gsm_fcs_add(gsm->fcs, c); in gsm1_receive()
3028 if (gsm->count > gsm->mru) { /* Allow one for the FCS */ in gsm1_receive()