egalax
egalax = kzalloc_obj(*egalax);
if (!egalax || !input_dev) {
egalax->serio = serio;
egalax->input = input_dev;
scnprintf(egalax->phys, sizeof(egalax->phys), "%s/input0", serio->phys);
input_dev->phys = egalax->phys;
serio_set_drvdata(serio, egalax);
kfree(egalax);
struct egalax *egalax = serio_get_drvdata(serio);
input_unregister_device(egalax->input);
kfree(egalax);
static void egalax_process_data(struct egalax *egalax)
struct input_dev *dev = egalax->input;
u8 *data = egalax->data;
struct egalax *egalax = serio_get_drvdata(serio);
egalax->data[egalax->idx++] = data;
if (likely(egalax->data[0] & EGALAX_FORMAT_START_BIT)) {
pkt_len = egalax->data[0] & EGALAX_FORMAT_PRESSURE_BIT ? 6 : 5;
if (pkt_len == egalax->idx) {
egalax_process_data(egalax);
egalax->idx = 0;
egalax->data[0]);
egalax->idx = 0;
struct egalax *egalax;