fsia6b
input_report_key(fsia6b->dev,
input_report_key(fsia6b->dev,
input_report_key(fsia6b->dev,
input_sync(fsia6b->dev);
fsia6b->packet.state = COLLECT;
struct fsia6b *fsia6b;
fsia6b = kzalloc_obj(*fsia6b);
if (!fsia6b)
fsia6b->packet.ibuf = 0;
fsia6b->packet.offset = 0;
fsia6b->packet.state = SYNC;
serio_set_drvdata(serio, fsia6b);
fsia6b->dev = input_dev;
scnprintf(fsia6b->phys, sizeof(fsia6b->phys), "%s/input0", serio->phys);
input_dev->phys = fsia6b->phys;
dev_err(&fsia6b->dev->dev,
err = input_register_device(fsia6b->dev);
kfree(fsia6b);
struct fsia6b *fsia6b = serio_get_drvdata(serio);
input_unregister_device(fsia6b->dev);
kfree(fsia6b);
struct fsia6b *fsia6b = serio_get_drvdata(serio);
fsia6b->packet.ibuf = (data << 8) | ((fsia6b->packet.ibuf >> 8) & 0xFF);
switch (fsia6b->packet.state) {
if (fsia6b->packet.ibuf == 0x4020)
fsia6b->packet.state = COLLECT;
fsia6b->packet.state = PROCESS;
fsia6b->packet.channel[fsia6b->packet.offset] =
fsia6b->packet.ibuf;
fsia6b->packet.offset++;
if (fsia6b->packet.offset == IBUS_SERVO_COUNT) {
fsia6b->packet.offset = 0;
fsia6b->packet.state = SYNC;
input_report_abs(fsia6b->dev, fsia6b_axes[i],
fsia6b->packet.channel[i]);
if (fsia6b->packet.channel[i] > 1900)
else if (fsia6b->packet.channel[i] < 1100)