layered parport code uses parport->dev
Subsystems (5)
PATCH 3/3 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 David Brownell <[email protected]>
--- drivers/char/lp.c | 2 +- drivers/char/ppdev.c | 2 +- drivers/char/tipar.c | 2 +- drivers/i2c/busses/i2c-parport.c | 1 + drivers/spi/spi_butterfly.c | 21 ++++----------------- 5 files changed, 8 insertions(+), 20 deletions(-)
drivers/spi/spi_butterfly.c +4 -17
@@ -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 parpint 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 parp 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 parpparport_unregister_device (pp->pd); (void )spi_master_put (pp->bitbang.master); - -platform_device_unregister (pdev); }static struct parport_driver butterfly_driver = {
drivers/i2c/busses/i2c-parport.c +1 -0
@@ -175,6 +175,7 @@ static void i2c_parport_attach (struct p adapter->algo_data.getscl =NULL ; 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" );
drivers/char/ppdev.c +1 -1
@@ -752,7 +752,7 @@ static const struct file_operations pp_fstatic 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); }
drivers/char/lp.c +1 -1
@@ -803,7 +803,7 @@ static int lp_register(int nr, struct paif (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,
drivers/char/tipar.c +1 -1
@@ -442,7 +442,7 @@ tipar_register(int nr, struct parport *p }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 ==