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

Commit da675296 authored by David Brownell's avatar David Brownell Committed by Linus Torvalds
Browse files

layered parport code uses parport->dev



Update some of the layered parport_driver code to use parport->dev:

	- i2c-parport (parent of i2c_adapter)
	- spi_butterfly (parent of spi_master, allowing cruft removal)
	- lp (creating class_device)
	- ppdev (parent of parportN device)
	- tipar (creating class_device)

There are still drivers that should be updated, like some of the input
drivers; but they won't be any worse off than they are today.

Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Cc: Greg KH <greg@kroah.com>
Cc: Jean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent a7d801af
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -803,7 +803,7 @@ static int lp_register(int nr, struct parport *port)
	if (reset)
		lp_reset(nr);

	class_device_create(lp_class, NULL, MKDEV(LP_MAJOR, nr), NULL,
	class_device_create(lp_class, NULL, MKDEV(LP_MAJOR, nr), port->dev,
				"lp%d", nr);

	printk(KERN_INFO "lp%d: using %s (%s).\n", nr, port->name, 
+1 −1
Original line number Diff line number Diff line
@@ -752,7 +752,7 @@ static const struct file_operations pp_fops = {

static void pp_attach(struct parport *port)
{
	device_create(ppdev_class, NULL, MKDEV(PP_MAJOR, port->number),
	device_create(ppdev_class, port->dev, MKDEV(PP_MAJOR, port->number),
			"parport%d", port->number);
}

+1 −1
Original line number Diff line number Diff line
@@ -442,7 +442,7 @@ tipar_register(int nr, struct parport *port)
	}

	class_device_create(tipar_class, NULL, MKDEV(TIPAR_MAJOR,
			TIPAR_MINOR + nr), NULL, "par%d", nr);
			TIPAR_MINOR + nr), port->dev, "par%d", nr);

	/* Display informations */
	pr_info("tipar%d: using %s (%s)\n", nr, port->name, (port->irq ==
+1 −0
Original line number Diff line number Diff line
@@ -175,6 +175,7 @@ static void i2c_parport_attach (struct parport *port)
	}
	adapter->algo_data.data = port;
	adapter->adapter.algo_data = &adapter->algo_data;
	adapter->adapter.dev.parent = port->physport->dev;

	if (parport_claim_or_block(adapter->pdev) < 0) {
		printk(KERN_ERR "i2c-parport: Could not claim parallel port\n");
+4 −17
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/device.h>
#include <linux/parport.h>

#include <linux/sched.h>
@@ -237,24 +237,16 @@ static void butterfly_attach(struct parport *p)
	int			status;
	struct butterfly	*pp;
	struct spi_master	*master;
	struct platform_device	*pdev;
	struct device		*dev = p->physport->dev;

	if (butterfly)
	if (butterfly || !dev)
		return;

	/* REVISIT:  this just _assumes_ a butterfly is there ... no probe,
	 * and no way to be selective about what it binds to.
	 */

	/* FIXME where should master->cdev.dev come from?
	 * e.g. /sys/bus/pnp0/00:0b, some PCI thing, etc
	 * setting up a platform device like this is an ugly kluge...
	 */
	pdev = platform_device_register_simple("butterfly", -1, NULL, 0);
	if (IS_ERR(pdev))
		return;

	master = spi_alloc_master(&pdev->dev, sizeof *pp);
	master = spi_alloc_master(dev, sizeof *pp);
	if (!master) {
		status = -ENOMEM;
		goto done;
@@ -366,14 +358,12 @@ clean1:
clean0:
	(void) spi_master_put(pp->bitbang.master);
done:
	platform_device_unregister(pdev);
	pr_debug("%s: butterfly probe, fail %d\n", p->name, status);
}

static void butterfly_detach(struct parport *p)
{
	struct butterfly	*pp;
	struct platform_device	*pdev;
	int			status;

	/* FIXME this global is ugly ... but, how to quickly get from
@@ -386,7 +376,6 @@ static void butterfly_detach(struct parport *p)
	butterfly = NULL;

	/* stop() unregisters child devices too */
	pdev = to_platform_device(pp->bitbang.master->cdev.dev);
	status = spi_bitbang_stop(&pp->bitbang);

	/* turn off VCC */
@@ -397,8 +386,6 @@ static void butterfly_detach(struct parport *p)
	parport_unregister_device(pp->pd);

	(void) spi_master_put(pp->bitbang.master);

	platform_device_unregister(pdev);
}

static struct parport_driver butterfly_driver = {