From a66cf5ea9a7db97d6f9a02835a996db465108318 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Dominic=20Sacr=C3=A9?= Date: Wed, 8 Jul 2015 11:46:06 +0200 Subject: [PATCH] linux-imx-rt: Upgrade to 3.14.28-1.0.0 GA Signed-off-by: Otavio Salvador --- ...x-video-divider-for-revision-1.0-of-.patch | 35 ------ ...ARM-imx6q-drop-unnecessary-semicolon.patch | 35 ++++++ .../0001-fix-build.patch | 30 ++++-- ...x6q-fix-video-divider-for-rev-T0-1.0.patch | 40 +++++++ .../0002-fix-build-with-rt-enabled.patch | 0 ...le-imx6sl-specific-code-when-imx6sl-.patch | 56 ++++++++++ .../0003-no-split-ptlocks.patch | 19 ++-- ...imx-Fixup-runtime-PM-conditions-duri.patch | 36 +++++++ ...c-fix-the-warning-found-by-dma-debug.patch | 100 +++++++++++++++++ .../mx6/defconfig | 102 +++++++++++++----- .../linux/linux-imx-rt_3.10.31.bb | 27 ----- .../linux/linux-imx-rt_3.14.28.bb | 31 ++++++ 12 files changed, 405 insertions(+), 106 deletions(-) delete mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0001-ARM-clk-imx6q-fix-video-divider-for-revision-1.0-of-.patch create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0001-ARM-imx6q-drop-unnecessary-semicolon.patch rename meta-fsl-arm/recipes-kernel/linux/{linux-imx-rt-3.10.31 => linux-imx-rt-3.14.28}/0001-fix-build.patch (61%) create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch rename meta-fsl-arm/recipes-kernel/linux/{linux-imx-rt-3.10.31 => linux-imx-rt-3.14.28}/0002-fix-build-with-rt-enabled.patch (100%) create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch rename meta-fsl-arm/recipes-kernel/linux/{linux-imx-rt-3.10.31 => linux-imx-rt-3.14.28}/0003-no-split-ptlocks.patch (90%) create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch rename meta-fsl-arm/recipes-kernel/linux/{linux-imx-rt-3.10.31 => linux-imx-rt-3.14.28}/mx6/defconfig (82%) delete mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.10.31.bb create mode 100644 meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.14.28.bb diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0001-ARM-clk-imx6q-fix-video-divider-for-revision-1.0-of-.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0001-ARM-clk-imx6q-fix-video-divider-for-revision-1.0-of-.patch deleted file mode 100644 index 820ce68e..00000000 --- a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0001-ARM-clk-imx6q-fix-video-divider-for-revision-1.0-of-.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0e981452d7130513e796c1c3d7348905c0d00dce Mon Sep 17 00:00:00 2001 -From: Gary Bisson -Date: Tue, 2 Dec 2014 22:11:14 -0800 -Subject: [PATCH] ARM: clk-imx6q: fix video divider for revision 1.0 of i.MX6q - -As post dividers do not work on i.MX6Q revision 1.0 they must be fixed -to 1. As the table index was wrong, a divider a of 4 could still be -requested which implied the clock not to be set properly. This is the -root cause of the HDMI not working at high resolution on T1.0 version of -the SoC, giving the following error: -mxc_sdc_fb fb.27: timeout when waiting for flip irq - -Upstream-Status: Pending - -Signed-off-by: Gary Bisson ---- - arch/arm/mach-imx/clk-imx6q.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c -index 25734ed..34e1616f 100644 ---- a/arch/arm/mach-imx/clk-imx6q.c -+++ b/arch/arm/mach-imx/clk-imx6q.c -@@ -312,7 +312,7 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) - post_div_table[1].div = 1; - post_div_table[2].div = 1; - video_div_table[1].div = 1; -- video_div_table[2].div = 1; -+ video_div_table[3].div = 1; - }; - - /* type name parent_name base div_mask */ --- -2.1.3 - diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0001-ARM-imx6q-drop-unnecessary-semicolon.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0001-ARM-imx6q-drop-unnecessary-semicolon.patch new file mode 100644 index 00000000..8d431832 --- /dev/null +++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0001-ARM-imx6q-drop-unnecessary-semicolon.patch @@ -0,0 +1,35 @@ +From 5332a5467624b01d0c166309cd1dceac5f7b9d96 Mon Sep 17 00:00:00 2001 +From: Dmitry Voytik +Date: Thu, 6 Nov 2014 22:46:20 +0400 +Subject: [PATCH 1/3] ARM: imx6q: drop unnecessary semicolon + +commit d2a10a1727b3948019128e83162f22c65859f1fd upstream. + +Drop unnecessary semicolon after closing curly bracket. + +Signed-off-by: Dmitry Voytik +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +Upstream-Status: Backport [3.14.29] + +--- + arch/arm/mach-imx/clk-imx6q.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c +index f0d8000..a5107ab 100644 +--- a/arch/arm/mach-imx/clk-imx6q.c ++++ b/arch/arm/mach-imx/clk-imx6q.c +@@ -149,7 +149,7 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) + post_div_table[2].div = 1; + video_div_table[1].div = 1; + video_div_table[2].div = 1; +- }; ++ } + + clk[IMX6QDL_PLL1_BYPASS_SRC] = imx_clk_mux("pll1_bypass_src", base + 0x00, 14, 2, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels)); + clk[IMX6QDL_PLL2_BYPASS_SRC] = imx_clk_mux("pll2_bypass_src", base + 0x30, 14, 2, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels)); +-- +2.1.4 + diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0001-fix-build.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0001-fix-build.patch similarity index 61% rename from meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0001-fix-build.patch rename to meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0001-fix-build.patch index ffc6b74f..4be4066d 100644 --- a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0001-fix-build.patch +++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0001-fix-build.patch @@ -4,12 +4,13 @@ Upstream-Status: Inappropriate [other] Freescale does not support the RT patch Signed-off-by: Jacob Kroon +Signed-off-by: Dominic Sacré [updated for 3.14.28] -Index: git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c -=================================================================== ---- git.orig/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c -+++ git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c -@@ -7746,7 +7746,7 @@ gckOS_WaitSignal( +diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c +index 2ec98dc..5d0b7df 100644 +--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c ++++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c +@@ -7344,7 +7344,7 @@ gckOS_WaitSignal( might_sleep(); @@ -18,7 +19,7 @@ Index: git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c if (signal->obj.done) { -@@ -7768,9 +7768,8 @@ gckOS_WaitSignal( +@@ -7366,9 +7366,8 @@ gckOS_WaitSignal( ? MAX_SCHEDULE_TIMEOUT : Wait * HZ / 1000; @@ -30,7 +31,7 @@ Index: git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c while (gcvTRUE) { -@@ -7782,9 +7781,9 @@ gckOS_WaitSignal( +@@ -7380,9 +7379,9 @@ gckOS_WaitSignal( } __set_current_state(TASK_INTERRUPTIBLE); @@ -42,7 +43,7 @@ Index: git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c if (signal->obj.done) { -@@ -7805,10 +7804,10 @@ gckOS_WaitSignal( +@@ -7403,10 +7402,10 @@ gckOS_WaitSignal( } } @@ -55,3 +56,16 @@ Index: git/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c OnError: /* Return status. */ +diff --git a/include/linux/imx_sema4.h b/include/linux/imx_sema4.h +index 9787980..3586199 100644 +--- a/include/linux/imx_sema4.h ++++ b/include/linux/imx_sema4.h +@@ -9,6 +9,8 @@ + #ifndef __LINUX_IMX_SEMA4_H__ + #define __LINUX_IMX_SEMA4_H__ + ++#include ++ + #define SEMA4_NUM_DEVICES 1 + #define SEMA4_NUM_GATES 16 + diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch new file mode 100644 index 00000000..d7b852da --- /dev/null +++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch @@ -0,0 +1,40 @@ +From 5b9eb0cdaefd7ac8e31c1e1812582e0169ba9722 Mon Sep 17 00:00:00 2001 +From: Gary Bisson +Date: Wed, 3 Dec 2014 15:03:51 -0800 +Subject: [PATCH 2/3] ARM: clk-imx6q: fix video divider for rev T0 1.0 + +commit 81ef447950bf0955aca46f4a7617d8ce435cf0ce upstream. + +The post dividers do not work on i.MX6Q rev T0 1.0 so they must be fixed +to 1. As the table index was wrong, a divider a of 4 could still be +requested which implied the clock not to be set properly. This is the +root cause of the HDMI not working at high resolution on rev T0 1.0 of +the SoC. + +Signed-off-by: Gary Bisson +Cc: +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +Upstream-Status: Backport [3.14.29] + +--- + arch/arm/mach-imx/clk-imx6q.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c +index a5107ab..cf060a9 100644 +--- a/arch/arm/mach-imx/clk-imx6q.c ++++ b/arch/arm/mach-imx/clk-imx6q.c +@@ -148,7 +148,7 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) + post_div_table[1].div = 1; + post_div_table[2].div = 1; + video_div_table[1].div = 1; +- video_div_table[2].div = 1; ++ video_div_table[3].div = 1; + } + + clk[IMX6QDL_PLL1_BYPASS_SRC] = imx_clk_mux("pll1_bypass_src", base + 0x00, 14, 2, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels)); +-- +2.1.4 + diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0002-fix-build-with-rt-enabled.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0002-fix-build-with-rt-enabled.patch similarity index 100% rename from meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0002-fix-build-with-rt-enabled.patch rename to meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0002-fix-build-with-rt-enabled.patch diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch new file mode 100644 index 00000000..0743099f --- /dev/null +++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch @@ -0,0 +1,56 @@ +From 8340ad4ab71b568e65dfd1b92cc0967152887f97 Mon Sep 17 00:00:00 2001 +From: Nikolay Dimitrov +Date: Sun, 8 Feb 2015 22:18:09 +0200 +Subject: [PATCH 3/3] ARM: imx6sl: Disable imx6sl-specific code when imx6sl SOC + support is disabled + +Currently the build fails when CONFIG_SOC_IMX6SL is disabled, due to some +hard-coded stuff. The patch purpose is to handle enabling/disabling this +config option. + +Signed-off-by: Nikolay Dimitrov +Signed-off-by: Otavio Salvador + +Upstream-Status: Pending + +--- + arch/arm/mach-imx/Makefile | 3 ++- + arch/arm/mach-imx/mxc.h | 4 ++++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile +index b76a214..27f1976 100644 +--- a/arch/arm/mach-imx/Makefile ++++ b/arch/arm/mach-imx/Makefile +@@ -122,7 +122,8 @@ obj-$(CONFIG_SOC_IMX6SL) += busfreq_lpddr2.o lpddr2_freq_imx6.o imx6sl_lpm_wfi.o + AFLAGS_lpddr2_freq_imx6sx.o :=-Wa,-march=armv7-a + AFLAGS_ddr3_freq_imx6sx.o :=-Wa,-march=armv7-a + AFLAGS_imx6sx_low_power_idle.o :=-Wa,-march=armv7-a +-obj-$(CONFIG_SOC_IMX6SX) += ddr3_freq_imx6sx.o lpddr2_freq_imx6sx.o imx6sx_low_power_idle.o ++obj-$(CONFIG_SOC_IMX6SX) += ddr3_freq_imx6sx.o lpddr2_freq_imx6sx.o imx6sx_low_power_idle.o \ ++ busfreq_lpddr2.o lpddr2_freq_imx6.o + endif + + +diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h +index 1510769..e6af4dd 100644 +--- a/arch/arm/mach-imx/mxc.h ++++ b/arch/arm/mach-imx/mxc.h +@@ -158,10 +158,14 @@ extern unsigned int __mxc_cpu_type; + #endif + + #ifndef __ASSEMBLY__ ++#ifdef CONFIG_SOC_IMX6SL + static inline bool cpu_is_imx6sl(void) + { + return __mxc_cpu_type == MXC_CPU_IMX6SL; + } ++#else ++# define cpu_is_imx6sl() (0) ++#endif + + static inline bool cpu_is_imx6dl(void) + { +-- +2.1.4 + diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0003-no-split-ptlocks.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0003-no-split-ptlocks.patch similarity index 90% rename from meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0003-no-split-ptlocks.patch rename to meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0003-no-split-ptlocks.patch index b7995b63..40c012a5 100644 --- a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/0003-no-split-ptlocks.patch +++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0003-no-split-ptlocks.patch @@ -3,6 +3,7 @@ Work around the oops below by disabling split ptlocks Upstream-Status: Inappropriate [disable feature] Signed-off-by: Jacob Kroon +Signed-off-by: Dominic Sacré [updated for 3.14.28] Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = ac5a8000 @@ -69,16 +70,16 @@ Code: e92d4010 e1a04000 e3a00001 ebe8abd7 (e1943f9f) ---[ end trace 0000000000000002 ]--- note: test-qt5[277] exited with preempt_count 1 -Index: git/include/linux/mm_types.h -=================================================================== ---- git.orig/include/linux/mm_types.h -+++ git/include/linux/mm_types.h +diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h +index 6c1dc6c..8c00faf 100644 +--- a/include/linux/mm_types.h ++++ b/include/linux/mm_types.h @@ -24,7 +24,7 @@ struct address_space; --#define USE_SPLIT_PTLOCKS (NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS) -+#define USE_SPLIT_PTLOCKS (0) - - /* - * Each physical page in the system has a struct page associated with +-#define USE_SPLIT_PTE_PTLOCKS (NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS) ++#define USE_SPLIT_PTE_PTLOCKS (0) + #define USE_SPLIT_PMD_PTLOCKS (USE_SPLIT_PTE_PTLOCKS && \ + IS_ENABLED(CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK)) + #define ALLOC_SPLIT_PTLOCKS (SPINLOCK_SIZE > BITS_PER_LONG/8) diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch new file mode 100644 index 00000000..0d3caa40 --- /dev/null +++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch @@ -0,0 +1,36 @@ +From 77903c01d8c6c5d2544085ba074aceadc1191d21 Mon Sep 17 00:00:00 2001 +From: Ulf Hansson +Date: Thu, 11 Dec 2014 15:12:25 +0100 +Subject: [PATCH 2/2] mmc: sdhci-esdhc-imx: Fixup runtime PM conditions during + ->probe() + +By configure runtime PM prior we enable the use of it, we close the gap +for strange and unhandled conditions. Moreover it makes us rely on the +driver core, after finalized ->probe(), to request an inactive device +to become runtime PM idle/suspended, which earlier potentially could +happen already at pm_runtime_set_autosuspend_delay(). + +Signed-off-by: Ulf Hansson +--- + drivers/mmc/host/sdhci-esdhc-imx.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c +index 043866c..10ef824 100644 +--- a/drivers/mmc/host/sdhci-esdhc-imx.c ++++ b/drivers/mmc/host/sdhci-esdhc-imx.c +@@ -1080,10 +1080,10 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev) + goto disable_clk; + + pm_runtime_set_active(&pdev->dev); +- pm_runtime_enable(&pdev->dev); + pm_runtime_set_autosuspend_delay(&pdev->dev, 50); + pm_runtime_use_autosuspend(&pdev->dev); + pm_suspend_ignore_children(&pdev->dev, 1); ++ pm_runtime_enable(&pdev->dev); + + return 0; + +-- +1.9.3 + diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch new file mode 100644 index 00000000..5e5721cf --- /dev/null +++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch @@ -0,0 +1,100 @@ +From a2fe37b69d4fe369c284d50927193fed81c238a0 Mon Sep 17 00:00:00 2001 +From: Fabio Estevam +Date: Fri, 13 Mar 2015 14:07:54 -0300 +Subject: [PATCH] Revert "net: fec: fix the warning found by dma debug" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This reverts commit 2b995f63987013bacde99168218f9c7b252bdcf1. + +????? ?????? reported the following regression: + +"Commit 2b995f63987013bacde99168218f9c7b252bdcf1 in 4.0.0-rc3 introduces a +nasty bug in transmit, corrupting packets. + +To reproduce: + +$ dd if=/dev/zero of=zeros bs=1M count=20 +$ md5sum -b zeros +8f4e33f3dc3e414ff94e5fb6905cba8c *zeros + +This checksum is correct. + +Copy file "zeros" to another host with NFS, and it gets corrupted, checksum is +changed. +File should be big, small amounts of transmit isn't affected. + +I use an i.MX6 Quad board. + +If this commit is reverted, all works fine." + +Reported-by: ????? ?????? +Signed-off-by: Fabio Estevam +Signed-off-by: David S. Miller +--- + drivers/net/ethernet/freescale/fec_main.c | 34 ++++++++++--------------------- + 1 file changed, 11 insertions(+), 23 deletions(-) + +diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c +index 787db50..78e1ce0 100644 +--- a/drivers/net/ethernet/freescale/fec_main.c ++++ b/drivers/net/ethernet/freescale/fec_main.c +@@ -1189,13 +1189,12 @@ static void + fec_enet_tx_queue(struct net_device *ndev, u16 queue_id) + { + struct fec_enet_private *fep; +- struct bufdesc *bdp, *bdp_t; ++ struct bufdesc *bdp; + unsigned short status; + struct sk_buff *skb; + struct fec_enet_priv_tx_q *txq; + struct netdev_queue *nq; + int index = 0; +- int i, bdnum; + int entries_free; + + fep = netdev_priv(ndev); +@@ -1216,29 +1215,18 @@ fec_enet_tx_queue(struct net_device *ndev, u16 queue_id) + if (bdp == txq->cur_tx) + break; + +- bdp_t = bdp; +- bdnum = 1; +- index = fec_enet_get_bd_index(txq->tx_bd_base, bdp_t, fep); +- skb = txq->tx_skbuff[index]; +- while (!skb) { +- bdp_t = fec_enet_get_nextdesc(bdp_t, fep, queue_id); +- index = fec_enet_get_bd_index(txq->tx_bd_base, bdp_t, fep); +- skb = txq->tx_skbuff[index]; +- bdnum++; +- } +- if (skb_shinfo(skb)->nr_frags && +- (status = bdp_t->cbd_sc) & BD_ENET_TX_READY) +- break; ++ index = fec_enet_get_bd_index(txq->tx_bd_base, bdp, fep); + +- for (i = 0; i < bdnum; i++) { +- if (!IS_TSO_HEADER(txq, bdp->cbd_bufaddr)) +- dma_unmap_single(&fep->pdev->dev, bdp->cbd_bufaddr, +- bdp->cbd_datlen, DMA_TO_DEVICE); +- bdp->cbd_bufaddr = 0; +- if (i < bdnum - 1) +- bdp = fec_enet_get_nextdesc(bdp, fep, queue_id); +- } ++ skb = txq->tx_skbuff[index]; + txq->tx_skbuff[index] = NULL; ++ if (!IS_TSO_HEADER(txq, bdp->cbd_bufaddr)) ++ dma_unmap_single(&fep->pdev->dev, bdp->cbd_bufaddr, ++ bdp->cbd_datlen, DMA_TO_DEVICE); ++ bdp->cbd_bufaddr = 0; ++ if (!skb) { ++ bdp = fec_enet_get_nextdesc(bdp, fep, queue_id); ++ continue; ++ } + + /* Check for errors. */ + if (status & (BD_ENET_TX_HB | BD_ENET_TX_LC | +-- +1.9.3 + diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/mx6/defconfig b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/mx6/defconfig similarity index 82% rename from meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/mx6/defconfig rename to meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/mx6/defconfig index eb0b6ae2..30aabbd3 100644 --- a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.10.31/mx6/defconfig +++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt-3.14.28/mx6/defconfig @@ -1,14 +1,14 @@ +CONFIG_LOCALVERSION="-1.0.0_ga" CONFIG_KERNEL_LZO=y CONFIG_SYSVIPC=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=18 CONFIG_CGROUPS=y CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_EXPERT=y +CONFIG_KALLSYMS_ALL=y CONFIG_PERF_EVENTS=y # CONFIG_SLUB_DEBUG is not set # CONFIG_COMPAT_BRK is not set @@ -19,9 +19,9 @@ CONFIG_MODULE_SRCVERSION_ALL=y # CONFIG_BLK_DEV_BSG is not set CONFIG_GPIO_PCA953X=y CONFIG_ARCH_MXC=y -CONFIG_MXC_DEBUG_BOARD=y CONFIG_MACH_IMX51_DT=y CONFIG_MACH_EUKREA_CPUIMX51SD=y +CONFIG_SOC_IMX50=y CONFIG_SOC_IMX53=y CONFIG_SOC_IMX6Q=y CONFIG_SOC_IMX6SL=y @@ -32,12 +32,16 @@ CONFIG_SMP=y CONFIG_VMSPLIT_2G=y CONFIG_PREEMPT_RT_FULL=y CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set CONFIG_HIGHMEM=y +CONFIG_CMA=y CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_ARM_IMX6_CPUFREQ=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_ARM_IMX6Q_CPUFREQ=y CONFIG_CPU_IDLE=y CONFIG_VFP=y CONFIG_NEON=y @@ -62,13 +66,27 @@ CONFIG_LLC2=y CONFIG_CAN=y CONFIG_CAN_FLEXCAN=y CONFIG_CAN_M_CAN=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_BT_HCIBTUSB=y +CONFIG_BT_HCIBTSDIO=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIBCM203X=y +CONFIG_BT_ATH3K=y CONFIG_CFG80211=y -CONFIG_CFG80211_WEXT=y CONFIG_MAC80211=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y # CONFIG_STANDALONE is not set -CONFIG_CMA=y +CONFIG_DMA_CMA=y CONFIG_CMA_SIZE_MBYTES=320 CONFIG_IMX_WEIM=y CONFIG_CONNECTOR=y @@ -87,7 +105,7 @@ CONFIG_MTD_SST25L=y CONFIG_MTD_NAND=y CONFIG_MTD_NAND_GPMI_NAND=y CONFIG_MTD_NAND_MXC=y -CONFIG_MTD_SPI_NOR_BASE=y +CONFIG_MTD_SPI_NOR=y CONFIG_SPI_FSL_QUADSPI=y CONFIG_MTD_UBI=y CONFIG_BLK_DEV_LOOP=y @@ -121,9 +139,15 @@ CONFIG_SMC91X=y CONFIG_SMC911X=y CONFIG_SMSC911X=y # CONFIG_NET_VENDOR_STMICRO is not set +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_CDC_EEM=m CONFIG_ATH_CARDS=y CONFIG_ATH6KL=m CONFIG_ATH6KL_SDIO=m +CONFIG_BRCMFMAC=m # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_EVDEV=y CONFIG_INPUT_EVBUG=m @@ -137,11 +161,12 @@ CONFIG_TOUCHSCREEN_EGALAX=y CONFIG_TOUCHSCREEN_ELAN=y CONFIG_TOUCHSCREEN_MAX11801=y CONFIG_TOUCHSCREEN_MC13783=y +CONFIG_TOUCHSCREEN_TSC2007=y +CONFIG_TOUCHSCREEN_STMPE=y CONFIG_INPUT_MISC=y CONFIG_INPUT_MMA8450=y CONFIG_INPUT_ISL29023=y CONFIG_SERIO_SERPORT=m -CONFIG_VT_HW_CONSOLE_BINDING=y # CONFIG_LEGACY_PTYS is not set # CONFIG_DEVKMEM is not set CONFIG_SERIAL_IMX=y @@ -149,7 +174,6 @@ CONFIG_SERIAL_IMX_CONSOLE=y CONFIG_SERIAL_FSL_LPUART=y CONFIG_SERIAL_FSL_LPUART_CONSOLE=y CONFIG_FSL_OTP=y -CONFIG_MXS_VIIM=y # CONFIG_I2C_COMPAT is not set CONFIG_I2C_CHARDEV=y # CONFIG_I2C_HELPER_AUTO is not set @@ -159,10 +183,8 @@ CONFIG_I2C_IMX=y CONFIG_SPI=y CONFIG_SPI_IMX=y CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_MAX732X=y CONFIG_POWER_SUPPLY=y CONFIG_SABRESD_MAX8903=y -CONFIG_IMX6_USB_CHARGER=y CONFIG_SENSORS_MAX17135=y CONFIG_SENSORS_MAG3110=y CONFIG_THERMAL=y @@ -176,34 +198,39 @@ CONFIG_MFD_MC13XXX_SPI=y CONFIG_MFD_MC13XXX_I2C=y CONFIG_MFD_MAX17135=y CONFIG_MFD_SI476X_CORE=y +CONFIG_MFD_STMPE=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_DA9052=y CONFIG_REGULATOR_ANATOP=y +CONFIG_REGULATOR_DA9052=y +CONFIG_REGULATOR_MAX17135=y CONFIG_REGULATOR_MC13783=y CONFIG_REGULATOR_MC13892=y -CONFIG_REGULATOR_MAX17135=y CONFIG_REGULATOR_PFUZE100=y CONFIG_MEDIA_SUPPORT=y CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y -CONFIG_VIDEO_V4L2_INT_DEVICE=y +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_RC_DEVICES=y +CONFIG_IR_GPIO_CIR=y CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=m CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_MXC_OUTPUT=y CONFIG_VIDEO_MXC_CAPTURE=m -CONFIG_VIDEO_MXC_CSI_CAMERA=m CONFIG_MXC_CAMERA_OV5640=m CONFIG_MXC_CAMERA_OV5642=m CONFIG_MXC_CAMERA_OV5640_MIPI=m CONFIG_MXC_TVIN_ADV7180=m -CONFIG_MXC_VADC=m CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m CONFIG_VIDEO_MXC_IPU_OUTPUT=y CONFIG_VIDEO_MXC_PXP_V4L2=y +CONFIG_VIDEO_MXC_CSI_CAMERA=m +CONFIG_MXC_VADC=m CONFIG_SOC_CAMERA=y CONFIG_VIDEO_MX3=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_CODA=y CONFIG_RADIO_SI476X=y CONFIG_SOC_CAMERA_OV2640=y CONFIG_DRM=y @@ -227,9 +254,6 @@ CONFIG_FB_MXC_DCIC=m CONFIG_HANNSTAR_CABC=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FONTS=y -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y CONFIG_LOGO=y CONFIG_SOUND=y CONFIG_SND=y @@ -240,23 +264,43 @@ CONFIG_SND_SOC_EUKREA_TLV320=y CONFIG_SND_SOC_IMX_CS42888=y CONFIG_SND_SOC_IMX_WM8962=y CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_IMX_MQS=y CONFIG_SND_SOC_IMX_SPDIF=y CONFIG_SND_SOC_IMX_MC13783=y CONFIG_SND_SOC_IMX_HDMI=y CONFIG_SND_SOC_IMX_SI476X=y -CONFIG_SND_SOC_CS42XX8_I2C=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_ACM=m CONFIG_USB_STORAGE=y CONFIG_USB_CHIPIDEA=y CONFIG_USB_CHIPIDEA_UDC=y CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_EHSET_TEST_FIXTURE=m CONFIG_NOP_USB_XCEIV=y CONFIG_USB_MXS_PHY=y CONFIG_USB_GADGET=y +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_LB_SS=y +CONFIG_USB_CONFIGFS_F_FS=y CONFIG_USB_ZERO=m CONFIG_USB_ETH=m CONFIG_USB_G_NCM=m +CONFIG_USB_GADGETFS=m CONFIG_USB_MASS_STORAGE=m CONFIG_USB_G_SERIAL=m CONFIG_MMC=y @@ -266,13 +310,16 @@ CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_ESDHC_IMX=y CONFIG_MXC_IPU=y CONFIG_MXC_GPU_VIV=y -CONFIG_MXC_ASRC=y CONFIG_MXC_MIPI_CSI2=y CONFIG_MXC_MLB150=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_GPIO=y CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y CONFIG_LEDS_TRIGGER_GPIO=y CONFIG_RTC_CLASS=y CONFIG_RTC_INTF_DEV_UIE_EMUL=y @@ -284,7 +331,7 @@ CONFIG_MXC_PXP_V2=y CONFIG_IMX_SDMA=y CONFIG_MXS_DMA=y CONFIG_STAGING=y -CONFIG_COMMON_CLK_DEBUG=y +CONFIG_STAGING_MEDIA=y # CONFIG_IOMMU_SUPPORT is not set CONFIG_IIO=y CONFIG_VF610_ADC=y @@ -324,6 +371,7 @@ CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_15=m CONFIG_NLS_UTF8=y +CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_BUGVERBOSE is not set @@ -331,11 +379,9 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_SECURITYFS=y CONFIG_CRYPTO_USER=y CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CTS=y -CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_LRW=y CONFIG_CRYPTO_XTS=y CONFIG_CRYPTO_MD4=y @@ -346,7 +392,6 @@ CONFIG_CRYPTO_RMD160=y CONFIG_CRYPTO_RMD256=y CONFIG_CRYPTO_RMD320=y CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_TGR192=y CONFIG_CRYPTO_WP512=y @@ -363,3 +408,6 @@ CONFIG_CRC_CCITT=m CONFIG_CRC_T10DIF=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.10.31.bb b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.10.31.bb deleted file mode 100644 index 7724b7b4..00000000 --- a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.10.31.bb +++ /dev/null @@ -1,27 +0,0 @@ -# Adapted from linux-imx_3.10.31.bb - -SUMMARY = "Linux real-time kernel based on linux-imx" -DESCRIPTION = "Linux kernel that is based on Freescale's linux-imx, \ -with added real-time capabilities." - -require recipes-kernel/linux/linux-imx.inc -require recipes-kernel/linux/linux-dtb.inc - -DEPENDS += "lzop-native bc-native" - -SRCBRANCH = "imx_3.10.31_1.1.0_beta2" -SRCREV = "30ad12bdf93050a5bae1345bd40dba5f2d63f70f" -LOCALVERSION = "-1.1.0_beta2" - -SRC_URI += "\ - file://0001-ARM-clk-imx6q-fix-video-divider-for-revision-1.0-of-.patch \ - https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/older/patch-3.10.27-rt25.patch.gz;name=rt-patch1 \ - file://0001-fix-build.patch \ - file://0002-fix-build-with-rt-enabled.patch \ - file://0003-no-split-ptlocks.patch \ -" - -SRC_URI[rt-patch1.md5sum] = "aa231425f2a43220b5e8dbb057c7e5f9" -SRC_URI[rt-patch1.sha256sum] = "5fbee5cdf260db9b7751651ab141fb59f46d68c7aecfc32e81a2b5d702f47aac" - -COMPATIBLE_MACHINE = "(mx6)" diff --git a/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.14.28.bb b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.14.28.bb new file mode 100644 index 00000000..f5cb5806 --- /dev/null +++ b/meta-fsl-arm/recipes-kernel/linux/linux-imx-rt_3.14.28.bb @@ -0,0 +1,31 @@ +# Adapted from linux-imx_3.14.28.bb + +SUMMARY = "Linux real-time kernel based on linux-imx" +DESCRIPTION = "Linux kernel that is based on Freescale's linux-imx, \ +with added real-time capabilities." + +require recipes-kernel/linux/linux-imx.inc +require recipes-kernel/linux/linux-dtb.inc + +DEPENDS += "lzop-native bc-native" + +SRCBRANCH = "imx_3.14.28_1.0.0_ga" +SRCREV = "91cf351a2afc17ac4a260e4d2ad1e32d00925a1b" +LOCALVERSION = "-1.0.0_ga" + +SRC_URI += "\ + file://0001-ARM-imx6q-drop-unnecessary-semicolon.patch \ + file://0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch \ + file://0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch \ + file://0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch \ + file://0005-Revert-net-fec-fix-the-warning-found-by-dma-debug.patch \ + https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/older/patch-3.14.28-rt25.patch.gz;name=rt-patch1 \ + file://0001-fix-build.patch \ + file://0002-fix-build-with-rt-enabled.patch \ + file://0003-no-split-ptlocks.patch \ +" + +SRC_URI[rt-patch1.md5sum] = "28bfd1e14ccab1ea1fb48f56f982d80c" +SRC_URI[rt-patch1.sha256sum] = "4c9bd426cf559a99e169208df5535fcb18ec98daec73f148c88859a7c3333e52" + +COMPATIBLE_MACHINE = "(mx6)" -- 2.40.1