[PATCH] Driver Core: Add platform device arch data V2

From: Magnus Damm
Date: Mon Jun 01 2009 - 06:19:37 EST


From: Magnus Damm <damm@xxxxxxxxxx>

Allow architecture specific data in struct platform_device V2.
The structure pdev_archdata is added to struct platform_device,
similar to struct dev_archdata in struct device.

Useful for architecture code that needs to keep extra data
associated with each platform device. This data shall not
be accessed by platform drivers, only architecture code.

Needed for platform device runtime PM.

Signed-off-by: Magnus Damm <damm@xxxxxxxxxx>
---

Applies to next-20090529.

Changes since V1:
- post to lkml, keep linux-pm cc:ed
- add struct pdev_archdata to asm-generic
- add struct pdev_archdata to non-generic architectures
- drop Kconfig bits

arch/arm/include/asm/device.h | 3 +++
arch/ia64/include/asm/device.h | 3 +++
arch/microblaze/include/asm/device.h | 3 +++
arch/powerpc/include/asm/device.h | 3 +++
arch/sparc/include/asm/device.h | 3 +++
arch/x86/include/asm/device.h | 3 +++
include/asm-generic/device.h | 3 +++
include/linux/platform_device.h | 3 +++
8 files changed, 24 insertions(+)

--- 0001/arch/arm/include/asm/device.h
+++ work/arch/arm/include/asm/device.h 2009-06-01 12:19:51.000000000 +0900
@@ -12,4 +12,7 @@ struct dev_archdata {
#endif
};

+struct pdev_archdata {
+};
+
#endif
--- 0001/arch/ia64/include/asm/device.h
+++ work/arch/ia64/include/asm/device.h 2009-06-01 12:18:11.000000000 +0900
@@ -15,4 +15,7 @@ struct dev_archdata {
#endif
};

+struct pdev_archdata {
+};
+
#endif /* _ASM_IA64_DEVICE_H */
--- 0001/arch/microblaze/include/asm/device.h
+++ work/arch/microblaze/include/asm/device.h 2009-06-01 12:19:32.000000000 +0900
@@ -16,6 +16,9 @@ struct dev_archdata {
struct device_node *of_node;
};

+struct pdev_archdata {
+};
+
#endif /* _ASM_MICROBLAZE_DEVICE_H */


--- 0001/arch/powerpc/include/asm/device.h
+++ work/arch/powerpc/include/asm/device.h 2009-06-01 12:16:28.000000000 +0900
@@ -30,4 +30,7 @@ dev_archdata_get_node(const struct dev_a
return ad->of_node;
}

+struct pdev_archdata {
+};
+
#endif /* _ASM_POWERPC_DEVICE_H */
--- 0001/arch/sparc/include/asm/device.h
+++ work/arch/sparc/include/asm/device.h 2009-06-01 12:18:57.000000000 +0900
@@ -32,4 +32,7 @@ dev_archdata_get_node(const struct dev_a
return ad->prom_node;
}

+struct pdev_archdata {
+};
+
#endif /* _ASM_SPARC_DEVICE_H */
--- 0001/arch/x86/include/asm/device.h
+++ work/arch/x86/include/asm/device.h 2009-06-01 12:17:28.000000000 +0900
@@ -13,4 +13,7 @@ struct dma_map_ops *dma_ops;
#endif
};

+struct pdev_archdata {
+};
+
#endif /* _ASM_X86_DEVICE_H */
--- 0001/include/asm-generic/device.h
+++ work/include/asm-generic/device.h 2009-06-01 12:16:20.000000000 +0900
@@ -9,4 +9,7 @@
struct dev_archdata {
};

+struct pdev_archdata {
+};
+
#endif /* _ASM_GENERIC_DEVICE_H */
--- 0001/include/linux/platform_device.h
+++ work/include/linux/platform_device.h 2009-06-01 12:14:43.000000000 +0900
@@ -22,6 +22,9 @@ struct platform_device {
struct resource * resource;

struct platform_device_id *id_entry;
+
+ /* arch specific additions */
+ struct pdev_archdata archdata;
};

#define platform_get_device_id(pdev) ((pdev)->id_entry)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/