aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>2014-04-14 16:50:18 -0400
committerJiri Kosina <jkosina@suse.cz>2014-04-15 08:42:51 -0400
commitaee114fd3c94f1be0f95af84d6ed25cd47702c41 (patch)
tree21ebe80fcc58e98aefc28ed34268136c12f8fa22
parent21200ad10aba00943f9aa832fab04b8926dc7a52 (diff)
HID: thingm: remove the "fade" sysfs attribute
As for the "play" sysfs attribute, remove this other non-standard attribute, so the driver only implements what is required to switch the LED on and off. Thus, a fade time won't be ideal for some fast-changing triggers. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--Documentation/ABI/testing/sysfs-driver-hid-thingm8
-rw-r--r--drivers/hid/hid-thingm.c41
2 files changed, 0 insertions, 49 deletions
diff --git a/Documentation/ABI/testing/sysfs-driver-hid-thingm b/Documentation/ABI/testing/sysfs-driver-hid-thingm
index fda6185b9292..735c5cb0bb07 100644
--- a/Documentation/ABI/testing/sysfs-driver-hid-thingm
+++ b/Documentation/ABI/testing/sysfs-driver-hid-thingm
@@ -6,11 +6,3 @@ Description: The ThingM blink1 is an USB RGB LED. The color notation is
6 color. Write the 24-bit hexadecimal color to change the current 6 color. Write the 24-bit hexadecimal color to change the current
7 LED color. The default color is full white (0xFFFFFF). 7 LED color. The default color is full white (0xFFFFFF).
8 For instance, set the color to green with: echo 00FF00 > rgb 8 For instance, set the color to green with: echo 00FF00 > rgb
9
10What: /sys/class/leds/blink1::<serial>/fade
11Date: January 2013
12Contact: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
13Description: This attribute allows to set a fade time in milliseconds for
14 the next color change. Read the attribute to know the current
15 fade time. The default value is set to 0 (no fade time). For
16 instance, set a fade time of 2 seconds with: echo 2000 > fade
diff --git a/drivers/hid/hid-thingm.c b/drivers/hid/hid-thingm.c
index 7e376b855632..e3b6647e00ce 100644
--- a/drivers/hid/hid-thingm.c
+++ b/drivers/hid/hid-thingm.c
@@ -26,14 +26,12 @@
26 * @hdev: HID device. 26 * @hdev: HID device.
27 * @led_cdev: LED class instance. 27 * @led_cdev: LED class instance.
28 * @rgb: 8-bit per channel RGB notation. 28 * @rgb: 8-bit per channel RGB notation.
29 * @fade: fade time in hundredths of a second.
30 * @brightness: brightness coefficient. 29 * @brightness: brightness coefficient.
31 */ 30 */
32struct blink1_data { 31struct blink1_data {
33 struct hid_device *hdev; 32 struct hid_device *hdev;
34 struct led_classdev led_cdev; 33 struct led_classdev led_cdev;
35 u32 rgb; 34 u32 rgb;
36 u16 fade;
37 u8 brightness; 35 u8 brightness;
38}; 36};
39 37
@@ -64,12 +62,6 @@ static int blink1_update_color(struct blink1_data *data)
64 buf[4] = DIV_ROUND_CLOSEST(blink1_rgb_to_b(data->rgb), coef); 62 buf[4] = DIV_ROUND_CLOSEST(blink1_rgb_to_b(data->rgb), coef);
65 } 63 }
66 64
67 if (data->fade) {
68 buf[1] = 'c';
69 buf[5] = (data->fade & 0xFF00) >> 8;
70 buf[6] = (data->fade & 0x00FF);
71 }
72
73 return blink1_send_command(data, buf); 65 return blink1_send_command(data, buf);
74} 66}
75 67
@@ -121,42 +113,9 @@ static ssize_t blink1_store_rgb(struct device *dev,
121 113
122static DEVICE_ATTR(rgb, S_IRUGO | S_IWUSR, blink1_show_rgb, blink1_store_rgb); 114static DEVICE_ATTR(rgb, S_IRUGO | S_IWUSR, blink1_show_rgb, blink1_store_rgb);
123 115
124static ssize_t blink1_show_fade(struct device *dev,
125 struct device_attribute *attr, char *buf)
126{
127 struct blink1_data *data = dev_get_drvdata(dev->parent);
128
129 return sprintf(buf, "%d\n", data->fade * 10);
130}
131
132static ssize_t blink1_store_fade(struct device *dev,
133 struct device_attribute *attr, const char *buf, size_t count)
134{
135 struct blink1_data *data = dev_get_drvdata(dev->parent);
136 long unsigned int fade;
137 int ret;
138
139 ret = kstrtoul(buf, 10, &fade);
140 if (ret)
141 return ret;
142
143 /* blink(1) accepts 16-bit fade time, number of 10ms ticks */
144 fade = DIV_ROUND_CLOSEST(fade, 10);
145 if (fade > 65535)
146 return -EINVAL;
147
148 data->fade = fade;
149
150 return count;
151}
152
153static DEVICE_ATTR(fade, S_IRUGO | S_IWUSR,
154 blink1_show_fade, blink1_store_fade);
155
156static const struct attribute_group blink1_sysfs_group = { 116static const struct attribute_group blink1_sysfs_group = {
157 .attrs = (struct attribute *[]) { 117 .attrs = (struct attribute *[]) {
158 &dev_attr_rgb.attr, 118 &dev_attr_rgb.attr,
159 &dev_attr_fade.attr,
160 NULL 119 NULL
161 }, 120 },
162}; 121};