@@ -232,13 +232,31 @@ mcp251xfd_regmap_crc_write(void *context,
232
232
count - data_offset );
233
233
}
234
234
235
+ static int
236
+ mcp251xfd_regmap_crc_read_check_crc (const struct mcp251xfd_map_buf_crc * const buf_rx ,
237
+ const struct mcp251xfd_map_buf_crc * const buf_tx ,
238
+ unsigned int data_len )
239
+ {
240
+ u16 crc_received , crc_calculated ;
241
+
242
+ crc_received = get_unaligned_be16 (buf_rx -> data + data_len );
243
+ crc_calculated = mcp251xfd_crc16_compute2 (& buf_tx -> cmd ,
244
+ sizeof (buf_tx -> cmd ),
245
+ buf_rx -> data ,
246
+ data_len );
247
+ if (crc_received != crc_calculated )
248
+ return - EBADMSG ;
249
+
250
+ return 0 ;
251
+ }
252
+
253
+
235
254
static int
236
255
mcp251xfd_regmap_crc_read_one (struct mcp251xfd_priv * priv ,
237
256
struct spi_message * msg , unsigned int data_len )
238
257
{
239
258
const struct mcp251xfd_map_buf_crc * buf_rx = priv -> map_buf_crc_rx ;
240
259
const struct mcp251xfd_map_buf_crc * buf_tx = priv -> map_buf_crc_tx ;
241
- u16 crc_received , crc_calculated ;
242
260
int err ;
243
261
244
262
BUILD_BUG_ON (sizeof (buf_rx -> cmd ) != sizeof (__be16 ) + sizeof (u8 ));
@@ -248,15 +266,7 @@ mcp251xfd_regmap_crc_read_one(struct mcp251xfd_priv *priv,
248
266
if (err )
249
267
return err ;
250
268
251
- crc_received = get_unaligned_be16 (buf_rx -> data + data_len );
252
- crc_calculated = mcp251xfd_crc16_compute2 (& buf_tx -> cmd ,
253
- sizeof (buf_tx -> cmd ),
254
- buf_rx -> data ,
255
- data_len );
256
- if (crc_received != crc_calculated )
257
- return - EBADMSG ;
258
-
259
- return 0 ;
269
+ return mcp251xfd_regmap_crc_read_check_crc (buf_rx , buf_tx , data_len );
260
270
}
261
271
262
272
static int
0 commit comments