Thread (20 messages) 20 messages, 2 authors, 2013-01-31

Re: [PATCH 4/4] USB: HID: SRW-S1 Add support controlling all LEDs simultaneously

From: <hidden>
Date: 2013-01-28 15:24:25
Also in: lkml

On Thu, 24 Jan 2013, Simon Wood wrote:
quoted
From: simon <simon@simon-virtual-machine.(none)>

This patch to the SRW-S1 driver adds the ability to control all
LEDs simultaneously as testing showed that it was slow (noticably!!)
when seting or clearing all the LEDs in turn.

It adds a 'RPMALL' LED, whose behavoir is asserted to all the LEDs in
the bar graph, individual LEDs can subsequently be turned on/off
individually.

Signed-off-by: Simon Wood <redacted>
tested-by: John Murphy <redacted>
[ ... snip ... ]
quoted
@@ -219,13 +255,34 @@ static int srws1_probe(struct hid_device *hdev,

 	/* register led subsystem */
 	drv_data->led_state = 0;
-	for (i = 0; i < SRWS1_NUMBER_LEDS; i++)
+	for (i = 0; i < SRWS1_NUMBER_LEDS + 1; i++)
 		drv_data->led[i] = NULL;

 	srws1_set_leds(hdev, 0);

-	name_sz = strlen(hdev->uniq) + 15;
+	name_sz = strlen(hdev->uniq) + 16;
+
+	/* 'ALL', for setting all LEDs simultaneously */
+	led = kzalloc(sizeof(struct led_classdev)+name_sz, GFP_KERNEL);
Is this memory ever freed?
Yes. The pointer to it is stored at the end of the drv_data leds[] array
(line 280), and will be free'd on probe fail (line 314) or when device is
removed (line 341).

Simon
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help