Commit 3ab4ce0d authored by Oliver Hartkopp's avatar Oliver Hartkopp Committed by Marc Kleine-Budde
Browse files

can: rename CAN FD related can_len2dlc and can_dlc2len helpers



The helper functions can_len2dlc and can_dlc2len are only relevant for
CAN FD data length code (DLC) conversion.

To fit the introduced can_cc_dlc2len for Classical CAN we rename:

can_dlc2len -> can_fd_dlc2len to get the payload length from the DLC
can_len2dlc -> can_fd_len2dlc to get the DLC from the payload length

Suggested-by: default avatarVincent Mailhol <mailhol.vincent@wanadoo.fr>
Signed-off-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
Link: https://lore.kernel.org/r/20201110101852.1973-6-socketcan@hartkopp.net


Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent c7b74967
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1332,7 +1332,7 @@ layer is a plain value from 0 .. 64 instead of the CAN 'data length code'.
The data length code was a 1:1 mapping to the payload length in the legacy
The data length code was a 1:1 mapping to the payload length in the legacy
CAN frames anyway. The payload length to the bus-relevant DLC mapping is
CAN frames anyway. The payload length to the bus-relevant DLC mapping is
only performed inside the CAN drivers, preferably with the helper
only performed inside the CAN drivers, preferably with the helper
functions can_dlc2len() and can_len2dlc().
functions can_fd_dlc2len() and can_fd_len2dlc().


The CAN netdevice driver capabilities can be distinguished by the network
The CAN netdevice driver capabilities can be distinguished by the network
devices maximum transfer unit (MTU)::
devices maximum transfer unit (MTU)::
+4 −4
Original line number Original line Diff line number Diff line
@@ -31,11 +31,11 @@ static const u8 dlc2len[] = {0, 1, 2, 3, 4, 5, 6, 7,
			     8, 12, 16, 20, 24, 32, 48, 64};
			     8, 12, 16, 20, 24, 32, 48, 64};


/* get data length from raw data length code (DLC) */
/* get data length from raw data length code (DLC) */
u8 can_dlc2len(u8 dlc)
u8 can_fd_dlc2len(u8 dlc)
{
{
	return dlc2len[dlc & 0x0F];
	return dlc2len[dlc & 0x0F];
}
}
EXPORT_SYMBOL_GPL(can_dlc2len);
EXPORT_SYMBOL_GPL(can_fd_dlc2len);


