Subject: Re: [PATCH 3/4] net: can: ifi: Fix RX and TX ID mask

From: Oliver Hartkopp <[email-masked]>
Date: Tue, 1 Mar 2016 18:49:41 +0100

Hi Marek,

On 02/29/2016 08:59 PM, Marek Vasut wrote:
> The RX and TX ID mask for CAN2.0 is 11 bits wide. This patch fixes
> the incorrect mask, which caused the CAN IDs to miss the MSBit both
> on receive and transmit.
> 
> Signed-off-by: Marek Vasut <[email-masked]>
> Cc: Marc Kleine-Budde <[email-masked]>
> Cc: Mark Rutland <[email-masked]>
> Cc: Oliver Hartkopp <[email-masked]>
> Cc: Wolfgang Grandegger <[email-masked]>
> ---
>  drivers/net/can/ifi_canfd/ifi_canfd.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/can/ifi_canfd/ifi_canfd.c b/drivers/net/can/ifi_canfd/ifi_canfd.c
> index 82a33bd..6704098 100644
> --- a/drivers/net/can/ifi_canfd/ifi_canfd.c
> +++ b/drivers/net/can/ifi_canfd/ifi_canfd.c
> @@ -135,7 +135,7 @@
>  
>  #define IFI_CANFD_RXFIFO_ID			0x6c
>  #define IFI_CANFD_RXFIFO_ID_ID_OFFSET		0
> -#define IFI_CANFD_RXFIFO_ID_ID_STD_MASK		0x3ff
> +#define IFI_CANFD_RXFIFO_ID_ID_STD_MASK		0x7ff
>  #define IFI_CANFD_RXFIFO_ID_ID_XTD_MASK		0x1fffffff

You should use the CAN_SFF_MASK and CAN_EFF_MASK in your code instead of
defining you private IFI_CANFD_RXFIFO_ID_ID_?TD_MASK definitions.

You won't have trapped into this problem then :-)

>  #define IFI_CANFD_RXFIFO_ID_IDE			BIT(29)
>  
> @@ -156,7 +156,7 @@
>  
>  #define IFI_CANFD_TXFIFO_ID			0xbc
>  #define IFI_CANFD_TXFIFO_ID_ID_OFFSET		0
> -#define IFI_CANFD_TXFIFO_ID_ID_STD_MASK		0x3ff
> +#define IFI_CANFD_TXFIFO_ID_ID_STD_MASK		0x7ff
>  #define IFI_CANFD_TXFIFO_ID_ID_XTD_MASK		0x1fffffff

dito.

Regards,
Oliver

>  #define IFI_CANFD_TXFIFO_ID_IDE			BIT(29)
>  
>