29 Nov, 2011

1 commit

  • This patch converts the drivers in drivers/net/can/* to use the
    module_platform_driver() macro which makes the code smaller and a bit
    simpler.

    Cc: Wolfgang Grandegger
    Cc: "David S. Miller"
    Cc: Bhupesh Sharma
    Cc: Jiri Kosina
    Cc: Grant Likely
    Cc: Anatolij Gustschin
    Cc: Paul Bolle
    Cc: Kurt Van Dijck
    Cc: Alexey Dobriyan
    Signed-off-by: Axel Lin
    Acked-by: Marc Kleine-Budde
    Signed-off-by: David S. Miller

    Axel Lin
     

17 Sep, 2011

1 commit


27 Aug, 2011

2 commits


31 Mar, 2011

1 commit


13 Apr, 2010

1 commit


26 Feb, 2010

1 commit


23 Feb, 2010

1 commit

  • Added the suspend and resume implementation in the HECC (CAN)
    driver.

    Signed-off-by: K R Baalaaji
    Signed-off-by: Sriramakrishnan
    Acked-by: Anant Gole
    Signed-off-by: David S. Miller

    Sriram
     

15 Jan, 2010

1 commit


12 Jan, 2010

1 commit

  • To prevent the CAN drivers to operate on invalid socketbuffers the skbs are
    now checked and silently dropped at the xmit-function consistently.

    Also the netdev stats are consistently using the CAN data length code (dlc)
    for [rx|tx]_bytes now.

    Signed-off-by: Oliver Hartkopp
    Acked-by: Wolfgang Grandegger
    Signed-off-by: David S. Miller

    Oliver Hartkopp
     

14 Dec, 2009

1 commit

  • A valid CAN dataframe can have a data length code (DLC) of 0 .. 8 data bytes.

    When reading the CAN controllers register the 4-bit value may contain values
    from 0 .. 15 which may exceed the reserved space in the socket buffer!

    The ISO 11898-1 Chapter 8.4.2.3 (DLC field) says that register values > 8
    should be reduced to 8 without any error reporting or frame drop.

    This patch introduces a new helper macro to cast a given 4-bit data length
    code (dlc) to __u8 and ensure the DLC value to be max. 8 bytes.

    The different handlings in the rx path of the CAN netdevice drivers are fixed.

    Signed-off-by: Oliver Hartkopp
    Signed-off-by: Wolfgang Grandegger
    Signed-off-by: David S. Miller

    Oliver Hartkopp
     

20 Oct, 2009

1 commit

  • This patch makes the private functions alloc_can_skb() and
    alloc_can_err_skb() of the at91_can driver public and adapts all
    drivers to use these. While making the patch I realized, that
    the skb's are *not* setup consistently. It's now done as shown
    below:

    skb->protocol = htons(ETH_P_CAN);
    skb->pkt_type = PACKET_BROADCAST;
    skb->ip_summed = CHECKSUM_UNNECESSARY;
    *cf = (struct can_frame *)skb_put(skb, sizeof(struct can_frame));
    memset(*cf, 0, sizeof(struct can_frame));

    The frame is zeroed out to avoid uninitialized data to be passed to
    user space. Some drivers or library code did not set "pkt_type" or
    "ip_summed". Also, "__constant_htons()" should not be used for
    runtime invocations, as pointed out by David Miller.

    Signed-off-by: Wolfgang Grandegger
    Signed-off-by: David S. Miller

    Wolfgang Grandegger
     

13 Oct, 2009

1 commit

  • This patch allows the CAN controller driver to define the number of echo
    skb's used for the local loopback (echo), as suggested by Kurt Van
    Dijck, with the function:

    struct net_device *alloc_candev(int sizeof_priv,
    unsigned int echo_skb_max);

    The CAN drivers have been adapted accordingly. For the ems_usb driver,
    as suggested by Sebastian Haas, the number of echo skb's has been
    increased to 10, which improves the transmission performance a lot.

    Signed-off-by: Wolfgang Grandegger
    Signed-off-by: Kurt Van Dijck
    Signed-off-by: David S. Miller

    Wolfgang Grandegger
     

08 Oct, 2009

1 commit

  • TI HECC (High End CAN Controller) module is found on many TI devices. It
    has 32 hardware mailboxes with full implementation of CAN protocol 2.0B
    with bus speeds up to 1Mbps. Specifications of the module are available
    on TI web

    Signed-off-by: Anant Gole
    Signed-off-by: David S. Miller

    Anant Gole