X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=module%2Fcan327.c;h=799905fd2d29fc4fa48fa3e96c03f8e08bd11b25;hb=31929f2fc877607731a00557cc28cc9cdec6580c;hp=7bb10e15e5606301fb086b46ab91034f567d0ba4;hpb=eea160f4982379590825ab38c2b1b73b2ade9c82;p=elmcan.git diff --git a/module/can327.c b/module/can327.c index 7bb10e1..799905f 100644 --- a/module/can327.c +++ b/module/can327.c @@ -14,14 +14,10 @@ #include #include -#include -#include #include #include -#include #include -#include #include #include #include @@ -39,7 +35,6 @@ #include #include #include -#include #include /* Line discipline ID number. @@ -57,8 +52,8 @@ #define ELM327_NAPI_WEIGHT 4 -#define ELM327_SIZE_RXBUF 992 #define ELM327_SIZE_TXBUF 32 +#define ELM327_SIZE_RXBUF 1024 #define ELM327_CAN_CONFIG_SEND_SFF 0x8000 #define ELM327_CAN_CONFIG_VARIABLE_DLC 0x4000 @@ -89,8 +84,8 @@ struct can327 { struct can_rx_offload offload; /* TTY buffers */ - u8 rxbuf[ELM327_SIZE_RXBUF]; u8 txbuf[ELM327_SIZE_TXBUF]; + u8 rxbuf[ELM327_SIZE_RXBUF]; /* Per-channel lock */ spinlock_t lock; @@ -260,7 +255,7 @@ static void elm327_init(struct can327 *elm) elm->drop_next_line = 0; /* We can only set the bitrate as a fraction of 500000. - * The bit timing constants in can327_bittiming_const will + * The bitrates listed in can327_bitrate_const will * limit the user to the right values. */ elm->can_bitrate_divisor = 500000 / elm->can.bittiming.bitrate; @@ -444,6 +439,7 @@ static int elm327_parse_frame(struct can327 *elm, size_t len) /* The line is likely garbled anyway, so bail. * The main code will restart listening. */ + kfree_skb(skb); return -ENODATA; } @@ -462,6 +458,7 @@ static int elm327_parse_frame(struct can327 *elm, size_t len) /* This is not a well-formatted data line. * Assume it's an error message. */ + kfree_skb(skb); return -ENODATA; } @@ -469,6 +466,7 @@ static int elm327_parse_frame(struct can327 *elm, size_t len) /* The line is too short to be a valid frame hex dump. * Something interrupted the hex dump or it is invalid. */ + kfree_skb(skb); return -ENODATA; } @@ -520,6 +518,7 @@ static int elm327_parse_frame(struct can327 *elm, size_t len) * However, this will correctly drop the state machine back into * command mode. */ + kfree_skb(skb); return -ENODATA; } @@ -825,7 +824,6 @@ static int can327_netdev_open(struct net_device *dev) can_rx_offload_enable(&elm->offload); - can_led_event(dev, CAN_LED_EVENT_OPEN); elm->can.state = CAN_STATE_ERROR_ACTIVE; netif_start_queue(dev); @@ -851,7 +849,6 @@ static int can327_netdev_close(struct net_device *dev) elm->can.state = CAN_STATE_STOPPED; can_rx_offload_del(&elm->offload); close_candev(dev); - can_led_event(dev, CAN_LED_EVENT_STOP); return 0; } @@ -892,8 +889,6 @@ static netdev_tx_t can327_netdev_start_xmit(struct sk_buff *skb, dev->stats.tx_packets++; dev->stats.tx_bytes += frame->len; - can_led_event(dev, CAN_LED_EVENT_TX); - out: kfree_skb(skb); return NETDEV_TX_OK; @@ -1052,7 +1047,7 @@ static void can327_ldisc_tx_wakeup(struct tty_struct *tty) * or 7/8 of that. Divisors are 1 to 64. * Currently we don't implement support for 7/8 rates. */ -static const u32 can327_bitrate_const[64] = { +static const u32 can327_bitrate_const[] = { 7812, 7936, 8064, 8196, 8333, 8474, 8620, 8771, 8928, 9090, 9259, 9433, 9615, 9803, 10000, 10204, 10416, 10638, 10869, 11111, 11363, 11627, 11904, 12195, @@ -1105,8 +1100,6 @@ static int can327_ldisc_open(struct tty_struct *tty) elm->tty = tty; tty->disc_data = elm; - devm_can_led_init(elm->dev); - /* Let 'er rip */ err = register_candev(elm->dev); if (err) {