+static int evdev_set_clk_type(struct evdev_client *client, unsigned int clkid)
+{
+ if (client->clk_type == clkid)
+ return 0;
+
+ switch (clkid) {
+
+ case CLOCK_REALTIME:
+ client->clk_type = EV_CLK_REAL;
+ break;
+ case CLOCK_MONOTONIC:
+ client->clk_type = EV_CLK_MONO;
+ break;
+ case CLOCK_BOOTTIME:
+ client->clk_type = EV_CLK_BOOT;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ /* Flush pending events and queue SYN_DROPPED event.*/
+ evdev_queue_syn_dropped(client, true);
+
+ return 0;
+}
+