Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

can: c_can: add LED trigger support

Add support for canbus activity led indicators on c_can devices by
calling appropriate can_led functions.

These are only enabled when CONFIG_CAN_LEDS is Y, becomes no-op
otherwise.

Cc: Bhupesh Sharma <bhupesh.sharma@st.com>
Cc: AnilKumar Ch <anilkumar@ti.com>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

authored by

Fabio Baltieri and committed by
Marc Kleine-Budde
5090f805 d7ff5aae

+10
+10
drivers/net/can/c_can/c_can.c
··· 39 39 #include <linux/can.h> 40 40 #include <linux/can/dev.h> 41 41 #include <linux/can/error.h> 42 + #include <linux/can/led.h> 42 43 43 44 #include "c_can.h" 44 45 ··· 478 477 stats->rx_packets++; 479 478 stats->rx_bytes += frame->can_dlc; 480 479 480 + can_led_event(dev, CAN_LED_EVENT_RX); 481 + 481 482 return 0; 482 483 } 483 484 ··· 754 751 C_CAN_IFACE(MSGCTRL_REG, 0)) 755 752 & IF_MCONT_DLC_MASK; 756 753 stats->tx_packets++; 754 + can_led_event(dev, CAN_LED_EVENT_TX); 757 755 c_can_inval_msg_object(dev, 0, msg_obj_no); 758 756 } else { 759 757 break; ··· 1119 1115 1120 1116 napi_enable(&priv->napi); 1121 1117 1118 + can_led_event(dev, CAN_LED_EVENT_OPEN); 1119 + 1122 1120 /* start the c_can controller */ 1123 1121 c_can_start(dev); 1124 1122 ··· 1148 1142 1149 1143 c_can_reset_ram(priv, false); 1150 1144 c_can_pm_runtime_put_sync(priv); 1145 + 1146 + can_led_event(dev, CAN_LED_EVENT_STOP); 1151 1147 1152 1148 return 0; 1153 1149 } ··· 1276 1268 err = register_candev(dev); 1277 1269 if (err) 1278 1270 c_can_pm_runtime_disable(priv); 1271 + else 1272 + devm_can_led_init(dev); 1279 1273 1280 1274 return err; 1281 1275 }