diff options
41 files changed, 144 insertions, 254 deletions
diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 9a02bcb9f6..43f891c1c9 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -4,12 +4,12 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .71 LINUX_VERSION-4.4 = .121 -LINUX_VERSION-4.9 = .87 +LINUX_VERSION-4.9 = .91 LINUX_VERSION-4.14 = .29 LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240 LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729 -LINUX_KERNEL_HASH-4.9.87 = 7ac9f6af69dc5a7e38bf35cc3fa889e3a4b22504a85f57fdc87734a8abe4c917 +LINUX_KERNEL_HASH-4.9.91 = 60caa752ec9fa1c426f6a2f37db3f268d0961b67a723b6443949112167b39832 LINUX_KERNEL_HASH-4.14.29 = 18f67b70ce9922c7ef95791bfd91f46e52ee9eb3e310978bb6ef6d2e93c14619 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/brcm2708/patches-4.9/950-0021-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch b/target/linux/brcm2708/patches-4.9/950-0021-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch index dfa312bc37..152f9abc8b 100644 --- a/target/linux/brcm2708/patches-4.9/950-0021-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch +++ b/target/linux/brcm2708/patches-4.9/950-0021-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch @@ -19,7 +19,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net> --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1262,6 +1262,15 @@ static struct clk_hw *bcm2835_register_c +@@ -1266,6 +1266,15 @@ static struct clk_hw *bcm2835_register_c init.name = data->name; init.flags = data->flags | CLK_IGNORE_UNUSED; diff --git a/target/linux/brcm2708/patches-4.9/950-0026-Register-the-clocks-early-during-the-boot-process.patch b/target/linux/brcm2708/patches-4.9/950-0026-Register-the-clocks-early-during-the-boot-process.patch index 9b2a613236..be69c175fb 100644 --- a/target/linux/brcm2708/patches-4.9/950-0026-Register-the-clocks-early-during-the-boot-process.patch +++ b/target/linux/brcm2708/patches-4.9/950-0026-Register-the-clocks-early-during-the-boot-process.patch @@ -13,7 +13,7 @@ Signed-off-by: Martin Sperl <kernel@martin.sperl.org> --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1903,8 +1903,15 @@ static int bcm2835_clk_probe(struct plat +@@ -1907,8 +1907,15 @@ static int bcm2835_clk_probe(struct plat if (ret) return ret; @@ -30,7 +30,7 @@ Signed-off-by: Martin Sperl <kernel@martin.sperl.org> } static const struct of_device_id bcm2835_clk_of_match[] = { -@@ -1921,7 +1928,11 @@ static struct platform_driver bcm2835_cl +@@ -1925,7 +1932,11 @@ static struct platform_driver bcm2835_cl .probe = bcm2835_clk_probe, }; diff --git a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch index ae90bea77f..3006fefc20 100644 --- a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch +++ b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch @@ -707,7 +707,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org> msleep(100); /* Cool down */ --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c -@@ -1908,6 +1908,85 @@ free_interfaces: +@@ -1912,6 +1912,85 @@ free_interfaces: if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) cp->string = usb_cache_string(dev, cp->desc.iConfiguration); diff --git a/target/linux/brcm2708/patches-4.9/950-0087-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch b/target/linux/brcm2708/patches-4.9/950-0087-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch index 40963de876..07944df1e0 100644 --- a/target/linux/brcm2708/patches-4.9/950-0087-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch +++ b/target/linux/brcm2708/patches-4.9/950-0087-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch @@ -14,7 +14,7 @@ use the same logic. --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c -@@ -2441,7 +2441,12 @@ static int pl011_setup_port(struct devic +@@ -2446,7 +2446,12 @@ static int pl011_setup_port(struct devic if (IS_ERR(base)) return PTR_ERR(base); diff --git a/target/linux/brcm2708/patches-4.9/950-0139-usb-dwc2-Avoid-suspending-if-we-re-in-gadget-mode-18.patch b/target/linux/brcm2708/patches-4.9/950-0139-usb-dwc2-Avoid-suspending-if-we-re-in-gadget-mode-18.patch index 1ed31c2d2e..50e1f47f6e 100644 --- a/target/linux/brcm2708/patches-4.9/950-0139-usb-dwc2-Avoid-suspending-if-we-re-in-gadget-mode-18.patch +++ b/target/linux/brcm2708/patches-4.9/950-0139-usb-dwc2-Avoid-suspending-if-we-re-in-gadget-mode-18.patch @@ -39,7 +39,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c -@@ -4365,6 +4365,9 @@ static int _dwc2_hcd_suspend(struct usb_ +@@ -4366,6 +4366,9 @@ static int _dwc2_hcd_suspend(struct usb_ if (!HCD_HW_ACCESSIBLE(hcd)) goto unlock; diff --git a/target/linux/brcm2708/patches-4.9/950-0152-clk-bcm-Support-rate-change-propagation-on-bcm2835-c.patch b/target/linux/brcm2708/patches-4.9/950-0152-clk-bcm-Support-rate-change-propagation-on-bcm2835-c.patch index 448b0375b3..d8617dd6d4 100644 --- a/target/linux/brcm2708/patches-4.9/950-0152-clk-bcm-Support-rate-change-propagation-on-bcm2835-c.patch +++ b/target/linux/brcm2708/patches-4.9/950-0152-clk-bcm-Support-rate-change-propagation-on-bcm2835-c.patch @@ -34,7 +34,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> u32 ctl_reg; u32 div_reg; -@@ -1017,10 +1020,60 @@ bcm2835_clk_is_pllc(struct clk_hw *hw) +@@ -1021,10 +1024,60 @@ bcm2835_clk_is_pllc(struct clk_hw *hw) return strncmp(clk_hw_get_name(hw), "pllc", 4) == 0; } @@ -96,7 +96,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> struct clk_hw *parent, *best_parent = NULL; bool current_parent_is_pllc; unsigned long rate, best_rate = 0; -@@ -1048,9 +1101,8 @@ static int bcm2835_clock_determine_rate( +@@ -1052,9 +1105,8 @@ static int bcm2835_clock_determine_rate( if (bcm2835_clk_is_pllc(parent) && !current_parent_is_pllc) continue; @@ -108,7 +108,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> if (rate > best_rate && rate <= req->rate) { best_parent = parent; best_prate = prate; -@@ -1271,6 +1323,13 @@ static struct clk_hw *bcm2835_register_c +@@ -1275,6 +1327,13 @@ static struct clk_hw *bcm2835_register_c if ((cprman_read(cprman, data->ctl_reg) & CM_ENABLE) == 0) init.flags &= ~CLK_IS_CRITICAL; diff --git a/target/linux/brcm2708/patches-4.9/950-0153-clk-bcm-Allow-rate-change-propagation-to-PLLH_AUX-on.patch b/target/linux/brcm2708/patches-4.9/950-0153-clk-bcm-Allow-rate-change-propagation-to-PLLH_AUX-on.patch index ed082abaa5..57517a9f06 100644 --- a/target/linux/brcm2708/patches-4.9/950-0153-clk-bcm-Allow-rate-change-propagation-to-PLLH_AUX-on.patch +++ b/target/linux/brcm2708/patches-4.9/950-0153-clk-bcm-Allow-rate-change-propagation-to-PLLH_AUX-on.patch @@ -19,7 +19,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1870,7 +1870,12 @@ static const struct bcm2835_clk_desc clk +@@ -1874,7 +1874,12 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_VECCTL, .div_reg = CM_VECDIV, .int_bits = 4, diff --git a/target/linux/brcm2708/patches-4.9/950-0154-clk-bcm-Fix-maybe-uninitialized-warning-in-bcm2835_c.patch b/target/linux/brcm2708/patches-4.9/950-0154-clk-bcm-Fix-maybe-uninitialized-warning-in-bcm2835_c.patch index 01e29775b9..4ed991173f 100644 --- a/target/linux/brcm2708/patches-4.9/950-0154-clk-bcm-Fix-maybe-uninitialized-warning-in-bcm2835_c.patch +++ b/target/linux/brcm2708/patches-4.9/950-0154-clk-bcm-Fix-maybe-uninitialized-warning-in-bcm2835_c.patch @@ -18,7 +18,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1029,7 +1029,7 @@ static unsigned long bcm2835_clock_choos +@@ -1033,7 +1033,7 @@ static unsigned long bcm2835_clock_choos struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); struct bcm2835_cprman *cprman = clock->cprman; const struct bcm2835_clock_data *data = clock->data; diff --git a/target/linux/brcm2708/patches-4.9/950-0155-clk-bcm2835-Don-t-rate-change-PLLs-on-behalf-of-DSI-.patch b/target/linux/brcm2708/patches-4.9/950-0155-clk-bcm2835-Don-t-rate-change-PLLs-on-behalf-of-DSI-.patch index 154e061155..1382204249 100644 --- a/target/linux/brcm2708/patches-4.9/950-0155-clk-bcm2835-Don-t-rate-change-PLLs-on-behalf-of-DSI-.patch +++ b/target/linux/brcm2708/patches-4.9/950-0155-clk-bcm2835-Don-t-rate-change-PLLs-on-behalf-of-DSI-.patch @@ -31,7 +31,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> }; struct bcm2835_clock_data { -@@ -1252,7 +1253,7 @@ bcm2835_register_pll_divider(struct bcm2 +@@ -1256,7 +1257,7 @@ bcm2835_register_pll_divider(struct bcm2 init.num_parents = 1; init.name = divider_name; init.ops = &bcm2835_pll_divider_clk_ops; @@ -40,7 +40,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> divider = devm_kzalloc(cprman->dev, sizeof(*divider), GFP_KERNEL); if (!divider) -@@ -1475,7 +1476,8 @@ static const struct bcm2835_clk_desc clk +@@ -1479,7 +1480,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLA_CORE, .load_mask = CM_PLLA_LOADCORE, .hold_mask = CM_PLLA_HOLDCORE, @@ -50,7 +50,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_PLLA_PER] = REGISTER_PLL_DIV( .name = "plla_per", .source_pll = "plla", -@@ -1483,7 +1485,8 @@ static const struct bcm2835_clk_desc clk +@@ -1487,7 +1489,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLA_PER, .load_mask = CM_PLLA_LOADPER, .hold_mask = CM_PLLA_HOLDPER, @@ -60,7 +60,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_PLLA_DSI0] = REGISTER_PLL_DIV( .name = "plla_dsi0", .source_pll = "plla", -@@ -1499,7 +1502,8 @@ static const struct bcm2835_clk_desc clk +@@ -1503,7 +1506,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLA_CCP2, .load_mask = CM_PLLA_LOADCCP2, .hold_mask = CM_PLLA_HOLDCCP2, @@ -70,7 +70,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* PLLB is used for the ARM's clock. */ [BCM2835_PLLB] = REGISTER_PLL( -@@ -1523,7 +1527,8 @@ static const struct bcm2835_clk_desc clk +@@ -1527,7 +1531,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLB_ARM, .load_mask = CM_PLLB_LOADARM, .hold_mask = CM_PLLB_HOLDARM, @@ -80,7 +80,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* * PLLC is the core PLL, used to drive the core VPU clock. -@@ -1552,7 +1557,8 @@ static const struct bcm2835_clk_desc clk +@@ -1556,7 +1561,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLC_CORE0, .load_mask = CM_PLLC_LOADCORE0, .hold_mask = CM_PLLC_HOLDCORE0, @@ -90,7 +90,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_PLLC_CORE1] = REGISTER_PLL_DIV( .name = "pllc_core1", .source_pll = "pllc", -@@ -1560,7 +1566,8 @@ static const struct bcm2835_clk_desc clk +@@ -1564,7 +1570,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLC_CORE1, .load_mask = CM_PLLC_LOADCORE1, .hold_mask = CM_PLLC_HOLDCORE1, @@ -100,7 +100,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_PLLC_CORE2] = REGISTER_PLL_DIV( .name = "pllc_core2", .source_pll = "pllc", -@@ -1568,7 +1575,8 @@ static const struct bcm2835_clk_desc clk +@@ -1572,7 +1579,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLC_CORE2, .load_mask = CM_PLLC_LOADCORE2, .hold_mask = CM_PLLC_HOLDCORE2, @@ -110,7 +110,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_PLLC_PER] = REGISTER_PLL_DIV( .name = "pllc_per", .source_pll = "pllc", -@@ -1576,7 +1584,8 @@ static const struct bcm2835_clk_desc clk +@@ -1580,7 +1588,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLC_PER, .load_mask = CM_PLLC_LOADPER, .hold_mask = CM_PLLC_HOLDPER, @@ -120,7 +120,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* * PLLD is the display PLL, used to drive DSI display panels. -@@ -1605,7 +1614,8 @@ static const struct bcm2835_clk_desc clk +@@ -1609,7 +1618,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLD_CORE, .load_mask = CM_PLLD_LOADCORE, .hold_mask = CM_PLLD_HOLDCORE, @@ -130,7 +130,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_PLLD_PER] = REGISTER_PLL_DIV( .name = "plld_per", .source_pll = "plld", -@@ -1613,7 +1623,8 @@ static const struct bcm2835_clk_desc clk +@@ -1617,7 +1627,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLD_PER, .load_mask = CM_PLLD_LOADPER, .hold_mask = CM_PLLD_HOLDPER, @@ -140,7 +140,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_PLLD_DSI0] = REGISTER_PLL_DIV( .name = "plld_dsi0", .source_pll = "plld", -@@ -1658,7 +1669,8 @@ static const struct bcm2835_clk_desc clk +@@ -1662,7 +1673,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLH_RCAL, .load_mask = CM_PLLH_LOADRCAL, .hold_mask = 0, @@ -150,7 +150,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_PLLH_AUX] = REGISTER_PLL_DIV( .name = "pllh_aux", .source_pll = "pllh", -@@ -1666,7 +1678,8 @@ static const struct bcm2835_clk_desc clk +@@ -1670,7 +1682,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLH_AUX, .load_mask = CM_PLLH_LOADAUX, .hold_mask = 0, @@ -160,7 +160,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_PLLH_PIX] = REGISTER_PLL_DIV( .name = "pllh_pix", .source_pll = "pllh", -@@ -1674,7 +1687,8 @@ static const struct bcm2835_clk_desc clk +@@ -1678,7 +1691,8 @@ static const struct bcm2835_clk_desc clk .a2w_reg = A2W_PLLH_PIX, .load_mask = CM_PLLH_LOADPIX, .hold_mask = 0, diff --git a/target/linux/brcm2708/patches-4.9/950-0156-clk-bcm2835-Register-the-DSI0-DSI1-pixel-clocks.patch b/target/linux/brcm2708/patches-4.9/950-0156-clk-bcm2835-Register-the-DSI0-DSI1-pixel-clocks.patch index 24e8aedbdc..61fae23cff 100644 --- a/target/linux/brcm2708/patches-4.9/950-0156-clk-bcm2835-Register-the-DSI0-DSI1-pixel-clocks.patch +++ b/target/linux/brcm2708/patches-4.9/950-0156-clk-bcm2835-Register-the-DSI0-DSI1-pixel-clocks.patch @@ -76,7 +76,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* Must be last */ struct clk_hw_onecell_data onecell; -@@ -907,6 +928,9 @@ static long bcm2835_clock_rate_from_divi +@@ -911,6 +932,9 @@ static long bcm2835_clock_rate_from_divi const struct bcm2835_clock_data *data = clock->data; u64 temp; @@ -86,7 +86,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* * The divisor is a 12.12 fixed point field, but only some of * the bits are populated in any given clock. -@@ -930,7 +954,12 @@ static unsigned long bcm2835_clock_get_r +@@ -934,7 +958,12 @@ static unsigned long bcm2835_clock_get_r struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); struct bcm2835_cprman *cprman = clock->cprman; const struct bcm2835_clock_data *data = clock->data; @@ -100,7 +100,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> return bcm2835_clock_rate_from_divisor(clock, parent_rate, div); } -@@ -1209,7 +1238,7 @@ static struct clk_hw *bcm2835_register_p +@@ -1213,7 +1242,7 @@ static struct clk_hw *bcm2835_register_p memset(&init, 0, sizeof(init)); /* All of the PLLs derive from the external oscillator. */ @@ -109,7 +109,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> init.num_parents = 1; init.name = data->name; init.ops = &bcm2835_pll_clk_ops; -@@ -1295,18 +1324,22 @@ static struct clk_hw *bcm2835_register_c +@@ -1299,18 +1328,22 @@ static struct clk_hw *bcm2835_register_c struct bcm2835_clock *clock; struct clk_init_data init; const char *parents[1 << CM_SRC_BITS]; @@ -139,7 +139,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> } memset(&init, 0, sizeof(init)); -@@ -1442,6 +1475,47 @@ static const char *const bcm2835_clock_v +@@ -1446,6 +1479,47 @@ static const char *const bcm2835_clock_v __VA_ARGS__) /* @@ -187,7 +187,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> * the real definition of all the pll, pll_dividers and clocks * these make use of the above REGISTER_* macros */ -@@ -1904,6 +1978,18 @@ static const struct bcm2835_clk_desc clk +@@ -1908,6 +1982,18 @@ static const struct bcm2835_clk_desc clk .div_reg = CM_DSI1EDIV, .int_bits = 4, .frac_bits = 8), @@ -206,7 +206,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* the gates */ -@@ -1962,8 +2048,19 @@ static int bcm2835_clk_probe(struct plat +@@ -1966,8 +2052,19 @@ static int bcm2835_clk_probe(struct plat if (IS_ERR(cprman->regs)) return PTR_ERR(cprman->regs); diff --git a/target/linux/brcm2708/patches-4.9/950-0157-clk-bcm2835-Add-leaf-clock-measurement-support-disab.patch b/target/linux/brcm2708/patches-4.9/950-0157-clk-bcm2835-Add-leaf-clock-measurement-support-disab.patch index 16c5ec5cbf..f4190864c6 100644 --- a/target/linux/brcm2708/patches-4.9/950-0157-clk-bcm2835-Add-leaf-clock-measurement-support-disab.patch +++ b/target/linux/brcm2708/patches-4.9/950-0157-clk-bcm2835-Add-leaf-clock-measurement-support-disab.patch @@ -107,7 +107,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> }; struct bcm2835_gate_data { -@@ -1008,6 +1067,17 @@ static int bcm2835_clock_on(struct clk_h +@@ -1012,6 +1071,17 @@ static int bcm2835_clock_on(struct clk_h CM_GATE); spin_unlock(&cprman->regs_lock); @@ -125,7 +125,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> return 0; } -@@ -1774,7 +1844,8 @@ static const struct bcm2835_clk_desc clk +@@ -1778,7 +1848,8 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_OTPCTL, .div_reg = CM_OTPDIV, .int_bits = 4, @@ -135,7 +135,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* * Used for a 1Mhz clock for the system clocksource, and also used * bythe watchdog timer and the camera pulse generator. -@@ -1808,13 +1879,15 @@ static const struct bcm2835_clk_desc clk +@@ -1812,13 +1883,15 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_H264CTL, .div_reg = CM_H264DIV, .int_bits = 4, @@ -153,7 +153,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* * Secondary SDRAM clock. Used for low-voltage modes when the PLL -@@ -1825,13 +1898,15 @@ static const struct bcm2835_clk_desc clk +@@ -1829,13 +1902,15 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_SDCCTL, .div_reg = CM_SDCDIV, .int_bits = 6, @@ -171,7 +171,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* * VPU clock. This doesn't have an enable bit, since it drives * the bus for everything else, and is special so it doesn't need -@@ -1845,7 +1920,8 @@ static const struct bcm2835_clk_desc clk +@@ -1849,7 +1924,8 @@ static const struct bcm2835_clk_desc clk .int_bits = 12, .frac_bits = 8, .flags = CLK_IS_CRITICAL, @@ -181,7 +181,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* clocks with per parent mux */ [BCM2835_CLOCK_AVEO] = REGISTER_PER_CLK( -@@ -1853,19 +1929,22 @@ static const struct bcm2835_clk_desc clk +@@ -1857,19 +1933,22 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_AVEOCTL, .div_reg = CM_AVEODIV, .int_bits = 4, @@ -207,7 +207,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_CLOCK_DFT] = REGISTER_PER_CLK( .name = "dft", .ctl_reg = CM_DFTCTL, -@@ -1877,7 +1956,8 @@ static const struct bcm2835_clk_desc clk +@@ -1881,7 +1960,8 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_DPICTL, .div_reg = CM_DPIDIV, .int_bits = 4, @@ -217,7 +217,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* Arasan EMMC clock */ [BCM2835_CLOCK_EMMC] = REGISTER_PER_CLK( -@@ -1885,7 +1965,8 @@ static const struct bcm2835_clk_desc clk +@@ -1889,7 +1969,8 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_EMMCCTL, .div_reg = CM_EMMCDIV, .int_bits = 4, @@ -227,7 +227,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* General purpose (GPIO) clocks */ [BCM2835_CLOCK_GP0] = REGISTER_PER_CLK( -@@ -1894,7 +1975,8 @@ static const struct bcm2835_clk_desc clk +@@ -1898,7 +1979,8 @@ static const struct bcm2835_clk_desc clk .div_reg = CM_GP0DIV, .int_bits = 12, .frac_bits = 12, @@ -237,7 +237,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_CLOCK_GP1] = REGISTER_PER_CLK( .name = "gp1", .ctl_reg = CM_GP1CTL, -@@ -1902,7 +1984,8 @@ static const struct bcm2835_clk_desc clk +@@ -1906,7 +1988,8 @@ static const struct bcm2835_clk_desc clk .int_bits = 12, .frac_bits = 12, .flags = CLK_IS_CRITICAL, @@ -247,7 +247,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> [BCM2835_CLOCK_GP2] = REGISTER_PER_CLK( .name = "gp2", .ctl_reg = CM_GP2CTL, -@@ -1917,40 +2000,46 @@ static const struct bcm2835_clk_desc clk +@@ -1921,40 +2004,46 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_HSMCTL, .div_reg = CM_HSMDIV, .int_bits = 4, @@ -300,7 +300,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* TV encoder clock. Only operating frequency is 108Mhz. */ [BCM2835_CLOCK_VEC] = REGISTER_PER_CLK( -@@ -1963,7 +2052,8 @@ static const struct bcm2835_clk_desc clk +@@ -1967,7 +2056,8 @@ static const struct bcm2835_clk_desc clk * Allow rate change propagation only on PLLH_AUX which is * assigned index 7 in the parent array. */ @@ -310,7 +310,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* dsi clocks */ [BCM2835_CLOCK_DSI0E] = REGISTER_PER_CLK( -@@ -1971,25 +2061,29 @@ static const struct bcm2835_clk_desc clk +@@ -1975,25 +2065,29 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_DSI0ECTL, .div_reg = CM_DSI0EDIV, .int_bits = 4, diff --git a/target/linux/brcm2708/patches-4.9/950-0185-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch b/target/linux/brcm2708/patches-4.9/950-0185-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch index 13f6c11f59..c8e7151003 100644 --- a/target/linux/brcm2708/patches-4.9/950-0185-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch +++ b/target/linux/brcm2708/patches-4.9/950-0185-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch @@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1366,6 +1366,11 @@ bcm2835_register_pll_divider(struct bcm2 +@@ -1370,6 +1370,11 @@ bcm2835_register_pll_divider(struct bcm2 divider->div.hw.init = &init; divider->div.table = NULL; diff --git a/target/linux/brcm2708/patches-4.9/950-0186-clk-bcm2835-Add-claim-clocks-property.patch b/target/linux/brcm2708/patches-4.9/950-0186-clk-bcm2835-Add-claim-clocks-property.patch index 09dcfa7a68..09d449a8c5 100644 --- a/target/linux/brcm2708/patches-4.9/950-0186-clk-bcm2835-Add-claim-clocks-property.patch +++ b/target/linux/brcm2708/patches-4.9/950-0186-clk-bcm2835-Add-claim-clocks-property.patch @@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> cma-192 = <0>,"-0+1-2-3-4"; --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -1298,6 +1298,8 @@ static const struct clk_ops bcm2835_vpu_ +@@ -1302,6 +1302,8 @@ static const struct clk_ops bcm2835_vpu_ .debug_init = bcm2835_clock_debug_init, }; @@ -57,7 +57,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> static struct clk_hw *bcm2835_register_pll(struct bcm2835_cprman *cprman, const struct bcm2835_pll_data *data) { -@@ -1314,6 +1316,9 @@ static struct clk_hw *bcm2835_register_p +@@ -1318,6 +1320,9 @@ static struct clk_hw *bcm2835_register_p init.ops = &bcm2835_pll_clk_ops; init.flags = CLK_IGNORE_UNUSED; @@ -67,7 +67,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> pll = kzalloc(sizeof(*pll), GFP_KERNEL); if (!pll) return NULL; -@@ -1367,8 +1372,10 @@ bcm2835_register_pll_divider(struct bcm2 +@@ -1371,8 +1376,10 @@ bcm2835_register_pll_divider(struct bcm2 divider->div.table = NULL; if (!(cprman_read(cprman, data->cm_reg) & data->hold_mask)) { @@ -80,7 +80,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> } divider->cprman = cprman; -@@ -2104,6 +2111,8 @@ static const struct bcm2835_clk_desc clk +@@ -2108,6 +2115,8 @@ static const struct bcm2835_clk_desc clk .ctl_reg = CM_PERIICTL), }; @@ -89,7 +89,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> /* * Permanently take a reference on the parent of the SDRAM clock. * -@@ -2123,6 +2132,19 @@ static int bcm2835_mark_sdc_parent_criti +@@ -2127,6 +2136,19 @@ static int bcm2835_mark_sdc_parent_criti return clk_prepare_enable(parent); } @@ -109,7 +109,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> static int bcm2835_clk_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; -@@ -2132,6 +2154,7 @@ static int bcm2835_clk_probe(struct plat +@@ -2136,6 +2158,7 @@ static int bcm2835_clk_probe(struct plat const struct bcm2835_clk_desc *desc; const size_t asize = ARRAY_SIZE(clk_desc_array); size_t i; @@ -117,7 +117,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> int ret; cprman = devm_kzalloc(dev, sizeof(*cprman) + -@@ -2147,6 +2170,13 @@ static int bcm2835_clk_probe(struct plat +@@ -2151,6 +2174,13 @@ static int bcm2835_clk_probe(struct plat if (IS_ERR(cprman->regs)) return PTR_ERR(cprman->regs); diff --git a/target/linux/brcm2708/patches-4.9/950-0195-amba_pl011-Round-input-clock-up.patch b/target/linux/brcm2708/patches-4.9/950-0195-amba_pl011-Round-input-clock-up.patch index 2bd501d8db..11293c360e 100644 --- a/target/linux/brcm2708/patches-4.9/950-0195-amba_pl011-Round-input-clock-up.patch +++ b/target/linux/brcm2708/patches-4.9/950-0195-amba_pl011-Round-input-clock-up.patch @@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c -@@ -1646,6 +1646,23 @@ static void pl011_put_poll_char(struct u +@@ -1651,6 +1651,23 @@ static void pl011_put_poll_char(struct u #endif /* CONFIG_CONSOLE_POLL */ @@ -50,7 +50,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> static int pl011_hwinit(struct uart_port *port) { struct uart_amba_port *uap = -@@ -1662,7 +1679,7 @@ static int pl011_hwinit(struct uart_port +@@ -1667,7 +1684,7 @@ static int pl011_hwinit(struct uart_port if (retval) return retval; @@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> /* Clear pending error and receive interrupts */ pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS | -@@ -2300,7 +2317,7 @@ static int __init pl011_console_setup(st +@@ -2305,7 +2322,7 @@ static int __init pl011_console_setup(st plat->init(); } @@ -68,7 +68,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> if (uap->vendor->fixed_options) { baud = uap->fixed_baud; -@@ -2372,6 +2389,7 @@ static struct uart_driver amba_reg = { +@@ -2377,6 +2394,7 @@ static struct uart_driver amba_reg = { .cons = AMBA_CONSOLE, }; @@ -76,7 +76,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> static int pl011_probe_dt_alias(int index, struct device *dev) { struct device_node *np; -@@ -2403,6 +2421,7 @@ static int pl011_probe_dt_alias(int inde +@@ -2408,6 +2426,7 @@ static int pl011_probe_dt_alias(int inde return ret; } diff --git a/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch b/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch index 82992c5403..6a93398c72 100644 --- a/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch +++ b/target/linux/brcm63xx/patches-4.9/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch @@ -52,9 +52,9 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> cur_offset = slave->offset + slave->mtd.size; } -@@ -1164,7 +1163,9 @@ int parse_mtd_partitions(struct mtd_info - types = types_of; - } +@@ -1136,7 +1135,9 @@ static int mtd_part_of_parse(struct mtd_ + const char *fixed = "fixed-partitions"; + int ret, err = 0; - np = of_get_child_by_name(mtd_get_of_node(master), "partitions"); + np = mtd_get_of_node(master); @@ -63,9 +63,9 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> of_property_for_each_string(np, "compatible", prop, compat) { parser = mtd_part_get_compatible_parser(compat); if (!parser) -@@ -1180,8 +1181,12 @@ int parse_mtd_partitions(struct mtd_info +@@ -1208,8 +1209,12 @@ int parse_mtd_partitions(struct mtd_info + types = types_of; } - of_node_put(np); - if (!types) + if (!types) { @@ -76,4 +76,4 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> + } for ( ; *types; types++) { - pr_debug("%s: parsing partitions %s\n", master->name, *types); + /* diff --git a/target/linux/generic/backport-4.9/050-usb-dwc2-Remove-unnecessary-kfree.patch b/target/linux/generic/backport-4.9/050-usb-dwc2-Remove-unnecessary-kfree.patch index df3656dd55..01bf7983fc 100644 --- a/target/linux/generic/backport-4.9/050-usb-dwc2-Remove-unnecessary-kfree.patch +++ b/target/linux/generic/backport-4.9/050-usb-dwc2-Remove-unnecessary-kfree.patch @@ -14,7 +14,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c -@@ -5184,7 +5184,6 @@ error3: +@@ -5185,7 +5185,6 @@ error3: error2: usb_put_hcd(hcd); error1: diff --git a/target/linux/generic/backport-4.9/071-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch b/target/linux/generic/backport-4.9/071-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch index 37639faf17..d16948668c 100644 --- a/target/linux/generic/backport-4.9/071-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch +++ b/target/linux/generic/backport-4.9/071-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch @@ -33,8 +33,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac-bcma.c +++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c -@@ -99,12 +99,11 @@ static int bgmac_probe(struct bcma_devic - u8 *mac; +@@ -100,12 +100,11 @@ static int bgmac_probe(struct bcma_devic + const u8 *mac = NULL; int err; - bgmac = kzalloc(sizeof(*bgmac), GFP_KERNEL); @@ -47,7 +47,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac->dma_dev = core->dma_dev; bgmac->irq = core->irq; -@@ -285,7 +284,6 @@ static int bgmac_probe(struct bcma_devic +@@ -292,7 +291,6 @@ static int bgmac_probe(struct bcma_devic err1: bcma_mdio_mii_unregister(bgmac->mii_bus); err: diff --git a/target/linux/generic/backport-4.9/071-v4.10-0002-net-bgmac-drop-struct-bcma_mdio-we-don-t-need-anymor.patch b/target/linux/generic/backport-4.9/071-v4.10-0002-net-bgmac-drop-struct-bcma_mdio-we-don-t-need-anymor.patch index 7a6f3454d1..5e3d33375a 100644 --- a/target/linux/generic/backport-4.9/071-v4.10-0002-net-bgmac-drop-struct-bcma_mdio-we-don-t-need-anymor.patch +++ b/target/linux/generic/backport-4.9/071-v4.10-0002-net-bgmac-drop-struct-bcma_mdio-we-don-t-need-anymor.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac-bcma.c +++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c -@@ -159,7 +159,7 @@ static int bgmac_probe(struct bcma_devic +@@ -166,7 +166,7 @@ static int bgmac_probe(struct bcma_devic if (!bgmac_is_bcm4707_family(core) && !(ci->id == BCMA_CHIP_ID_BCM53573 && core->core_unit == 1)) { diff --git a/target/linux/generic/backport-4.9/071-v4.15-0001-net-bgmac-enable-master-mode-for-BCM54210E-and-B5021.patch b/target/linux/generic/backport-4.9/071-v4.15-0001-net-bgmac-enable-master-mode-for-BCM54210E-and-B5021.patch index c371e6355a..772ee61c08 100644 --- a/target/linux/generic/backport-4.9/071-v4.15-0001-net-bgmac-enable-master-mode-for-BCM54210E-and-B5021.patch +++ b/target/linux/generic/backport-4.9/071-v4.15-0001-net-bgmac-enable-master-mode-for-BCM54210E-and-B5021.patch @@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac-bcma.c +++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c -@@ -159,13 +159,19 @@ static int bgmac_probe(struct bcma_devic +@@ -166,13 +166,19 @@ static int bgmac_probe(struct bcma_devic if (!bgmac_is_bcm4707_family(core) && !(ci->id == BCMA_CHIP_ID_BCM53573 && core->core_unit == 1)) { diff --git a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch index cfd41f2f0d..477c498b2b 100644 --- a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch +++ b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch @@ -159,7 +159,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> flexcan_write(priv->reg_ctrl_default, ®s->ctrl); --- a/drivers/net/can/ifi_canfd/ifi_canfd.c +++ b/drivers/net/can/ifi_canfd/ifi_canfd.c -@@ -578,7 +578,7 @@ static int ifi_canfd_poll(struct napi_st +@@ -589,7 +589,7 @@ static int ifi_canfd_poll(struct napi_st work_done += ifi_canfd_do_rx_poll(ndev, quota - work_done); if (work_done < quota) { @@ -269,7 +269,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> "NAPI Complete, did %d packets with budget %d\n", --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c -@@ -651,7 +651,7 @@ static int xgene_enet_napi(struct napi_s +@@ -658,7 +658,7 @@ static int xgene_enet_napi(struct napi_s processed = xgene_enet_process_ring(ring, budget); if (processed != budget) { @@ -388,7 +388,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID | --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c -@@ -3229,7 +3229,7 @@ static int bnx2x_poll(struct napi_struct +@@ -3230,7 +3230,7 @@ static int bnx2x_poll(struct napi_struct * has been updated when NAPI was scheduled. */ if (IS_FCOE_FP(fp)) { @@ -399,7 +399,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* bnx2x_has_rx_work() reads the status block, --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c -@@ -1774,7 +1774,7 @@ static int bnxt_poll_nitroa0(struct napi +@@ -1778,7 +1778,7 @@ static int bnxt_poll_nitroa0(struct napi } if (!bnxt_has_work(bp, cpr) && rx_pkts < budget) { @@ -657,7 +657,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> gfar_write(®s->rstat, gfargrp->rstat); --- a/drivers/net/ethernet/freescale/ucc_geth.c +++ b/drivers/net/ethernet/freescale/ucc_geth.c -@@ -3303,7 +3303,7 @@ static int ucc_geth_poll(struct napi_str +@@ -3301,7 +3301,7 @@ static int ucc_geth_poll(struct napi_str howmany += ucc_geth_rx(ugeth, i, budget - howmany); if (howmany < budget) { @@ -712,7 +712,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> * then check once more to make sure we are done. --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c -@@ -1009,7 +1009,7 @@ restart_poll: +@@ -1027,7 +1027,7 @@ restart_poll: if (frames_processed < budget) { enable_scrq_irq(adapter, adapter->rx_scrq[scrq_num]); diff --git a/target/linux/generic/hack-4.9/207-disable-modorder.patch b/target/linux/generic/hack-4.9/207-disable-modorder.patch index da7ca2a15f..f9b3ac4dcf 100644 --- a/target/linux/generic/hack-4.9/207-disable-modorder.patch +++ b/target/linux/generic/hack-4.9/207-disable-modorder.patch @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/Makefile +++ b/Makefile -@@ -1202,7 +1202,6 @@ all: modules +@@ -1211,7 +1211,6 @@ all: modules PHONY += modules modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin @@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> @$(kecho) ' Building modules, stage 2.'; $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild -@@ -1232,7 +1231,6 @@ _modinst_: +@@ -1241,7 +1240,6 @@ _modinst_: rm -f $(MODLIB)/build ; \ ln -s $(CURDIR) $(MODLIB)/build ; \ fi diff --git a/target/linux/generic/hack-4.9/773-bgmac-add-srab-switch.patch b/target/linux/generic/hack-4.9/773-bgmac-add-srab-switch.patch index e6ad0a51dc..88e60e5875 100644 --- a/target/linux/generic/hack-4.9/773-bgmac-add-srab-switch.patch +++ b/target/linux/generic/hack-4.9/773-bgmac-add-srab-switch.patch @@ -14,7 +14,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- a/drivers/net/ethernet/broadcom/bgmac-bcma.c +++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c -@@ -236,6 +236,7 @@ static int bgmac_probe(struct bcma_devic +@@ -243,6 +243,7 @@ static int bgmac_probe(struct bcma_devic bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST; bgmac->feature_flags |= BGMAC_FEAT_NO_RESET; bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500; diff --git a/target/linux/generic/hack-4.9/902-debloat_proc.patch b/target/linux/generic/hack-4.9/902-debloat_proc.patch index 0559310a18..01c67c2290 100644 --- a/target/linux/generic/hack-4.9/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.9/902-debloat_proc.patch @@ -221,7 +221,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (!root_irq_dir) --- a/kernel/time/timer_list.c +++ b/kernel/time/timer_list.c -@@ -393,6 +393,8 @@ static int __init init_timer_list_procfs +@@ -399,6 +399,8 @@ static int __init init_timer_list_procfs { struct proc_dir_entry *pe; @@ -243,7 +243,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> } --- a/mm/vmstat.c +++ b/mm/vmstat.c -@@ -1792,10 +1792,12 @@ static int __init setup_vmstat(void) +@@ -1798,10 +1798,12 @@ static int __init setup_vmstat(void) cpu_notifier_register_done(); #endif #ifdef CONFIG_PROC_FS diff --git a/target/linux/generic/hack-4.9/904-debloat_dma_buf.patch b/target/linux/generic/hack-4.9/904-debloat_dma_buf.patch index 81db6dcb3e..da69b7e784 100644 --- a/target/linux/generic/hack-4.9/904-debloat_dma_buf.patch +++ b/target/linux/generic/hack-4.9/904-debloat_dma_buf.patch @@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> +MODULE_LICENSE("GPL"); --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -2170,6 +2170,7 @@ int wake_up_state(struct task_struct *p, +@@ -2171,6 +2171,7 @@ int wake_up_state(struct task_struct *p, { return try_to_wake_up(p, state, 0); } diff --git a/target/linux/generic/pending-4.9/190-2-5-e1000e-Fix-wrong-comment-related-to-link-detection.patch b/target/linux/generic/pending-4.9/190-2-5-e1000e-Fix-wrong-comment-related-to-link-detection.patch index f980bb080d..c8258e5cb2 100644 --- a/target/linux/generic/pending-4.9/190-2-5-e1000e-Fix-wrong-comment-related-to-link-detection.patch +++ b/target/linux/generic/pending-4.9/190-2-5-e1000e-Fix-wrong-comment-related-to-link-detection.patch @@ -23,7 +23,7 @@ Tested-by: Aaron Brown <aaron.f.brown@intel.com> --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c -@@ -5066,7 +5066,7 @@ static bool e1000e_has_link(struct e1000 +@@ -5072,7 +5072,7 @@ static bool e1000e_has_link(struct e1000 /* get_link_status is set on LSC (link status) interrupt or * Rx sequence error interrupt. get_link_status will stay @@ -32,7 +32,7 @@ Tested-by: Aaron Brown <aaron.f.brown@intel.com> * for copper adapters ONLY */ switch (hw->phy.media_type) { -@@ -5084,7 +5084,7 @@ static bool e1000e_has_link(struct e1000 +@@ -5090,7 +5090,7 @@ static bool e1000e_has_link(struct e1000 break; case e1000_media_type_internal_serdes: ret_val = hw->mac.ops.check_for_link(hw); diff --git a/target/linux/generic/pending-4.9/210-Revert-led-core-Fix-brightness-setting-when-setting-.patch b/target/linux/generic/pending-4.9/210-Revert-led-core-Fix-brightness-setting-when-setting-.patch deleted file mode 100644 index df23bb3db8..0000000000 --- a/target/linux/generic/pending-4.9/210-Revert-led-core-Fix-brightness-setting-when-setting-.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Matthias Schiffer <mschiffer@universe-factory.net> -Date: Sat, 17 Mar 2018 16:53:21 +0100 -Subject: [PATCH] Revert "led: core: Fix brightness setting when setting - delay_off=0" - -This reverts commit 86b9fa2190907f4f550d9d6bf490c5f89ca33836. ---- - drivers/leds/led-core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c -index d70d4a5273b8..3bce44893021 100644 ---- a/drivers/leds/led-core.c -+++ b/drivers/leds/led-core.c -@@ -186,7 +186,7 @@ void led_blink_set(struct led_classdev *led_cdev, - unsigned long *delay_on, - unsigned long *delay_off) - { -- led_stop_software_blink(led_cdev); -+ del_timer_sync(&led_cdev->blink_timer); - - led_cdev->flags &= ~LED_BLINK_ONESHOT; - led_cdev->flags &= ~LED_BLINK_ONESHOT_STOP; --- -2.16.2 - diff --git a/target/linux/generic/pending-4.9/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/pending-4.9/610-netfilter_match_bypass_default_checks.patch index 6e653ef881..217d20ec5d 100644 --- a/target/linux/generic/pending-4.9/610-netfilter_match_bypass_default_checks.patch +++ b/target/linux/generic/pending-4.9/610-netfilter_match_bypass_default_checks.patch @@ -59,16 +59,16 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> static bool ip_checkentry(const struct ipt_ip *ip) { -@@ -545,6 +571,8 @@ find_check_entry(struct ipt_entry *e, st +@@ -550,6 +576,8 @@ find_check_entry(struct ipt_entry *e, st + struct xt_mtchk_param mtpar; struct xt_entry_match *ematch; - unsigned long pcnt; + ip_checkdefault(&e->ip); + - pcnt = xt_percpu_counter_alloc(); - if (IS_ERR_VALUE(pcnt)) + if (!xt_percpu_counter_alloc(alloc_state, &e->counters)) return -ENOMEM; -@@ -824,6 +852,7 @@ copy_entries_to_user(unsigned int total_ + +@@ -829,6 +857,7 @@ copy_entries_to_user(unsigned int total_ const struct xt_table_info *private = table->private; int ret = 0; const void *loc_cpu_entry; @@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> counters = alloc_counters(table); if (IS_ERR(counters)) -@@ -851,6 +880,14 @@ copy_entries_to_user(unsigned int total_ +@@ -856,6 +885,14 @@ copy_entries_to_user(unsigned int total_ goto free_counters; } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> for (i = sizeof(struct ipt_entry); i < e->target_offset; i += m->u.match_size) { -@@ -1240,12 +1277,15 @@ compat_copy_entry_to_user(struct ipt_ent +@@ -1245,12 +1282,15 @@ compat_copy_entry_to_user(struct ipt_ent compat_uint_t origsize; const struct xt_entry_match *ematch; int ret = 0; diff --git a/target/linux/generic/pending-4.9/812-pci-dwc-fix-enumeration.patch b/target/linux/generic/pending-4.9/812-pci-dwc-fix-enumeration.patch deleted file mode 100644 index bb0e0c4bb7..0000000000 --- a/target/linux/generic/pending-4.9/812-pci-dwc-fix-enumeration.patch +++ /dev/null @@ -1,60 +0,0 @@ -From patchwork Tue Jan 9 14:42:21 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: PCI: dwc: fix enumeration end when reaching root subordinate -From: Koen Vandeputte <koen.vandeputte@ncentric.com> -X-Patchwork-Id: 10152443 -Message-Id: <1515508941-20055-1-git-send-email-koen.vandeputte@ncentric.com> -To: linux-pci@vger.kernel.org -Cc: bhelgaas@google.com, lorenzo.pieralisi@arm.com, - Joao.Pinto@synopsys.com, jingoohan1@gmail.com, niklas.cassel@axis.com, - Koen Vandeputte <koen.vandeputte@ncentric.com>, - Mika Westerberg <mika.westerberg@linux.intel.com> -Date: Tue, 9 Jan 2018 15:42:21 +0100 - -The subordinate value indicates the highest bus number which can be -reached downstream though a certain device. - -Commit a20c7f36bd3d ("PCI: Do not allocate more buses than available in -parent") -ensures that downstream devices cannot assign busnumbers higher than the -upstream device subordinate number, which was indeed illogical. - -By default, dw_pcie_setup_rc() inits the Root Complex subordinate to a -value of 0x01. - -Due to this combined with above commit, enumeration stops digging deeper -downstream as soon as bus num 0x01 has been assigned, which is always -the case for a bridge device. - -This results in all devices behind a bridge bus to remain undetected, as -these would be connected to bus 0x02 or higher. - -Fix this by initializing the RC to a subordinate value of 0xff, meaning -that all busses [0x00-0xff] are reachable through this RC. - -Fixes: a20c7f36bd3d ("PCI: Do not allocate more buses than available in -parent") -Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> -Tested-by: Niklas Cassel <niklas.cassel@axis.com> -Cc: Mika Westerberg <mika.westerberg@linux.intel.com> ---- - -Will send separate patches to stable as this file got moved/renamed - - - drivers/pci/host/pcie-designware.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/pci/host/pcie-designware.c -+++ b/drivers/pci/host/pcie-designware.c -@@ -861,7 +861,7 @@ void dw_pcie_setup_rc(struct pcie_port * - /* setup bus numbers */ - val = dw_pcie_readl_rc(pp, PCI_PRIMARY_BUS); - val &= 0xff000000; -- val |= 0x00010100; -+ val |= 0x00ff0100; - dw_pcie_writel_rc(pp, PCI_PRIMARY_BUS, val); - - /* setup command register */ diff --git a/target/linux/generic/pending-4.9/834-ledtrig-libata.patch b/target/linux/generic/pending-4.9/834-ledtrig-libata.patch index 50eaa52e97..197e01a274 100644 --- a/target/linux/generic/pending-4.9/834-ledtrig-libata.patch +++ b/target/linux/generic/pending-4.9/834-ledtrig-libata.patch @@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> /** * ata_build_rw_tf - Build ATA taskfile for given read/write request * @tf: Target ATA taskfile -@@ -4964,6 +4977,9 @@ struct ata_queued_cmd *ata_qc_new_init(s +@@ -4985,6 +4998,9 @@ struct ata_queued_cmd *ata_qc_new_init(s if (tag < 0) return NULL; } @@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> qc = __ata_qc_from_tag(ap, tag); qc->tag = tag; -@@ -5866,6 +5882,9 @@ struct ata_port *ata_port_alloc(struct a +@@ -5886,6 +5902,9 @@ struct ata_port *ata_port_alloc(struct a ap->stats.unhandled_irq = 1; ap->stats.idle_irq = 1; #endif @@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> ata_sff_port_init(ap); return ap; -@@ -5887,6 +5906,12 @@ static void ata_host_release(struct devi +@@ -5907,6 +5926,12 @@ static void ata_host_release(struct devi kfree(ap->pmp_link); kfree(ap->slave_link); @@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> kfree(ap); host->ports[i] = NULL; } -@@ -6333,7 +6358,23 @@ int ata_host_register(struct ata_host *h +@@ -6353,7 +6378,23 @@ int ata_host_register(struct ata_host *h host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->local_port_no = i + 1; } diff --git a/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch b/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch index 3ca1f36379..dd431a294e 100644 --- a/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch +++ b/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch @@ -18,7 +18,7 @@ uart->capabilities = up->capabilities; --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c -@@ -2231,6 +2231,7 @@ uart_report_port(struct uart_driver *drv +@@ -2233,6 +2233,7 @@ uart_report_port(struct uart_driver *drv snprintf(address, sizeof(address), "I/O 0x%lx offset 0x%x", port->iobase, port->hub6); break; @@ -26,7 +26,7 @@ case UPIO_MEM: case UPIO_MEM16: case UPIO_MEM32: -@@ -2895,6 +2896,7 @@ int uart_match_port(struct uart_port *po +@@ -2897,6 +2898,7 @@ int uart_match_port(struct uart_port *po case UPIO_HUB6: return (port1->iobase == port2->iobase) && (port1->hub6 == port2->hub6); diff --git a/target/linux/layerscape/patches-4.9/402-mtd-support-layerscape.patch b/target/linux/layerscape/patches-4.9/402-mtd-support-layerscape.patch index 14f503f8e5..6b3485700a 100644 --- a/target/linux/layerscape/patches-4.9/402-mtd-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/402-mtd-support-layerscape.patch @@ -358,7 +358,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> help --- a/drivers/mtd/nand/fsl_ifc_nand.c +++ b/drivers/mtd/nand/fsl_ifc_nand.c -@@ -904,9 +904,12 @@ static int fsl_ifc_chip_init(struct fsl_ +@@ -898,7 +898,7 @@ static int fsl_ifc_chip_init(struct fsl_ chip->ecc.algo = NAND_ECC_HAMMING; } @@ -366,12 +366,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> + if (ctrl->version >= FSL_IFC_VERSION_1_1_0) fsl_ifc_sram_init(priv); -+ if (ctrl->version >= FSL_IFC_VERSION_2_0_0) -+ priv->bufnum_mask = (priv->bufnum_mask * 2) + 1; -+ - return 0; - } - + /* --- a/include/linux/fsl_ifc.h +++ b/include/linux/fsl_ifc.h @@ -274,6 +274,8 @@ @@ -383,7 +378,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Addressing Mode-ROW0+n/COL0 */ #define IFC_NAND_NCFGR_ADDR_MODE_RC0 0x00000000 /* Addressing Mode-ROW0+n/COL0+n */ -@@ -861,6 +863,11 @@ struct fsl_ifc_ctrl { +@@ -857,6 +859,11 @@ struct fsl_ifc_ctrl { u32 nand_stat; wait_queue_head_t nand_wait; bool little_endian; diff --git a/target/linux/layerscape/patches-4.9/702-pci-support-layerscape.patch b/target/linux/layerscape/patches-4.9/702-pci-support-layerscape.patch index 1068e49138..3d7febcebb 100644 --- a/target/linux/layerscape/patches-4.9/702-pci-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/702-pci-support-layerscape.patch @@ -2060,7 +2060,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c -@@ -4649,3 +4649,11 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IN +@@ -4654,3 +4654,11 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IN DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2031, quirk_no_aersid); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2032, quirk_no_aersid); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid); diff --git a/target/linux/layerscape/patches-4.9/811-irqchip-support-layerscape.patch b/target/linux/layerscape/patches-4.9/811-irqchip-support-layerscape.patch index ec1af3d92d..3a44f26432 100644 --- a/target/linux/layerscape/patches-4.9/811-irqchip-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/811-irqchip-support-layerscape.patch @@ -25,7 +25,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> +obj-$(CONFIG_QUICC_ENGINE) += irq-qeic.o --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c -@@ -1659,6 +1659,7 @@ static int its_init_domain(struct fwnode +@@ -1658,6 +1658,7 @@ static int its_init_domain(struct fwnode inner_domain->parent = its_parent; inner_domain->bus_token = DOMAIN_BUS_NEXUS; diff --git a/target/linux/layerscape/patches-4.9/812-mmc-layerscape-support.patch b/target/linux/layerscape/patches-4.9/812-mmc-layerscape-support.patch index 1d3899d28b..67c32dc4a4 100644 --- a/target/linux/layerscape/patches-4.9/812-mmc-layerscape-support.patch +++ b/target/linux/layerscape/patches-4.9/812-mmc-layerscape-support.patch @@ -217,7 +217,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } static void esdhc_of_set_clock(struct sdhci_host *host, unsigned int clock) -@@ -421,17 +466,34 @@ static void esdhc_of_set_clock(struct sd +@@ -421,12 +466,15 @@ static void esdhc_of_set_clock(struct sd struct sdhci_esdhc *esdhc = sdhci_pltfm_priv(pltfm_host); int pre_div = 1; int div = 1; @@ -234,26 +234,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Workaround to start pre_div at 2 for VNN < VENDOR_V_23 */ if (esdhc->vendor_ver < VENDOR_V_23) - pre_div = 2; - -+ /* -+ * Limit SD clock to 167MHz for ls1046a according to its datasheet -+ */ -+ if (clock > 167000000 && -+ of_find_compatible_node(NULL, NULL, "fsl,ls1046a-esdhc")) -+ clock = 167000000; -+ -+ /* -+ * Limit SD clock to 125MHz for ls1012a according to its datasheet -+ */ -+ if (clock > 125000000 && -+ of_find_compatible_node(NULL, NULL, "fsl,ls1012a-esdhc")) -+ clock = 125000000; -+ - /* Workaround to reduce the clock frequency for p1010 esdhc */ - if (of_find_compatible_node(NULL, NULL, "fsl,p1010-esdhc")) { - if (clock > 20000000) -@@ -440,9 +502,15 @@ static void esdhc_of_set_clock(struct sd +@@ -454,9 +502,15 @@ static void esdhc_of_set_clock(struct sd clock -= 5000000; } @@ -271,7 +252,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); while (host->max_clk / pre_div / 16 > clock && pre_div < 256) -@@ -462,7 +530,20 @@ static void esdhc_of_set_clock(struct sd +@@ -476,7 +530,20 @@ static void esdhc_of_set_clock(struct sd | (div << ESDHC_DIVIDER_SHIFT) | (pre_div << ESDHC_PREDIV_SHIFT)); sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); @@ -293,7 +274,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } static void esdhc_pltfm_set_bus_width(struct sdhci_host *host, int width) -@@ -487,12 +568,136 @@ static void esdhc_pltfm_set_bus_width(st +@@ -501,12 +568,136 @@ static void esdhc_pltfm_set_bus_width(st sdhci_writel(host, ctrl, ESDHC_PROCTL); } @@ -430,7 +411,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } #ifdef CONFIG_PM_SLEEP -@@ -575,10 +780,19 @@ static const struct sdhci_pltfm_data sdh +@@ -589,10 +780,19 @@ static const struct sdhci_pltfm_data sdh .ops = &sdhci_esdhc_le_ops, }; @@ -450,7 +431,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> u16 host_ver; pltfm_host = sdhci_priv(host); -@@ -588,6 +802,36 @@ static void esdhc_init(struct platform_d +@@ -602,6 +802,36 @@ static void esdhc_init(struct platform_d esdhc->vendor_ver = (host_ver & SDHCI_VENDOR_VER_MASK) >> SDHCI_VENDOR_VER_SHIFT; esdhc->spec_ver = host_ver & SDHCI_SPEC_VER_MASK; @@ -487,7 +468,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } static int sdhci_esdhc_probe(struct platform_device *pdev) -@@ -610,6 +854,11 @@ static int sdhci_esdhc_probe(struct plat +@@ -624,6 +854,11 @@ static int sdhci_esdhc_probe(struct plat if (IS_ERR(host)) return PTR_ERR(host); diff --git a/target/linux/layerscape/patches-4.9/813-qe-support-layerscape.patch b/target/linux/layerscape/patches-4.9/813-qe-support-layerscape.patch index 2efbba304a..c1431306a4 100644 --- a/target/linux/layerscape/patches-4.9/813-qe-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/813-qe-support-layerscape.patch @@ -1267,7 +1267,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } EXPORT_SYMBOL(qe_issue_cmd); -@@ -166,8 +182,8 @@ static unsigned int brg_clk = 0; +@@ -169,8 +185,8 @@ static unsigned int brg_clk = 0; unsigned int qe_get_brg_clk(void) { struct device_node *qe; @@ -1275,10 +1275,10 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> - const u32 *prop; + u32 val; + int ret; + unsigned int mod; if (brg_clk) - return brg_clk; -@@ -179,9 +195,9 @@ unsigned int qe_get_brg_clk(void) +@@ -183,9 +199,9 @@ unsigned int qe_get_brg_clk(void) return brg_clk; } @@ -1291,7 +1291,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> of_node_put(qe); -@@ -221,7 +237,7 @@ int qe_setbrg(enum qe_clock brg, unsigne +@@ -234,7 +250,7 @@ int qe_setbrg(enum qe_clock brg, unsigne tempval = ((divisor - 1) << QE_BRGC_DIVISOR_SHIFT) | QE_BRGC_ENABLE | div16; @@ -1300,7 +1300,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> return 0; } -@@ -355,9 +371,9 @@ static int qe_sdma_init(void) +@@ -368,9 +384,9 @@ static int qe_sdma_init(void) return -ENOMEM; } @@ -1313,7 +1313,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> return 0; } -@@ -395,14 +411,14 @@ static void qe_upload_microcode(const vo +@@ -408,14 +424,14 @@ static void qe_upload_microcode(const vo "uploading microcode '%s'\n", ucode->id); /* Use auto-increment */ @@ -1332,7 +1332,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } /* -@@ -487,7 +503,7 @@ int qe_upload_firmware(const struct qe_f +@@ -500,7 +516,7 @@ int qe_upload_firmware(const struct qe_f * If the microcode calls for it, split the I-RAM. */ if (!firmware->split) @@ -1341,7 +1341,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> if (firmware->soc.model) printk(KERN_INFO -@@ -521,11 +537,11 @@ int qe_upload_firmware(const struct qe_f +@@ -534,11 +550,11 @@ int qe_upload_firmware(const struct qe_f u32 trap = be32_to_cpu(ucode->traps[j]); if (trap) @@ -1355,7 +1355,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> } qe_firmware_uploaded = 1; -@@ -644,9 +660,9 @@ EXPORT_SYMBOL(qe_get_num_of_risc); +@@ -657,9 +673,9 @@ EXPORT_SYMBOL(qe_get_num_of_risc); unsigned int qe_get_num_of_snums(void) { struct device_node *qe; @@ -1367,7 +1367,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> num_of_snums = 28; /* The default number of snum for threads is 28 */ qe = of_find_compatible_node(NULL, NULL, "fsl,qe"); -@@ -660,9 +676,9 @@ unsigned int qe_get_num_of_snums(void) +@@ -673,9 +689,9 @@ unsigned int qe_get_num_of_snums(void) return num_of_snums; } diff --git a/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch b/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch index ad597f1128..c01db458a5 100644 --- a/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.9/817-usb-support-layerscape.patch @@ -218,7 +218,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> reg &= ~DWC3_GFLADJ_30MHZ_MASK; reg |= DWC3_GFLADJ_30MHZ_SDBND_SEL | dwc->fladj; dwc3_writel(dwc->regs, DWC3_GFLADJ, reg); -@@ -579,6 +599,99 @@ static int dwc3_phy_setup(struct dwc3 *d +@@ -585,6 +605,99 @@ static int dwc3_phy_setup(struct dwc3 *d return 0; } @@ -318,7 +318,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> static void dwc3_core_exit(struct dwc3 *dwc) { dwc3_event_buffers_cleanup(dwc); -@@ -721,6 +834,8 @@ static int dwc3_core_init(struct dwc3 *d +@@ -727,6 +840,8 @@ static int dwc3_core_init(struct dwc3 *d if (ret) goto err1; @@ -327,7 +327,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Adjust Frame Length */ dwc3_frame_length_adjustment(dwc); -@@ -919,11 +1034,117 @@ static void dwc3_core_exit_mode(struct d +@@ -925,11 +1040,117 @@ static void dwc3_core_exit_mode(struct d } } @@ -445,7 +445,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> struct resource *res; struct dwc3 *dwc; u8 lpm_nyet_threshold; -@@ -955,6 +1176,11 @@ static int dwc3_probe(struct platform_de +@@ -961,6 +1182,11 @@ static int dwc3_probe(struct platform_de dwc->xhci_resources[0].flags = res->flags; dwc->xhci_resources[0].name = res->name; @@ -457,7 +457,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> res->start += DWC3_GLOBALS_REGS_START; /* -@@ -997,6 +1223,12 @@ static int dwc3_probe(struct platform_de +@@ -1003,6 +1229,12 @@ static int dwc3_probe(struct platform_de dwc->usb3_lpm_capable = device_property_read_bool(dev, "snps,usb3_lpm_capable"); @@ -470,7 +470,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> dwc->disable_scramble_quirk = device_property_read_bool(dev, "snps,disable_scramble_quirk"); dwc->u2exit_lfps_quirk = device_property_read_bool(dev, -@@ -1041,6 +1273,8 @@ static int dwc3_probe(struct platform_de +@@ -1047,6 +1279,8 @@ static int dwc3_probe(struct platform_de dwc->hird_threshold = hird_threshold | (dwc->is_utmi_l1_suspend << 4); @@ -479,7 +479,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> platform_set_drvdata(pdev, dwc); dwc3_cache_hwparams(dwc); -@@ -1064,6 +1298,11 @@ static int dwc3_probe(struct platform_de +@@ -1070,6 +1304,11 @@ static int dwc3_probe(struct platform_de if (ret < 0) goto err1; @@ -534,7 +534,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Global Debug Queue/FIFO Space Available Register */ #define DWC3_GDBGFIFOSPACE_NUM(n) ((n) & 0x1f) #define DWC3_GDBGFIFOSPACE_TYPE(n) (((n) << 5) & 0x1e0) -@@ -180,7 +207,6 @@ +@@ -182,7 +209,6 @@ #define DWC3_GCTL_CLK_PIPE (1) #define DWC3_GCTL_CLK_PIPEHALF (2) #define DWC3_GCTL_CLK_MASK (3) @@ -542,7 +542,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> #define DWC3_GCTL_PRTCAP(n) (((n) & (3 << 12)) >> 12) #define DWC3_GCTL_PRTCAPDIR(n) ((n) << 12) #define DWC3_GCTL_PRTCAP_HOST 1 -@@ -289,6 +315,10 @@ +@@ -292,6 +318,10 @@ /* Global Frame Length Adjustment Register */ #define DWC3_GFLADJ_30MHZ_SDBND_SEL (1 << 7) #define DWC3_GFLADJ_30MHZ_MASK 0x3f @@ -553,7 +553,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> /* Global User Control Register 2 */ #define DWC3_GUCTL2_RST_ACTBITLATER (1 << 14) -@@ -753,6 +783,7 @@ struct dwc3_scratchpad_array { +@@ -756,6 +786,7 @@ struct dwc3_scratchpad_array { * @regs: base address for our registers * @regs_size: address space size * @fladj: frame length adjustment @@ -561,7 +561,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> * @irq_gadget: peripheral controller's IRQ number * @nr_scratch: number of scratch buffers * @u1u2: only used on revisions <1.83a for workaround -@@ -829,6 +860,7 @@ struct dwc3_scratchpad_array { +@@ -832,6 +863,7 @@ struct dwc3_scratchpad_array { * 1 - -3.5dB de-emphasis * 2 - No de-emphasis * 3 - Reserved @@ -569,7 +569,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> */ struct dwc3 { struct usb_ctrlrequest *ctrl_req; -@@ -847,6 +879,7 @@ struct dwc3 { +@@ -850,6 +882,7 @@ struct dwc3 { spinlock_t lock; struct device *dev; @@ -577,7 +577,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> struct platform_device *xhci; struct resource xhci_resources[DWC3_XHCI_RESOURCES_NUM]; -@@ -872,6 +905,12 @@ struct dwc3 { +@@ -875,6 +908,12 @@ struct dwc3 { enum usb_phy_interface hsphy_mode; u32 fladj; @@ -590,7 +590,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> u32 irq_gadget; u32 nr_scratch; u32 u1u2; -@@ -948,9 +987,12 @@ struct dwc3 { +@@ -951,9 +990,12 @@ struct dwc3 { unsigned ep0_bounced:1; unsigned ep0_expect_in:1; unsigned has_hibernation:1; @@ -603,7 +603,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> unsigned pending_events:1; unsigned pullups_connected:1; unsigned setup_packet_pending:1; -@@ -971,9 +1013,16 @@ struct dwc3 { +@@ -974,9 +1016,16 @@ struct dwc3 { unsigned dis_rxdet_inp3_quirk:1; unsigned dis_u2_freeclk_exists_quirk:1; unsigned dis_del_phy_power_chg_quirk:1; diff --git a/target/linux/ramips/patches-4.9/0032-USB-dwc2-add-device_reset.patch b/target/linux/ramips/patches-4.9/0032-USB-dwc2-add-device_reset.patch index efb3b802d2..6f7bffc65f 100644 --- a/target/linux/ramips/patches-4.9/0032-USB-dwc2-add-device_reset.patch +++ b/target/linux/ramips/patches-4.9/0032-USB-dwc2-add-device_reset.patch @@ -18,7 +18,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> #include <linux/usb/hcd.h> #include <linux/usb/ch11.h> -@@ -4982,6 +4983,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso +@@ -4983,6 +4984,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso retval = -ENOMEM; diff --git a/target/linux/ramips/patches-4.9/0039-mtd-add-mt7621-nand-support.patch b/target/linux/ramips/patches-4.9/0039-mtd-add-mt7621-nand-support.patch index f5b1d82347..9239581cd7 100644 --- a/target/linux/ramips/patches-4.9/0039-mtd-add-mt7621-nand-support.patch +++ b/target/linux/ramips/patches-4.9/0039-mtd-add-mt7621-nand-support.patch @@ -4137,7 +4137,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> { struct nand_chip *chip = mtd_to_nand(mtd); -@@ -921,7 +921,7 @@ static void panic_nand_get_device(struct +@@ -926,7 +926,7 @@ static void panic_nand_get_device(struct * * Get the device and lock it for exclusive access */ diff --git a/target/linux/ramips/patches-4.9/0040-nand-hack.patch b/target/linux/ramips/patches-4.9/0040-nand-hack.patch index 5bc00b16b5..c3e358cd0b 100644 --- a/target/linux/ramips/patches-4.9/0040-nand-hack.patch +++ b/target/linux/ramips/patches-4.9/0040-nand-hack.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c -@@ -2022,6 +2022,9 @@ static int nand_do_read_ops(struct mtd_i +@@ -2027,6 +2027,9 @@ static int nand_do_read_ops(struct mtd_i __func__, buf); read_retry: @@ -10,7 +10,7 @@ chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, page); /* -@@ -2040,6 +2043,7 @@ read_retry: +@@ -2045,6 +2048,7 @@ read_retry: else ret = chip->ecc.read_page(mtd, chip, bufpoi, oob_required, page); @@ -18,7 +18,7 @@ if (ret < 0) { if (use_bufpoi) /* Invalidate page cache */ -@@ -3209,8 +3213,11 @@ int nand_erase_nand(struct mtd_info *mtd +@@ -3214,8 +3218,11 @@ int nand_erase_nand(struct mtd_info *mtd (page + pages_per_block)) chip->pagebuf = -1; @@ -31,7 +31,7 @@ /* * See if operation failed and additional status checks are * available -@@ -4404,6 +4411,7 @@ int nand_scan_ident(struct mtd_info *mtd +@@ -4409,6 +4416,7 @@ int nand_scan_ident(struct mtd_info *mtd * cmdfunc() both expect cmd_ctrl() to be populated, * so we need to check that that's the case */ diff --git a/target/linux/ramips/patches-4.9/0901-spansion_nand_id_fix.patch b/target/linux/ramips/patches-4.9/0901-spansion_nand_id_fix.patch index fa5b1274ef..d57e65c56c 100644 --- a/target/linux/ramips/patches-4.9/0901-spansion_nand_id_fix.patch +++ b/target/linux/ramips/patches-4.9/0901-spansion_nand_id_fix.patch @@ -13,7 +13,7 @@ Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com> --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c -@@ -3856,6 +3856,7 @@ static void nand_decode_ext_id(struct mt +@@ -3861,6 +3861,7 @@ static void nand_decode_ext_id(struct mt /* * Field definitions are in the following datasheets: * Old style (4,5 byte ID): Samsung K9GAG08U0M (p.32) @@ -21,7 +21,7 @@ Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com> * New Samsung (6 byte ID): Samsung K9GAG08U0F (p.44) * Hynix MLC (6 byte ID): Hynix H27UBG8T2B (p.22) * -@@ -3953,6 +3954,19 @@ static void nand_decode_ext_id(struct mt +@@ -3958,6 +3959,19 @@ static void nand_decode_ext_id(struct mt *busw = (extid & 0x01) ? NAND_BUSWIDTH_16 : 0; /* |