Commit da6752964290567a6b4ea180d1becda75e810e87

Authored by David Brownell
Committed by Linus Torvalds
1 parent a7d801afc3

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 <dbrownell@users.sourceforge.net>
Cc: Greg KH <greg@kroah.com>
Cc: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 5 changed files with 8 additions and 20 deletions Side-by-side Diff

... ... @@ -803,7 +803,7 @@
803 803 if (reset)
804 804 lp_reset(nr);
805 805  
806   - class_device_create(lp_class, NULL, MKDEV(LP_MAJOR, nr), NULL,
  806 + class_device_create(lp_class, NULL, MKDEV(LP_MAJOR, nr), port->dev,
807 807 "lp%d", nr);
808 808  
809 809 printk(KERN_INFO "lp%d: using %s (%s).\n", nr, port->name,
drivers/char/ppdev.c
... ... @@ -752,7 +752,7 @@
752 752  
753 753 static void pp_attach(struct parport *port)
754 754 {
755   - device_create(ppdev_class, NULL, MKDEV(PP_MAJOR, port->number),
  755 + device_create(ppdev_class, port->dev, MKDEV(PP_MAJOR, port->number),
756 756 "parport%d", port->number);
757 757 }
758 758  
drivers/char/tipar.c
... ... @@ -442,7 +442,7 @@
442 442 }
443 443  
444 444 class_device_create(tipar_class, NULL, MKDEV(TIPAR_MAJOR,
445   - TIPAR_MINOR + nr), NULL, "par%d", nr);
  445 + TIPAR_MINOR + nr), port->dev, "par%d", nr);
446 446  
447 447 /* Display informations */
448 448 pr_info("tipar%d: using %s (%s)\n", nr, port->name, (port->irq ==
drivers/i2c/busses/i2c-parport.c
... ... @@ -175,6 +175,7 @@
175 175 }
176 176 adapter->algo_data.data = port;
177 177 adapter->adapter.algo_data = &adapter->algo_data;
  178 + adapter->adapter.dev.parent = port->physport->dev;
178 179  
179 180 if (parport_claim_or_block(adapter->pdev) < 0) {
180 181 printk(KERN_ERR "i2c-parport: Could not claim parallel port\n");
drivers/spi/spi_butterfly.c
... ... @@ -20,7 +20,7 @@
20 20 #include <linux/kernel.h>
21 21 #include <linux/init.h>
22 22 #include <linux/delay.h>
23   -#include <linux/platform_device.h>
  23 +#include <linux/device.h>
24 24 #include <linux/parport.h>
25 25  
26 26 #include <linux/sched.h>
27 27  
28 28  
... ... @@ -237,24 +237,16 @@
237 237 int status;
238 238 struct butterfly *pp;
239 239 struct spi_master *master;
240   - struct platform_device *pdev;
  240 + struct device *dev = p->physport->dev;
241 241  
242   - if (butterfly)
  242 + if (butterfly || !dev)
243 243 return;
244 244  
245 245 /* REVISIT: this just _assumes_ a butterfly is there ... no probe,
246 246 * and no way to be selective about what it binds to.
247 247 */
248 248  
249   - /* FIXME where should master->cdev.dev come from?
250   - * e.g. /sys/bus/pnp0/00:0b, some PCI thing, etc
251   - * setting up a platform device like this is an ugly kluge...
252   - */
253   - pdev = platform_device_register_simple("butterfly", -1, NULL, 0);
254   - if (IS_ERR(pdev))
255   - return;
256   -
257   - master = spi_alloc_master(&pdev->dev, sizeof *pp);
  249 + master = spi_alloc_master(dev, sizeof *pp);
258 250 if (!master) {
259 251 status = -ENOMEM;
260 252 goto done;
261 253  
... ... @@ -366,14 +358,12 @@
366 358 clean0:
367 359 (void) spi_master_put(pp->bitbang.master);
368 360 done:
369   - platform_device_unregister(pdev);
370 361 pr_debug("%s: butterfly probe, fail %d\n", p->name, status);
371 362 }
372 363  
373 364 static void butterfly_detach(struct parport *p)
374 365 {
375 366 struct butterfly *pp;
376   - struct platform_device *pdev;
377 367 int status;
378 368  
379 369 /* FIXME this global is ugly ... but, how to quickly get from
... ... @@ -386,7 +376,6 @@
386 376 butterfly = NULL;
387 377  
388 378 /* stop() unregisters child devices too */
389   - pdev = to_platform_device(pp->bitbang.master->cdev.dev);
390 379 status = spi_bitbang_stop(&pp->bitbang);
391 380  
392 381 /* turn off VCC */
... ... @@ -397,8 +386,6 @@
397 386 parport_unregister_device(pp->pd);
398 387  
399 388 (void) spi_master_put(pp->bitbang.master);
400   -
401   - platform_device_unregister(pdev);
402 389 }
403 390  
404 391 static struct parport_driver butterfly_driver = {