summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/input/serio/userio.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/input/serio/userio.c b/drivers/input/serio/userio.c
index abca8cb6aca5..8c19975c84bf 100644
--- a/drivers/input/serio/userio.c
+++ b/drivers/input/serio/userio.c
@@ -206,6 +206,36 @@ static int userio_execute_cmd(struct userio_device *userio,
userio->serio->id.type = cmd->data;
break;
+ case USERIO_CMD_SET_PORT_EXTRA:
+ if (userio->running) {
+ dev_warn(userio_misc.this_device,
+ "Can't change port extra on an already running userio instance\n");
+ return -EBUSY;
+ }
+
+ userio->serio->id.extra = cmd->data;
+ break;
+
+ case USERIO_CMD_SET_PORT_ID:
+ if (userio->running) {
+ dev_warn(userio_misc.this_device,
+ "Can't change port id on an already running userio instance\n");
+ return -EBUSY;
+ }
+
+ userio->serio->id.id = cmd->data;
+ break;
+
+ case USERIO_CMD_SET_PORT_PROTO:
+ if (userio->running) {
+ dev_warn(userio_misc.this_device,
+ "Can't change port proto on an already running userio instance\n");
+ return -EBUSY;
+ }
+
+ userio->serio->id.proto = cmd->data;
+ break;
+
case USERIO_CMD_SEND_INTERRUPT:
if (!userio->running) {
dev_warn(userio_misc.this_device,