Index: uspace/srv/hid/input/ctl/apple.c
===================================================================
--- uspace/srv/hid/input/ctl/apple.c	(revision 5f8829315f6bebf5769560deb1bd34bc914628c4)
+++ uspace/srv/hid/input/ctl/apple.c	(revision 60e5a8569c8ec6ff69c5bdc746d53f4ae2c3a4f4)
@@ -44,5 +44,5 @@
 static void apple_ctl_parse_scancode(int);
 static int apple_ctl_init(kbd_dev_t *);
-static void apple_ctl_set_ind(unsigned);
+static void apple_ctl_set_ind(kbd_dev_t *, unsigned);
 
 kbd_ctl_ops_t apple_ctl = {
@@ -84,5 +84,5 @@
 }
 
-static void apple_ctl_set_ind(unsigned mods)
+static void apple_ctl_set_ind(kbd_dev_t *kdev, unsigned mods)
 {
 	(void) mods;
Index: uspace/srv/hid/input/ctl/gxe_fb.c
===================================================================
--- uspace/srv/hid/input/ctl/gxe_fb.c	(revision 5f8829315f6bebf5769560deb1bd34bc914628c4)
+++ uspace/srv/hid/input/ctl/gxe_fb.c	(revision 60e5a8569c8ec6ff69c5bdc746d53f4ae2c3a4f4)
@@ -46,5 +46,5 @@
 static void gxe_fb_ctl_parse_scancode(int);
 static int gxe_fb_ctl_init(kbd_dev_t *);
-static void gxe_fb_ctl_set_ind(unsigned);
+static void gxe_fb_ctl_set_ind(kbd_dev_t *, unsigned);
 
 kbd_ctl_ops_t gxe_fb_ctl = {
@@ -239,5 +239,5 @@
 }
 
-static void gxe_fb_ctl_set_ind(unsigned mods)
+static void gxe_fb_ctl_set_ind(kbd_dev_t *kdev, unsigned mods)
 {
 	(void) mods;
Index: uspace/srv/hid/input/ctl/pc.c
===================================================================
--- uspace/srv/hid/input/ctl/pc.c	(revision 5f8829315f6bebf5769560deb1bd34bc914628c4)
+++ uspace/srv/hid/input/ctl/pc.c	(revision 60e5a8569c8ec6ff69c5bdc746d53f4ae2c3a4f4)
@@ -45,5 +45,5 @@
 static void pc_ctl_parse_scancode(int);
 static int pc_ctl_init(kbd_dev_t *);
-static void pc_ctl_set_ind(unsigned);
+static void pc_ctl_set_ind(kbd_dev_t *, unsigned);
 
 kbd_ctl_ops_t pc_ctl = {
@@ -265,5 +265,5 @@
 }
 
-static void pc_ctl_set_ind(unsigned mods)
+static void pc_ctl_set_ind(kbd_dev_t *kdev, unsigned mods)
 {
 	uint8_t b;
Index: uspace/srv/hid/input/ctl/stty.c
===================================================================
--- uspace/srv/hid/input/ctl/stty.c	(revision 5f8829315f6bebf5769560deb1bd34bc914628c4)
+++ uspace/srv/hid/input/ctl/stty.c	(revision 60e5a8569c8ec6ff69c5bdc746d53f4ae2c3a4f4)
@@ -45,5 +45,5 @@
 static void stty_ctl_parse_scancode(int);
 static int stty_ctl_init(kbd_dev_t *);
-static void stty_ctl_set_ind(unsigned);
+static void stty_ctl_set_ind(kbd_dev_t *, unsigned);
 
 kbd_ctl_ops_t stty_ctl = {
@@ -238,5 +238,5 @@
 }
 
-static void stty_ctl_set_ind(unsigned mods)
+static void stty_ctl_set_ind(kbd_dev_t *kdev, unsigned mods)
 {
 	(void) mods;
Index: uspace/srv/hid/input/ctl/sun.c
===================================================================
--- uspace/srv/hid/input/ctl/sun.c	(revision 5f8829315f6bebf5769560deb1bd34bc914628c4)
+++ uspace/srv/hid/input/ctl/sun.c	(revision 60e5a8569c8ec6ff69c5bdc746d53f4ae2c3a4f4)
@@ -45,5 +45,5 @@
 static void sun_ctl_parse_scancode(int);
 static int sun_ctl_init(kbd_dev_t *);
-static void sun_ctl_set_ind(unsigned);
+static void sun_ctl_set_ind(kbd_dev_t *, unsigned);
 
 kbd_ctl_ops_t sun_ctl = {
@@ -89,5 +89,5 @@
 }
 
-static void sun_ctl_set_ind(unsigned mods)
+static void sun_ctl_set_ind(kbd_dev_t *kdev, unsigned mods)
 {
 	(void) mods;
Index: uspace/srv/hid/input/generic/input.c
===================================================================
--- uspace/srv/hid/input/generic/input.c	(revision 5f8829315f6bebf5769560deb1bd34bc914628c4)
+++ uspace/srv/hid/input/generic/input.c	(revision 60e5a8569c8ec6ff69c5bdc746d53f4ae2c3a4f4)
@@ -138,5 +138,5 @@
 
 			/* Update keyboard lock indicator lights. */
-			(*kdev->ctl_ops->set_ind)(mods);
+			(*kdev->ctl_ops->set_ind)(kdev, mods);
 		} else {
 			lock_keys = lock_keys & ~mod_mask;
Index: uspace/srv/hid/input/include/kbd.h
===================================================================
--- uspace/srv/hid/input/include/kbd.h	(revision 5f8829315f6bebf5769560deb1bd34bc914628c4)
+++ uspace/srv/hid/input/include/kbd.h	(revision 60e5a8569c8ec6ff69c5bdc746d53f4ae2c3a4f4)
@@ -60,4 +60,7 @@
 	/** Ctl ops */
 	struct kbd_ctl_ops *ctl_ops;
+
+	/** Controller-private data */
+	void *ctl_private;
 } kbd_dev_t;
 
Index: uspace/srv/hid/input/include/kbd_ctl.h
===================================================================
--- uspace/srv/hid/input/include/kbd_ctl.h	(revision 5f8829315f6bebf5769560deb1bd34bc914628c4)
+++ uspace/srv/hid/input/include/kbd_ctl.h	(revision 60e5a8569c8ec6ff69c5bdc746d53f4ae2c3a4f4)
@@ -45,5 +45,5 @@
 	void (*parse_scancode)(int);
 	int (*init)(struct kbd_dev *);
-	void (*set_ind)(unsigned);
+	void (*set_ind)(struct kbd_dev *, unsigned);
 } kbd_ctl_ops_t;
 
