replace the TI patch with a smaller patchset
[openwrt/openwrt.git] / target / linux / omap / patches-3.12 / 203-ARM-OMAP2-hwmod-Cleanup-usag~RESET-and-HWMOD_INIT_NO_IDLE.patch
diff --git a/target/linux/omap/patches-3.12/203-ARM-OMAP2-hwmod-Cleanup-usag~RESET-and-HWMOD_INIT_NO_IDLE.patch b/target/linux/omap/patches-3.12/203-ARM-OMAP2-hwmod-Cleanup-usag~RESET-and-HWMOD_INIT_NO_IDLE.patch
new file mode 100644 (file)
index 0000000..c014311
--- /dev/null
@@ -0,0 +1,92 @@
+With DT bindings to specify which devices should not be idled and reset
+at init being in place, and the corresponding dtsi files for am33xx/omap4
+and omap5 updated using those bindings, we can now clean up hwmod internal
+flags for HWMOD_INIT_NO_RESET and HWMOD_INIT_NO_IDLE which were infact used
+to specify the exact same information.
+
+For GPMC, the HWMOD_INIT_NO_RESET flag seems to be added in hwmod not due to
+any errata around the GPMC IP, but rather because any timings
+set by the bootloader are not being correctly programmed by the kernel.
+This seems like something that needs to be fixed as part of GPMC driver
+in the kernel, and hence the flag is left as is in hwmod, which can be
+removed once the driver does what its expected to.
+
+Signed-off-by: Rajendra Nayak <rnayak@ti.com>
+
+---
+arch/arm/mach-omap2/omap_hwmod_33xx_data.c |    4 ++--
+ arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    4 +---
+ arch/arm/mach-omap2/omap_hwmod_54xx_data.c |    2 --
+ 3 files changed, 3 insertions(+), 7 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+index 2815a91..e8dc72d 100644
+--- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
++++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+@@ -198,7 +198,7 @@ static struct omap_hwmod am33xx_wkup_m3_hwmod = {
+       .class          = &am33xx_wkup_m3_hwmod_class,
+       .clkdm_name     = "l4_wkup_aon_clkdm",
+       /* Keep hardreset asserted */
+-      .flags          = HWMOD_INIT_NO_RESET | HWMOD_NO_IDLEST,
++      .flags          = HWMOD_NO_IDLEST,
+       .main_clk       = "dpll_core_m4_div2_ck",
+       .prcm           = {
+               .omap4  = {
+@@ -932,7 +932,7 @@ static struct omap_hwmod am33xx_gpmc_hwmod = {
+       .name           = "gpmc",
+       .class          = &am33xx_gpmc_hwmod_class,
+       .clkdm_name     = "l3s_clkdm",
+-      .flags          = (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
++      .flags          = HWMOD_INIT_NO_RESET,
+       .main_clk       = "l3s_gclk",
+       .prcm           = {
+               .omap4  = {
+diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+index 1e5b12c..a507a70 100644
+--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
++++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+@@ -914,7 +914,6 @@ static struct omap_hwmod omap44xx_emif1_hwmod = {
+       .name           = "emif1",
+       .class          = &omap44xx_emif_hwmod_class,
+       .clkdm_name     = "l3_emif_clkdm",
+-      .flags          = HWMOD_INIT_NO_IDLE,
+       .main_clk       = "ddrphy_ck",
+       .prcm = {
+               .omap4 = {
+@@ -930,7 +929,6 @@ static struct omap_hwmod omap44xx_emif2_hwmod = {
+       .name           = "emif2",
+       .class          = &omap44xx_emif_hwmod_class,
+       .clkdm_name     = "l3_emif_clkdm",
+-      .flags          = HWMOD_INIT_NO_IDLE,
+       .main_clk       = "ddrphy_ck",
+       .prcm = {
+               .omap4 = {
+@@ -1184,7 +1182,7 @@ static struct omap_hwmod omap44xx_gpmc_hwmod = {
+        * the kernel from the board file or DT data.
+        * HWMOD_INIT_NO_RESET should be removed ASAP.
+        */
+-      .flags          = HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
++      .flags          = HWMOD_INIT_NO_RESET,
+       .prcm = {
+               .omap4 = {
+                       .clkctrl_offs = OMAP4_CM_L3_2_GPMC_CLKCTRL_OFFSET,
+diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+index e3caee1..e47f24d 100644
+--- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
++++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+@@ -352,7 +352,6 @@ static struct omap_hwmod omap54xx_emif1_hwmod = {
+       .name           = "emif1",
+       .class          = &omap54xx_emif_hwmod_class,
+       .clkdm_name     = "emif_clkdm",
+-      .flags          = HWMOD_INIT_NO_IDLE,
+       .main_clk       = "dpll_core_h11x2_ck",
+       .prcm = {
+               .omap4 = {
+@@ -368,7 +367,6 @@ static struct omap_hwmod omap54xx_emif2_hwmod = {
+       .name           = "emif2",
+       .class          = &omap54xx_emif_hwmod_class,
+       .clkdm_name     = "emif_clkdm",
+-      .flags          = HWMOD_INIT_NO_IDLE,
+       .main_clk       = "dpll_core_h11x2_ck",
+       .prcm = {
+               .omap4 = {