Commit da6752964290567a6b4ea180d1becda75e810e87
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
drivers/char/lp.c
... | ... | @@ -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
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 = { |