static const u8 len2dlc[] = {0, 1, 2, 3, 4, 5, 6, 7, 8,		/* 0 - 8 */
static const u8 len2dlc[] = {0, 1, 2, 3, 4, 5, 6, 7, 8,		/* 0 - 8 */
			     9, 9, 9, 9,			/* 9 - 12 */
			     9, 9, 9, 9,			/* 9 - 12 */
@@ -49,14 +49,14 @@ static const u8 len2dlc[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, /* 0 - 8 */
			     15, 15, 15, 15, 15, 15, 15, 15};	/* 57 - 64 */
			     15, 15, 15, 15, 15, 15, 15, 15};	/* 57 - 64 */


/* map the sanitized data length to an appropriate data length code */
/* map the sanitized data length to an appropriate data length code */
u8 can_len2dlc(u8 len)
u8 can_fd_len2dlc(u8 len)
{
{
	if (unlikely(len > 64))
	if (unlikely(len > 64))
		return 0xF;
		return 0xF;


	return len2dlc[len];
	return len2dlc[len];
}
}
EXPORT_SYMBOL_GPL(can_len2dlc);
EXPORT_SYMBOL_GPL(can_fd_len2dlc);


#ifdef CONFIG_CAN_CALC_BITTIMING
#ifdef CONFIG_CAN_CALC_BITTIMING
#define CAN_CALC_MAX_ERROR 50 /* in one-tenth of a percent */
#define CAN_CALC_MAX_ERROR 50 /* in one-tenth of a percent */
+2 −2
Original line number Original line Diff line number Diff line
@@ -746,7 +746,7 @@ static netdev_tx_t flexcan_start_xmit(struct sk_buff *skb, struct net_device *de
	struct canfd_frame *cfd = (struct canfd_frame *)skb->data;
	struct canfd_frame *cfd = (struct canfd_frame *)skb->data;
	u32 can_id;
	u32 can_id;
	u32 data;
	u32 data;
	u32 ctrl = FLEXCAN_MB_CODE_TX_DATA | ((can_len2dlc(cfd->len)) << 16);
	u32 ctrl = FLEXCAN_MB_CODE_TX_DATA | ((can_fd_len2dlc(cfd->len)) << 16);
	int i;
	int i;


	if (can_dropped_invalid_skb(dev, skb))
	if (can_dropped_invalid_skb(dev, skb))
@@ -1000,7 +1000,7 @@ static struct sk_buff *flexcan_mailbox_read(struct can_rx_offload *offload,
		cfd->can_id = (reg_id >> 18) & CAN_SFF_MASK;
		cfd->can_id = (reg_id >> 18) & CAN_SFF_MASK;


	if (reg_ctrl & FLEXCAN_MB_CNT_EDL) {
	if (reg_ctrl & FLEXCAN_MB_CNT_EDL) {
		cfd->len = can_dlc2len((reg_ctrl >> 16) & 0xf);
		cfd->len = can_fd_dlc2len((reg_ctrl >> 16) & 0xf);


		if (reg_ctrl & FLEXCAN_MB_CNT_BRS)
		if (reg_ctrl & FLEXCAN_MB_CNT_BRS)
			cfd->flags |= CANFD_BRS;
			cfd->flags |= CANFD_BRS;
+2 −2
Original line number Original line Diff line number Diff line
@@ -271,7 +271,7 @@ static void ifi_canfd_read_fifo(struct net_device *ndev)
	dlc = (rxdlc >> IFI_CANFD_RXFIFO_DLC_DLC_OFFSET) &
	dlc = (rxdlc >> IFI_CANFD_RXFIFO_DLC_DLC_OFFSET) &
	      IFI_CANFD_RXFIFO_DLC_DLC_MASK;
	      IFI_CANFD_RXFIFO_DLC_DLC_MASK;
	if (rxdlc & IFI_CANFD_RXFIFO_DLC_EDL)
	if (rxdlc & IFI_CANFD_RXFIFO_DLC_EDL)
		cf->len = can_dlc2len(dlc);
		cf->len = can_fd_dlc2len(dlc);
	else
	else
		cf->len = can_cc_dlc2len(dlc);
		cf->len = can_cc_dlc2len(dlc);


@@ -900,7 +900,7 @@ static netdev_tx_t ifi_canfd_start_xmit(struct sk_buff *skb,
		txid = cf->can_id & CAN_SFF_MASK;
		txid = cf->can_id & CAN_SFF_MASK;
	}
	}


	txdlc = can_len2dlc(cf->len);
	txdlc = can_fd_len2dlc(cf->len);
	if ((priv->can.ctrlmode & CAN_CTRLMODE_FD) && can_is_canfd_skb(skb)) {
	if ((priv->can.ctrlmode & CAN_CTRLMODE_FD) && can_is_canfd_skb(skb)) {
		txdlc |= IFI_CANFD_TXFIFO_DLC_EDL;
		txdlc |= IFI_CANFD_TXFIFO_DLC_EDL;
		if (cf->flags & CANFD_BRS)
		if (cf->flags & CANFD_BRS)
+3 −3
Original line number Original line Diff line number Diff line
@@ -740,7 +740,7 @@ static int kvaser_pciefd_prepare_tx_packet(struct kvaser_pciefd_tx_packet *p,
		p->header[0] |= KVASER_PCIEFD_RPACKET_IDE;
		p->header[0] |= KVASER_PCIEFD_RPACKET_IDE;


	p->header[0] |= cf->can_id & CAN_EFF_MASK;
	p->header[0] |= cf->can_id & CAN_EFF_MASK;
	p->header[1] |= can_len2dlc(cf->len) << KVASER_PCIEFD_RPACKET_DLC_SHIFT;
	p->header[1] |= can_fd_len2dlc(cf->len) << KVASER_PCIEFD_RPACKET_DLC_SHIFT;
	p->header[1] |= KVASER_PCIEFD_TPACKET_AREQ;
	p->header[1] |= KVASER_PCIEFD_TPACKET_AREQ;


	if (can_is_canfd_skb(skb)) {
	if (can_is_canfd_skb(skb)) {
@@ -1174,7 +1174,7 @@ static int kvaser_pciefd_handle_data_packet(struct kvaser_pciefd *pcie,
	if (p->header[0] & KVASER_PCIEFD_RPACKET_IDE)
	if (p->header[0] & KVASER_PCIEFD_RPACKET_IDE)
		cf->can_id |= CAN_EFF_FLAG;
		cf->can_id |= CAN_EFF_FLAG;


	cf->len = can_dlc2len(p->header[1] >> KVASER_PCIEFD_RPACKET_DLC_SHIFT);
	cf->len = can_fd_dlc2len(p->header[1] >> KVASER_PCIEFD_RPACKET_DLC_SHIFT);


	if (p->header[0] & KVASER_PCIEFD_RPACKET_RTR)
	if (p->header[0] & KVASER_PCIEFD_RPACKET_RTR)
		cf->can_id |= CAN_RTR_FLAG;
		cf->can_id |= CAN_RTR_FLAG;
@@ -1600,7 +1600,7 @@ static int kvaser_pciefd_read_packet(struct kvaser_pciefd *pcie, int *start_pos,
		if (!(p->header[0] & KVASER_PCIEFD_RPACKET_RTR)) {
		if (!(p->header[0] & KVASER_PCIEFD_RPACKET_RTR)) {
			u8 data_len;
			u8 data_len;


			data_len = can_dlc2len(p->header[1] >>
			data_len = can_fd_dlc2len(p->header[1] >>
					       KVASER_PCIEFD_RPACKET_DLC_SHIFT);
					       KVASER_PCIEFD_RPACKET_DLC_SHIFT);
			pos += DIV_ROUND_UP(data_len, 4);
			pos += DIV_ROUND_UP(data_len, 4);
		}
		}
Loading