mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-18 21:28:02 +00:00
kernel: bump 4.19 to 4.19.64
Refreshed all patches. Remove upstreamed: - 100-powerpc-4xx-uic-clear-pending-interrupt-after-irq-ty.patch - 950-0309-usb-dwc2-Disable-all-EP-s-on-disconnect.patch - 950-0310-usb-dwc2-Fix-disable-all-EP-s-on-disconnect.patch Fixes: - CVE-2019-13648 - CVE-2019-3900 - CVE-2019-10207 Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
parent
96f1d4b02b
commit
42d9bccadb
@ -8,11 +8,11 @@ endif
|
||||
|
||||
LINUX_VERSION-4.9 = .187
|
||||
LINUX_VERSION-4.14 = .136
|
||||
LINUX_VERSION-4.19 = .62
|
||||
LINUX_VERSION-4.19 = .64
|
||||
|
||||
LINUX_KERNEL_HASH-4.9.187 = 014bcd042cd25e073539c17bd34c616a936b19787a9c6a4c35d36a4f28afd1c7
|
||||
LINUX_KERNEL_HASH-4.14.136 = 268dff959216e59437a8f9db7c2cea3a1ada8a4c72232dc5b7f83ecca12bdf70
|
||||
LINUX_KERNEL_HASH-4.19.62 = 07be647189ced7eb8ba5ee769906e67919975772184842cc517f609df50cdadc
|
||||
LINUX_KERNEL_HASH-4.19.64 = 7a6f8be33df3bef763495e8dde7a2fd7cdad71d7b952cd740b68eaac1bab5abd
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
@ -1,30 +0,0 @@
|
||||
From 9b84ad676e248a3e3c81db7f5d39e1739b3780aa Mon Sep 17 00:00:00 2001
|
||||
From: Christian Lamparter <chunkeey@gmail.com>
|
||||
Date: Sat, 15 Jun 2019 16:35:26 +0200
|
||||
Subject: [PATCH] powerpc/4xx/uic: clear pending interrupt after irq type/pol
|
||||
change
|
||||
|
||||
When testing out gpio-keys with a button, a spurious
|
||||
interrupt (and therefore a key press or release event)
|
||||
gets triggered as soon as the driver enables the irq
|
||||
line for the first time.
|
||||
|
||||
This patch clears any potential bogus generated interrupt
|
||||
that was caused by the switching of the associated irq's
|
||||
type and polarity.
|
||||
|
||||
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
|
||||
---
|
||||
arch/powerpc/platforms/4xx/uic.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/arch/powerpc/platforms/4xx/uic.c
|
||||
+++ b/arch/powerpc/platforms/4xx/uic.c
|
||||
@@ -158,6 +158,7 @@ static int uic_set_irq_type(struct irq_d
|
||||
|
||||
mtdcr(uic->dcrbase + UIC_PR, pr);
|
||||
mtdcr(uic->dcrbase + UIC_TR, tr);
|
||||
+ mtdcr(uic->dcrbase + UIC_SR, ~mask);
|
||||
|
||||
raw_spin_unlock_irqrestore(&uic->lock, flags);
|
||||
|
@ -917,7 +917,7 @@ Fixes https://github.com/raspberrypi/linux/issues/2408
|
||||
}
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -5210,7 +5210,7 @@ static void port_event(struct usb_hub *h
|
||||
@@ -5214,7 +5214,7 @@ static void port_event(struct usb_hub *h
|
||||
u16 status = 0, unused;
|
||||
port_dev->over_current_count++;
|
||||
|
||||
|
@ -1,107 +0,0 @@
|
||||
From 635c5ee81a0595cf3504e7ae4fce5e91d7e17da4 Mon Sep 17 00:00:00 2001
|
||||
From: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
|
||||
Date: Wed, 19 Sep 2018 18:13:52 +0400
|
||||
Subject: [PATCH 309/725] usb: dwc2: Disable all EP's on disconnect
|
||||
|
||||
commit dccf1bad4be7eaa096c1f3697bd37883f9a08ecb upstream.
|
||||
|
||||
Disabling all EP's allow to reset EP's to initial state.
|
||||
On disconnect disable all EP's instead of just killing
|
||||
all requests. Because of some platform didn't catch
|
||||
disconnect event, same stuff added to
|
||||
dwc2_hsotg_core_init_disconnected() function when USB
|
||||
reset detected on the bus.
|
||||
|
||||
Changed from version 1:
|
||||
Changed lock acquire flow in dwc2_hsotg_ep_disable()
|
||||
function.
|
||||
|
||||
Signed-off-by: Minas Harutyunyan <hminas@synopsys.com>
|
||||
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||
---
|
||||
drivers/usb/dwc2/gadget.c | 30 +++++++++++++++++++++++-------
|
||||
1 file changed, 23 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/drivers/usb/dwc2/gadget.c
|
||||
+++ b/drivers/usb/dwc2/gadget.c
|
||||
@@ -3107,6 +3107,8 @@ static void kill_all_requests(struct dwc
|
||||
dwc2_hsotg_txfifo_flush(hsotg, ep->fifo_index);
|
||||
}
|
||||
|
||||
+static int dwc2_hsotg_ep_disable(struct usb_ep *ep);
|
||||
+
|
||||
/**
|
||||
* dwc2_hsotg_disconnect - disconnect service
|
||||
* @hsotg: The device state.
|
||||
@@ -3125,13 +3127,12 @@ void dwc2_hsotg_disconnect(struct dwc2_h
|
||||
hsotg->connected = 0;
|
||||
hsotg->test_mode = 0;
|
||||
|
||||
+ /* all endpoints should be shutdown */
|
||||
for (ep = 0; ep < hsotg->num_of_eps; ep++) {
|
||||
if (hsotg->eps_in[ep])
|
||||
- kill_all_requests(hsotg, hsotg->eps_in[ep],
|
||||
- -ESHUTDOWN);
|
||||
+ dwc2_hsotg_ep_disable(&hsotg->eps_in[ep]->ep);
|
||||
if (hsotg->eps_out[ep])
|
||||
- kill_all_requests(hsotg, hsotg->eps_out[ep],
|
||||
- -ESHUTDOWN);
|
||||
+ dwc2_hsotg_ep_disable(&hsotg->eps_out[ep]->ep);
|
||||
}
|
||||
|
||||
call_gadget(hsotg, disconnect);
|
||||
@@ -3189,13 +3190,23 @@ void dwc2_hsotg_core_init_disconnected(s
|
||||
u32 val;
|
||||
u32 usbcfg;
|
||||
u32 dcfg = 0;
|
||||
+ int ep;
|
||||
|
||||
/* Kill any ep0 requests as controller will be reinitialized */
|
||||
kill_all_requests(hsotg, hsotg->eps_out[0], -ECONNRESET);
|
||||
|
||||
- if (!is_usb_reset)
|
||||
+ if (!is_usb_reset) {
|
||||
if (dwc2_core_reset(hsotg, true))
|
||||
return;
|
||||
+ } else {
|
||||
+ /* all endpoints should be shutdown */
|
||||
+ for (ep = 1; ep < hsotg->num_of_eps; ep++) {
|
||||
+ if (hsotg->eps_in[ep])
|
||||
+ dwc2_hsotg_ep_disable(&hsotg->eps_in[ep]->ep);
|
||||
+ if (hsotg->eps_out[ep])
|
||||
+ dwc2_hsotg_ep_disable(&hsotg->eps_out[ep]->ep);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
/*
|
||||
* we must now enable ep0 ready for host detection and then
|
||||
@@ -3996,6 +4007,7 @@ static int dwc2_hsotg_ep_disable(struct
|
||||
unsigned long flags;
|
||||
u32 epctrl_reg;
|
||||
u32 ctrl;
|
||||
+ int locked;
|
||||
|
||||
dev_dbg(hsotg->dev, "%s(ep %p)\n", __func__, ep);
|
||||
|
||||
@@ -4011,7 +4023,9 @@ static int dwc2_hsotg_ep_disable(struct
|
||||
|
||||
epctrl_reg = dir_in ? DIEPCTL(index) : DOEPCTL(index);
|
||||
|
||||
- spin_lock_irqsave(&hsotg->lock, flags);
|
||||
+ locked = spin_is_locked(&hsotg->lock);
|
||||
+ if (!locked)
|
||||
+ spin_lock_irqsave(&hsotg->lock, flags);
|
||||
|
||||
ctrl = dwc2_readl(hsotg, epctrl_reg);
|
||||
|
||||
@@ -4035,7 +4049,9 @@ static int dwc2_hsotg_ep_disable(struct
|
||||
hs_ep->fifo_index = 0;
|
||||
hs_ep->fifo_size = 0;
|
||||
|
||||
- spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||
+ if (!locked)
|
||||
+ spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,152 +0,0 @@
|
||||
From ef5163a16655fba7490d8853172ecf91e8c8cc1a Mon Sep 17 00:00:00 2001
|
||||
From: Minas Harutyunyan <minas.harutyunyan@synopsys.com>
|
||||
Date: Mon, 10 Dec 2018 18:09:32 +0400
|
||||
Subject: [PATCH 310/725] usb: dwc2: Fix disable all EP's on disconnect
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
commit 4fe4f9fecc36956fd53c8edf96dd0c691ef98ff9 upstream.
|
||||
|
||||
Disabling all EP's allow to reset EP's to initial state.
|
||||
Introduced new function dwc2_hsotg_ep_disable_lock() which
|
||||
before calling dwc2_hsotg_ep_disable() function acquire
|
||||
hsotg->lock and release on exiting.
|
||||
From dwc2_hsotg_ep_disable() function removed acquiring
|
||||
hsotg->lock.
|
||||
In dwc2_hsotg_core_init_disconnected() function when USB
|
||||
reset interrupt asserted disabling all ep’s by
|
||||
dwc2_hsotg_ep_disable() function.
|
||||
This updates eliminating sparse imbalance warnings.
|
||||
|
||||
Reverted changes in dwc2_hostg_disconnect() function.
|
||||
Introduced new function dwc2_hsotg_ep_disable_lock().
|
||||
Changed dwc2_hsotg_ep_ops. Now disable point to
|
||||
dwc2_hsotg_ep_disable_lock() function.
|
||||
In functions dwc2_hsotg_udc_stop() and dwc2_hsotg_suspend()
|
||||
dwc2_hsotg_ep_disable() function replaced by
|
||||
dwc2_hsotg_ep_disable_lock() function.
|
||||
In dwc2_hsotg_ep_disable() function removed acquiring
|
||||
of hsotg->lock.
|
||||
|
||||
Fixes: dccf1bad4be7 ("usb: dwc2: Disable all EP's on disconnect")
|
||||
Signed-off-by: Minas Harutyunyan <hminas@synopsys.com>
|
||||
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||
---
|
||||
drivers/usb/dwc2/gadget.c | 41 ++++++++++++++++++++++-----------------
|
||||
1 file changed, 23 insertions(+), 18 deletions(-)
|
||||
|
||||
--- a/drivers/usb/dwc2/gadget.c
|
||||
+++ b/drivers/usb/dwc2/gadget.c
|
||||
@@ -3107,8 +3107,6 @@ static void kill_all_requests(struct dwc
|
||||
dwc2_hsotg_txfifo_flush(hsotg, ep->fifo_index);
|
||||
}
|
||||
|
||||
-static int dwc2_hsotg_ep_disable(struct usb_ep *ep);
|
||||
-
|
||||
/**
|
||||
* dwc2_hsotg_disconnect - disconnect service
|
||||
* @hsotg: The device state.
|
||||
@@ -3130,9 +3128,11 @@ void dwc2_hsotg_disconnect(struct dwc2_h
|
||||
/* all endpoints should be shutdown */
|
||||
for (ep = 0; ep < hsotg->num_of_eps; ep++) {
|
||||
if (hsotg->eps_in[ep])
|
||||
- dwc2_hsotg_ep_disable(&hsotg->eps_in[ep]->ep);
|
||||
+ kill_all_requests(hsotg, hsotg->eps_in[ep],
|
||||
+ -ESHUTDOWN);
|
||||
if (hsotg->eps_out[ep])
|
||||
- dwc2_hsotg_ep_disable(&hsotg->eps_out[ep]->ep);
|
||||
+ kill_all_requests(hsotg, hsotg->eps_out[ep],
|
||||
+ -ESHUTDOWN);
|
||||
}
|
||||
|
||||
call_gadget(hsotg, disconnect);
|
||||
@@ -3176,6 +3176,7 @@ static void dwc2_hsotg_irq_fifoempty(str
|
||||
GINTSTS_PTXFEMP | \
|
||||
GINTSTS_RXFLVL)
|
||||
|
||||
+static int dwc2_hsotg_ep_disable(struct usb_ep *ep);
|
||||
/**
|
||||
* dwc2_hsotg_core_init - issue softreset to the core
|
||||
* @hsotg: The device state
|
||||
@@ -4004,10 +4005,8 @@ static int dwc2_hsotg_ep_disable(struct
|
||||
struct dwc2_hsotg *hsotg = hs_ep->parent;
|
||||
int dir_in = hs_ep->dir_in;
|
||||
int index = hs_ep->index;
|
||||
- unsigned long flags;
|
||||
u32 epctrl_reg;
|
||||
u32 ctrl;
|
||||
- int locked;
|
||||
|
||||
dev_dbg(hsotg->dev, "%s(ep %p)\n", __func__, ep);
|
||||
|
||||
@@ -4023,10 +4022,6 @@ static int dwc2_hsotg_ep_disable(struct
|
||||
|
||||
epctrl_reg = dir_in ? DIEPCTL(index) : DOEPCTL(index);
|
||||
|
||||
- locked = spin_is_locked(&hsotg->lock);
|
||||
- if (!locked)
|
||||
- spin_lock_irqsave(&hsotg->lock, flags);
|
||||
-
|
||||
ctrl = dwc2_readl(hsotg, epctrl_reg);
|
||||
|
||||
if (ctrl & DXEPCTL_EPENA)
|
||||
@@ -4049,12 +4044,22 @@ static int dwc2_hsotg_ep_disable(struct
|
||||
hs_ep->fifo_index = 0;
|
||||
hs_ep->fifo_size = 0;
|
||||
|
||||
- if (!locked)
|
||||
- spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int dwc2_hsotg_ep_disable_lock(struct usb_ep *ep)
|
||||
+{
|
||||
+ struct dwc2_hsotg_ep *hs_ep = our_ep(ep);
|
||||
+ struct dwc2_hsotg *hsotg = hs_ep->parent;
|
||||
+ unsigned long flags;
|
||||
+ int ret;
|
||||
+
|
||||
+ spin_lock_irqsave(&hsotg->lock, flags);
|
||||
+ ret = dwc2_hsotg_ep_disable(ep);
|
||||
+ spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* on_list - check request is on the given endpoint
|
||||
* @ep: The endpoint to check.
|
||||
@@ -4202,7 +4207,7 @@ static int dwc2_hsotg_ep_sethalt_lock(st
|
||||
|
||||
static const struct usb_ep_ops dwc2_hsotg_ep_ops = {
|
||||
.enable = dwc2_hsotg_ep_enable,
|
||||
- .disable = dwc2_hsotg_ep_disable,
|
||||
+ .disable = dwc2_hsotg_ep_disable_lock,
|
||||
.alloc_request = dwc2_hsotg_ep_alloc_request,
|
||||
.free_request = dwc2_hsotg_ep_free_request,
|
||||
.queue = dwc2_hsotg_ep_queue_lock,
|
||||
@@ -4342,9 +4347,9 @@ static int dwc2_hsotg_udc_stop(struct us
|
||||
/* all endpoints should be shutdown */
|
||||
for (ep = 1; ep < hsotg->num_of_eps; ep++) {
|
||||
if (hsotg->eps_in[ep])
|
||||
- dwc2_hsotg_ep_disable(&hsotg->eps_in[ep]->ep);
|
||||
+ dwc2_hsotg_ep_disable_lock(&hsotg->eps_in[ep]->ep);
|
||||
if (hsotg->eps_out[ep])
|
||||
- dwc2_hsotg_ep_disable(&hsotg->eps_out[ep]->ep);
|
||||
+ dwc2_hsotg_ep_disable_lock(&hsotg->eps_out[ep]->ep);
|
||||
}
|
||||
|
||||
spin_lock_irqsave(&hsotg->lock, flags);
|
||||
@@ -4792,9 +4797,9 @@ int dwc2_hsotg_suspend(struct dwc2_hsotg
|
||||
|
||||
for (ep = 0; ep < hsotg->num_of_eps; ep++) {
|
||||
if (hsotg->eps_in[ep])
|
||||
- dwc2_hsotg_ep_disable(&hsotg->eps_in[ep]->ep);
|
||||
+ dwc2_hsotg_ep_disable_lock(&hsotg->eps_in[ep]->ep);
|
||||
if (hsotg->eps_out[ep])
|
||||
- dwc2_hsotg_ep_disable(&hsotg->eps_out[ep]->ep);
|
||||
+ dwc2_hsotg_ep_disable_lock(&hsotg->eps_out[ep]->ep);
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1224,7 +1224,6 @@ all: modules
|
||||
@@ -1225,7 +1225,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
|
||||
|
||||
@@ -1253,7 +1252,6 @@ _modinst_:
|
||||
@@ -1254,7 +1253,6 @@ _modinst_:
|
||||
rm -f $(MODLIB)/build ; \
|
||||
ln -s $(CURDIR) $(MODLIB)/build ; \
|
||||
fi
|
||||
|
@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
|
||||
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
|
||||
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
|
||||
@@ -780,11 +785,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
|
||||
@@ -781,11 +786,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
|
||||
KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
|
||||
endif
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -655,12 +655,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
|
||||
@@ -656,12 +656,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
|
||||
|
||||
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
|
||||
|
@ -65,7 +65,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static int absolute_percpu = 0;
|
||||
static int base_relative = 0;
|
||||
|
||||
@@ -439,6 +440,9 @@ static void write_src(void)
|
||||
@@ -442,6 +443,9 @@ static void write_src(void)
|
||||
|
||||
free(markers);
|
||||
|
||||
@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
output_label("kallsyms_token_table");
|
||||
off = 0;
|
||||
for (i = 0; i < 256; i++) {
|
||||
@@ -497,6 +501,9 @@ static void *find_token(unsigned char *s
|
||||
@@ -500,6 +504,9 @@ static void *find_token(unsigned char *s
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
for (i = 0; i < len - 1; i++) {
|
||||
if (str[i] == token[0] && str[i+1] == token[1])
|
||||
return &str[i];
|
||||
@@ -569,6 +576,9 @@ static void optimize_result(void)
|
||||
@@ -572,6 +579,9 @@ static void optimize_result(void)
|
||||
{
|
||||
int i, best;
|
||||
|
||||
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/* using the '\0' symbol last allows compress_symbols to use standard
|
||||
* fast string functions */
|
||||
for (i = 255; i >= 0; i--) {
|
||||
@@ -751,6 +761,8 @@ int main(int argc, char **argv)
|
||||
@@ -754,6 +764,8 @@ int main(int argc, char **argv)
|
||||
absolute_percpu = 1;
|
||||
else if (strcmp(argv[i], "--base-relative") == 0)
|
||||
base_relative = 1;
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static struct amd_chipset_info {
|
||||
struct pci_dev *nb_dev;
|
||||
struct pci_dev *smbus_dev;
|
||||
@@ -621,6 +623,10 @@ bool usb_amd_pt_check_port(struct device
|
||||
@@ -628,6 +630,10 @@ bool usb_amd_pt_check_port(struct device
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usb_amd_pt_check_port);
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/*
|
||||
* Make sure the controller is completely inactive, unable to
|
||||
* generate interrupts or do DMA.
|
||||
@@ -700,8 +706,17 @@ reset_needed:
|
||||
@@ -707,8 +713,17 @@ reset_needed:
|
||||
uhci_reset_hc(pdev, base);
|
||||
return 1;
|
||||
}
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
|
||||
{
|
||||
u16 cmd;
|
||||
@@ -1268,3 +1283,4 @@ static void quirk_usb_early_handoff(stru
|
||||
@@ -1275,3 +1290,4 @@ static void quirk_usb_early_handoff(stru
|
||||
}
|
||||
DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
|
||||
PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
|
||||
|
6
target/linux/mediatek/patches-4.19/0001-arm-dts-mediatek-add-basic-support-for-MT7629-SoC.patch
Executable file → Normal file
6
target/linux/mediatek/patches-4.19/0001-arm-dts-mediatek-add-basic-support-for-MT7629-SoC.patch
Executable file → Normal file
@ -12,9 +12,6 @@ Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
|
||||
4 files changed, 704 insertions(+)
|
||||
create mode 100644 include/dt-bindings/reset/mt7629-resets.h
|
||||
|
||||
diff --git a/include/dt-bindings/reset/mt7629-resets.h b/include/dt-bindings/reset/mt7629-resets.h
|
||||
new file mode 100644
|
||||
index 000000000000..6bb85734f68d
|
||||
--- /dev/null
|
||||
+++ b/include/dt-bindings/reset/mt7629-resets.h
|
||||
@@ -0,0 +1,71 @@
|
||||
@ -89,6 +86,3 @@ index 000000000000..6bb85734f68d
|
||||
+#define MT7629_ETHSYS_PPE_RST 31
|
||||
+
|
||||
+#endif /* _DT_BINDINGS_RESET_CONTROLLER_MT7629 */
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
@ -1,7 +1,5 @@
|
||||
Index: linux-4.19.57/drivers/net/ethernet/mediatek/Kconfig
|
||||
===================================================================
|
||||
--- linux-4.19.57.orig/drivers/net/ethernet/mediatek/Kconfig
|
||||
+++ linux-4.19.57/drivers/net/ethernet/mediatek/Kconfig
|
||||
--- a/drivers/net/ethernet/mediatek/Kconfig
|
||||
+++ b/drivers/net/ethernet/mediatek/Kconfig
|
||||
@@ -1,6 +1,6 @@
|
||||
config NET_VENDOR_MEDIATEK
|
||||
bool "MediaTek ethernet driver"
|
||||
@ -10,10 +8,8 @@ Index: linux-4.19.57/drivers/net/ethernet/mediatek/Kconfig
|
||||
---help---
|
||||
If you have a Mediatek SoC with ethernet, say Y.
|
||||
|
||||
Index: linux-4.19.57/drivers/net/ethernet/mediatek/Makefile
|
||||
===================================================================
|
||||
--- linux-4.19.57.orig/drivers/net/ethernet/mediatek/Makefile
|
||||
+++ linux-4.19.57/drivers/net/ethernet/mediatek/Makefile
|
||||
--- a/drivers/net/ethernet/mediatek/Makefile
|
||||
+++ b/drivers/net/ethernet/mediatek/Makefile
|
||||
@@ -2,4 +2,5 @@
|
||||
# Makefile for the Mediatek SoCs built-in ethernet macs
|
||||
#
|
||||
@ -21,10 +17,8 @@ Index: linux-4.19.57/drivers/net/ethernet/mediatek/Makefile
|
||||
-obj-$(CONFIG_NET_MEDIATEK_SOC) += mtk_eth_soc.o
|
||||
+obj-$(CONFIG_NET_MEDIATEK_SOC) += mtk_eth_soc.o mtk_sgmii.o \
|
||||
+ mtk_eth_path.o
|
||||
Index: linux-4.19.57/drivers/net/ethernet/mediatek/mtk_eth_path.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-4.19.57/drivers/net/ethernet/mediatek/mtk_eth_path.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_path.c
|
||||
@@ -0,0 +1,333 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2018 MediaTek Inc.
|
||||
@ -359,10 +353,8 @@ Index: linux-4.19.57/drivers/net/ethernet/mediatek/mtk_eth_path.c
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: linux-4.19.57/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
===================================================================
|
||||
--- linux-4.19.57.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ linux-4.19.57/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <linux/reset.h>
|
||||
#include <linux/tcp.h>
|
||||
@ -1139,10 +1131,8 @@ Index: linux-4.19.57/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, of_mtk_match);
|
||||
Index: linux-4.19.57/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
===================================================================
|
||||
--- linux-4.19.57.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
+++ linux-4.19.57/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
@@ -15,13 +15,17 @@
|
||||
#ifndef MTK_ETH_H
|
||||
#define MTK_ETH_H
|
||||
@ -1537,10 +1527,8 @@ Index: linux-4.19.57/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
+int mtk_setup_hw_path(struct mtk_eth *eth, int mac_id, int phymode);
|
||||
+
|
||||
#endif /* MTK_ETH_H */
|
||||
Index: linux-4.19.57/drivers/net/ethernet/mediatek/mtk_sgmii.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-4.19.57/drivers/net/ethernet/mediatek/mtk_sgmii.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_sgmii.c
|
||||
@@ -0,0 +1,114 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2018 MediaTek Inc.
|
||||
|
@ -1,16 +1,15 @@
|
||||
--- a/drivers/net/phy/mtk/mt753x/Makefile
|
||||
+++ b/drivers/net/phy/mtk/mt753x/Makefile
|
||||
@@ -5,6 +5,6 @@
|
||||
obj-$(CONFIG_MT753X_GSW) += mt753x.o
|
||||
@@ -7,5 +7,5 @@ obj-$(CONFIG_MT753X_GSW) += mt753x.o
|
||||
mt753x-$(CONFIG_SWCONFIG) += mt753x_swconfig.o
|
||||
|
||||
mt753x-y += mt753x_mdio.o mt7530.o mt7531.o \
|
||||
- mt753x_common.o mt753x_nl.o
|
||||
+ mt753x_common.o mt753x_nl.o mt753x_phy.o
|
||||
|
||||
|
||||
--- a/drivers/net/phy/mtk/mt753x/mt7531.c
|
||||
+++ b/drivers/net/phy/mtk/mt753x/mt7531.c
|
||||
@@ -454,6 +454,18 @@ static void mt7531_core_pll_setup(struct gsw_mt753x *gsw)
|
||||
@@ -582,6 +582,18 @@ static void mt7531_core_pll_setup(struct
|
||||
|
||||
static int mt7531_internal_phy_calibration(struct gsw_mt753x *gsw)
|
||||
{
|
||||
@ -31,7 +30,7 @@
|
||||
|
||||
--- a/drivers/net/phy/mtk/mt753x/mt753x.h
|
||||
+++ b/drivers/net/phy/mtk/mt753x/mt753x.h
|
||||
@@ -141,6 +141,8 @@ void mt753x_mmd_ind_write(struct gsw_mt753x *gsw, int addr, int devad, u16 reg,
|
||||
@@ -147,6 +147,8 @@ void mt753x_mmd_ind_write(struct gsw_mt7
|
||||
void mt753x_irq_worker(struct work_struct *work);
|
||||
void mt753x_irq_enable(struct gsw_mt753x *gsw);
|
||||
|
||||
@ -990,8 +989,6 @@
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
diff --git a/target/linux/generic/files/drivers/net/phy/mtk/mt753x/mt753x_phy.h b/target/linux/generic/files/drivers/net/phy/mtk/mt753x/mt753x_phy.h
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/drivers/net/phy/mtk/mt753x/mt753x_phy.h
|
||||
@@ -0,0 +1,145 @@
|
||||
|
@ -1,7 +1,5 @@
|
||||
Index: linux-4.19.57/drivers/net/phy/Kconfig
|
||||
===================================================================
|
||||
--- linux-4.19.57.orig/drivers/net/phy/Kconfig
|
||||
+++ linux-4.19.57/drivers/net/phy/Kconfig
|
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -292,6 +292,8 @@ config RTL8367B_PHY
|
||||
|
||||
endif # RTL8366_SMI
|
||||
@ -11,10 +9,8 @@ Index: linux-4.19.57/drivers/net/phy/Kconfig
|
||||
comment "MII PHY device drivers"
|
||||
|
||||
config SFP
|
||||
Index: linux-4.19.57/drivers/net/phy/Makefile
|
||||
===================================================================
|
||||
--- linux-4.19.57.orig/drivers/net/phy/Makefile
|
||||
+++ linux-4.19.57/drivers/net/phy/Makefile
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -100,3 +100,5 @@ obj-$(CONFIG_STE10XP) += ste10Xp.o
|
||||
obj-$(CONFIG_TERANETICS_PHY) += teranetics.o
|
||||
obj-$(CONFIG_VITESSE_PHY) += vitesse.o
|
||||
|
@ -11,10 +11,8 @@ Subject: [PATCH] arm: dts: Add Unielec U7623 DTS
|
||||
create mode 100644 arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc-512M.dts
|
||||
create mode 100644 arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc.dtsi
|
||||
|
||||
Index: linux-4.19.57/arch/arm/boot/dts/Makefile
|
||||
===================================================================
|
||||
--- linux-4.19.57.orig/arch/arm/boot/dts/Makefile
|
||||
+++ linux-4.19.57/arch/arm/boot/dts/Makefile
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1193,6 +1193,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
|
||||
mt7623a-rfb-nand.dtb \
|
||||
mt7623n-rfb-emmc.dtb \
|
||||
@ -23,10 +21,8 @@ Index: linux-4.19.57/arch/arm/boot/dts/Makefile
|
||||
mt8127-moose.dtb \
|
||||
mt8135-evbp1.dtb
|
||||
dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
|
||||
Index: linux-4.19.57/arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc-512M.dts
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-4.19.57/arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc-512M.dts
|
||||
+++ b/arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc-512M.dts
|
||||
@@ -0,0 +1,18 @@
|
||||
+/*
|
||||
+ * Copyright 2018 Kristian Evensen <kristian.evensen@gmail.com>
|
||||
@ -46,10 +42,8 @@ Index: linux-4.19.57/arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc-512M.dts
|
||||
+ reg = <0 0x80000000 0 0x20000000>;
|
||||
+ };
|
||||
+};
|
||||
Index: linux-4.19.57/arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc.dtsi
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-4.19.57/arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc.dtsi
|
||||
+++ b/arch/arm/boot/dts/mt7623a-unielec-u7623-02-emmc.dtsi
|
||||
@@ -0,0 +1,366 @@
|
||||
+/*
|
||||
+ * Copyright 2018 Kristian Evensen <kristian.evensen@gmail.com>
|
||||
|
115
target/linux/mediatek/patches-4.19/0301-mtd-mtk-ecc-move-mtk-ecc-header-file-to-include-mtd.patch
Executable file → Normal file
115
target/linux/mediatek/patches-4.19/0301-mtd-mtk-ecc-move-mtk-ecc-header-file-to-include-mtd.patch
Executable file → Normal file
@ -12,8 +12,6 @@ Signed-off-by: Xiangsheng Hou <xiangsheng.hou@mediatek.com>
|
||||
3 files changed, 2 insertions(+), 3 deletions(-)
|
||||
rename {drivers/mtd/nand/raw => include/linux/mtd}/mtk_ecc.h (100%)
|
||||
|
||||
diff --git a/drivers/mtd/nand/raw/mtk_ecc.c b/drivers/mtd/nand/raw/mtk_ecc.c
|
||||
index 6432bd70c3b3..32e9784b0d4f 100644
|
||||
--- a/drivers/mtd/nand/raw/mtk_ecc.c
|
||||
+++ b/drivers/mtd/nand/raw/mtk_ecc.c
|
||||
@@ -23,8 +23,7 @@
|
||||
@ -26,8 +24,6 @@ index 6432bd70c3b3..32e9784b0d4f 100644
|
||||
|
||||
#define ECC_IDLE_MASK BIT(0)
|
||||
#define ECC_IRQ_EN BIT(0)
|
||||
diff --git a/drivers/mtd/nand/raw/mtk_nand.c b/drivers/mtd/nand/raw/mtk_nand.c
|
||||
index 57b5ed1699e3..e201f1417fba 100644
|
||||
--- a/drivers/mtd/nand/raw/mtk_nand.c
|
||||
+++ b/drivers/mtd/nand/raw/mtk_nand.c
|
||||
@@ -25,7 +25,7 @@
|
||||
@ -39,10 +35,107 @@ index 57b5ed1699e3..e201f1417fba 100644
|
||||
|
||||
/* NAND controller register definition */
|
||||
#define NFI_CNFG (0x00)
|
||||
diff --git a/drivers/mtd/nand/raw/mtk_ecc.h b/include/linux/mtd/mtk_ecc.h
|
||||
similarity index 100%
|
||||
rename from drivers/mtd/nand/raw/mtk_ecc.h
|
||||
rename to include/linux/mtd/mtk_ecc.h
|
||||
--
|
||||
2.20.1
|
||||
|
||||
--- a/drivers/mtd/nand/raw/mtk_ecc.h
|
||||
+++ /dev/null
|
||||
@@ -1,49 +0,0 @@
|
||||
-/*
|
||||
- * MTK SDG1 ECC controller
|
||||
- *
|
||||
- * Copyright (c) 2016 Mediatek
|
||||
- * Authors: Xiaolei Li <xiaolei.li@mediatek.com>
|
||||
- * Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
|
||||
- * This program is free software; you can redistribute it and/or modify it
|
||||
- * under the terms of the GNU General Public License version 2 as published
|
||||
- * by the Free Software Foundation.
|
||||
- */
|
||||
-
|
||||
-#ifndef __DRIVERS_MTD_NAND_MTK_ECC_H__
|
||||
-#define __DRIVERS_MTD_NAND_MTK_ECC_H__
|
||||
-
|
||||
-#include <linux/types.h>
|
||||
-
|
||||
-enum mtk_ecc_mode {ECC_DMA_MODE = 0, ECC_NFI_MODE = 1};
|
||||
-enum mtk_ecc_operation {ECC_ENCODE, ECC_DECODE};
|
||||
-
|
||||
-struct device_node;
|
||||
-struct mtk_ecc;
|
||||
-
|
||||
-struct mtk_ecc_stats {
|
||||
- u32 corrected;
|
||||
- u32 bitflips;
|
||||
- u32 failed;
|
||||
-};
|
||||
-
|
||||
-struct mtk_ecc_config {
|
||||
- enum mtk_ecc_operation op;
|
||||
- enum mtk_ecc_mode mode;
|
||||
- dma_addr_t addr;
|
||||
- u32 strength;
|
||||
- u32 sectors;
|
||||
- u32 len;
|
||||
-};
|
||||
-
|
||||
-int mtk_ecc_encode(struct mtk_ecc *, struct mtk_ecc_config *, u8 *, u32);
|
||||
-void mtk_ecc_get_stats(struct mtk_ecc *, struct mtk_ecc_stats *, int);
|
||||
-int mtk_ecc_wait_done(struct mtk_ecc *, enum mtk_ecc_operation);
|
||||
-int mtk_ecc_enable(struct mtk_ecc *, struct mtk_ecc_config *);
|
||||
-void mtk_ecc_disable(struct mtk_ecc *);
|
||||
-void mtk_ecc_adjust_strength(struct mtk_ecc *ecc, u32 *p);
|
||||
-unsigned int mtk_ecc_get_parity_bits(struct mtk_ecc *ecc);
|
||||
-
|
||||
-struct mtk_ecc *of_mtk_ecc_get(struct device_node *);
|
||||
-void mtk_ecc_release(struct mtk_ecc *);
|
||||
-
|
||||
-#endif
|
||||
--- /dev/null
|
||||
+++ b/include/linux/mtd/mtk_ecc.h
|
||||
@@ -0,0 +1,49 @@
|
||||
+/*
|
||||
+ * MTK SDG1 ECC controller
|
||||
+ *
|
||||
+ * Copyright (c) 2016 Mediatek
|
||||
+ * Authors: Xiaolei Li <xiaolei.li@mediatek.com>
|
||||
+ * Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
|
||||
+ * This program is free software; you can redistribute it and/or modify it
|
||||
+ * under the terms of the GNU General Public License version 2 as published
|
||||
+ * by the Free Software Foundation.
|
||||
+ */
|
||||
+
|
||||
+#ifndef __DRIVERS_MTD_NAND_MTK_ECC_H__
|
||||
+#define __DRIVERS_MTD_NAND_MTK_ECC_H__
|
||||
+
|
||||
+#include <linux/types.h>
|
||||
+
|
||||
+enum mtk_ecc_mode {ECC_DMA_MODE = 0, ECC_NFI_MODE = 1};
|
||||
+enum mtk_ecc_operation {ECC_ENCODE, ECC_DECODE};
|
||||
+
|
||||
+struct device_node;
|
||||
+struct mtk_ecc;
|
||||
+
|
||||
+struct mtk_ecc_stats {
|
||||
+ u32 corrected;
|
||||
+ u32 bitflips;
|
||||
+ u32 failed;
|
||||
+};
|
||||
+
|
||||
+struct mtk_ecc_config {
|
||||
+ enum mtk_ecc_operation op;
|
||||
+ enum mtk_ecc_mode mode;
|
||||
+ dma_addr_t addr;
|
||||
+ u32 strength;
|
||||
+ u32 sectors;
|
||||
+ u32 len;
|
||||
+};
|
||||
+
|
||||
+int mtk_ecc_encode(struct mtk_ecc *, struct mtk_ecc_config *, u8 *, u32);
|
||||
+void mtk_ecc_get_stats(struct mtk_ecc *, struct mtk_ecc_stats *, int);
|
||||
+int mtk_ecc_wait_done(struct mtk_ecc *, enum mtk_ecc_operation);
|
||||
+int mtk_ecc_enable(struct mtk_ecc *, struct mtk_ecc_config *);
|
||||
+void mtk_ecc_disable(struct mtk_ecc *);
|
||||
+void mtk_ecc_adjust_strength(struct mtk_ecc *ecc, u32 *p);
|
||||
+unsigned int mtk_ecc_get_parity_bits(struct mtk_ecc *ecc);
|
||||
+
|
||||
+struct mtk_ecc *of_mtk_ecc_get(struct device_node *);
|
||||
+void mtk_ecc_release(struct mtk_ecc *);
|
||||
+
|
||||
+#endif
|
||||
|
9
target/linux/mediatek/patches-4.19/0303-mtd-spinand-disable-on-die-ECC.patch
Executable file → Normal file
9
target/linux/mediatek/patches-4.19/0303-mtd-spinand-disable-on-die-ECC.patch
Executable file → Normal file
@ -9,11 +9,9 @@ Signed-off-by: Xiangsheng Hou <xiangsheng.hou@mediatek.com>
|
||||
drivers/mtd/nand/spi/core.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c
|
||||
index 30f83649c481..3b6eac391350 100644
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -554,7 +554,7 @@ static int spinand_mtd_read(struct mtd_info *mtd, loff_t from,
|
||||
@@ -552,7 +552,7 @@ static int spinand_mtd_read(struct mtd_i
|
||||
int ret = 0;
|
||||
|
||||
if (ops->mode != MTD_OPS_RAW && spinand->eccinfo.ooblayout)
|
||||
@ -22,7 +20,7 @@ index 30f83649c481..3b6eac391350 100644
|
||||
|
||||
mutex_lock(&spinand->lock);
|
||||
|
||||
@@ -602,7 +602,7 @@ static int spinand_mtd_write(struct mtd_info *mtd, loff_t to,
|
||||
@@ -600,7 +600,7 @@ static int spinand_mtd_write(struct mtd_
|
||||
int ret = 0;
|
||||
|
||||
if (ops->mode != MTD_OPS_RAW && mtd->ooblayout)
|
||||
@ -31,6 +29,3 @@ index 30f83649c481..3b6eac391350 100644
|
||||
|
||||
mutex_lock(&spinand->lock);
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
||||
|
6
target/linux/mediatek/patches-4.19/0304-dt-bindings-ARM-MediaTek-Document-devicetree-binding.patch
Executable file → Normal file
6
target/linux/mediatek/patches-4.19/0304-dt-bindings-ARM-MediaTek-Document-devicetree-binding.patch
Executable file → Normal file
@ -11,9 +11,6 @@ Signed-off-by: Xiangsheng Hou <xiangsheng.hou@mediatek.com>
|
||||
1 file changed, 44 insertions(+)
|
||||
create mode 100644 Documentation/devicetree/bindings/spi/spi-mtk-snfi.txt
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/spi/spi-mtk-snfi.txt b/Documentation/devicetree/bindings/spi/spi-mtk-snfi.txt
|
||||
new file mode 100644
|
||||
index 000000000000..a09c476c5289
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/spi/spi-mtk-snfi.txt
|
||||
@@ -0,0 +1,44 @@
|
||||
@ -61,6 +58,3 @@ index 000000000000..a09c476c5289
|
||||
+ reg = <0>;
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
2.20.1
|
||||
|
||||
|
@ -13,10 +13,8 @@ Signed-off-by: Xiangsheng Hou <xiangsheng.hou@mediatek.com>
|
||||
3 files changed, 1193 insertions(+)
|
||||
create mode 100644 drivers/spi/spi-mtk-snfi.c
|
||||
|
||||
Index: linux-4.19.48/drivers/spi/spi-mtk-snfi.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ linux-4.19.48/drivers/spi/spi-mtk-snfi.c
|
||||
+++ b/drivers/spi/spi-mtk-snfi.c
|
||||
@@ -0,0 +1,1183 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/*
|
||||
@ -1201,10 +1199,8 @@ Index: linux-4.19.48/drivers/spi/spi-mtk-snfi.c
|
||||
+MODULE_LICENSE("GPL v2");
|
||||
+MODULE_AUTHOR("Xiangsheng Hou <xiangsheng.hou@mediatek.com>");
|
||||
+MODULE_DESCRIPTION("Mediatek SPI Memory Interface Driver");
|
||||
Index: linux-4.19.48/drivers/spi/Kconfig
|
||||
===================================================================
|
||||
--- linux-4.19.48.orig/drivers/spi/Kconfig
|
||||
+++ linux-4.19.48/drivers/spi/Kconfig
|
||||
--- a/drivers/spi/Kconfig
|
||||
+++ b/drivers/spi/Kconfig
|
||||
@@ -389,6 +389,15 @@ config SPI_MT65XX
|
||||
say Y or M here.If you are not sure, say N.
|
||||
SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs.
|
||||
@ -1221,10 +1217,8 @@ Index: linux-4.19.48/drivers/spi/Kconfig
|
||||
config SPI_NUC900
|
||||
tristate "Nuvoton NUC900 series SPI"
|
||||
depends on ARCH_W90X900
|
||||
Index: linux-4.19.48/drivers/spi/Makefile
|
||||
===================================================================
|
||||
--- linux-4.19.48.orig/drivers/spi/Makefile
|
||||
+++ linux-4.19.48/drivers/spi/Makefile
|
||||
--- a/drivers/spi/Makefile
|
||||
+++ b/drivers/spi/Makefile
|
||||
@@ -57,6 +57,7 @@ obj-$(CONFIG_SPI_MPC512x_PSC) += spi-mp
|
||||
obj-$(CONFIG_SPI_MPC52xx_PSC) += spi-mpc52xx-psc.o
|
||||
obj-$(CONFIG_SPI_MPC52xx) += spi-mpc52xx.o
|
||||
|
10
target/linux/mediatek/patches-4.19/0900-bt-mtk-serial-fix.patch
Executable file → Normal file
10
target/linux/mediatek/patches-4.19/0900-bt-mtk-serial-fix.patch
Executable file → Normal file
@ -1,8 +1,6 @@
|
||||
diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h
|
||||
index ebfb0bd..2b9ba39 100644
|
||||
--- a/drivers/tty/serial/8250/8250.h
|
||||
+++ b/drivers/tty/serial/8250/8250.h
|
||||
@@ -80,6 +80,7 @@ struct serial8250_config {
|
||||
@@ -80,6 +80,7 @@ struct serial8250_config {
|
||||
#define UART_CAP_MINI (1 << 17) /* Mini UART on BCM283X family lacks:
|
||||
* STOP PARITY EPAR SPAR WLEN5 WLEN6
|
||||
*/
|
||||
@ -10,11 +8,9 @@ index ebfb0bd..2b9ba39 100644
|
||||
|
||||
#define UART_BUG_QUOT (1 << 0) /* UART has buggy quot LSB */
|
||||
#define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */
|
||||
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
|
||||
index c39482b..e4a69a0 100644
|
||||
--- a/drivers/tty/serial/8250/8250_port.c
|
||||
+++ b/drivers/tty/serial/8250/8250_port.c
|
||||
@@ -297,7 +297,7 @@
|
||||
@@ -297,7 +297,7 @@ static const struct serial8250_config ua
|
||||
.tx_loadsz = 16,
|
||||
.fcr = UART_FCR_ENABLE_FIFO |
|
||||
UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT,
|
||||
@ -23,7 +19,7 @@ index c39482b..e4a69a0 100644
|
||||
},
|
||||
[PORT_NPCM] = {
|
||||
.name = "Nuvoton 16550",
|
||||
@@ -2663,6 +2663,11 @@ static unsigned int serial8250_get_baud_rate(struct uart_port *port,
|
||||
@@ -2644,6 +2644,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
unsigned long flags;
|
||||
unsigned int baud, quot, frac = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user