forked from mirror/openwrt
kernel: bump 6.12 to 6.12.44
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.44 Removed upstreamed: generic-backport/220-v6.16-powerpc-boot-fix-build-with-gcc-15.patch[1] imx/patches-6.12/506-pending-PCI-imx6-Remove-apps_reset-toggle-in-_core_reset-function.patch[2] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.44&id=e42ac65e257b875614dd8f435b026a3e379e92e6 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.44&id=90fa5884bc8f52cbf493492e32978c723c85e6ab Build system: x86/64 (Intel N150 based) Build-tested: flogic/gl.inet-gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc Run-tested: flogic/gl.inet-gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc Signed-off-by: John Audia <therealgraysky@proton.me> Link: https://github.com/openwrt/openwrt/pull/19892 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
be88c224fa
commit
b92bab633f
27 changed files with 49 additions and 130 deletions
|
|
@ -27,7 +27,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||
|
||||
--- a/drivers/usb/core/hcd.c
|
||||
+++ b/drivers/usb/core/hcd.c
|
||||
@@ -1953,6 +1953,16 @@ reset:
|
||||
@@ -1951,6 +1951,16 @@ reset:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||
* non-error returns are a promise to giveback() the urb later
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5383,6 +5486,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5390,6 +5493,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -3659,6 +3659,48 @@ static int xhci_align_td(struct xhci_hcd
|
||||
@@ -3664,6 +3664,48 @@ static int xhci_align_td(struct xhci_hcd
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
/* This is very similar to what ehci-q.c qtd_fill() does */
|
||||
int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
|
||||
struct urb *urb, int slot_id, unsigned int ep_index)
|
||||
@@ -3813,6 +3855,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3818,6 +3860,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
}
|
||||
|
||||
check_trb_math(urb, enqd_len);
|
||||
|
|
@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
|
||||
start_cycle, start_trb);
|
||||
return 0;
|
||||
@@ -3961,6 +4005,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
||||
@@ -3966,6 +4010,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
||||
/* Event on completion */
|
||||
field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
|
||||
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ Signed-off-by: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>
|
|||
|
||||
--- a/drivers/gpu/drm/Kconfig
|
||||
+++ b/drivers/gpu/drm/Kconfig
|
||||
@@ -436,6 +436,8 @@ source "drivers/gpu/drm/v3d/Kconfig"
|
||||
@@ -441,6 +441,8 @@ source "drivers/gpu/drm/v3d/Kconfig"
|
||||
|
||||
source "drivers/gpu/drm/vc4/Kconfig"
|
||||
|
||||
|
|
@ -113,7 +113,7 @@ Signed-off-by: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>
|
|||
source "drivers/gpu/drm/etnaviv/Kconfig"
|
||||
--- a/drivers/gpu/drm/Makefile
|
||||
+++ b/drivers/gpu/drm/Makefile
|
||||
@@ -224,3 +224,4 @@ obj-y += solomon/
|
||||
@@ -225,3 +225,4 @@ obj-y += solomon/
|
||||
obj-$(CONFIG_DRM_SPRD) += sprd/
|
||||
obj-$(CONFIG_DRM_LOONGSON) += loongson/
|
||||
obj-$(CONFIG_DRM_POWERVR) += imagination/
|
||||
|
|
|
|||
|
|
@ -872,7 +872,7 @@ Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
|
|||
+ while (num_groups-- > 0)
|
||||
+ pispbe_destroy_node_group(&pispbe->node_group[num_groups]);
|
||||
pm_runtime_suspend_err:
|
||||
pispbe_runtime_suspend(pispbe->dev);
|
||||
pm_runtime_put(pispbe->dev);
|
||||
pm_runtime_disable_err:
|
||||
@@ -1760,7 +1820,8 @@ static void pispbe_remove(struct platfor
|
||||
{
|
||||
|
|
@ -882,5 +882,5 @@ Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
|
|||
+ for (int i = PISPBE_NUM_NODE_GROUPS - 1; i >= 0; i--)
|
||||
+ pispbe_destroy_node_group(&pispbe->node_group[i]);
|
||||
|
||||
pispbe_runtime_suspend(pispbe->dev);
|
||||
pm_runtime_dont_use_autosuspend(pispbe->dev);
|
||||
pm_runtime_disable(pispbe->dev);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
static bool td_on_ring(struct xhci_td *td, struct xhci_ring *ring)
|
||||
{
|
||||
struct xhci_segment *seg = ring->first_seg;
|
||||
@@ -4788,7 +4792,7 @@ static u16 xhci_calculate_u1_timeout(str
|
||||
@@ -4795,7 +4799,7 @@ static u16 xhci_calculate_u1_timeout(str
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc);
|
||||
else
|
||||
timeout_ns = udev->u1_params.sel;
|
||||
@@ -4852,7 +4856,7 @@ static u16 xhci_calculate_u2_timeout(str
|
||||
@@ -4859,7 +4863,7 @@ static u16 xhci_calculate_u2_timeout(str
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
From 5a821e2d69e26b51b7f3740b6b0c3462b8cacaff Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
Date: Mon, 31 Mar 2025 12:57:19 +0200
|
||||
Subject: [PATCH] powerpc/boot: Fix build with gcc 15
|
||||
|
||||
Similar to x86 the ppc boot code does not build with GCC 15.
|
||||
|
||||
Copy the fix from
|
||||
commit ee2ab467bddf ("x86/boot: Use '-std=gnu11' to fix build with GCC 15")
|
||||
|
||||
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||
Tested-by: Amit Machhiwal <amachhiw@linux.ibm.com>
|
||||
Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
|
||||
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
|
||||
Link: https://patch.msgid.link/20250331105722.19709-1-msuchanek@suse.de
|
||||
---
|
||||
arch/powerpc/boot/Makefile | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/arch/powerpc/boot/Makefile
|
||||
+++ b/arch/powerpc/boot/Makefile
|
||||
@@ -70,6 +70,7 @@ BOOTCPPFLAGS := -nostdinc $(LINUXINCLUDE
|
||||
BOOTCPPFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
|
||||
|
||||
BOOTCFLAGS := $(BOOTTARGETFLAGS) \
|
||||
+ -std=gnu11 \
|
||||
-Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
|
||||
-fno-strict-aliasing -O2 \
|
||||
-msoft-float -mno-altivec -mno-vsx \
|
||||
|
|
@ -24,7 +24,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||
|
||||
--- a/drivers/net/ppp/ppp_generic.c
|
||||
+++ b/drivers/net/ppp/ppp_generic.c
|
||||
@@ -3500,6 +3500,10 @@ ppp_connect_channel(struct channel *pch,
|
||||
@@ -3504,6 +3504,10 @@ ppp_connect_channel(struct channel *pch,
|
||||
ret = -ENOTCONN;
|
||||
goto outl;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -502,7 +502,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||
{ }
|
||||
--- a/drivers/net/phy/mscc/mscc_main.c
|
||||
+++ b/drivers/net/phy/mscc/mscc_main.c
|
||||
@@ -2700,7 +2700,7 @@ static struct phy_driver vsc85xx_driver[
|
||||
@@ -2712,7 +2712,7 @@ static struct phy_driver vsc85xx_driver[
|
||||
|
||||
module_phy_driver(vsc85xx_driver);
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
help
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -3646,6 +3646,11 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -3658,6 +3658,11 @@ static int xmit_one(struct sk_buff *skb,
|
||||
if (dev_nit_active(dev))
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
LINUX_VERSION-6.12 = .43
|
||||
LINUX_KERNEL_HASH-6.12.43 = 0fcbbbbcd456e87bbbfc8bf37af541fda62ccfcce76903503424fd101ef7bdee
|
||||
LINUX_VERSION-6.12 = .44
|
||||
LINUX_KERNEL_HASH-6.12.44 = b650210ed3027b224969d148aa377452a9aad3ae7f2851abedd31adfef16bdae
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
#endif /* __KERNEL__ */
|
||||
|
||||
/**
|
||||
@@ -306,6 +308,4 @@ static inline void *offset_to_ptr(const
|
||||
@@ -298,6 +300,4 @@ static inline void *offset_to_ptr(const
|
||||
*/
|
||||
#define prevent_tail_call_optimization() mb()
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ Submitted-by: Daniel Danzberger <daniel@dd-wrt.com>
|
|||
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1112,6 +1112,7 @@ static const struct spinand_manufacturer
|
||||
@@ -1115,6 +1115,7 @@ static const struct spinand_manufacturer
|
||||
&alliancememory_spinand_manufacturer,
|
||||
&ato_spinand_manufacturer,
|
||||
&esmt_c8_spinand_manufacturer,
|
||||
|
|
|
|||
|
|
@ -309,7 +309,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
seq_printf(m, "%05x %s %7s", i,
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
|
||||
@@ -520,24 +520,21 @@ static int
|
||||
@@ -522,24 +522,21 @@ static int
|
||||
mtk_flow_offload_stats(struct mtk_eth *eth, struct flow_cls_offload *f)
|
||||
{
|
||||
struct mtk_flow_entry *entry;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
|||
|
||||
--- a/drivers/bus/mhi/host/main.c
|
||||
+++ b/drivers/bus/mhi/host/main.c
|
||||
@@ -906,6 +906,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_
|
||||
@@ -916,6 +916,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_
|
||||
switch (event) {
|
||||
case MHI_EE_SBL:
|
||||
st = DEV_ST_TRANSITION_SBL;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com
|
|||
|
||||
--- a/drivers/pci/controller/dwc/pci-imx6.c
|
||||
+++ b/drivers/pci/controller/dwc/pci-imx6.c
|
||||
@@ -76,7 +76,7 @@ enum imx_pcie_variants {
|
||||
@@ -77,7 +77,7 @@ enum imx_pcie_variants {
|
||||
};
|
||||
|
||||
#define IMX_PCIE_FLAG_IMX_PHY BIT(0)
|
||||
|
|
@ -32,7 +32,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com
|
|||
#define IMX_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2)
|
||||
#define IMX_PCIE_FLAG_HAS_PHYDRV BIT(3)
|
||||
#define IMX_PCIE_FLAG_HAS_APP_RESET BIT(4)
|
||||
@@ -862,6 +862,12 @@ static int imx_pcie_start_link(struct dw
|
||||
@@ -861,6 +861,12 @@ static int imx_pcie_start_link(struct dw
|
||||
u32 tmp;
|
||||
int ret;
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com
|
|||
/*
|
||||
* Force Gen1 operation when starting the link. In case the link is
|
||||
* started in Gen2 mode, there is a possibility the devices on the
|
||||
@@ -898,22 +904,10 @@ static int imx_pcie_start_link(struct dw
|
||||
@@ -897,22 +903,10 @@ static int imx_pcie_start_link(struct dw
|
||||
dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, tmp);
|
||||
dw_pcie_dbi_ro_wr_dis(pci);
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com
|
|||
}
|
||||
|
||||
/* Make sure link training is finished as well! */
|
||||
@@ -1535,7 +1529,7 @@ static const struct imx_pcie_drvdata drv
|
||||
@@ -1546,7 +1540,7 @@ static const struct imx_pcie_drvdata drv
|
||||
[IMX6Q] = {
|
||||
.variant = IMX6Q,
|
||||
.flags = IMX_PCIE_FLAG_IMX_PHY |
|
||||
|
|
@ -81,7 +81,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com
|
|||
IMX_PCIE_FLAG_BROKEN_SUSPEND |
|
||||
IMX_PCIE_FLAG_SUPPORTS_SUSPEND,
|
||||
.dbi_length = 0x200,
|
||||
@@ -1553,7 +1547,7 @@ static const struct imx_pcie_drvdata drv
|
||||
@@ -1564,7 +1558,7 @@ static const struct imx_pcie_drvdata drv
|
||||
[IMX6SX] = {
|
||||
.variant = IMX6SX,
|
||||
.flags = IMX_PCIE_FLAG_IMX_PHY |
|
||||
|
|
@ -90,7 +90,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com
|
|||
IMX_PCIE_FLAG_SUPPORTS_SUSPEND,
|
||||
.gpr = "fsl,imx6q-iomuxc-gpr",
|
||||
.clk_names = imx6sx_clks,
|
||||
@@ -1569,7 +1563,7 @@ static const struct imx_pcie_drvdata drv
|
||||
@@ -1580,7 +1574,7 @@ static const struct imx_pcie_drvdata drv
|
||||
[IMX6QP] = {
|
||||
.variant = IMX6QP,
|
||||
.flags = IMX_PCIE_FLAG_IMX_PHY |
|
||||
|
|
|
|||
|
|
@ -1,52 +0,0 @@
|
|||
From d8588b5b9fddffd51962c13db7d00ae6f2ac945b Mon Sep 17 00:00:00 2001
|
||||
From: Tim Harvey <tharvey@gateworks.com>
|
||||
Date: Thu, 19 Jun 2025 16:04:53 -0700
|
||||
Subject: [PATCH] PCI: imx6: Remove apps_reset toggle in _core_reset functions
|
||||
|
||||
apps_reset is LTSSM_EN on i.MX7, i.MX8MQ, i.MX8MM and i.MX8MP platforms.
|
||||
Since the assertion/de-assertion of apps_reset(LTSSM_EN bit) had been
|
||||
wrappered in imx_pcie_ltssm_enable() and imx_pcie_ltssm_disable();
|
||||
|
||||
Remove apps_reset toggle in imx_pcie_assert_core_reset() and
|
||||
imx_pcie_deassert_core_reset() functions. Use imx_pcie_ltssm_enable()
|
||||
and imx_pcie_ltssm_disable() to configure apps_reset directly.
|
||||
|
||||
Fix fail to enumerate reliably PI7C9X2G608GP (hotplug) at i.MX8MM, which
|
||||
reported By Tim.
|
||||
|
||||
Reported-by: Tim Harvey <tharvey@gateworks.com>
|
||||
Closes: https://lore.kernel.org/all/CAJ+vNU3ohR2YKTwC4xoYrc1z-neDoH2TTZcMHDy+poj9=jSy+w@mail.gmail.com/
|
||||
Fixes: ef61c7d8d032 ("PCI: imx6: Deassert apps_reset in imx_pcie_deassert_core_reset()")
|
||||
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
|
||||
---
|
||||
drivers/pci/controller/dwc/pci-imx6.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/pci/controller/dwc/pci-imx6.c
|
||||
+++ b/drivers/pci/controller/dwc/pci-imx6.c
|
||||
@@ -778,7 +778,6 @@ static int imx7d_pcie_core_reset(struct
|
||||
static void imx_pcie_assert_core_reset(struct imx_pcie *imx_pcie)
|
||||
{
|
||||
reset_control_assert(imx_pcie->pciephy_reset);
|
||||
- reset_control_assert(imx_pcie->apps_reset);
|
||||
|
||||
if (imx_pcie->drvdata->core_reset)
|
||||
imx_pcie->drvdata->core_reset(imx_pcie, true);
|
||||
@@ -790,7 +789,6 @@ static void imx_pcie_assert_core_reset(s
|
||||
static int imx_pcie_deassert_core_reset(struct imx_pcie *imx_pcie)
|
||||
{
|
||||
reset_control_deassert(imx_pcie->pciephy_reset);
|
||||
- reset_control_deassert(imx_pcie->apps_reset);
|
||||
|
||||
if (imx_pcie->drvdata->core_reset)
|
||||
imx_pcie->drvdata->core_reset(imx_pcie, false);
|
||||
@@ -991,6 +989,9 @@ static int imx_pcie_host_init(struct dw_
|
||||
}
|
||||
}
|
||||
|
||||
+ /* Make sure that PCIe LTSSM is cleared */
|
||||
+ imx_pcie_ltssm_disable(dev);
|
||||
+
|
||||
ret = imx_pcie_deassert_core_reset(imx_pcie);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "pcie deassert core reset failed: %d\n", ret);
|
||||
|
|
@ -4,7 +4,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support
|
|||
|
||||
--- a/drivers/net/ppp/ppp_generic.c
|
||||
+++ b/drivers/net/ppp/ppp_generic.c
|
||||
@@ -2978,6 +2978,22 @@ char *ppp_dev_name(struct ppp_channel *c
|
||||
@@ -2982,6 +2982,22 @@ char *ppp_dev_name(struct ppp_channel *c
|
||||
return name;
|
||||
}
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support
|
|||
|
||||
/*
|
||||
* Disconnect a channel from the generic layer.
|
||||
@@ -3628,6 +3644,7 @@ EXPORT_SYMBOL(ppp_unregister_channel);
|
||||
@@ -3633,6 +3649,7 @@ EXPORT_SYMBOL(ppp_unregister_channel);
|
||||
EXPORT_SYMBOL(ppp_channel_index);
|
||||
EXPORT_SYMBOL(ppp_unit_number);
|
||||
EXPORT_SYMBOL(ppp_dev_name);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -893,7 +893,7 @@ static int spinand_mtd_write(struct mtd_
|
||||
@@ -896,7 +896,7 @@ static int spinand_mtd_write(struct mtd_
|
||||
static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos)
|
||||
{
|
||||
struct spinand_device *spinand = nand_to_spinand(nand);
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
struct nand_page_io_req req = {
|
||||
.pos = *pos,
|
||||
.ooblen = sizeof(marker),
|
||||
@@ -904,7 +904,7 @@ static bool spinand_isbad(struct nand_de
|
||||
@@ -907,7 +907,7 @@ static bool spinand_isbad(struct nand_de
|
||||
|
||||
spinand_select_target(spinand, pos->target);
|
||||
spinand_read_page(spinand, &req);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
|
||||
{
|
||||
@@ -1526,6 +1527,7 @@ static int spinand_probe(struct spi_mem
|
||||
@@ -1529,6 +1530,7 @@ static int spinand_probe(struct spi_mem
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
ret = mtd_device_register(mtd, NULL, 0);
|
||||
if (ret)
|
||||
goto err_spinand_cleanup;
|
||||
@@ -1533,6 +1535,7 @@ static int spinand_probe(struct spi_mem
|
||||
@@ -1536,6 +1538,7 @@ static int spinand_probe(struct spi_mem
|
||||
return 0;
|
||||
|
||||
err_spinand_cleanup:
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
spinand_cleanup(spinand);
|
||||
|
||||
return ret;
|
||||
@@ -1551,6 +1554,7 @@ static int spinand_remove(struct spi_mem
|
||||
@@ -1554,6 +1557,7 @@ static int spinand_remove(struct spi_mem
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
|
|||
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1114,6 +1114,7 @@ static const struct spinand_manufacturer
|
||||
@@ -1117,6 +1117,7 @@ static const struct spinand_manufacturer
|
||||
&ato_spinand_manufacturer,
|
||||
&esmt_c8_spinand_manufacturer,
|
||||
&etron_spinand_manufacturer,
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
},
|
||||
[PORT_NPCM] = {
|
||||
.name = "Nuvoton 16550",
|
||||
@@ -2730,6 +2730,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2729,6 +2729,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
unsigned long flags;
|
||||
unsigned int baud, quot, frac = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
|
|||
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1152,6 +1152,56 @@ static int spinand_manufacturer_match(st
|
||||
@@ -1155,6 +1155,56 @@ static int spinand_manufacturer_match(st
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
|
|
@ -68,7 +68,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
|
|||
static int spinand_id_detect(struct spinand_device *spinand)
|
||||
{
|
||||
u8 *id = spinand->id.data;
|
||||
@@ -1403,6 +1453,10 @@ static int spinand_init(struct spinand_d
|
||||
@@ -1406,6 +1456,10 @@ static int spinand_init(struct spinand_d
|
||||
if (!spinand->scratchbuf)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
|
|||
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1193,7 +1193,10 @@ static int spinand_cal_read(void *priv,
|
||||
@@ -1196,7 +1196,10 @@ static int spinand_cal_read(void *priv,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1620,6 +1620,7 @@ static int spinand_remove(struct spi_mem
|
||||
@@ -1623,6 +1623,7 @@ static int spinand_remove(struct spi_mem
|
||||
|
||||
static const struct spi_device_id spinand_ids[] = {
|
||||
{ .name = "spi-nand" },
|
||||
|
|
@ -37,7 +37,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
{ /* sentinel */ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(spi, spinand_ids);
|
||||
@@ -1627,6 +1628,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
|
||||
@@ -1630,6 +1631,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id spinand_of_ids[] = {
|
||||
{ .compatible = "spi-nand" },
|
||||
|
|
|
|||
|
|
@ -30,9 +30,9 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
|
|||
+ __le64 blk_size;
|
||||
+};
|
||||
|
||||
static bool mdt_phdr_valid(const struct elf32_phdr *phdr)
|
||||
static bool mdt_header_valid(const struct firmware *fw)
|
||||
{
|
||||
@@ -67,6 +77,56 @@ static ssize_t mdt_load_split_segment(vo
|
||||
@@ -98,6 +108,56 @@ static ssize_t mdt_load_split_segment(vo
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -89,7 +89,7 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
|
|||
/**
|
||||
* qcom_mdt_get_size() - acquire size of the memory region needed to load mdt
|
||||
* @fw: firmware object for the mdt file
|
||||
@@ -293,7 +353,8 @@ static bool qcom_mdt_bins_are_split(cons
|
||||
@@ -333,7 +393,8 @@ static bool qcom_mdt_bins_are_split(cons
|
||||
static int __qcom_mdt_load(struct device *dev, const struct firmware *fw,
|
||||
const char *fw_name, int pas_id, void *mem_region,
|
||||
phys_addr_t mem_phys, size_t mem_size,
|
||||
|
|
@ -99,7 +99,7 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
|
|||
{
|
||||
const struct elf32_phdr *phdrs;
|
||||
const struct elf32_phdr *phdr;
|
||||
@@ -347,6 +408,14 @@ static int __qcom_mdt_load(struct device
|
||||
@@ -390,6 +451,14 @@ static int __qcom_mdt_load(struct device
|
||||
if (!mdt_phdr_valid(phdr))
|
||||
continue;
|
||||
|
||||
|
|
@ -114,7 +114,7 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
|
|||
offset = phdr->p_paddr - mem_reloc;
|
||||
if (offset < 0 || offset + phdr->p_memsz > mem_size) {
|
||||
dev_err(dev, "segment outside memory range\n");
|
||||
@@ -364,7 +433,11 @@ static int __qcom_mdt_load(struct device
|
||||
@@ -407,7 +476,11 @@ static int __qcom_mdt_load(struct device
|
||||
|
||||
ptr = mem_region + offset;
|
||||
|
||||
|
|
@ -127,7 +127,7 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
|
|||
/* Firmware is large enough to be non-split */
|
||||
if (phdr->p_offset + phdr->p_filesz > fw->size) {
|
||||
dev_err(dev, "file %s segment %d would be truncated\n",
|
||||
@@ -381,7 +454,7 @@ static int __qcom_mdt_load(struct device
|
||||
@@ -424,7 +497,7 @@ static int __qcom_mdt_load(struct device
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -136,7 +136,7 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
|
|||
memset(ptr + phdr->p_filesz, 0, phdr->p_memsz - phdr->p_filesz);
|
||||
}
|
||||
|
||||
@@ -416,7 +489,7 @@ int qcom_mdt_load(struct device *dev, co
|
||||
@@ -459,7 +532,7 @@ int qcom_mdt_load(struct device *dev, co
|
||||
return ret;
|
||||
|
||||
return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys,
|
||||
|
|
@ -145,7 +145,7 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(qcom_mdt_load);
|
||||
|
||||
@@ -439,9 +512,36 @@ int qcom_mdt_load_no_init(struct device
|
||||
@@ -482,9 +555,36 @@ int qcom_mdt_load_no_init(struct device
|
||||
size_t mem_size, phys_addr_t *reloc_base)
|
||||
{
|
||||
return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys,
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
|
|||
}
|
||||
|
||||
/*
|
||||
@@ -2769,7 +2782,6 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2768,7 +2781,6 @@ serial8250_do_set_termios(struct uart_po
|
||||
if (termios->c_cflag & CRTSCTS)
|
||||
up->mcr |= UART_MCR_AFE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue