|
@@ -106,7 +106,7 @@ static int nvec_mouse_probe(struct platform_device *pdev)
|
|
|
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);
|
|
|
+ ser_dev = kzalloc(sizeof(struct serio), GFP_KERNEL);
|
|
|
if (ser_dev == NULL)
|
|
|
return -ENOMEM;
|
|
|
|
|
@@ -133,6 +133,11 @@ static int nvec_mouse_probe(struct platform_device *pdev)
|
|
|
|
|
|
static int nvec_mouse_remove(struct platform_device *pdev)
|
|
|
{
|
|
|
+ struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent);
|
|
|
+
|
|
|
+ ps2_sendcommand(ps2_dev.ser_dev, DISABLE_MOUSE);
|
|
|
+ ps2_stopstreaming(ps2_dev.ser_dev);
|
|
|
+ nvec_unregister_notifier(nvec, &ps2_dev.notifier);
|
|
|
serio_unregister_port(ps2_dev.ser_dev);
|
|
|
|
|
|
return 0;
|