Lines Matching refs:zhenhua
56 struct zhenhua { struct
68 static void zhenhua_process_packet(struct zhenhua *zhenhua) in zhenhua_process_packet() argument
70 struct input_dev *dev = zhenhua->dev; in zhenhua_process_packet()
71 unsigned char *data = zhenhua->data; in zhenhua_process_packet()
89 struct zhenhua *zhenhua = serio_get_drvdata(serio); in zhenhua_interrupt() local
96 zhenhua->idx = 0; /* this byte starts a new packet */ in zhenhua_interrupt()
97 else if (zhenhua->idx == 0) in zhenhua_interrupt()
100 if (zhenhua->idx < ZHENHUA_MAX_LENGTH) in zhenhua_interrupt()
101 zhenhua->data[zhenhua->idx++] = bitrev8(data); in zhenhua_interrupt()
103 if (zhenhua->idx == ZHENHUA_MAX_LENGTH) { in zhenhua_interrupt()
104 zhenhua_process_packet(zhenhua); in zhenhua_interrupt()
105 zhenhua->idx = 0; in zhenhua_interrupt()
117 struct zhenhua *zhenhua = serio_get_drvdata(serio); in zhenhua_disconnect() local
121 input_unregister_device(zhenhua->dev); in zhenhua_disconnect()
122 kfree(zhenhua); in zhenhua_disconnect()
133 struct zhenhua *zhenhua; in zhenhua_connect() local
137 zhenhua = kzalloc(sizeof(struct zhenhua), GFP_KERNEL); in zhenhua_connect()
139 if (!zhenhua || !input_dev) in zhenhua_connect()
142 zhenhua->dev = input_dev; in zhenhua_connect()
143 snprintf(zhenhua->phys, sizeof(zhenhua->phys), "%s/input0", serio->phys); in zhenhua_connect()
146 input_dev->phys = zhenhua->phys; in zhenhua_connect()
159 serio_set_drvdata(serio, zhenhua); in zhenhua_connect()
165 err = input_register_device(zhenhua->dev); in zhenhua_connect()
174 kfree(zhenhua); in zhenhua_connect()