Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8a7bdc5 authored by Russell King's avatar Russell King Committed by Dmitry Torokhov
Browse files

Input: jornada720_kbd - switch to devm_* APIs



Switch the jornada720_kbd driver to use the devm_* APIs.  This is in
preparation to removing the mach/irqs.h include from this driver.

Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 3f5c5920
Loading
Loading
Loading
Loading
+8 −35
Original line number Original line Diff line number Diff line
@@ -99,12 +99,10 @@ static int jornada720_kbd_probe(struct platform_device *pdev)
	struct input_dev *input_dev;
	struct input_dev *input_dev;
	int i, err;
	int i, err;


	jornadakbd = kzalloc(sizeof(struct jornadakbd), GFP_KERNEL);
	jornadakbd = devm_kzalloc(&pdev->dev, sizeof(*jornadakbd), GFP_KERNEL);
	input_dev = input_allocate_device();
	input_dev = devm_input_allocate_device(&pdev->dev);
	if (!jornadakbd || !input_dev) {
	if (!jornadakbd || !input_dev)
		err = -ENOMEM;
		return -ENOMEM;
		goto fail1;
	}


	platform_set_drvdata(pdev, jornadakbd);
	platform_set_drvdata(pdev, jornadakbd);


@@ -127,40 +125,16 @@ static int jornada720_kbd_probe(struct platform_device *pdev)


	input_set_capability(input_dev, EV_MSC, MSC_SCAN);
	input_set_capability(input_dev, EV_MSC, MSC_SCAN);


	err = request_irq(IRQ_GPIO0,
	err = devm_request_irq(&pdev->dev, IRQ_GPIO0, jornada720_kbd_interrupt,
			  jornada720_kbd_interrupt,
			       IRQF_TRIGGER_FALLING, "jornadakbd", pdev);
			  IRQF_TRIGGER_FALLING,
			  "jornadakbd", pdev);
	if (err) {
	if (err) {
		printk(KERN_INFO "jornadakbd720_kbd: Unable to grab IRQ\n");
		printk(KERN_INFO "jornadakbd720_kbd: Unable to grab IRQ\n");
		goto fail1;
		return err;
	}
	}


	err = input_register_device(jornadakbd->input);
	return input_register_device(jornadakbd->input);
	if (err)
		goto fail2;

	return 0;

 fail2:	/* IRQ, DEVICE, MEMORY */
	free_irq(IRQ_GPIO0, pdev);
 fail1:	/* DEVICE, MEMORY */
	input_free_device(input_dev);
	kfree(jornadakbd);
	return err;
};
};


static int jornada720_kbd_remove(struct platform_device *pdev)
{
	struct jornadakbd *jornadakbd = platform_get_drvdata(pdev);

	free_irq(IRQ_GPIO0, pdev);
	input_unregister_device(jornadakbd->input);
	kfree(jornadakbd);

	return 0;
}

/* work with hotplug and coldplug */
/* work with hotplug and coldplug */
MODULE_ALIAS("platform:jornada720_kbd");
MODULE_ALIAS("platform:jornada720_kbd");


@@ -169,6 +143,5 @@ static struct platform_driver jornada720_kbd_driver = {
		.name    = "jornada720_kbd",
		.name    = "jornada720_kbd",
	 },
	 },
	.probe   = jornada720_kbd_probe,
	.probe   = jornada720_kbd_probe,
	.remove  = jornada720_kbd_remove,
};
};
module_platform_driver(jornada720_kbd_driver);
module_platform_driver(jornada720_kbd_driver);