diff options
| author | Suman Anna <s-anna@ti.com> | 2013-03-12 18:55:29 -0400 |
|---|---|---|
| committer | Suman Anna <s-anna@ti.com> | 2013-06-11 12:41:51 -0400 |
| commit | c869c75c16b3d1ffcf64fb2fd63ba0c4a369071c (patch) | |
| tree | 02be072bd60241b604e2295addf78e817c47e3ca | |
| parent | fe32c1f6024e357f586b1d666237cab80a1215ce (diff) | |
mailbox/omap: move the OMAP mailbox framework to drivers
The mailbox hardware (in OMAP) uses a queued mailbox interrupt
mechanism that provides a communication channel between processors
through a set of registers and their associated interrupt signals
by sending and receiving messages.
The OMAP mailbox framework/driver code is moved to be under
drivers/mailbox, in preparation for adapting to a common mailbox
driver framework. This allows the build for OMAP mailbox to be
enabled (it was disabled during the multi-platform support).
As part of the migration from plat and mach code:
- Kconfig symbols have been renamed to build OMAP1 or OMAP2+ drivers.
- mailbox.h under plat-omap/plat/include has been split into a public
and private header files. The public header has only the API related
functions and types.
- The module name mailbox.ko from plat-omap is changed to
omap-mailbox.ko
- The module name mailbox_mach.ko from mach-omapX is changed as
mailbox_omap1.ko for OMAP1
mailbox_omap2.ko for OMAP2+
Cc: Tony Lindgren <tony@atomide.com>
[gregkh@linuxfoundation.org: ack for staging part]
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Omar Ramirez Luna <omar.ramirez@copitl.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
| -rw-r--r-- | arch/arm/configs/omap1_defconfig | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap1/Makefile | 4 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/Makefile | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/devices.c | 4 | ||||
| -rw-r--r-- | arch/arm/plat-omap/Kconfig | 16 | ||||
| -rw-r--r-- | arch/arm/plat-omap/Makefile | 3 | ||||
| -rw-r--r-- | drivers/mailbox/Kconfig | 34 | ||||
| -rw-r--r-- | drivers/mailbox/Makefile | 6 | ||||
| -rw-r--r-- | drivers/mailbox/mailbox-omap1.c (renamed from arch/arm/mach-omap1/mailbox.c) | 3 | ||||
| -rw-r--r-- | drivers/mailbox/mailbox-omap2.c (renamed from arch/arm/mach-omap2/mailbox.c) | 8 | ||||
| -rw-r--r-- | drivers/mailbox/omap-mailbox.c (renamed from arch/arm/plat-omap/mailbox.c) | 36 | ||||
| -rw-r--r-- | drivers/mailbox/omap-mbox.h (renamed from arch/arm/plat-omap/include/plat/mailbox.h) | 68 | ||||
| -rw-r--r-- | drivers/remoteproc/Kconfig | 3 | ||||
| -rw-r--r-- | drivers/remoteproc/omap_remoteproc.c | 2 | ||||
| -rw-r--r-- | drivers/staging/tidspbridge/Kconfig | 3 | ||||
| -rw-r--r-- | drivers/staging/tidspbridge/include/dspbridge/host_os.h | 2 | ||||
| -rw-r--r-- | include/linux/omap-mailbox.h | 29 |
17 files changed, 135 insertions, 92 deletions
diff --git a/arch/arm/configs/omap1_defconfig b/arch/arm/configs/omap1_defconfig index 9940f7b4e438..d74edbad18fc 100644 --- a/arch/arm/configs/omap1_defconfig +++ b/arch/arm/configs/omap1_defconfig | |||
| @@ -26,7 +26,8 @@ CONFIG_ARCH_OMAP=y | |||
| 26 | CONFIG_ARCH_OMAP1=y | 26 | CONFIG_ARCH_OMAP1=y |
| 27 | CONFIG_OMAP_RESET_CLOCKS=y | 27 | CONFIG_OMAP_RESET_CLOCKS=y |
| 28 | # CONFIG_OMAP_MUX is not set | 28 | # CONFIG_OMAP_MUX is not set |
| 29 | CONFIG_OMAP_MBOX_FWK=y | 29 | CONFIG_MAILBOX=y |
| 30 | CONFIG_OMAP1_MBOX=y | ||
| 30 | CONFIG_OMAP_32K_TIMER=y | 31 | CONFIG_OMAP_32K_TIMER=y |
| 31 | CONFIG_OMAP_DM_TIMER=y | 32 | CONFIG_OMAP_DM_TIMER=y |
| 32 | CONFIG_ARCH_OMAP730=y | 33 | CONFIG_ARCH_OMAP730=y |
diff --git a/arch/arm/mach-omap1/Makefile b/arch/arm/mach-omap1/Makefile index 222d58c0ae76..3889b6cd211e 100644 --- a/arch/arm/mach-omap1/Makefile +++ b/arch/arm/mach-omap1/Makefile | |||
| @@ -19,10 +19,6 @@ obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o | |||
| 19 | # Power Management | 19 | # Power Management |
| 20 | obj-$(CONFIG_PM) += pm.o sleep.o | 20 | obj-$(CONFIG_PM) += pm.o sleep.o |
| 21 | 21 | ||
| 22 | # DSP | ||
| 23 | obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox_mach.o | ||
| 24 | mailbox_mach-objs := mailbox.o | ||
| 25 | |||
| 26 | i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o | 22 | i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o |
| 27 | obj-y += $(i2c-omap-m) $(i2c-omap-y) | 23 | obj-y += $(i2c-omap-m) $(i2c-omap-y) |
| 28 | 24 | ||
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 55a9d6777683..f2d19af051eb 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
| @@ -203,9 +203,6 @@ obj-$(CONFIG_ARCH_OMAP4) += omap_hwmod_44xx_data.o | |||
| 203 | obj-$(CONFIG_OMAP3_EMU) += emu.o | 203 | obj-$(CONFIG_OMAP3_EMU) += emu.o |
| 204 | obj-$(CONFIG_HW_PERF_EVENTS) += pmu.o | 204 | obj-$(CONFIG_HW_PERF_EVENTS) += pmu.o |
| 205 | 205 | ||
| 206 | obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox_mach.o | ||
| 207 | mailbox_mach-objs := mailbox.o | ||
| 208 | |||
| 209 | iommu-$(CONFIG_OMAP_IOMMU) := omap-iommu.o | 206 | iommu-$(CONFIG_OMAP_IOMMU) := omap-iommu.o |
| 210 | obj-y += $(iommu-m) $(iommu-y) | 207 | obj-y += $(iommu-m) $(iommu-y) |
| 211 | 208 | ||
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 4c97a86115e6..73762accd128 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
| @@ -328,7 +328,7 @@ int __init omap4_keyboard_init(struct omap4_keypad_platform_data | |||
| 328 | return 0; | 328 | return 0; |
| 329 | } | 329 | } |
| 330 | 330 | ||
| 331 | #if defined(CONFIG_OMAP_MBOX_FWK) || defined(CONFIG_OMAP_MBOX_FWK_MODULE) | 331 | #if defined(CONFIG_OMAP2PLUS_MBOX) || defined(CONFIG_OMAP2PLUS_MBOX_MODULE) |
| 332 | static inline void __init omap_init_mbox(void) | 332 | static inline void __init omap_init_mbox(void) |
| 333 | { | 333 | { |
| 334 | struct omap_hwmod *oh; | 334 | struct omap_hwmod *oh; |
| @@ -352,7 +352,7 @@ static inline void __init omap_init_mbox(void) | |||
| 352 | } | 352 | } |
| 353 | #else | 353 | #else |
| 354 | static inline void omap_init_mbox(void) { } | 354 | static inline void omap_init_mbox(void) { } |
| 355 | #endif /* CONFIG_OMAP_MBOX_FWK */ | 355 | #endif /* CONFIG_OMAP2PLUS_MBOX */ |
| 356 | 356 | ||
| 357 | static inline void omap_init_sti(void) {} | 357 | static inline void omap_init_sti(void) {} |
| 358 | 358 | ||
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig index ce66eb9be481..f82bae2171eb 100644 --- a/arch/arm/plat-omap/Kconfig +++ b/arch/arm/plat-omap/Kconfig | |||
| @@ -86,22 +86,6 @@ config OMAP_MUX_WARNINGS | |||
| 86 | to change the pin multiplexing setup. When there are no warnings | 86 | to change the pin multiplexing setup. When there are no warnings |
| 87 | printed, it's safe to deselect OMAP_MUX for your product. | 87 | printed, it's safe to deselect OMAP_MUX for your product. |
| 88 | 88 | ||
| 89 | config OMAP_MBOX_FWK | ||
| 90 | tristate "Mailbox framework support" | ||
| 91 | depends on ARCH_OMAP && !ARCH_MULTIPLATFORM | ||
| 92 | help | ||
| 93 | Say Y here if you want to use OMAP Mailbox framework support for | ||
| 94 | DSP, IVA1.0 and IVA2 in OMAP1/2/3. | ||
| 95 | |||
| 96 | config OMAP_MBOX_KFIFO_SIZE | ||
| 97 | int "Mailbox kfifo default buffer size (bytes)" | ||
| 98 | depends on OMAP_MBOX_FWK | ||
| 99 | default 256 | ||
| 100 | help | ||
| 101 | Specify the default size of mailbox's kfifo buffers (bytes). | ||
| 102 | This can also be changed at runtime (via the mbox_kfifo_size | ||
| 103 | module parameter). | ||
| 104 | |||
| 105 | config OMAP_IOMMU_IVA2 | 89 | config OMAP_IOMMU_IVA2 |
| 106 | bool | 90 | bool |
| 107 | 91 | ||
diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile index 31199417b56a..0b01b68fd033 100644 --- a/arch/arm/plat-omap/Makefile +++ b/arch/arm/plat-omap/Makefile | |||
| @@ -17,6 +17,3 @@ obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o | |||
| 17 | i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o | 17 | i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o |
| 18 | obj-y += $(i2c-omap-m) $(i2c-omap-y) | 18 | obj-y += $(i2c-omap-m) $(i2c-omap-y) |
| 19 | 19 | ||
| 20 | # OMAP mailbox framework | ||
| 21 | obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o | ||
| 22 | |||
diff --git a/drivers/mailbox/Kconfig b/drivers/mailbox/Kconfig index 9545c9f03809..c8b5c13bcd05 100644 --- a/drivers/mailbox/Kconfig +++ b/drivers/mailbox/Kconfig | |||
| @@ -16,4 +16,38 @@ config PL320_MBOX | |||
| 16 | Management Engine, primarily for cpufreq. Say Y here if you want | 16 | Management Engine, primarily for cpufreq. Say Y here if you want |
| 17 | to use the PL320 IPCM support. | 17 | to use the PL320 IPCM support. |
| 18 | 18 | ||
| 19 | config OMAP_MBOX | ||
| 20 | tristate | ||
| 21 | help | ||
| 22 | This option is selected by any OMAP architecture specific mailbox | ||
| 23 | driver such as CONFIG_OMAP1_MBOX or CONFIG_OMAP2PLUS_MBOX. This | ||
| 24 | enables the common OMAP mailbox framework code. | ||
| 25 | |||
| 26 | config OMAP1_MBOX | ||
| 27 | tristate "OMAP1 Mailbox framework support" | ||
| 28 | depends on ARCH_OMAP1 | ||
| 29 | select OMAP_MBOX | ||
| 30 | help | ||
| 31 | Mailbox implementation for OMAP chips with hardware for | ||
| 32 | interprocessor communication involving DSP in OMAP1. Say Y here | ||
| 33 | if you want to use OMAP1 Mailbox framework support. | ||
| 34 | |||
| 35 | config OMAP2PLUS_MBOX | ||
| 36 | tristate "OMAP2+ Mailbox framework support" | ||
| 37 | depends on ARCH_OMAP2PLUS | ||
| 38 | select OMAP_MBOX | ||
| 39 | help | ||
| 40 | Mailbox implementation for OMAP family chips with hardware for | ||
| 41 | interprocessor communication involving DSP, IVA1.0 and IVA2 in | ||
| 42 | OMAP2/3; or IPU, IVA HD and DSP in OMAP4/5. Say Y here if you | ||
| 43 | want to use OMAP2+ Mailbox framework support. | ||
| 44 | |||
| 45 | config OMAP_MBOX_KFIFO_SIZE | ||
| 46 | int "Mailbox kfifo default buffer size (bytes)" | ||
| 47 | depends on OMAP2PLUS_MBOX || OMAP1_MBOX | ||
| 48 | default 256 | ||
| 49 | help | ||
| 50 | Specify the default size of mailbox's kfifo buffers (bytes). | ||
| 51 | This can also be changed at runtime (via the mbox_kfifo_size | ||
| 52 | module parameter). | ||
| 19 | endif | 53 | endif |
diff --git a/drivers/mailbox/Makefile b/drivers/mailbox/Makefile index 543ad6a79505..e0facb34084a 100644 --- a/drivers/mailbox/Makefile +++ b/drivers/mailbox/Makefile | |||
| @@ -1 +1,7 @@ | |||
| 1 | obj-$(CONFIG_PL320_MBOX) += pl320-ipc.o | 1 | obj-$(CONFIG_PL320_MBOX) += pl320-ipc.o |
| 2 | |||
| 3 | obj-$(CONFIG_OMAP_MBOX) += omap-mailbox.o | ||
| 4 | obj-$(CONFIG_OMAP1_MBOX) += mailbox_omap1.o | ||
| 5 | mailbox_omap1-objs := mailbox-omap1.o | ||
| 6 | obj-$(CONFIG_OMAP2PLUS_MBOX) += mailbox_omap2.o | ||
| 7 | mailbox_omap2-objs := mailbox-omap2.o | ||
diff --git a/arch/arm/mach-omap1/mailbox.c b/drivers/mailbox/mailbox-omap1.c index 7246a5258292..9001b7633f10 100644 --- a/arch/arm/mach-omap1/mailbox.c +++ b/drivers/mailbox/mailbox-omap1.c | |||
| @@ -13,7 +13,8 @@ | |||
| 13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
| 14 | #include <linux/platform_device.h> | ||
