diff options
| -rw-r--r-- | drivers/net/can/mcp251x.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/can/mcp251x.c b/drivers/net/can/mcp251x.c index 6aadc3e32bd5..7ab534aee452 100644 --- a/drivers/net/can/mcp251x.c +++ b/drivers/net/can/mcp251x.c | |||
| @@ -169,6 +169,7 @@ | |||
| 169 | # define RXBSIDH_SHIFT 3 | 169 | # define RXBSIDH_SHIFT 3 |
| 170 | #define RXBSIDL(n) (((n) * 0x10) + 0x60 + RXBSIDL_OFF) | 170 | #define RXBSIDL(n) (((n) * 0x10) + 0x60 + RXBSIDL_OFF) |
| 171 | # define RXBSIDL_IDE 0x08 | 171 | # define RXBSIDL_IDE 0x08 |
| 172 | # define RXBSIDL_SRR 0x10 | ||
| 172 | # define RXBSIDL_EID 3 | 173 | # define RXBSIDL_EID 3 |
| 173 | # define RXBSIDL_SHIFT 5 | 174 | # define RXBSIDL_SHIFT 5 |
| 174 | #define RXBEID8(n) (((n) * 0x10) + 0x60 + RXBEID8_OFF) | 175 | #define RXBEID8(n) (((n) * 0x10) + 0x60 + RXBEID8_OFF) |
| @@ -475,6 +476,8 @@ static void mcp251x_hw_rx(struct spi_device *spi, int buf_idx) | |||
| 475 | frame->can_id = | 476 | frame->can_id = |
| 476 | (buf[RXBSIDH_OFF] << RXBSIDH_SHIFT) | | 477 | (buf[RXBSIDH_OFF] << RXBSIDH_SHIFT) | |
| 477 | (buf[RXBSIDL_OFF] >> RXBSIDL_SHIFT); | 478 | (buf[RXBSIDL_OFF] >> RXBSIDL_SHIFT); |
| 479 | if (buf[RXBSIDL_OFF] & RXBSIDL_SRR) | ||
| 480 | frame->can_id |= CAN_RTR_FLAG; | ||
| 478 | } | 481 | } |
| 479 | /* Data length */ | 482 | /* Data length */ |
| 480 | frame->can_dlc = get_can_dlc(buf[RXBDLC_OFF] & RXBDLC_LEN_MASK); | 483 | frame->can_dlc = get_can_dlc(buf[RXBDLC_OFF] & RXBDLC_LEN_MASK); |
