Skip to content

Commit

Permalink
Input: wacom_w8001 - implement open and close
Browse files Browse the repository at this point in the history
Implement open() and close() methods for the input device so that we
do not start the device unless there are users listening to the events.

Acked-by: Chris Bagwell <chris@cnpbagwell.com>
Tested-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
  • Loading branch information
Dmitry Torokhov committed Aug 24, 2011
1 parent c17ca3f commit e949674
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion drivers/input/touchscreen/wacom_w8001.c
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,20 @@ static int w8001_command(struct w8001 *w8001, unsigned char command,
return rc;
}

static int w8001_open(struct input_dev *dev)
{
struct w8001 *w8001 = input_get_drvdata(dev);

return w8001_command(w8001, W8001_CMD_START, false);
}

static void w8001_close(struct input_dev *dev)
{
struct w8001 *w8001 = input_get_drvdata(dev);

w8001_command(w8001, W8001_CMD_STOP, false);
}

static int w8001_setup(struct w8001 *w8001)
{
struct input_dev *dev = w8001->dev;
Expand Down Expand Up @@ -474,7 +488,7 @@ static int w8001_setup(struct w8001 *w8001)

strlcat(w8001->name, " Touchscreen", sizeof(w8001->name));

return w8001_command(w8001, W8001_CMD_START, false);
return 0;
}

/*
Expand Down Expand Up @@ -534,6 +548,11 @@ static int w8001_connect(struct serio *serio, struct serio_driver *drv)
input_dev->id.version = 0x0100;
input_dev->dev.parent = &serio->dev;

input_dev->open = w8001_open;
input_dev->close = w8001_close;

input_set_drvdata(input_dev, w8001);

err = input_register_device(w8001->dev);
if (err)
goto fail3;
Expand Down

0 comments on commit e949674

Please sign in to comment.