upgrade to 3.3, enable framebuffer
SVN-Revision: 31576
This commit is contained in:
		| @@ -11,7 +11,8 @@ BOARD:=omap4 | |||||||
| BOARDNAME:=TI OMAP4 | BOARDNAME:=TI OMAP4 | ||||||
| FEATURES:=usb targz audio display | FEATURES:=usb targz audio display | ||||||
|  |  | ||||||
| LINUX_VERSION:=3.2.16 | LINUX_VERSION:=3.3.4 | ||||||
|  |  | ||||||
| CFLAGS:=-Os -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp | CFLAGS:=-Os -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp | ||||||
| MAINTAINER:=Imre Kaloz <kaloz@openwrt.org> | MAINTAINER:=Imre Kaloz <kaloz@openwrt.org> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,9 +1,12 @@ | |||||||
| CONFIG_ALIGNMENT_TRAP=y | CONFIG_ALIGNMENT_TRAP=y | ||||||
| # CONFIG_APM_EMULATION is not set | # CONFIG_APM_EMULATION is not set | ||||||
|  | CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y | ||||||
|  | CONFIG_ARCH_HAS_BARRIERS=y | ||||||
| CONFIG_ARCH_HAS_CPUFREQ=y | CONFIG_ARCH_HAS_CPUFREQ=y | ||||||
| CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | ||||||
| CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y | CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y | ||||||
| CONFIG_ARCH_HAS_OPP=y | CONFIG_ARCH_HAS_OPP=y | ||||||
|  | CONFIG_ARCH_NR_GPIO=0 | ||||||
| CONFIG_ARCH_OMAP=y | CONFIG_ARCH_OMAP=y | ||||||
| # CONFIG_ARCH_OMAP1 is not set | # CONFIG_ARCH_OMAP1 is not set | ||||||
| # CONFIG_ARCH_OMAP2 is not set | # CONFIG_ARCH_OMAP2 is not set | ||||||
| @@ -11,6 +14,7 @@ CONFIG_ARCH_OMAP2PLUS=y | |||||||
| CONFIG_ARCH_OMAP2PLUS_TYPICAL=y | CONFIG_ARCH_OMAP2PLUS_TYPICAL=y | ||||||
| # CONFIG_ARCH_OMAP3 is not set | # CONFIG_ARCH_OMAP3 is not set | ||||||
| CONFIG_ARCH_OMAP4=y | CONFIG_ARCH_OMAP4=y | ||||||
|  | # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set | ||||||
| CONFIG_ARCH_REQUIRE_GPIOLIB=y | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||||||
| # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set | ||||||
| # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set | ||||||
| @@ -31,7 +35,10 @@ CONFIG_ARM_ERRATA_720789=y | |||||||
| # CONFIG_ARM_ERRATA_754327 is not set | # CONFIG_ARM_ERRATA_754327 is not set | ||||||
| # CONFIG_ARM_ERRATA_764369 is not set | # CONFIG_ARM_ERRATA_764369 is not set | ||||||
| CONFIG_ARM_GIC=y | CONFIG_ARM_GIC=y | ||||||
| CONFIG_ARM_L1_CACHE_SHIFT=5 | CONFIG_ARM_L1_CACHE_SHIFT=6 | ||||||
|  | CONFIG_ARM_L1_CACHE_SHIFT_6=y | ||||||
|  | # CONFIG_ARM_LPAE is not set | ||||||
|  | CONFIG_ARM_NR_BANKS=8 | ||||||
| CONFIG_ARM_PATCH_PHYS_VIRT=y | CONFIG_ARM_PATCH_PHYS_VIRT=y | ||||||
| CONFIG_ARM_THUMB=y | CONFIG_ARM_THUMB=y | ||||||
| # CONFIG_ARM_THUMBEE is not set | # CONFIG_ARM_THUMBEE is not set | ||||||
| @@ -51,6 +58,7 @@ CONFIG_CFG80211_DEFAULT_PS=y | |||||||
| CONFIG_CFG80211_WEXT=y | CONFIG_CFG80211_WEXT=y | ||||||
| CONFIG_CLKDEV_LOOKUP=y | CONFIG_CLKDEV_LOOKUP=y | ||||||
| CONFIG_CLKSRC_MMIO=y | CONFIG_CLKSRC_MMIO=y | ||||||
|  | CONFIG_CONSOLE_TRANSLATIONS=y | ||||||
| CONFIG_CPU_32v6K=y | CONFIG_CPU_32v6K=y | ||||||
| CONFIG_CPU_32v7=y | CONFIG_CPU_32v7=y | ||||||
| CONFIG_CPU_ABRT_EV7=y | CONFIG_CPU_ABRT_EV7=y | ||||||
| @@ -75,17 +83,39 @@ CONFIG_CRYPTO_ARC4=m | |||||||
| # CONFIG_DEBUG_HIGHMEM is not set | # CONFIG_DEBUG_HIGHMEM is not set | ||||||
| # CONFIG_DEBUG_USER is not set | # CONFIG_DEBUG_USER is not set | ||||||
| CONFIG_DECOMPRESS_LZMA=y | CONFIG_DECOMPRESS_LZMA=y | ||||||
|  | CONFIG_DUMMY_CONSOLE=y | ||||||
| # CONFIG_DW_WATCHDOG is not set | # CONFIG_DW_WATCHDOG is not set | ||||||
| CONFIG_EXT4_FS=y | CONFIG_EXT4_FS=y | ||||||
|  | CONFIG_FB=y | ||||||
|  | CONFIG_FB_CFB_COPYAREA=y | ||||||
|  | CONFIG_FB_CFB_FILLRECT=y | ||||||
|  | CONFIG_FB_CFB_IMAGEBLIT=y | ||||||
|  | CONFIG_FB_MODE_HELPERS=y | ||||||
|  | CONFIG_FB_OMAP2=y | ||||||
|  | CONFIG_FB_OMAP2_DEBUG_SUPPORT=y | ||||||
|  | CONFIG_FB_OMAP2_NUM_FBS=3 | ||||||
|  | # CONFIG_FB_OMAP_BOOTLOADER_INIT is not set | ||||||
|  | # CONFIG_FB_SM7XX is not set | ||||||
|  | CONFIG_FB_TILEBLITTING=y | ||||||
|  | # CONFIG_FB_WMT_GE_ROPS is not set | ||||||
|  | CONFIG_FIRMWARE_EDID=y | ||||||
|  | # CONFIG_FONTS is not set | ||||||
|  | CONFIG_FONT_8x16=y | ||||||
|  | CONFIG_FONT_8x8=y | ||||||
|  | CONFIG_FRAMEBUFFER_CONSOLE=y | ||||||
|  | CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y | ||||||
|  | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||||||
| CONFIG_FRAME_POINTER=y | CONFIG_FRAME_POINTER=y | ||||||
| CONFIG_FS_MBCACHE=y | CONFIG_FS_MBCACHE=y | ||||||
| CONFIG_GENERIC_BUG=y | CONFIG_GENERIC_BUG=y | ||||||
| CONFIG_GENERIC_CLOCKEVENTS=y | CONFIG_GENERIC_CLOCKEVENTS=y | ||||||
| CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y | CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y | ||||||
| CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||||||
|  | # CONFIG_GENERIC_CPU_DEVICES is not set | ||||||
| CONFIG_GENERIC_GPIO=y | CONFIG_GENERIC_GPIO=y | ||||||
| CONFIG_GENERIC_IRQ_CHIP=y | CONFIG_GENERIC_IRQ_CHIP=y | ||||||
| CONFIG_GENERIC_IRQ_SHOW=y | CONFIG_GENERIC_IRQ_SHOW=y | ||||||
|  | CONFIG_GENERIC_PCI_IOMAP=y | ||||||
| CONFIG_GPIOLIB=y | CONFIG_GPIOLIB=y | ||||||
| CONFIG_GPIO_TWL4030=y | CONFIG_GPIO_TWL4030=y | ||||||
| CONFIG_HARDIRQS_SW_RESEND=y | CONFIG_HARDIRQS_SW_RESEND=y | ||||||
| @@ -117,9 +147,11 @@ CONFIG_HAVE_PERF_EVENTS=y | |||||||
| CONFIG_HAVE_PROC_CPU=y | CONFIG_HAVE_PROC_CPU=y | ||||||
| CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y | CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y | ||||||
| CONFIG_HAVE_SCHED_CLOCK=y | CONFIG_HAVE_SCHED_CLOCK=y | ||||||
|  | CONFIG_HAVE_SMP=y | ||||||
| CONFIG_HAVE_SPARSE_IRQ=y | CONFIG_HAVE_SPARSE_IRQ=y | ||||||
| CONFIG_HIGHMEM=y | CONFIG_HIGHMEM=y | ||||||
| # CONFIG_HIGHPTE is not set | # CONFIG_HIGHPTE is not set | ||||||
|  | CONFIG_HW_CONSOLE=y | ||||||
| CONFIG_HZ=128 | CONFIG_HZ=128 | ||||||
| CONFIG_I2C=y | CONFIG_I2C=y | ||||||
| CONFIG_I2C_BOARDINFO=y | CONFIG_I2C_BOARDINFO=y | ||||||
| @@ -127,7 +159,6 @@ CONFIG_I2C_OMAP=y | |||||||
| # CONFIG_I2C_PXA_PCI is not set | # CONFIG_I2C_PXA_PCI is not set | ||||||
| CONFIG_INITRAMFS_SOURCE="" | CONFIG_INITRAMFS_SOURCE="" | ||||||
| CONFIG_INPUT=y | CONFIG_INPUT=y | ||||||
| # CONFIG_INPUT_GPIO_BUTTONS is not set |  | ||||||
| CONFIG_INPUT_KEYBOARD=y | CONFIG_INPUT_KEYBOARD=y | ||||||
| CONFIG_INPUT_TWL4030_PWRBUTTON=y | CONFIG_INPUT_TWL4030_PWRBUTTON=y | ||||||
| # CONFIG_INPUT_TWL4030_VIBRA is not set | # CONFIG_INPUT_TWL4030_VIBRA is not set | ||||||
| @@ -160,6 +191,7 @@ CONFIG_MAC80211_RC_MINSTREL_HT=y | |||||||
| CONFIG_MACH_OMAP4_PANDA=y | CONFIG_MACH_OMAP4_PANDA=y | ||||||
| # CONFIG_MACH_OMAP_4430SDP is not set | # CONFIG_MACH_OMAP_4430SDP is not set | ||||||
| # CONFIG_MACH_OMAP_GENERIC is not set | # CONFIG_MACH_OMAP_GENERIC is not set | ||||||
|  | CONFIG_MDIO_BOARDINFO=y | ||||||
| CONFIG_MFD_OMAP_USB_HOST=y | CONFIG_MFD_OMAP_USB_HOST=y | ||||||
| # CONFIG_MFD_T7L66XB is not set | # CONFIG_MFD_T7L66XB is not set | ||||||
| # CONFIG_MFD_TWL4030_AUDIO is not set | # CONFIG_MFD_TWL4030_AUDIO is not set | ||||||
| @@ -176,6 +208,7 @@ CONFIG_MTD_DATAFLASH=y | |||||||
| # CONFIG_MTD_DATAFLASH_OTP is not set | # CONFIG_MTD_DATAFLASH_OTP is not set | ||||||
| # CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set | # CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set | ||||||
| CONFIG_MTD_PHYSMAP=y | CONFIG_MTD_PHYSMAP=y | ||||||
|  | CONFIG_MULTI_IRQ_HANDLER=y | ||||||
| CONFIG_MUTEX_SPIN_ON_OWNER=y | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||||||
| # CONFIG_MWIFIEX is not set | # CONFIG_MWIFIEX is not set | ||||||
| CONFIG_NEED_DMA_MAP_STATE=y | CONFIG_NEED_DMA_MAP_STATE=y | ||||||
| @@ -185,7 +218,20 @@ CONFIG_NEON=y | |||||||
| CONFIG_NLS=y | CONFIG_NLS=y | ||||||
| CONFIG_NO_HZ=y | CONFIG_NO_HZ=y | ||||||
| CONFIG_NR_CPUS=2 | CONFIG_NR_CPUS=2 | ||||||
| # CONFIG_OMAP2_DSS is not set | CONFIG_OMAP2_DSS=y | ||||||
|  | # CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set | ||||||
|  | CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y | ||||||
|  | CONFIG_OMAP2_DSS_DPI=y | ||||||
|  | CONFIG_OMAP2_DSS_DSI=y | ||||||
|  | # CONFIG_OMAP2_DSS_FAKE_VSYNC is not set | ||||||
|  | CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 | ||||||
|  | # CONFIG_OMAP2_DSS_RFBI is not set | ||||||
|  | CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y | ||||||
|  | # CONFIG_OMAP2_DSS_VENC is not set | ||||||
|  | CONFIG_OMAP2_VRAM=y | ||||||
|  | CONFIG_OMAP2_VRAM_SIZE=32 | ||||||
|  | CONFIG_OMAP4_DSS_HDMI=y | ||||||
|  | CONFIG_OMAP4_ERRATA_I688=y | ||||||
| CONFIG_OMAP_32K_TIMER=y | CONFIG_OMAP_32K_TIMER=y | ||||||
| CONFIG_OMAP_32K_TIMER_HZ=128 | CONFIG_OMAP_32K_TIMER_HZ=128 | ||||||
| CONFIG_OMAP_DM_TIMER=y | CONFIG_OMAP_DM_TIMER=y | ||||||
| @@ -204,6 +250,11 @@ CONFIG_OUTER_CACHE=y | |||||||
| CONFIG_OUTER_CACHE_SYNC=y | CONFIG_OUTER_CACHE_SYNC=y | ||||||
| CONFIG_PAGEFLAGS_EXTENDED=y | CONFIG_PAGEFLAGS_EXTENDED=y | ||||||
| CONFIG_PAGE_OFFSET=0xC0000000 | CONFIG_PAGE_OFFSET=0xC0000000 | ||||||
|  | CONFIG_PANEL_DVI=y | ||||||
|  | CONFIG_PANEL_GENERIC_DPI=y | ||||||
|  | # CONFIG_PANEL_LGPHILIPS_LB035Q02 is not set | ||||||
|  | # CONFIG_PANEL_PICODLP is not set | ||||||
|  | # CONFIG_PANEL_TPO_TD043MTEA1 is not set | ||||||
| # CONFIG_PCI_SYSCALL is not set | # CONFIG_PCI_SYSCALL is not set | ||||||
| CONFIG_PERF_USE_VMALLOC=y | CONFIG_PERF_USE_VMALLOC=y | ||||||
| CONFIG_PHYLIB=y | CONFIG_PHYLIB=y | ||||||
| @@ -241,6 +292,7 @@ CONFIG_REGULATOR_TWL4030=y | |||||||
| CONFIG_RFS_ACCEL=y | CONFIG_RFS_ACCEL=y | ||||||
| CONFIG_RPS=y | CONFIG_RPS=y | ||||||
| CONFIG_RTC_CLASS=y | CONFIG_RTC_CLASS=y | ||||||
|  | # CONFIG_RTC_DRV_PT7C4338 is not set | ||||||
| CONFIG_RTC_DRV_TWL4030=y | CONFIG_RTC_DRV_TWL4030=y | ||||||
| # CONFIG_RTL8192CU is not set | # CONFIG_RTL8192CU is not set | ||||||
| # CONFIG_SCSI_DMA is not set | # CONFIG_SCSI_DMA is not set | ||||||
| @@ -285,15 +337,14 @@ CONFIG_USB_GADGET=y | |||||||
| # CONFIG_USB_GADGETFS is not set | # CONFIG_USB_GADGETFS is not set | ||||||
| # CONFIG_USB_GADGET_DEBUG_FILES is not set | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||||||
| # CONFIG_USB_GADGET_DEBUG_FS is not set | # CONFIG_USB_GADGET_DEBUG_FS is not set | ||||||
| CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 |  | ||||||
| CONFIG_USB_GADGET_VBUS_DRAW=2 | CONFIG_USB_GADGET_VBUS_DRAW=2 | ||||||
| # CONFIG_USB_G_ACM_MS is not set |  | ||||||
| # CONFIG_USB_G_DBGP is not set | # CONFIG_USB_G_DBGP is not set | ||||||
| # CONFIG_USB_G_HID is not set | # CONFIG_USB_G_HID is not set | ||||||
| # CONFIG_USB_G_NCM is not set | # CONFIG_USB_G_NCM is not set | ||||||
| # CONFIG_USB_G_PRINTER is not set | # CONFIG_USB_G_PRINTER is not set | ||||||
| # CONFIG_USB_G_SERIAL is not set | # CONFIG_USB_G_SERIAL is not set | ||||||
| # CONFIG_USB_M66592 is not set | # CONFIG_USB_M66592 is not set | ||||||
|  | # CONFIG_USB_MV_UDC is not set | ||||||
| # CONFIG_USB_NET2272 is not set | # CONFIG_USB_NET2272 is not set | ||||||
| CONFIG_USB_NET_SMSC95XX=y | CONFIG_USB_NET_SMSC95XX=y | ||||||
| # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | ||||||
| @@ -303,7 +354,6 @@ CONFIG_USB_OHCI_HCD_OMAP3=y | |||||||
| CONFIG_USB_OMAP=y | CONFIG_USB_OMAP=y | ||||||
| CONFIG_USB_OTG_UTILS=y | CONFIG_USB_OTG_UTILS=y | ||||||
| # CONFIG_USB_R8A66597 is not set | # CONFIG_USB_R8A66597 is not set | ||||||
| # CONFIG_USB_RENESAS_USBHS is not set |  | ||||||
| CONFIG_USB_SUPPORT=y | CONFIG_USB_SUPPORT=y | ||||||
| CONFIG_USB_USBNET=y | CONFIG_USB_USBNET=y | ||||||
| # CONFIG_USB_ZERO is not set | # CONFIG_USB_ZERO is not set | ||||||
| @@ -311,14 +361,16 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y | |||||||
| CONFIG_VECTORS_BASE=0xffff0000 | CONFIG_VECTORS_BASE=0xffff0000 | ||||||
| CONFIG_VFP=y | CONFIG_VFP=y | ||||||
| CONFIG_VFPv3=y | CONFIG_VFPv3=y | ||||||
|  | CONFIG_VT=y | ||||||
|  | CONFIG_VT_CONSOLE=y | ||||||
|  | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||||||
| # CONFIG_W35UND is not set | # CONFIG_W35UND is not set | ||||||
| # CONFIG_WL1251 is not set | # CONFIG_WL1251 is not set | ||||||
| CONFIG_WL12XX_MENU=m |  | ||||||
| CONFIG_WL12XX=m | CONFIG_WL12XX=m | ||||||
| CONFIG_WL12XX_SDIO=m | CONFIG_WL12XX_MENU=m | ||||||
| # CONFIG_WL12XX_SDIO_TEST is not set |  | ||||||
| # CONFIG_WL12XX_SPI is not set |  | ||||||
| CONFIG_WL12XX_PLATFORM_DATA=y | CONFIG_WL12XX_PLATFORM_DATA=y | ||||||
|  | CONFIG_WL12XX_SDIO=m | ||||||
|  | # CONFIG_WL12XX_SPI is not set | ||||||
| CONFIG_XPS=y | CONFIG_XPS=y | ||||||
| CONFIG_XZ_DEC=y | CONFIG_XZ_DEC=y | ||||||
| CONFIG_ZBOOT_ROM_BSS=0 | CONFIG_ZBOOT_ROM_BSS=0 | ||||||
|   | |||||||
| @@ -1,194 +0,0 @@ | |||||||
| From: Benoit Cousson <b-cousson@ti.com> |  | ||||||
| Date: Sat, 17 Dec 2011 00:09:11 +0000 (-0800) |  | ||||||
| Subject: ARM: OMAP4: hwmod: Don't wait for the idle status if modulemode is not supported |  | ||||||
| X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=commitdiff_plain;h=bfc141e3a515008d85e57af39c9faa4d2bbc65e0;hp=ddf536d0d7e1f0b63a681c970888730a4437414d |  | ||||||
|  |  | ||||||
| ARM: OMAP4: hwmod: Don't wait for the idle status if modulemode is not supported |  | ||||||
|  |  | ||||||
| If the module does not have any modulemode, the _disable_module function |  | ||||||
| will do nothing. There is then no point waiting for a idle status change. |  | ||||||
|  |  | ||||||
| It will remove the following warnings. |  | ||||||
|  |  | ||||||
| [    0.331848] omap_hwmod: dmm: _wait_target_disable failed |  | ||||||
| [    0.339935] omap_hwmod: emif_fw: _wait_target_disable failed |  | ||||||
| [    0.348358] omap_hwmod: l3_main_1: _wait_target_disable failed |  | ||||||
| [    0.356964] omap_hwmod: l3_main_2: _wait_target_disable failed |  | ||||||
| [    0.365600] omap_hwmod: l4_abe: _wait_target_disable failed |  | ||||||
| [    0.373931] omap_hwmod: l4_cfg: _wait_target_disable failed |  | ||||||
| [    0.382263] omap_hwmod: l4_per: _wait_target_disable failed |  | ||||||
| [    0.391113] omap_hwmod: l4_wkup: _wait_target_disable failed |  | ||||||
| [    0.399536] omap_hwmod: dma_system: _wait_target_disable failed |  | ||||||
| [    0.408325] omap_hwmod: dss_core: _wait_target_disable failed |  | ||||||
| [    0.416839] omap_hwmod: dss_dispc: _wait_target_disable failed |  | ||||||
| [    0.425445] omap_hwmod: dss_dsi1: _wait_target_disable failed |  | ||||||
| [    0.433990] omap_hwmod: dss_dsi2: _wait_target_disable failed |  | ||||||
| [    0.442504] omap_hwmod: dss_hdmi: _wait_target_disable failed |  | ||||||
| [    0.451019] omap_hwmod: dss_rfbi: _wait_target_disable failed |  | ||||||
| [    0.459564] omap_hwmod: dss_venc: _wait_target_disable failed |  | ||||||
| [    0.489471] omap_hwmod: mailbox: _wait_target_disable failed |  | ||||||
| [    0.505920] omap_hwmod: spinlock: _wait_target_disable failed |  | ||||||
|  |  | ||||||
| Note: For such module, the state is managed automatically by HW according |  | ||||||
| to clock domain transition. It is then not possible to wait for idle even |  | ||||||
| later in the _idle function since the status will change at clock domain |  | ||||||
| boundary. |  | ||||||
|  |  | ||||||
| Signed-off-by: Benoit Cousson <b-cousson@ti.com> |  | ||||||
| Cc: Paul Walmsley <paul@pwsan.com> |  | ||||||
| Cc: Rajendra Nayak <rnayak@ti.com> |  | ||||||
| [paul@pwsan.com: renamed fns to indicate that they are OMAP4-only; moved |  | ||||||
|  _wait_target_disable() into _disable_module(), removing duplicate code] |  | ||||||
| Signed-off-by: Paul Walmsley <paul@pwsan.com> |  | ||||||
| Signed-off-by: Tony Lindgren <tony@atomide.com> |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| --- a/arch/arm/mach-omap2/omap_hwmod.c |  | ||||||
| +++ b/arch/arm/mach-omap2/omap_hwmod.c |  | ||||||
| @@ -706,27 +706,65 @@ static void _enable_module(struct omap_h |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /** |  | ||||||
| - * _disable_module - enable CLKCTRL modulemode on OMAP4 |  | ||||||
| + * _omap4_wait_target_disable - wait for a module to be disabled on OMAP4 |  | ||||||
| + * @oh: struct omap_hwmod * |  | ||||||
| + * |  | ||||||
| + * Wait for a module @oh to enter slave idle.  Returns 0 if the module |  | ||||||
| + * does not have an IDLEST bit or if the module successfully enters |  | ||||||
| + * slave idle; otherwise, pass along the return value of the |  | ||||||
| + * appropriate *_cm*_wait_module_idle() function. |  | ||||||
| + */ |  | ||||||
| +static int _omap4_wait_target_disable(struct omap_hwmod *oh) |  | ||||||
| +{ |  | ||||||
| +	if (!cpu_is_omap44xx()) |  | ||||||
| +		return 0; |  | ||||||
| + |  | ||||||
| +	if (!oh) |  | ||||||
| +		return -EINVAL; |  | ||||||
| + |  | ||||||
| +	if (oh->_int_flags & _HWMOD_NO_MPU_PORT) |  | ||||||
| +		return 0; |  | ||||||
| + |  | ||||||
| +	if (oh->flags & HWMOD_NO_IDLEST) |  | ||||||
| +		return 0; |  | ||||||
| + |  | ||||||
| +	return omap4_cminst_wait_module_idle(oh->clkdm->prcm_partition, |  | ||||||
| +					     oh->clkdm->cm_inst, |  | ||||||
| +					     oh->clkdm->clkdm_offs, |  | ||||||
| +					     oh->prcm.omap4.clkctrl_offs); |  | ||||||
| +} |  | ||||||
| + |  | ||||||
| +/** |  | ||||||
| + * _omap4_disable_module - enable CLKCTRL modulemode on OMAP4 |  | ||||||
|   * @oh: struct omap_hwmod * |  | ||||||
|   * |  | ||||||
|   * Disable the PRCM module mode related to the hwmod @oh. |  | ||||||
| - * No return value. |  | ||||||
| + * Return EINVAL if the modulemode is not supported and 0 in case of success. |  | ||||||
|   */ |  | ||||||
| -static void _disable_module(struct omap_hwmod *oh) |  | ||||||
| +static int _omap4_disable_module(struct omap_hwmod *oh) |  | ||||||
|  { |  | ||||||
| +	int v; |  | ||||||
| + |  | ||||||
|  	/* The module mode does not exist prior OMAP4 */ |  | ||||||
| -	if (cpu_is_omap24xx() || cpu_is_omap34xx()) |  | ||||||
| -		return; |  | ||||||
| +	if (!cpu_is_omap44xx()) |  | ||||||
| +		return -EINVAL; |  | ||||||
|   |  | ||||||
|  	if (!oh->clkdm || !oh->prcm.omap4.modulemode) |  | ||||||
| -		return; |  | ||||||
| +		return -EINVAL; |  | ||||||
|   |  | ||||||
| -	pr_debug("omap_hwmod: %s: _disable_module\n", oh->name); |  | ||||||
| +	pr_debug("omap_hwmod: %s: %s\n", oh->name, __func__); |  | ||||||
|   |  | ||||||
|  	omap4_cminst_module_disable(oh->clkdm->prcm_partition, |  | ||||||
|  				    oh->clkdm->cm_inst, |  | ||||||
|  				    oh->clkdm->clkdm_offs, |  | ||||||
|  				    oh->prcm.omap4.clkctrl_offs); |  | ||||||
| + |  | ||||||
| +	v = _omap4_wait_target_disable(oh); |  | ||||||
| +	if (v) |  | ||||||
| +		pr_warn("omap_hwmod: %s: _wait_target_disable failed\n", |  | ||||||
| +			oh->name); |  | ||||||
| + |  | ||||||
| +	return 0; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /** |  | ||||||
| @@ -1153,36 +1191,6 @@ static int _wait_target_ready(struct oma |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /** |  | ||||||
| - * _wait_target_disable - wait for a module to be disabled |  | ||||||
| - * @oh: struct omap_hwmod * |  | ||||||
| - * |  | ||||||
| - * Wait for a module @oh to enter slave idle.  Returns 0 if the module |  | ||||||
| - * does not have an IDLEST bit or if the module successfully enters |  | ||||||
| - * slave idle; otherwise, pass along the return value of the |  | ||||||
| - * appropriate *_cm*_wait_module_idle() function. |  | ||||||
| - */ |  | ||||||
| -static int _wait_target_disable(struct omap_hwmod *oh) |  | ||||||
| -{ |  | ||||||
| -	/* TODO: For now just handle OMAP4+ */ |  | ||||||
| -	if (cpu_is_omap24xx() || cpu_is_omap34xx()) |  | ||||||
| -		return 0; |  | ||||||
| - |  | ||||||
| -	if (!oh) |  | ||||||
| -		return -EINVAL; |  | ||||||
| - |  | ||||||
| -	if (oh->_int_flags & _HWMOD_NO_MPU_PORT) |  | ||||||
| -		return 0; |  | ||||||
| - |  | ||||||
| -	if (oh->flags & HWMOD_NO_IDLEST) |  | ||||||
| -		return 0; |  | ||||||
| - |  | ||||||
| -	return omap4_cminst_wait_module_idle(oh->clkdm->prcm_partition, |  | ||||||
| -					     oh->clkdm->cm_inst, |  | ||||||
| -					     oh->clkdm->clkdm_offs, |  | ||||||
| -					     oh->prcm.omap4.clkctrl_offs); |  | ||||||
| -} |  | ||||||
| - |  | ||||||
| -/** |  | ||||||
|   * _lookup_hardreset - fill register bit info for this hwmod/reset line |  | ||||||
|   * @oh: struct omap_hwmod * |  | ||||||
|   * @name: name of the reset line in the context of this hwmod |  | ||||||
| @@ -1524,8 +1532,6 @@ static int _enable(struct omap_hwmod *oh |  | ||||||
|   */ |  | ||||||
|  static int _idle(struct omap_hwmod *oh) |  | ||||||
|  { |  | ||||||
| -	int ret; |  | ||||||
| - |  | ||||||
|  	pr_debug("omap_hwmod: %s: idling\n", oh->name); |  | ||||||
|   |  | ||||||
|  	if (oh->_state != _HWMOD_STATE_ENABLED) { |  | ||||||
| @@ -1537,11 +1543,9 @@ static int _idle(struct omap_hwmod *oh) |  | ||||||
|  	if (oh->class->sysc) |  | ||||||
|  		_idle_sysc(oh); |  | ||||||
|  	_del_initiator_dep(oh, mpu_oh); |  | ||||||
| -	_disable_module(oh); |  | ||||||
| -	ret = _wait_target_disable(oh); |  | ||||||
| -	if (ret) |  | ||||||
| -		pr_warn("omap_hwmod: %s: _wait_target_disable failed\n", |  | ||||||
| -			oh->name); |  | ||||||
| + |  | ||||||
| +	_omap4_disable_module(oh); |  | ||||||
| + |  | ||||||
|  	/* |  | ||||||
|  	 * The module must be in idle mode before disabling any parents |  | ||||||
|  	 * clocks. Otherwise, the parent clock might be disabled before |  | ||||||
| @@ -1642,11 +1646,7 @@ static int _shutdown(struct omap_hwmod * |  | ||||||
|  	if (oh->_state == _HWMOD_STATE_ENABLED) { |  | ||||||
|  		_del_initiator_dep(oh, mpu_oh); |  | ||||||
|  		/* XXX what about the other system initiators here? dma, dsp */ |  | ||||||
| -		_disable_module(oh); |  | ||||||
| -		ret = _wait_target_disable(oh); |  | ||||||
| -		if (ret) |  | ||||||
| -			pr_warn("omap_hwmod: %s: _wait_target_disable failed\n", |  | ||||||
| -				oh->name); |  | ||||||
| +		_omap4_disable_module(oh); |  | ||||||
|  		_disable_clocks(oh); |  | ||||||
|  		if (oh->clkdm) |  | ||||||
|  			clkdm_hwmod_disable(oh->clkdm, oh); |  | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/arch/arm/mach-omap2/twl-common.c | --- a/arch/arm/mach-omap2/twl-common.c | ||||||
| +++ b/arch/arm/mach-omap2/twl-common.c | +++ b/arch/arm/mach-omap2/twl-common.c | ||||||
| @@ -281,6 +281,7 @@ static struct regulator_init_data omap4_ | @@ -280,6 +280,7 @@ static struct regulator_init_data omap4_ | ||||||
|  static struct regulator_init_data omap4_clk32kg_idata = { |  static struct regulator_init_data omap4_clk32kg_idata = { | ||||||
|  	.constraints = { |  	.constraints = { | ||||||
|  		.valid_ops_mask		= REGULATOR_CHANGE_STATUS, |  		.valid_ops_mask		= REGULATOR_CHANGE_STATUS, | ||||||
|   | |||||||
| @@ -1,45 +0,0 @@ | |||||||
| --- a/arch/arm/mach-omap2/id.c |  | ||||||
| +++ b/arch/arm/mach-omap2/id.c |  | ||||||
| @@ -389,8 +389,10 @@ static void __init omap4_check_revision( |  | ||||||
|  			omap_revision = OMAP4430_REV_ES2_1; |  | ||||||
|  			break; |  | ||||||
|  		case 4: |  | ||||||
| -		default: |  | ||||||
|  			omap_revision = OMAP4430_REV_ES2_2; |  | ||||||
| +		case 6: |  | ||||||
| +		default: |  | ||||||
| +			omap_revision = OMAP4430_REV_ES2_3; |  | ||||||
|  		} |  | ||||||
|  		break; |  | ||||||
|  	case 0xb94e: |  | ||||||
| @@ -403,7 +405,7 @@ static void __init omap4_check_revision( |  | ||||||
|  		break; |  | ||||||
|  	default: |  | ||||||
|  		/* Unknown default to latest silicon rev as default */ |  | ||||||
| -		omap_revision = OMAP4430_REV_ES2_2; |  | ||||||
| +		omap_revision = OMAP4430_REV_ES2_3; |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
|  	pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16, |  | ||||||
| --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c |  | ||||||
| +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c |  | ||||||
| @@ -2257,7 +2257,8 @@ static struct omap_hwmod_class omap44xx_ |  | ||||||
|  }; |  | ||||||
|   |  | ||||||
|  static struct omap_i2c_dev_attr i2c_dev_attr = { |  | ||||||
| -	.flags	= OMAP_I2C_FLAG_BUS_SHIFT_NONE, |  | ||||||
| +	.flags	= OMAP_I2C_FLAG_BUS_SHIFT_NONE | |  | ||||||
| +			OMAP_I2C_FLAG_RESET_REGS_POSTIDLE, |  | ||||||
|  }; |  | ||||||
|   |  | ||||||
|  /* i2c1 */ |  | ||||||
| --- a/arch/arm/plat-omap/include/plat/cpu.h |  | ||||||
| +++ b/arch/arm/plat-omap/include/plat/cpu.h |  | ||||||
| @@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517) |  | ||||||
|  #define OMAP4430_REV_ES2_0	(OMAP443X_CLASS | (0x20 << 8)) |  | ||||||
|  #define OMAP4430_REV_ES2_1	(OMAP443X_CLASS | (0x21 << 8)) |  | ||||||
|  #define OMAP4430_REV_ES2_2	(OMAP443X_CLASS | (0x22 << 8)) |  | ||||||
| +#define OMAP4430_REV_ES2_3	(OMAP443X_CLASS | (0x23 << 8)) |  | ||||||
|   |  | ||||||
|  #define OMAP446X_CLASS		0x44600044 |  | ||||||
|  #define OMAP4460_REV_ES1_0	(OMAP446X_CLASS | (0x10 << 8)) |  | ||||||
		Reference in New Issue
	
	Block a user
	 Imre Kaloz
					Imre Kaloz