Introduce ARCH_NO_SYSDEV_OPS config option (v2)
[pandora-kernel.git] / include / linux / device.h
index 1bf5cf0..ab8dfc0 100644 (file)
@@ -128,9 +128,7 @@ struct device_driver {
 
        bool suppress_bind_attrs;       /* disables bind/unbind via sysfs */
 
-#if defined(CONFIG_OF)
        const struct of_device_id       *of_match_table;
-#endif
 
        int (*probe) (struct device *dev);
        int (*remove) (struct device *dev);
@@ -422,6 +420,7 @@ struct device {
        void            *platform_data; /* Platform specific data, device
                                           core doesn't touch it */
        struct dev_pm_info      power;
+       struct dev_power_domain *pwr_domain;
 
 #ifdef CONFIG_NUMA
        int             numa_node;      /* NUMA node this device is close to */
@@ -441,9 +440,9 @@ struct device {
                                             override */
        /* arch specific additions */
        struct dev_archdata     archdata;
-#ifdef CONFIG_OF
-       struct device_node      *of_node;
-#endif
+
+       struct device_node      *of_node; /* associated device tree node */
+       const struct of_device_id *of_match; /* matching of_device_id from driver */
 
        dev_t                   devt;   /* dev_t, creates the sysfs "dev" */
 
@@ -634,8 +633,12 @@ static inline int devtmpfs_mount(const char *mountpoint) { return 0; }
 /* drivers/base/power/shutdown.c */
 extern void device_shutdown(void);
 
+#ifndef CONFIG_ARCH_NO_SYSDEV_OPS
 /* drivers/base/sys.c */
 extern void sysdev_shutdown(void);
+#else
+static inline void sysdev_shutdown(void) { }
+#endif
 
 /* debugging and troubleshooting/diagnostic helpers. */
 extern const char *dev_driver_string(const struct device *dev);