linux_dsm_epyc7002/arch/arm
Paul Walmsley bc05244e65 ARM: OMAP4: hwmod data: do not enable or reset the McPDM during kernel init
Resolve this kernel boot message:

omap_hwmod: mcpdm: cannot be enabled for reset (3)

The McPDM on OMAP4 can only receive its functional clock from an
off-chip source.  This source is not guaranteed to be present on the
board, and when present, it is controlled by I2C.  This would
introduce a board dependency to the early hwmod code which it was not
designed to handle.  Also, neither the driver for this off-chip clock
provider nor the I2C code is available early in boot when the hwmod
code is attempting to enable and reset IP blocks.  This effectively
makes it impossible to enable and reset this device during hwmod init.

At its core, this patch is a workaround for an OMAP hardware problem.
It should be possible to configure the OMAP to provide any IP block's
functional clock from an on-chip source.  (This is true for almost
every IP block on the chip.  As far as I know, McPDM is the only
exception.)  If the kernel cannot reset and configure IP blocks, it
cannot guarantee a sane SoC state.  Relying on an optional off-chip
clock also creates a board dependency which is beyond the scope of the
early hwmod code.

This patch works around the issue by marking the McPDM hwmod record
with the HWMOD_EXT_OPT_MAIN_CLK flag.  This prevents the hwmod
code from touching the device early during boot.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Péter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Benoît Cousson <b-cousson@ti.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
2012-10-31 05:02:31 -06:00
..
boot arm-soc: fixes for v3.7-rc3 2012-10-28 11:12:38 -07:00
common ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
configs ARM: versatile: fix versatile_defconfig 2012-10-27 17:46:56 +02:00
crypto arm/crypto: Add optimized AES and SHA1 routines 2012-09-07 04:17:02 +08:00
include arm-soc: fixes for v3.7-rc3 2012-10-28 11:12:38 -07:00
kernel Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2012-10-25 15:59:34 -07:00
lib ARM: export default read_current_timer 2012-10-09 20:24:36 +02:00
mach-at91 ARM: at91: fix at91x40 build 2012-10-27 17:46:48 +02:00
mach-bcm2835 ARM: dtb: move all dtb targets to common Makefile 2012-09-20 22:58:17 -07:00
mach-clps711x ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-cns3xxx
mach-davinci ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-dove ARM: dove: Add crypto engine to DT 2012-10-17 17:20:01 +00:00
mach-ebsa110 ARM: soc: driver specific changes 2012-10-01 18:46:13 -07:00
mach-ep93xx ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
mach-exynos ARM: EXYNOS: Set .smp field of machine descriptor for exynos4-dt 2012-10-22 08:16:44 +09:00
mach-footbridge ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-gemini ARM: gemini: fix the gemini build 2012-09-04 22:17:34 -07:00
mach-h720x ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-highbank Merge branch 'for-v3.7' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-10-02 19:13:12 -07:00
mach-imx Revert "ARM i.MX25: Fix PWM per clock lookups" 2012-10-27 17:46:56 +02:00
mach-integrator ARM: integrator: use __iomem pointers for MMIO, part 2 2012-10-09 17:27:33 +02:00
mach-iop13xx Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
mach-iop32x Merge branch 'cleanup/__iomem' into next/cleanup 2012-09-22 10:24:29 -07:00
mach-iop33x
mach-ixp4xx ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-kirkwood ARM: Kirkwood: fix disabling CACHE_FEROCEON_L2 2012-10-18 17:04:24 +00:00
mach-ks8695 Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
mach-l7200/include/mach
mach-lpc32xx ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
mach-mmp ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-msm ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-mv78xx0 Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
mach-mvebu ARM: mvebu: fix build breaks from multi-platform conversion 2012-09-28 22:27:07 +02:00
mach-mxs ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
mach-netx ARM: netx: move platform_data definitions 2012-09-14 11:17:36 +02:00
mach-nomadik ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-omap1 ASoC: Fixes for v3.7 2012-10-17 14:09:15 +02:00
mach-omap2 ARM: OMAP4: hwmod data: do not enable or reset the McPDM during kernel init 2012-10-31 05:02:31 -06:00
mach-orion5x ARM: soc: late platform updates 2012-10-07 20:55:16 +09:00
mach-picoxcell ARM: initial multiplatform support 2012-09-14 09:22:06 -05:00
mach-prima2 pinctrl: sirf: remove sirfsoc_gpio_set_pull function 2012-10-15 09:09:27 +02:00
mach-pxa ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-realview ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-rpc ARM: rpc: check device_register return code in ecard_probe 2012-10-07 10:33:09 +02:00
mach-s3c24xx Merge branch 'v3.7-samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes 2012-10-26 14:45:06 +02:00
mach-s3c64xx ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-s3c2410
mach-s3c2412 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-s3c2440 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-s5p64x0 ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-10-17 16:47:32 +09:00
mach-s5pc100 ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-10-17 16:47:32 +09:00
mach-s5pv210 ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-10-17 16:47:32 +09:00
mach-sa1100 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-shark Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
mach-shmobile ARM: shmobile: r8a7779: I/O address abuse cleanup 2012-10-19 15:39:38 +09:00
mach-socfpga ARM: initial multiplatform support 2012-09-14 09:22:06 -05:00
mach-spear3xx ARM: move all dtb targets out of Makefile.boot 2012-09-14 09:22:04 -05:00
mach-spear6xx ARM: move all dtb targets out of Makefile.boot 2012-09-14 09:22:04 -05:00
mach-spear13xx ARM: SPEAr: Remove unused empty files 2012-10-25 16:34:18 +02:00
mach-tegra ARM: tegra: add tegra_timer clock 2012-10-16 11:15:05 -06:00
mach-u300 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-ux500 ARM: ux500: Fix build error relating to IRQCHIP_SKIP_SET_WAKE 2012-10-25 08:43:49 +01:00
mach-versatile ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-vexpress Features: 2012-10-07 07:13:01 +09:00
mach-vt8500 arm: vt8500: Fix build warning in uncompress.h 2012-10-07 14:50:06 -07:00
mach-w90x900 ARM: w90x900: move platform_data definitions 2012-09-14 11:18:59 +02:00
mach-zynq
mm Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2012-10-25 15:59:34 -07:00
net
nwfpe
oprofile
plat-iop Bunch of perf updates for the ARM backend that pave the way for 2012-09-04 22:12:41 -07:00
plat-mxc ARM i.MX fixes for 3.7-rc 2012-10-25 15:57:40 +02:00
plat-nomadik ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
plat-omap ARM: OMAP2+: hwmod: add flag to prevent hwmod code from touching IP block during init 2012-10-31 05:02:31 -06:00
plat-orion Merge branch 'samsung_platform_data' into staging/for_v3.7 2012-10-05 22:32:05 -03:00
plat-pxa ARM: pxa: move platform_data definitions 2012-09-14 11:18:10 +02:00
plat-s3c24xx ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
plat-samsung ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-10-17 16:47:32 +09:00
plat-spear ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
plat-versatile Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-10-07 21:20:57 +09:00
tools ARM: be really quiet when building with 'make -s' 2012-10-09 20:29:05 +02:00
vfp
xen xen: grant: use xen_pfn_t type for frame_list. 2012-10-19 15:17:55 -04:00
Kconfig Merge tag 'fixes-for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc into fixes 2012-10-22 22:56:09 +01:00
Kconfig-nommu
Kconfig.debug ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
Makefile ARM: pass -marm to gcc by default for both C and assembler 2012-10-09 20:29:05 +02:00