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