On Tue, Nov 17, 2009 at 10:04, Finn Thain <fth...@telegraphics.com.au> wrote: > Add platform driver to the pmac-zilog driver for mac 68k, putting the > powermac-specific bits inside #ifdef CONFIG_PPC_PMAC.
> --- linux-2.6.31.orig/drivers/serial/pmac_zilog.c 2009-11-17 > 17:07:28.000000000 +1100 > +++ linux-2.6.31/drivers/serial/pmac_zilog.c 2009-11-17 17:07:38.000000000 > +1100 > +static int pmz_attach(struct platform_device *pdev) __devinit (or __init, see platform_driver_probe() below) BTW, the same is true for the PowerMac version. > +{ > + int i; > + > + for (i = 0; i < pmz_ports_count; i++) > + if (pmz_ports[i].node == pdev) > + return 0; > + return -ENODEV; > +} > + > +static int pmz_detach(struct platform_device *pdev) __devexit (or __exit, see platform_driver_probe() below) Idem ditto for PowerMac. > +{ > + return 0; > +} > + > +#endif /* !CONFIG_PPC_PMAC */ > +static struct platform_driver pmz_driver = { > + .probe = pmz_attach, > + .remove = __devexit_p(pmz_detach), > + .driver = { > + .name = "scc", > + .owner = THIS_MODULE, > + }, > +}; > + > +#endif /* !CONFIG_PPC_PMAC */ > + > static int __init init_pmz(void) > { > int rc, i; > @@ -1942,15 +2053,23 @@ static int __init init_pmz(void) > /* > * Then we register the macio driver itself > */ > +#ifdef CONFIG_PPC_PMAC > return macio_register_driver(&pmz_driver); > +#else > + return platform_driver_register(&pmz_driver); Since this device is not hot-pluggable, you could use platform_driver_probe() instead (and leave pmz_driver.probe() empty). > --- linux-2.6.31.orig/drivers/serial/pmac_zilog.h 2009-11-17 > 17:07:28.000000000 +1100 > +++ linux-2.6.31/drivers/serial/pmac_zilog.h 2009-11-17 17:07:38.000000000 > +1100 > @@ -1,7 +1,15 @@ > #ifndef __PMAC_ZILOG_H__ > #define __PMAC_ZILOG_H__ > > +#ifdef CONFIG_PPC_PMAC > #define pmz_debug(fmt, arg...) dev_dbg(&uap->dev->ofdev.dev, fmt, ## arg) > +#define pmz_error(fmt, arg...) dev_err(&uap->dev->ofdev.dev, fmt, ## arg) > +#define pmz_info(fmt, arg...) dev_info(&uap->dev->ofdev.dev, fmt, ## arg) > +#else > +#define pmz_debug(fmt, arg...) do { } while (0) > +#define pmz_error(fmt, arg...) printk(KERN_ERR fmt, ## arg) > +#define pmz_info(fmt, arg...) printk(KERN_INFO fmt, ## arg) Any chance you can sneak the platform device in and use dev_*()? Anyway, I'm gonna take it, and feed it upstream if BenH adds his ack. Ben? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev