@@ -30,20 +30,28 @@ void can_led_event(struct net_device *netdev, enum can_led_event event)
30
30
case CAN_LED_EVENT_OPEN :
31
31
led_trigger_event (priv -> tx_led_trig , LED_FULL );
32
32
led_trigger_event (priv -> rx_led_trig , LED_FULL );
33
+ led_trigger_event (priv -> rxtx_led_trig , LED_FULL );
33
34
break ;
34
35
case CAN_LED_EVENT_STOP :
35
36
led_trigger_event (priv -> tx_led_trig , LED_OFF );
36
37
led_trigger_event (priv -> rx_led_trig , LED_OFF );
38
+ led_trigger_event (priv -> rxtx_led_trig , LED_OFF );
37
39
break ;
38
40
case CAN_LED_EVENT_TX :
39
- if (led_delay )
41
+ if (led_delay ) {
40
42
led_trigger_blink_oneshot (priv -> tx_led_trig ,
41
43
& led_delay , & led_delay , 1 );
44
+ led_trigger_blink_oneshot (priv -> rxtx_led_trig ,
45
+ & led_delay , & led_delay , 1 );
46
+ }
42
47
break ;
43
48
case CAN_LED_EVENT_RX :
44
- if (led_delay )
49
+ if (led_delay ) {
45
50
led_trigger_blink_oneshot (priv -> rx_led_trig ,
46
51
& led_delay , & led_delay , 1 );
52
+ led_trigger_blink_oneshot (priv -> rxtx_led_trig ,
53
+ & led_delay , & led_delay , 1 );
54
+ }
47
55
break ;
48
56
}
49
57
}
@@ -55,6 +63,7 @@ static void can_led_release(struct device *gendev, void *res)
55
63
56
64
led_trigger_unregister_simple (priv -> tx_led_trig );
57
65
led_trigger_unregister_simple (priv -> rx_led_trig );
66
+ led_trigger_unregister_simple (priv -> rxtx_led_trig );
58
67
}
59
68
60
69
/* Register CAN LED triggers for a CAN device
@@ -76,11 +85,15 @@ void devm_can_led_init(struct net_device *netdev)
76
85
"%s-tx" , netdev -> name );
77
86
snprintf (priv -> rx_led_trig_name , sizeof (priv -> rx_led_trig_name ),
78
87
"%s-rx" , netdev -> name );
88
+ snprintf (priv -> rxtx_led_trig_name , sizeof (priv -> rxtx_led_trig_name ),
89
+ "%s-rxtx" , netdev -> name );
79
90
80
91
led_trigger_register_simple (priv -> tx_led_trig_name ,
81
92
& priv -> tx_led_trig );
82
93
led_trigger_register_simple (priv -> rx_led_trig_name ,
83
94
& priv -> rx_led_trig );
95
+ led_trigger_register_simple (priv -> rxtx_led_trig_name ,
96
+ & priv -> rxtx_led_trig );
84
97
85
98
devres_add (& netdev -> dev , res );
86
99
}
@@ -97,7 +110,7 @@ static int can_led_notifier(struct notifier_block *nb, unsigned long msg,
97
110
if (!priv )
98
111
return NOTIFY_DONE ;
99
112
100
- if (!priv -> tx_led_trig || !priv -> rx_led_trig )
113
+ if (!priv -> tx_led_trig || !priv -> rx_led_trig || ! priv -> rxtx_led_trig )
101
114
return NOTIFY_DONE ;
102
115
103
116
if (msg == NETDEV_CHANGENAME ) {
@@ -106,6 +119,9 @@ static int can_led_notifier(struct notifier_block *nb, unsigned long msg,
106
119
107
120
snprintf (name , sizeof (name ), "%s-rx" , netdev -> name );
108
121
led_trigger_rename_static (name , priv -> rx_led_trig );
122
+
123
+ snprintf (name , sizeof (name ), "%s-rxtx" , netdev -> name );
124
+ led_trigger_rename_static (name , priv -> rxtx_led_trig );
109
125
}
110
126
111
127
return NOTIFY_DONE ;
0 commit comments