Lines Matching refs:trigger_data
65 static void set_baseline_state(struct led_netdev_data *trigger_data)
68 struct led_classdev *led_cdev = trigger_data->led_cdev;
76 if (!test_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode))
79 if (test_bit(NETDEV_LED_LINK, &trigger_data->mode))
88 if (test_bit(NETDEV_LED_TX, &trigger_data->mode) ||
89 test_bit(NETDEV_LED_RX, &trigger_data->mode))
90 schedule_delayed_work(&trigger_data->work, 0);
97 struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
100 spin_lock_bh(&trigger_data->lock);
101 len = sprintf(buf, "%s\n", trigger_data->device_name);
102 spin_unlock_bh(&trigger_data->lock);
111 struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
116 cancel_delayed_work_sync(&trigger_data->work);
118 spin_lock_bh(&trigger_data->lock);
120 if (trigger_data->net_dev) {
121 dev_put(trigger_data->net_dev);
122 trigger_data->net_dev = NULL;
125 memcpy(trigger_data->device_name, buf, size);
126 trigger_data->device_name[size] = 0;
127 if (size > 0 && trigger_data->device_name[size - 1] == '\n')
128 trigger_data->device_name[size - 1] = 0;
130 if (trigger_data->device_name[0] != 0)
131 trigger_data->net_dev =
132 dev_get_by_name(&init_net, trigger_data->device_name);
134 clear_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
135 if (trigger_data->net_dev != NULL)
136 if (netif_carrier_ok(trigger_data->net_dev))
137 set_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
139 trigger_data->last_activity = 0;
141 set_baseline_state(trigger_data);
142 spin_unlock_bh(&trigger_data->lock);
152 struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
169 return sprintf(buf, "%u\n", test_bit(bit, &trigger_data->mode));
175 struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
198 cancel_delayed_work_sync(&trigger_data->work);
201 set_bit(bit, &trigger_data->mode);
203 clear_bit(bit, &trigger_data->mode);
205 set_baseline_state(trigger_data);
255 struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
258 jiffies_to_msecs(atomic_read(&trigger_data->interval)));
265 struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
275 cancel_delayed_work_sync(&trigger_data->work);
277 atomic_set(&trigger_data->interval, msecs_to_jiffies(value));
278 set_baseline_state(trigger_data); /* resets timer */
301 struct led_netdev_data *trigger_data =
309 if (!(dev == trigger_data->net_dev ||
310 (evt == NETDEV_CHANGENAME && !strcmp(dev->name, trigger_data->device_name)) ||
311 (evt == NETDEV_REGISTER && !strcmp(dev->name, trigger_data->device_name))))
314 cancel_delayed_work_sync(&trigger_data->work);
316 spin_lock_bh(&trigger_data->lock);
318 clear_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
322 set_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
325 if (trigger_data->net_dev)
326 dev_put(trigger_data->net_dev);
328 trigger_data->net_dev = dev;
331 dev_put(trigger_data->net_dev);
332 trigger_data->net_dev = NULL;
337 set_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
341 set_baseline_state(trigger_data);
343 spin_unlock_bh(&trigger_data->lock);
351 struct led_netdev_data *trigger_data =
360 if (!trigger_data->net_dev) {
361 led_set_brightness(trigger_data->led_cdev, LED_OFF);
366 if (!test_bit(NETDEV_LED_TX, &trigger_data->mode) &&
367 !test_bit(NETDEV_LED_RX, &trigger_data->mode))
370 dev_stats = dev_get_stats(trigger_data->net_dev, &temp);
372 (test_bit(NETDEV_LED_TX, &trigger_data->mode) ?
374 (test_bit(NETDEV_LED_RX, &trigger_data->mode) ?
377 if (trigger_data->last_activity != new_activity) {
378 led_stop_software_blink(trigger_data->led_cdev);
380 invert = test_bit(NETDEV_LED_LINK, &trigger_data->mode);
382 atomic_read(&trigger_data->interval));
384 led_blink_set_oneshot(trigger_data->led_cdev,
388 trigger_data->last_activity = new_activity;
391 schedule_delayed_work(&trigger_data->work,
392 (atomic_read(&trigger_data->interval)*2));
397 struct led_netdev_data *trigger_data;
400 trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL);
401 if (!trigger_data)
404 spin_lock_init(&trigger_data->lock);
406 trigger_data->notifier.notifier_call = netdev_trig_notify;
407 trigger_data->notifier.priority = 10;
409 INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work);
411 trigger_data->led_cdev = led_cdev;
412 trigger_data->net_dev = NULL;
413 trigger_data->device_name[0] = 0;
415 trigger_data->mode = 0;
416 atomic_set(&trigger_data->interval, msecs_to_jiffies(50));
417 trigger_data->last_activity = 0;
419 led_set_trigger_data(led_cdev, trigger_data);
421 rc = register_netdevice_notifier(&trigger_data->notifier);
423 kfree(trigger_data);
430 struct led_netdev_data *trigger_data = led_get_trigger_data(led_cdev);
432 unregister_netdevice_notifier(&trigger_data->notifier);
434 cancel_delayed_work_sync(&trigger_data->work);
436 if (trigger_data->net_dev)
437 dev_put(trigger_data->net_dev);
439 kfree(trigger_data);