Lines Matching refs:trigger_data
21 static void ledtrig_tty_restart(struct ledtrig_tty_data *trigger_data)
23 schedule_delayed_work(&trigger_data->dwork, 0);
29 struct ledtrig_tty_data *trigger_data = led_trigger_get_drvdata(dev);
32 mutex_lock(&trigger_data->mutex);
34 if (trigger_data->ttyname)
35 len = sprintf(buf, "%s\n", trigger_data->ttyname);
37 mutex_unlock(&trigger_data->mutex);
46 struct ledtrig_tty_data *trigger_data = led_trigger_get_drvdata(dev);
62 mutex_lock(&trigger_data->mutex);
64 running = trigger_data->ttyname != NULL;
66 kfree(trigger_data->ttyname);
67 tty_kref_put(trigger_data->tty);
68 trigger_data->tty = NULL;
70 trigger_data->ttyname = ttyname;
72 mutex_unlock(&trigger_data->mutex);
75 ledtrig_tty_restart(trigger_data);
83 struct ledtrig_tty_data *trigger_data =
88 mutex_lock(&trigger_data->mutex);
90 if (!trigger_data->ttyname) {
92 mutex_unlock(&trigger_data->mutex);
97 if (!trigger_data->tty) {
102 ret = tty_dev_name_to_number(trigger_data->ttyname, &devno);
115 trigger_data->tty = tty;
118 ret = tty_get_icount(trigger_data->tty, &icount);
120 dev_info(trigger_data->tty->dev, "Failed to get icount, stopped polling\n");
121 mutex_unlock(&trigger_data->mutex);
125 if (icount.rx != trigger_data->rx ||
126 icount.tx != trigger_data->tx) {
129 led_blink_set_oneshot(trigger_data->led_cdev, &interval,
132 trigger_data->rx = icount.rx;
133 trigger_data->tx = icount.tx;
137 mutex_unlock(&trigger_data->mutex);
138 schedule_delayed_work(&trigger_data->dwork,
150 struct ledtrig_tty_data *trigger_data;
152 trigger_data = kzalloc(sizeof(*trigger_data), GFP_KERNEL);
153 if (!trigger_data)
156 led_set_trigger_data(led_cdev, trigger_data);
158 INIT_DELAYED_WORK(&trigger_data->dwork, ledtrig_tty_work);
159 trigger_data->led_cdev = led_cdev;
160 mutex_init(&trigger_data->mutex);
167 struct ledtrig_tty_data *trigger_data = led_get_trigger_data(led_cdev);
169 cancel_delayed_work_sync(&trigger_data->dwork);
171 kfree(trigger_data->ttyname);
172 tty_kref_put(trigger_data->tty);
173 trigger_data->tty = NULL;
175 kfree(trigger_data);