diff options
| author | Magnus Damm <damm@igel.co.jp> | 2009-07-08 07:21:31 -0400 |
|---|---|---|
| committer | Rafael J. Wysocki <rjw@sisk.pl> | 2009-07-21 18:28:38 -0400 |
| commit | d7aacaddcac3971e33cf52d7e610c06696cb347f (patch) | |
| tree | 2f34e6b48f5cc1224bdefd721bba108c43aad34b | |
| parent | aea1f7964ae6cba5eb419a958956deb9016b3341 (diff) | |
Driver Core: Add platform device arch data V3
Allow architecture specific data in struct platform_device V3.
With this patch struct pdev_archdata is added to struct
platform_device, similar to struct dev_archdata in found in
struct device. Useful for architecture code that needs to
keep extra data associated with each platform device.
Struct pdev_archdata is different from dev.platform_data, the
convention is that dev.platform_data points to driver-specific
data. It may or may not be required by the driver. The format
of this depends on driver but is the same across architectures.
The structure pdev_archdata is a place for architecture specific
data. This data is handled by architecture specific code (for
example runtime PM), and since it is architecture specific it
should _never_ be touched by device driver code. Exactly like
struct dev_archdata but for platform devices.
[rjw: This change is for power management mostly and that's why it
goes through the suspend tree.]
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
| -rw-r--r-- | arch/arm/include/asm/device.h | 3 | ||||
| -rw-r--r-- | arch/ia64/include/asm/device.h | 3 | ||||
| -rw-r--r-- | arch/microblaze/include/asm/device.h | 3 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/device.h | 3 | ||||
| -rw-r--r-- | arch/sparc/include/asm/device.h | 3 | ||||
| -rw-r--r-- | arch/x86/include/asm/device.h | 3 | ||||
| -rw-r--r-- | include/asm-generic/device.h | 3 | ||||
| -rw-r--r-- | include/linux/platform_device.h | 3 |
8 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/include/asm/device.h b/arch/arm/include/asm/device.h index c61642b40603..9f390ce335cb 100644 --- a/arch/arm/include/asm/device.h +++ b/arch/arm/include/asm/device.h | |||
| @@ -12,4 +12,7 @@ struct dev_archdata { | |||
| 12 | #endif | 12 | #endif |
| 13 | }; | 13 | }; |
| 14 | 14 | ||
| 15 | struct pdev_archdata { | ||
| 16 | }; | ||
| 17 | |||
| 15 | #endif | 18 | #endif |
diff --git a/arch/ia64/include/asm/device.h b/arch/ia64/include/asm/device.h index 41ab85d66f33..d66d446b127c 100644 --- a/arch/ia64/include/asm/device.h +++ b/arch/ia64/include/asm/device.h | |||
| @@ -15,4 +15,7 @@ struct dev_archdata { | |||
| 15 | #endif | 15 | #endif |
| 16 | }; | 16 | }; |
| 17 | 17 | ||
| 18 | struct pdev_archdata { | ||
| 19 | }; | ||
| 20 | |||
| 18 | #endif /* _ASM_IA64_DEVICE_H */ | 21 | #endif /* _ASM_IA64_DEVICE_H */ |
diff --git a/arch/microblaze/include/asm/device.h b/arch/microblaze/include/asm/device.h index c042830793ed..30286db27c1c 100644 --- a/arch/microblaze/include/asm/device.h +++ b/arch/microblaze/include/asm/device.h | |||
| @@ -16,6 +16,9 @@ struct dev_archdata { | |||
| 16 | struct device_node *of_node; | 16 | struct device_node *of_node; |
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | struct pdev_archdata { | ||
| 20 | }; | ||
| 21 | |||
| 19 | #endif /* _ASM_MICROBLAZE_DEVICE_H */ | 22 | #endif /* _ASM_MICROBLAZE_DEVICE_H */ |
| 20 | 23 | ||
| 21 | 24 | ||
diff --git a/arch/powerpc/include/asm/device.h b/arch/powerpc/include/asm/device.h index 7d2277cef09a..e3e06e0f7fc0 100644 --- a/arch/powerpc/include/asm/device.h +++ b/arch/powerpc/include/asm/device.h | |||
| @@ -30,4 +30,7 @@ dev_archdata_get_node(const struct dev_archdata *ad) | |||
| 30 | return ad->of_node; | 30 | return ad->of_node; |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | struct pdev_archdata { | ||
| 34 | }; | ||
| 35 | |||
| 33 | #endif /* _ASM_POWERPC_DEVICE_H */ | 36 | #endif /* _ASM_POWERPC_DEVICE_H */ |
diff --git a/arch/sparc/include/asm/device.h b/arch/sparc/include/asm/device.h index 3702e087df2c..f3b85b6b0b76 100644 --- a/arch/sparc/include/asm/device.h +++ b/arch/sparc/include/asm/device.h | |||
| @@ -32,4 +32,7 @@ dev_archdata_get_node(const struct dev_archdata *ad) | |||
| 32 | return ad->prom_node; | 32 | return ad->prom_node; |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | struct pdev_archdata { | ||
| 36 | }; | ||
| 37 | |||
| 35 | #endif /* _ASM_SPARC_DEVICE_H */ | 38 | #endif /* _ASM_SPARC_DEVICE_H */ |
diff --git a/arch/x86/include/asm/device.h b/arch/x86/include/asm/device.h index 4994a20acbcb..cee34e9ca45b 100644 --- a/arch/x86/include/asm/device.h +++ b/arch/x86/include/asm/device.h | |||
| @@ -13,4 +13,7 @@ struct dma_map_ops *dma_ops; | |||
| 13 | #endif | 13 | #endif |
| 14 | }; | 14 | }; |
| 15 | 15 | ||
| 16 | struct pdev_archdata { | ||
| 17 | }; | ||
| 18 | |||
| 16 | #endif /* _ASM_X86_DEVICE_H */ | 19 | #endif /* _ASM_X86_DEVICE_H */ |
diff --git a/include/asm-generic/device.h b/include/asm-generic/device.h index c17c9600f220..d7c76bba640d 100644 --- a/include/asm-generic/device.h +++ b/include/asm-generic/device.h | |||
| @@ -9,4 +9,7 @@ | |||
| 9 | struct dev_archdata { | 9 | struct dev_archdata { |
| 10 | }; | 10 | }; |
| 11 | 11 | ||
| 12 | struct pdev_archdata { | ||
| 13 | }; | ||
| 14 | |||
| 12 | #endif /* _ASM_GENERIC_DEVICE_H */ | 15 | #endif /* _ASM_GENERIC_DEVICE_H */ |
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index 8dc5123b6305..672a69849735 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h | |||
| @@ -22,6 +22,9 @@ struct platform_device { | |||
| 22 | struct resource * resource; | 22 | struct resource * resource; |
| 23 | 23 | ||
| 24 | struct platform_device_id *id_entry; | 24 | struct platform_device_id *id_entry; |
| 25 | |||
| 26 | /* arch specific additions */ | ||
| 27 | struct pdev_archdata archdata; | ||
| 25 | }; | 28 | }; |
| 26 | 29 | ||
| 27 | #define platform_get_device_id(pdev) ((pdev)->id_entry) | 30 | #define platform_get_device_id(pdev) ((pdev)->id_entry) |
