From: hartkopp Date: Thu, 3 Dec 2009 21:14:43 +0000 (+0000) Subject: Renamed the GET_CAN_DLC() macro to lower-case get_can_dlc() and added some X-Git-Url: http://rtime.felk.cvut.cz/gitweb/socketcan-devel.git/commitdiff_plain/8e0cdfdbe7706f969dbf92fcc0956fe0e46c8e02 Renamed the GET_CAN_DLC() macro to lower-case get_can_dlc() and added some documentation as suggested by Wolfgang Grandegger. git-svn-id: svn://svn.berlios.de//socketcan/trunk@1094 030b6a49-0b11-0410-94ab-b0dab22257f2 --- diff --git a/kernel/2.6/drivers/net/can/at91_can.c b/kernel/2.6/drivers/net/can/at91_can.c index eb4019d..72c27ac 100644 --- a/kernel/2.6/drivers/net/can/at91_can.c +++ b/kernel/2.6/drivers/net/can/at91_can.c @@ -480,7 +480,7 @@ static void at91_read_mb(struct net_device *dev, unsigned int mb, reg_msr = at91_read(priv, AT91_MSR(mb)); if (reg_msr & AT91_MSR_MRTR) cf->can_id |= CAN_RTR_FLAG; - cf->can_dlc = GET_CAN_DLC((reg_msr >> 16) & 0xf); + cf->can_dlc = get_can_dlc((reg_msr >> 16) & 0xf); *(u32 *)(cf->data + 0) = at91_read(priv, AT91_MDL(mb)); *(u32 *)(cf->data + 4) = at91_read(priv, AT91_MDH(mb)); diff --git a/kernel/2.6/drivers/net/can/cc770/cc770.c b/kernel/2.6/drivers/net/can/cc770/cc770.c index 5ea7bed..f0e97c3 100644 --- a/kernel/2.6/drivers/net/can/cc770/cc770.c +++ b/kernel/2.6/drivers/net/can/cc770/cc770.c @@ -548,7 +548,7 @@ static void cc770_rx(struct net_device *dev, unsigned int mo, u8 ctrl1) } cf->can_id = id; - cf->can_dlc = GET_CAN_DLC((config & 0xf0) >> 4); + cf->can_dlc = get_can_dlc((config & 0xf0) >> 4); for (i = 0; i < cf->can_dlc; i++) cf->data[i] = cc770_read_reg(priv, msgobj[mo].data[i]); } diff --git a/kernel/2.6/drivers/net/can/esd_pci331.c b/kernel/2.6/drivers/net/can/esd_pci331.c index 509724a..78778c5 100644 --- a/kernel/2.6/drivers/net/can/esd_pci331.c +++ b/kernel/2.6/drivers/net/can/esd_pci331.c @@ -493,7 +493,7 @@ static void esd331_irq_rx(struct net_device *dev, struct esd331_can_msg *msg, if (eff) cfrm->can_id |= CAN_EFF_FLAG; - cfrm->can_dlc = GET_CAN_DLC(msg->len & ESD331_DLC_MASK); + cfrm->can_dlc = get_can_dlc(msg->len & ESD331_DLC_MASK); for (i = 0; i < cfrm->can_dlc; ++i) cfrm->data[i] = msg->data[i]; diff --git a/kernel/2.6/drivers/net/can/mcp251x.c b/kernel/2.6/drivers/net/can/mcp251x.c index 94edc7a..3a1b03f 100644 --- a/kernel/2.6/drivers/net/can/mcp251x.c +++ b/kernel/2.6/drivers/net/can/mcp251x.c @@ -408,7 +408,7 @@ static void mcp251x_hw_rx_frame(struct spi_device *spi, u8 *buf, for (i = 1; i < RXBDAT_OFF; i++) buf[i] = mcp251x_read_reg(spi, RXBCTRL(buf_idx) + i); - len = GET_CAN_DLC(buf[RXBDLC_OFF] & RXBDLC_LEN_MASK); + len = get_can_dlc(buf[RXBDLC_OFF] & RXBDLC_LEN_MASK); for (; i < (RXBDAT_OFF + len); i++) buf[i] = mcp251x_read_reg(spi, RXBCTRL(buf_idx) + i); } else { @@ -458,7 +458,7 @@ static void mcp251x_hw_rx(struct spi_device *spi, int buf_idx) (buf[RXBSIDL_OFF] >> RXBSIDL_SHIFT); } /* Data length */ - frame->can_dlc = GET_CAN_DLC(buf[RXBDLC_OFF] & RXBDLC_LEN_MASK); + frame->can_dlc = get_can_dlc(buf[RXBDLC_OFF] & RXBDLC_LEN_MASK); memcpy(frame->data, buf + RXBDAT_OFF, frame->can_dlc); priv->net->stats.rx_packets++; diff --git a/kernel/2.6/drivers/net/can/mscan/mscan.c b/kernel/2.6/drivers/net/can/mscan/mscan.c index a8cbbc0..b79ff9d 100644 --- a/kernel/2.6/drivers/net/can/mscan/mscan.c +++ b/kernel/2.6/drivers/net/can/mscan/mscan.c @@ -309,7 +309,7 @@ static void mscan_get_rx_frame(struct net_device *dev, struct can_frame *frame) if (can_id & 1) frame->can_id |= CAN_RTR_FLAG; - frame->can_dlc = GET_CAN_DLC(in_8(®s->rx.dlr) & 0xf); + frame->can_dlc = get_can_dlc(in_8(®s->rx.dlr) & 0xf); if (!(frame->can_id & CAN_RTR_FLAG)) { void __iomem *data = ®s->rx.dsr1_0; diff --git a/kernel/2.6/drivers/net/can/sja1000/sja1000.c b/kernel/2.6/drivers/net/can/sja1000/sja1000.c index 711d8c2..c794684 100644 --- a/kernel/2.6/drivers/net/can/sja1000/sja1000.c +++ b/kernel/2.6/drivers/net/can/sja1000/sja1000.c @@ -332,7 +332,7 @@ static void sja1000_rx(struct net_device *dev) if (fi & FI_RTR) { id |= CAN_RTR_FLAG; } else { - cf->can_dlc = GET_CAN_DLC(fi & 0x0F); + cf->can_dlc = get_can_dlc(fi & 0x0F); for (i = 0; i < cf->can_dlc; i++) cf->data[i] = priv->read_reg(priv, dreg++); } diff --git a/kernel/2.6/drivers/net/can/softing/softing_main.c b/kernel/2.6/drivers/net/can/softing/softing_main.c index fae1904..03bb270 100644 --- a/kernel/2.6/drivers/net/can/softing/softing_main.c +++ b/kernel/2.6/drivers/net/can/softing/softing_main.c @@ -295,7 +295,7 @@ static int softing_dev_svc_once(struct softing *card) if (cmd & CMD_ACK) { } */ - msg.can_dlc = GET_CAN_DLC(*ptr++); + msg.can_dlc = get_can_dlc(*ptr++); if (cmd & CMD_XTD) { msg.can_id |= CAN_EFF_FLAG; msg.can_id |= (ptr[0] << 0) | (ptr[1] << 8) diff --git a/kernel/2.6/drivers/net/can/usb/ems_usb.c b/kernel/2.6/drivers/net/can/usb/ems_usb.c index 00503c1..d5ca8e2 100644 --- a/kernel/2.6/drivers/net/can/usb/ems_usb.c +++ b/kernel/2.6/drivers/net/can/usb/ems_usb.c @@ -316,7 +316,7 @@ static void ems_usb_rx_can_msg(struct ems_usb *dev, struct ems_cpc_msg *msg) return; cf->can_id = msg->msg.can_msg.id; - cf->can_dlc = GET_CAN_DLC(msg->msg.can_msg.length); + cf->can_dlc = get_can_dlc(msg->msg.can_msg.length); if (msg->type == CPC_MSG_TYPE_EXT_CAN_FRAME || msg->type == CPC_MSG_TYPE_EXT_RTR_FRAME) diff --git a/kernel/2.6/include/socketcan/can/dev.h b/kernel/2.6/include/socketcan/can/dev.h index 2ee29a0..eaf1a9d 100644 --- a/kernel/2.6/include/socketcan/can/dev.h +++ b/kernel/2.6/include/socketcan/can/dev.h @@ -63,7 +63,14 @@ struct can_priv { #define ND2D(_ndev) (_ndev->dev.parent) #endif -#define GET_CAN_DLC(i) (min_t(__u8, (i), 8)) +/* + * get_can_dlc(value) - helper macro to cast a given data length code (dlc) + * to __u8 and ensure the dlc value to be max. 8 bytes. + * + * To be used in the CAN netdriver receive path to ensure conformance with + * ISO 11898-1 Chapter 8.4.2.3 (DLC field) + */ +#define get_can_dlc(i) (min_t(__u8, (i), 8)) #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) #define IFF_ECHO IFF_LOOPBACK