of: kill struct of_device
authorGrant Likely <grant.likely@secretlab.ca>
Fri, 18 Jun 2010 17:09:59 +0000 (11:09 -0600)
committerGrant Likely <grant.likely@secretlab.ca>
Mon, 28 Jun 2010 19:41:33 +0000 (12:41 -0700)
Now that the device tree node pointer has been moved out of struct
of_device and into the common struct device, there isn't anything
unique about of_device anymore.  In fact, there isn't much need
for a separate of_bus when all busses have access to OF style
probing.

arch/powerpc and arch/microblaze are moving away from using the of_bus
and using the regular platform bus instead for mmio devices.  This
patch makes of_device the same as platform_device as a stepping stone
in migrating of_platform_drivers over to the platform bus.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
arch/microblaze/include/asm/of_device.h
arch/powerpc/include/asm/of_device.h
arch/powerpc/include/asm/smu.h
arch/sparc/include/asm/device.h
arch/sparc/include/asm/of_device.h
drivers/net/niu.h
include/linux/of_device.h

index 73cb98040982434f87c4761616186b3c004bd51d..0a5f3f914b423b3d832d291ec6cd4e22e67ec0de 100644 (file)
 #include <linux/device.h>
 #include <linux/of.h>
 
-/*
- * The of_device is a kind of "base class" that is a superset of
- * struct device for use by devices attached to an OF node and
- * probed using OF properties.
- */
-struct of_device {
-       struct device           dev; /* Generic device interface */
-       struct pdev_archdata    archdata;
-};
-
 extern ssize_t of_device_get_modalias(struct of_device *ofdev,
                                        char *str, ssize_t len);
 
index 444e97e2982ea54cef41240b2ff2ea85ee1db761..cb36632f953ca83ebd09205bd4e2e2d9d1e483b9 100644 (file)
@@ -5,17 +5,6 @@
 #include <linux/device.h>
 #include <linux/of.h>
 
-/*
- * The of_device is a kind of "base class" that is a superset of
- * struct device for use by devices attached to an OF node and
- * probed using OF properties.
- */
-struct of_device
-{
-       struct device           dev;            /* Generic device interface */
-       struct pdev_archdata    archdata;
-};
-
 extern struct of_device *of_device_alloc(struct device_node *np,
                                         const char *bus_id,
                                         struct device *parent);
index 7ae2753da565d6435c05b8d0e9ff505ae94fa928..e3bdada8c542b732d619d5ac9192fe26180003ee 100644 (file)
@@ -457,8 +457,8 @@ extern void smu_poll(void);
  */
 extern int smu_init(void);
 extern int smu_present(void);
-struct of_device;
-extern struct of_device *smu_get_ofdev(void);
+struct platform_device;
+extern struct platform_device *smu_get_ofdev(void);
 
 
 /*
index f9740d065fe7d75542268582be5441d5538ffae5..fb220e48203975d37b7e3e9adbda899911770006 100644 (file)
@@ -9,13 +9,13 @@
 #include <asm/openprom.h>
 
 struct device_node;
-struct of_device;
+struct platform_device;
 
 struct dev_archdata {
        void                    *iommu;
        void                    *stc;
        void                    *host_controller;
-       struct of_device        *op;
+       struct platform_device  *op;
        int                     numa_node;
 };
 
index 6d1844a547b46adceda98f0531b28e4e846aaba4..22b9828fe6930ac2807dfe2734a1f33ce2fc3fb7 100644 (file)
@@ -7,20 +7,6 @@
 #include <linux/mod_devicetable.h>
 #include <asm/openprom.h>
 
-/*
- * The of_device is a kind of "base class" that is a superset of
- * struct device for use by devices attached to an OF node and
- * probed using OF properties.
- */
-struct of_device
-{
-       struct device                   dev;
-       u32                             num_resources;
-       struct resource                 *resource;
-
-       struct pdev_archdata            archdata;
-};
-
 extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name);
 extern void of_iounmap(struct resource *res, void __iomem *base, unsigned long size);
 
index d6715465f35d58137e5c78b26e4c3f653b7c6598..a41fa8ebe05fbfd8e909c61cd2e3862ff6e6f18d 100644 (file)
@@ -3236,7 +3236,7 @@ struct niu_phy_ops {
        int (*link_status)(struct niu *np, int *);
 };
 
-struct of_device;
+struct platform_device;
 struct niu {
        void __iomem                    *regs;
        struct net_device               *dev;
@@ -3297,7 +3297,7 @@ struct niu {
        struct niu_vpd                  vpd;
        u32                             eeprom_len;
 
-       struct of_device                *op;
+       struct platform_device          *op;
        void __iomem                    *vir_regs_1;
        void __iomem                    *vir_regs_2;
 };
index 11651facc5f179237500ea4d43e3bcc76bfe270d..a3ae5900fc58ea078a0e9b8a6f7e4b16a262f869 100644 (file)
@@ -3,9 +3,26 @@
 
 #ifdef CONFIG_OF_DEVICE
 #include <linux/device.h>
+#include <linux/platform_device.h>
 #include <linux/of.h>
 #include <linux/mod_devicetable.h>
 
+
+/*
+ * The of_device *was* a kind of "base class" that was a superset of
+ * struct device for use by devices attached to an OF node and probed
+ * using OF properties.  However, the important bit of OF-style
+ * probing, namely the device node pointer, has been moved into the
+ * common struct device when CONFIG_OF is set to make OF-style probing
+ * available to all bus types.  So now, just make of_device and
+ * platform_device equivalent so that current of_platform bus users
+ * can be transparently migrated over to using the platform bus.
+ *
+ * This line will go away once all references to of_device are removed
+ * from the kernel.
+ */
+#define of_device platform_device
+
 #include <asm/of_device.h>
 
 #define        to_of_device(d) container_of(d, struct of_device, dev)