ledtrig-heartbeat.c (033692eb3ec8305f6e9998b297aaec6899680637) | ledtrig-heartbeat.c (2282e125a406e09331c5a785e3df29035c99a607) |
---|---|
1/* 2 * LED Heartbeat Trigger 3 * 4 * Copyright (C) 2006 Atsushi Nemoto <anemo@mba.ocn.ne.jp> 5 * 6 * Based on Richard Purdie's ledtrig-timer.c and some arch's 7 * CONFIG_HEARTBEAT code. 8 * --- 107 unchanged lines hidden (view full) --- 116 117 heartbeat_data->invert = !!state; 118 119 return size; 120} 121 122static DEVICE_ATTR(invert, 0644, led_invert_show, led_invert_store); 123 | 1/* 2 * LED Heartbeat Trigger 3 * 4 * Copyright (C) 2006 Atsushi Nemoto <anemo@mba.ocn.ne.jp> 5 * 6 * Based on Richard Purdie's ledtrig-timer.c and some arch's 7 * CONFIG_HEARTBEAT code. 8 * --- 107 unchanged lines hidden (view full) --- 116 117 heartbeat_data->invert = !!state; 118 119 return size; 120} 121 122static DEVICE_ATTR(invert, 0644, led_invert_show, led_invert_store); 123 |
124static void heartbeat_trig_activate(struct led_classdev *led_cdev) | 124static int heartbeat_trig_activate(struct led_classdev *led_cdev) |
125{ 126 struct heartbeat_trig_data *heartbeat_data; 127 int rc; 128 129 heartbeat_data = kzalloc(sizeof(*heartbeat_data), GFP_KERNEL); 130 if (!heartbeat_data) | 125{ 126 struct heartbeat_trig_data *heartbeat_data; 127 int rc; 128 129 heartbeat_data = kzalloc(sizeof(*heartbeat_data), GFP_KERNEL); 130 if (!heartbeat_data) |
131 return; | 131 return 0; |
132 133 led_cdev->trigger_data = heartbeat_data; 134 heartbeat_data->led_cdev = led_cdev; 135 rc = device_create_file(led_cdev->dev, &dev_attr_invert); 136 if (rc) { 137 kfree(led_cdev->trigger_data); | 132 133 led_cdev->trigger_data = heartbeat_data; 134 heartbeat_data->led_cdev = led_cdev; 135 rc = device_create_file(led_cdev->dev, &dev_attr_invert); 136 if (rc) { 137 kfree(led_cdev->trigger_data); |
138 return; | 138 return 0; |
139 } 140 141 timer_setup(&heartbeat_data->timer, led_heartbeat_function, 0); 142 heartbeat_data->phase = 0; 143 if (!led_cdev->blink_brightness) 144 led_cdev->blink_brightness = led_cdev->max_brightness; 145 led_heartbeat_function(&heartbeat_data->timer); 146 set_bit(LED_BLINK_SW, &led_cdev->work_flags); 147 led_cdev->activated = true; | 139 } 140 141 timer_setup(&heartbeat_data->timer, led_heartbeat_function, 0); 142 heartbeat_data->phase = 0; 143 if (!led_cdev->blink_brightness) 144 led_cdev->blink_brightness = led_cdev->max_brightness; 145 led_heartbeat_function(&heartbeat_data->timer); 146 set_bit(LED_BLINK_SW, &led_cdev->work_flags); 147 led_cdev->activated = true; |
148 149 return 0; |
|
148} 149 150static void heartbeat_trig_deactivate(struct led_classdev *led_cdev) 151{ 152 struct heartbeat_trig_data *heartbeat_data = led_cdev->trigger_data; 153 154 if (led_cdev->activated) { 155 del_timer_sync(&heartbeat_data->timer); --- 61 unchanged lines hidden --- | 150} 151 152static void heartbeat_trig_deactivate(struct led_classdev *led_cdev) 153{ 154 struct heartbeat_trig_data *heartbeat_data = led_cdev->trigger_data; 155 156 if (led_cdev->activated) { 157 del_timer_sync(&heartbeat_data->timer); --- 61 unchanged lines hidden --- |