Re: [PATCH 1/2] pmac-zilog: add platform driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 17, 2009 at 10:04, Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx> 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 -- geert@xxxxxxxxxxxxxx

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
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux