static int __devinit nvec_mouse_probe(struct platform_device *pdev) { struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); struct serio *ser_dev = kzalloc(sizeof(struct serio), GFP_KERNEL); ser_dev->id.type = SERIO_PS_PSTHRU; ser_dev->write = ps2_sendcommand; ser_dev->start = ps2_startstreaming; ser_dev->stop = ps2_stopstreaming; strlcpy(ser_dev->name, "nvec mouse", sizeof(ser_dev->name)); strlcpy(ser_dev->phys, "nvec", sizeof(ser_dev->phys)); ps2_dev.ser_dev = ser_dev; ps2_dev.notifier.notifier_call = nvec_ps2_notifier; ps2_dev.nvec = nvec; nvec_register_notifier(nvec, &ps2_dev.notifier, 0); serio_register_port(ser_dev); /* mouse reset */ nvec_write_async(nvec, MOUSE_RESET, 4); return 0; }
static int nvec_mouse_probe(struct platform_device *pdev) { struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); struct serio *ser_dev; char mouse_reset[] = { NVEC_PS2, SEND_COMMAND, PSMOUSE_RST, 3 }; ser_dev = devm_kzalloc(&pdev->dev, sizeof(struct serio), GFP_KERNEL); if (ser_dev == NULL) return -ENOMEM; ser_dev->id.type = SERIO_PS_PSTHRU; ser_dev->write = ps2_sendcommand; ser_dev->start = ps2_startstreaming; ser_dev->stop = ps2_stopstreaming; strlcpy(ser_dev->name, "nvec mouse", sizeof(ser_dev->name)); strlcpy(ser_dev->phys, "nvec", sizeof(ser_dev->phys)); ps2_dev.ser_dev = ser_dev; ps2_dev.notifier.notifier_call = nvec_ps2_notifier; ps2_dev.nvec = nvec; nvec_register_notifier(nvec, &ps2_dev.notifier, 0); serio_register_port(ser_dev); /* mouse reset */ nvec_write_async(nvec, mouse_reset, sizeof(mouse_reset)); return 0; }
static int nvec_mouse_probe(struct platform_device *pdev) { struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); struct serio *ser_dev; ser_dev = kzalloc(sizeof(struct serio), GFP_KERNEL); if (!ser_dev) return -ENOMEM; ser_dev->id.type = SERIO_8042; ser_dev->write = ps2_sendcommand; ser_dev->start = ps2_startstreaming; ser_dev->stop = ps2_stopstreaming; strlcpy(ser_dev->name, "nvec mouse", sizeof(ser_dev->name)); strlcpy(ser_dev->phys, "nvec", sizeof(ser_dev->phys)); ps2_dev.ser_dev = ser_dev; ps2_dev.notifier.notifier_call = nvec_ps2_notifier; ps2_dev.nvec = nvec; nvec_register_notifier(nvec, &ps2_dev.notifier, 0); serio_register_port(ser_dev); return 0; }
int __init nvec_ps2(struct nvec_chip *nvec) { struct serio *ser_dev = kzalloc(sizeof(struct serio), GFP_KERNEL); ser_dev->id.type=SERIO_8042; ser_dev->write=ps2_sendcommand; ser_dev->open=ps2_startstreaming; ser_dev->close=ps2_stopstreaming; strlcpy(ser_dev->name, "NVEC PS2", sizeof(ser_dev->name)); strlcpy(ser_dev->phys, "NVEC I2C slave", sizeof(ser_dev->phys)); ps2_dev.ser_dev = ser_dev; ps2_dev.notifier.notifier_call = nvec_ps2_notifier; ps2_dev.nvec = nvec; nvec_register_notifier(nvec, &ps2_dev.notifier, 0); serio_register_port(ser_dev); /* mouse reset */ nvec_write_async(nvec, "\x06\x01\xff\x03", 4); return 0; }