kernel: bump 5.4 to 5.4.142

Compile-tested: ath79-generic ipq40xx-generic
Run-tested: ipq40xx-generic

Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
David Bauer 2021-08-19 20:40:29 +02:00
parent 662401d903
commit 378769b555
28 changed files with 77 additions and 215 deletions

View File

@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif endif
LINUX_VERSION-5.4 = .137 LINUX_VERSION-5.4 = .142
LINUX_KERNEL_HASH-5.4.137 = f09e5e366ce5d8bde887cda229ef17138fd1653706a702221f934f99aaa31f7c LINUX_KERNEL_HASH-5.4.142 = 99785728968564ba27c7e552d024b560072dcbc885540912eabb5c021e231451
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

View File

@ -9,7 +9,7 @@ Subject: [PATCH] Added Device IDs for August DVB-T 205
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c --- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -1938,6 +1938,10 @@ static const struct usb_device_id rtl28x @@ -1947,6 +1947,10 @@ static const struct usb_device_id rtl28x
&rtl28xxu_props, "Compro VideoMate U650F", NULL) }, &rtl28xxu_props, "Compro VideoMate U650F", NULL) },
{ DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd394, { DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd394,
&rtl28xxu_props, "MaxMedia HU394-T", NULL) }, &rtl28xxu_props, "MaxMedia HU394-T", NULL) },

View File

@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
--- a/drivers/media/common/videobuf2/videobuf2-core.c --- a/drivers/media/common/videobuf2/videobuf2-core.c
+++ b/drivers/media/common/videobuf2/videobuf2-core.c +++ b/drivers/media/common/videobuf2/videobuf2-core.c
@@ -2073,12 +2073,12 @@ static int __find_plane_by_offset(struct @@ -2084,12 +2084,12 @@ static int __find_plane_by_offset(struct
return -EINVAL; return -EINVAL;
} }
@ -35,7 +35,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
struct dma_buf *dbuf; struct dma_buf *dbuf;
if (q->memory != VB2_MEMORY_MMAP) { if (q->memory != VB2_MEMORY_MMAP) {
@@ -2128,6 +2128,21 @@ int vb2_core_expbuf(struct vb2_queue *q, @@ -2139,6 +2139,21 @@ int vb2_core_expbuf(struct vb2_queue *q,
return -EINVAL; return -EINVAL;
} }

View File

@ -249,7 +249,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
* @dma_pfn_offset: offset of DMA memory range relatively of RAM * @dma_pfn_offset: offset of DMA memory range relatively of RAM
* @dma_parms: A low level driver may set these to teach IOMMU code about * @dma_parms: A low level driver may set these to teach IOMMU code about
* segment limitations. * segment limitations.
@@ -1270,7 +1270,7 @@ struct device { @@ -1271,7 +1271,7 @@ struct device {
not all hardware supports not all hardware supports
64 bit addresses for consistent 64 bit addresses for consistent
allocations such descriptors. */ allocations such descriptors. */

View File

@ -21,7 +21,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
--- a/drivers/media/v4l2-core/v4l2-mem2mem.c --- a/drivers/media/v4l2-core/v4l2-mem2mem.c
+++ b/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c
@@ -1218,6 +1218,59 @@ int v4l2_m2m_ioctl_try_decoder_cmd(struc @@ -1216,6 +1216,59 @@ int v4l2_m2m_ioctl_try_decoder_cmd(struc
} }
EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_try_decoder_cmd); EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_try_decoder_cmd);

View File

@ -168,7 +168,7 @@ Signed-off-by: John Cox <jc@kynesim.co.uk>
} }
schedule_next = _v4l2_m2m_job_finish(m2m_dev, m2m_ctx); schedule_next = _v4l2_m2m_job_finish(m2m_dev, m2m_ctx);
unlock: unlock:
@@ -983,12 +1074,14 @@ struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(s @@ -981,12 +1072,14 @@ struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(s
m2m_ctx->priv = drv_priv; m2m_ctx->priv = drv_priv;
m2m_ctx->m2m_dev = m2m_dev; m2m_ctx->m2m_dev = m2m_dev;
init_waitqueue_head(&m2m_ctx->finished); init_waitqueue_head(&m2m_ctx->finished);

View File

@ -1,56 +0,0 @@
From 22198e801db7542c59098a75bdab120bcbc42652 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Wed, 30 Sep 2020 19:23:43 +0100
Subject: [PATCH] USB: gadget: f_hid: avoid crashes and log spam
Disconnecting and reconnecting the USB cable can lead to crashes and a
variety of kernel log spam. Try to fix or minimise both.
See: https://github.com/raspberrypi/linux/issues/3870
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
drivers/usb/gadget/function/f_hid.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -344,6 +344,11 @@ static ssize_t f_hidg_write(struct file
spin_lock_irqsave(&hidg->write_spinlock, flags);
+ if (!hidg->req) {
+ spin_unlock_irqrestore(&hidg->write_spinlock, flags);
+ return -ESHUTDOWN;
+ }
+
#define WRITE_COND (!hidg->write_pending)
try_again:
/* write queue */
@@ -364,7 +369,13 @@ try_again:
count = min_t(unsigned, count, hidg->report_length);
spin_unlock_irqrestore(&hidg->write_spinlock, flags);
- status = copy_from_user(req->buf, buffer, count);
+ if (req) {
+ status = copy_from_user(req->buf, buffer, count);
+ } else {
+ ERROR(hidg->func.config->cdev, "hidg->req is NULL\n");
+ status = -ESHUTDOWN;
+ goto release_write_pending;
+ }
if (status != 0) {
ERROR(hidg->func.config->cdev,
@@ -393,6 +404,11 @@ try_again:
spin_unlock_irqrestore(&hidg->write_spinlock, flags);
+ if (!hidg->in_ep->enabled) {
+ ERROR(hidg->func.config->cdev, "in_ep is disabled\n");
+ status = -ESHUTDOWN;
+ goto release_write_pending;
+ }
status = usb_ep_queue(hidg->in_ep, req, GFP_ATOMIC);
if (status < 0) {
ERROR(hidg->func.config->cdev,

View File

@ -1,26 +0,0 @@
From 5018dc559136e2bca24973e71ed8747adf0f37f3 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Mon, 5 Oct 2020 15:41:15 +0100
Subject: [PATCH] SQUASH: USB: gadget: f_hid: remove more spam
Tidying up the previous patch to this file dropped the deletion of a
particularly noisy error message. Restore its removal.
See: https://github.com/raspberrypi/linux/issues/3870
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
drivers/usb/gadget/function/f_hid.c | 2 --
1 file changed, 2 deletions(-)
--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -411,8 +411,6 @@ try_again:
}
status = usb_ep_queue(hidg->in_ep, req, GFP_ATOMIC);
if (status < 0) {
- ERROR(hidg->func.config->cdev,
- "usb_ep_queue error on int endpoint %zd\n", status);
goto release_write_pending;
} else {
status = count;

View File

@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/netfilter/nf_conntrack_core.c --- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c
@@ -1207,18 +1207,6 @@ static bool gc_worker_can_early_drop(con @@ -1212,18 +1212,6 @@ static bool gc_worker_can_early_drop(con
return false; return false;
} }
@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static void gc_worker(struct work_struct *work) static void gc_worker(struct work_struct *work)
{ {
unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u); unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
@@ -1255,10 +1243,8 @@ static void gc_worker(struct work_struct @@ -1260,10 +1248,8 @@ static void gc_worker(struct work_struct
tmp = nf_ct_tuplehash_to_ctrack(h); tmp = nf_ct_tuplehash_to_ctrack(h);
scanned++; scanned++;

View File

@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -1145,6 +1145,64 @@ mt7530_port_vlan_del(struct dsa_switch * @@ -1146,6 +1146,64 @@ mt7530_port_vlan_del(struct dsa_switch *
return 0; return 0;
} }
@ -82,7 +82,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static enum dsa_tag_protocol static enum dsa_tag_protocol
mtk_get_tag_protocol(struct dsa_switch *ds, int port) mtk_get_tag_protocol(struct dsa_switch *ds, int port)
{ {
@@ -1522,6 +1580,8 @@ static const struct dsa_switch_ops mt753 @@ -1523,6 +1581,8 @@ static const struct dsa_switch_ops mt753
.port_vlan_prepare = mt7530_port_vlan_prepare, .port_vlan_prepare = mt7530_port_vlan_prepare,
.port_vlan_add = mt7530_port_vlan_add, .port_vlan_add = mt7530_port_vlan_add,
.port_vlan_del = mt7530_port_vlan_del, .port_vlan_del = mt7530_port_vlan_del,

View File

@ -15,7 +15,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -1085,12 +1085,6 @@ mt7530_port_vlan_add(struct dsa_switch * @@ -1086,12 +1086,6 @@ mt7530_port_vlan_add(struct dsa_switch *
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
u16 vid; u16 vid;
@ -28,7 +28,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mutex_lock(&priv->reg_mutex); mutex_lock(&priv->reg_mutex);
for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) { for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) {
@@ -1116,12 +1110,6 @@ mt7530_port_vlan_del(struct dsa_switch * @@ -1117,12 +1111,6 @@ mt7530_port_vlan_del(struct dsa_switch *
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
u16 vid, pvid; u16 vid, pvid;
@ -41,7 +41,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mutex_lock(&priv->reg_mutex); mutex_lock(&priv->reg_mutex);
pvid = priv->ports[port].pvid; pvid = priv->ports[port].pvid;
@@ -1234,6 +1222,7 @@ mt7530_setup(struct dsa_switch *ds) @@ -1235,6 +1223,7 @@ mt7530_setup(struct dsa_switch *ds)
* as two netdev instances. * as two netdev instances.
*/ */
dn = ds->ports[MT7530_CPU_PORT].master->dev.of_node->parent; dn = ds->ports[MT7530_CPU_PORT].master->dev.of_node->parent;

View File

@ -21,7 +21,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -427,34 +427,32 @@ mt7530_pad_clk_setup(struct dsa_switch * @@ -428,34 +428,32 @@ mt7530_pad_clk_setup(struct dsa_switch *
TD_DM_DRVP(8) | TD_DM_DRVN(8)); TD_DM_DRVP(8) | TD_DM_DRVN(8));
/* Setup core clock for MT7530 */ /* Setup core clock for MT7530 */

View File

@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} \ } \
\ \
/* __*init sections */ \ /* __*init sections */ \
@@ -904,6 +914,8 @@ @@ -905,6 +915,8 @@
EXIT_TEXT \ EXIT_TEXT \
EXIT_DATA \ EXIT_DATA \
EXIT_CALL \ EXIT_CALL \

View File

@ -1,56 +0,0 @@
From 8c9254d41881c81bea610193c6ac59c8cb8b79fe Mon Sep 17 00:00:00 2001
From: Florian Eckert <fe@dev.tdt.de>
Date: Fri, 27 Mar 2020 16:11:55 +0100
Subject: [PATCH] Revert "platform/x86: pcengines-apuv2: wire up simswitch gpio
as led"
This reverts commit 5037d4ddda31c2dbbb018109655f61054b1756dc.
Commit message from linux:
The APU3+ boards have two SIM sockets, while only one of them
can be routed to the mpcie slots at a time. Selection is done
via simswap gpio.
We currently don't have a fitting subsystem for those cases yet,
so just wire it up to a LED for the time being. While this isn't
really semantically correct, it's a good compromise.
Explanation why this does not work:
This change connects the simswap to the LED subsystem of the kernel.
From my point of view, it's nonsense. If we do it this way, then this
can be switched relatively easily via the LED subsystem (trigger:
none/default-on) and that is dangerous! If this is used, it would be
unfavorable, since there is also another trigger (trigger: heartbeat/netdev).
This LED also appears in the LuCI and can therefore be switched by the user.
Therefore, this simswap GPIO should remain in the GPIO
subsystem and be switched via it and not be connected to the LED
subsystem. To avoid the problems mentioned above. The LED subsystem is
not made for this and it is not a good compromise, but rather dangerous.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
---
drivers/platform/x86/pcengines-apuv2.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
--- a/drivers/platform/x86/pcengines-apuv2.c
+++ b/drivers/platform/x86/pcengines-apuv2.c
@@ -77,8 +77,7 @@ static const struct amd_fch_gpio_pdata b
static const struct gpio_led apu2_leds[] = {
{ .name = "apu:green:1" },
{ .name = "apu:green:2" },
- { .name = "apu:green:3" },
- { .name = "apu:simswap" },
+ { .name = "apu:green:3" }
};
static const struct gpio_led_platform_data apu2_leds_pdata = {
@@ -95,8 +94,6 @@ static struct gpiod_lookup_table gpios_l
NULL, 1, GPIO_ACTIVE_LOW),
GPIO_LOOKUP_IDX(AMD_FCH_GPIO_DRIVER_NAME, APU2_GPIO_LINE_LED3,
NULL, 2, GPIO_ACTIVE_LOW),
- GPIO_LOOKUP_IDX(AMD_FCH_GPIO_DRIVER_NAME, APU2_GPIO_LINE_SIMSWAP,
- NULL, 3, GPIO_ACTIVE_LOW),
}
};

View File

@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#define PPP_VERSION "2.4.2" #define PPP_VERSION "2.4.2"
/* /*
@@ -1362,12 +1367,37 @@ static void ppp_dev_priv_destructor(stru @@ -1373,12 +1378,37 @@ static void ppp_dev_priv_destructor(stru
ppp_destroy_interface(ppp); ppp_destroy_interface(ppp);
} }

View File

@ -9,7 +9,7 @@ Content-Transfer-Encoding: 8bit
Signed-off-by: René van Dorst <opensource@vdorst.com> Signed-off-by: René van Dorst <opensource@vdorst.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -1409,9 +1409,13 @@ static void mt7530_phylink_mac_config(st @@ -1410,9 +1410,13 @@ static void mt7530_phylink_mac_config(st
switch (state->speed) { switch (state->speed) {
case SPEED_1000: case SPEED_1000:
mcr_new |= PMCR_FORCE_SPEED_1000; mcr_new |= PMCR_FORCE_SPEED_1000;
@ -23,7 +23,7 @@ Signed-off-by: René van Dorst <opensource@vdorst.com>
break; break;
} }
if (state->duplex == DUPLEX_FULL) { if (state->duplex == DUPLEX_FULL) {
@@ -1547,6 +1551,54 @@ mt7530_phylink_mac_link_state(struct dsa @@ -1548,6 +1552,54 @@ mt7530_phylink_mac_link_state(struct dsa
return 1; return 1;
} }
@ -78,7 +78,7 @@ Signed-off-by: René van Dorst <opensource@vdorst.com>
static const struct dsa_switch_ops mt7530_switch_ops = { static const struct dsa_switch_ops mt7530_switch_ops = {
.get_tag_protocol = mtk_get_tag_protocol, .get_tag_protocol = mtk_get_tag_protocol,
.setup = mt7530_setup, .setup = mt7530_setup,
@@ -1574,6 +1626,8 @@ static const struct dsa_switch_ops mt753 @@ -1575,6 +1627,8 @@ static const struct dsa_switch_ops mt753
.phylink_mac_config = mt7530_phylink_mac_config, .phylink_mac_config = mt7530_phylink_mac_config,
.phylink_mac_link_down = mt7530_phylink_mac_link_down, .phylink_mac_link_down = mt7530_phylink_mac_link_down,
.phylink_mac_link_up = mt7530_phylink_mac_link_up, .phylink_mac_link_up = mt7530_phylink_mac_link_up,

View File

@ -54,7 +54,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
* All 3.1 IP version constants are greater than the 3.0 IP * All 3.1 IP version constants are greater than the 3.0 IP
--- a/drivers/usb/dwc3/gadget.c --- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c
@@ -3578,6 +3578,10 @@ int dwc3_gadget_init(struct dwc3 *dwc) @@ -3656,6 +3656,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
dwc->gadget.sg_supported = true; dwc->gadget.sg_supported = true;
dwc->gadget.name = "dwc3-gadget"; dwc->gadget.name = "dwc3-gadget";
dwc->gadget.lpm_capable = true; dwc->gadget.lpm_capable = true;

View File

@ -51,7 +51,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
struct ethtool_eee *p = &priv->dev->ports[port].eee; struct ethtool_eee *p = &priv->dev->ports[port].eee;
--- a/drivers/net/dsa/lantiq_gswip.c --- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c +++ b/drivers/net/dsa/lantiq_gswip.c
@@ -1657,7 +1657,9 @@ static void gswip_phylink_mac_link_down( @@ -1663,7 +1663,9 @@ static void gswip_phylink_mac_link_down(
static void gswip_phylink_mac_link_up(struct dsa_switch *ds, int port, static void gswip_phylink_mac_link_up(struct dsa_switch *ds, int port,
unsigned int mode, unsigned int mode,
phy_interface_t interface, phy_interface_t interface,
@ -64,7 +64,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -1442,7 +1442,9 @@ static void mt7530_phylink_mac_link_down @@ -1443,7 +1443,9 @@ static void mt7530_phylink_mac_link_down
static void mt7530_phylink_mac_link_up(struct dsa_switch *ds, int port, static void mt7530_phylink_mac_link_up(struct dsa_switch *ds, int port,
unsigned int mode, unsigned int mode,
phy_interface_t interface, phy_interface_t interface,

View File

@ -15,7 +15,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -488,17 +488,6 @@ mt7530_mib_reset(struct dsa_switch *ds) @@ -489,17 +489,6 @@ mt7530_mib_reset(struct dsa_switch *ds)
mt7530_write(priv, MT7530_MIB_CCR, CCR_MIB_ACTIVATE); mt7530_write(priv, MT7530_MIB_CCR, CCR_MIB_ACTIVATE);
} }
@ -33,7 +33,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static int mt7530_phy_read(struct dsa_switch *ds, int port, int regnum) static int mt7530_phy_read(struct dsa_switch *ds, int port, int regnum)
{ {
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
@@ -672,7 +661,7 @@ mt7530_port_enable(struct dsa_switch *ds @@ -673,7 +662,7 @@ mt7530_port_enable(struct dsa_switch *ds
priv->ports[port].enable = true; priv->ports[port].enable = true;
mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK,
priv->ports[port].pm); priv->ports[port].pm);
@ -42,7 +42,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mutex_unlock(&priv->reg_mutex); mutex_unlock(&priv->reg_mutex);
@@ -695,7 +684,7 @@ mt7530_port_disable(struct dsa_switch *d @@ -696,7 +685,7 @@ mt7530_port_disable(struct dsa_switch *d
priv->ports[port].enable = false; priv->ports[port].enable = false;
mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK,
PCR_MATRIX_CLR); PCR_MATRIX_CLR);
@ -51,7 +51,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mutex_unlock(&priv->reg_mutex); mutex_unlock(&priv->reg_mutex);
} }
@@ -1397,8 +1386,7 @@ static void mt7530_phylink_mac_config(st @@ -1398,8 +1387,7 @@ static void mt7530_phylink_mac_config(st
mcr_cur = mt7530_read(priv, MT7530_PMCR_P(port)); mcr_cur = mt7530_read(priv, MT7530_PMCR_P(port));
mcr_new = mcr_cur; mcr_new = mcr_cur;
@ -61,7 +61,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mcr_new |= PMCR_IFG_XMIT(1) | PMCR_MAC_MODE | PMCR_BACKOFF_EN | mcr_new |= PMCR_IFG_XMIT(1) | PMCR_MAC_MODE | PMCR_BACKOFF_EN |
PMCR_BACKPR_EN | PMCR_FORCE_MODE; PMCR_BACKPR_EN | PMCR_FORCE_MODE;
@@ -1406,26 +1394,6 @@ static void mt7530_phylink_mac_config(st @@ -1407,26 +1395,6 @@ static void mt7530_phylink_mac_config(st
if (port == 5 && dsa_is_user_port(ds, 5)) if (port == 5 && dsa_is_user_port(ds, 5))
mcr_new |= PMCR_EXT_PHY; mcr_new |= PMCR_EXT_PHY;
@ -88,7 +88,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (mcr_new != mcr_cur) if (mcr_new != mcr_cur)
mt7530_write(priv, MT7530_PMCR_P(port), mcr_new); mt7530_write(priv, MT7530_PMCR_P(port), mcr_new);
} }
@@ -1436,7 +1404,7 @@ static void mt7530_phylink_mac_link_down @@ -1437,7 +1405,7 @@ static void mt7530_phylink_mac_link_down
{ {
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
@ -97,7 +97,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
} }
static void mt7530_phylink_mac_link_up(struct dsa_switch *ds, int port, static void mt7530_phylink_mac_link_up(struct dsa_switch *ds, int port,
@@ -1447,8 +1415,31 @@ static void mt7530_phylink_mac_link_up(s @@ -1448,8 +1416,31 @@ static void mt7530_phylink_mac_link_up(s
bool tx_pause, bool rx_pause) bool tx_pause, bool rx_pause)
{ {
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;

View File

@ -17,7 +17,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -372,8 +372,9 @@ mt7530_fdb_write(struct mt7530_priv *pri @@ -373,8 +373,9 @@ mt7530_fdb_write(struct mt7530_priv *pri
mt7530_write(priv, MT7530_ATA1 + (i * 4), reg[i]); mt7530_write(priv, MT7530_ATA1 + (i * 4), reg[i]);
} }
@ -28,7 +28,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
{ {
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
u32 ncpo1, ssc_delta, trgint, i, xtal; u32 ncpo1, ssc_delta, trgint, i, xtal;
@@ -387,7 +388,7 @@ mt7530_pad_clk_setup(struct dsa_switch * @@ -388,7 +389,7 @@ mt7530_pad_clk_setup(struct dsa_switch *
return -EINVAL; return -EINVAL;
} }
@ -37,7 +37,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
case PHY_INTERFACE_MODE_RGMII: case PHY_INTERFACE_MODE_RGMII:
trgint = 0; trgint = 0;
/* PLL frequency: 125MHz */ /* PLL frequency: 125MHz */
@@ -409,7 +410,8 @@ mt7530_pad_clk_setup(struct dsa_switch * @@ -410,7 +411,8 @@ mt7530_pad_clk_setup(struct dsa_switch *
} }
break; break;
default: default:
@ -47,7 +47,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
return -EINVAL; return -EINVAL;
} }
@@ -1334,12 +1336,11 @@ mt7530_setup(struct dsa_switch *ds) @@ -1335,12 +1337,11 @@ mt7530_setup(struct dsa_switch *ds)
return 0; return 0;
} }
@ -63,7 +63,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
switch (port) { switch (port) {
case 0: /* Internal phy */ case 0: /* Internal phy */
@@ -1348,33 +1349,114 @@ static void mt7530_phylink_mac_config(st @@ -1349,33 +1350,114 @@ static void mt7530_phylink_mac_config(st
case 3: case 3:
case 4: case 4:
if (state->interface != PHY_INTERFACE_MODE_GMII) if (state->interface != PHY_INTERFACE_MODE_GMII)
@ -189,7 +189,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
return; return;
} }
@@ -1442,61 +1524,44 @@ static void mt7530_phylink_mac_link_up(s @@ -1443,61 +1525,44 @@ static void mt7530_phylink_mac_link_up(s
mt7530_set(priv, MT7530_PMCR_P(port), mcr); mt7530_set(priv, MT7530_PMCR_P(port), mcr);
} }
@ -274,7 +274,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
phylink_set(mask, Pause); phylink_set(mask, Pause);
phylink_set(mask, Asym_Pause); phylink_set(mask, Asym_Pause);
@@ -1592,12 +1657,45 @@ static int mt7530_set_mac_eee(struct dsa @@ -1593,12 +1658,45 @@ static int mt7530_set_mac_eee(struct dsa
return 0; return 0;
} }
@ -323,7 +323,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
.get_ethtool_stats = mt7530_get_ethtool_stats, .get_ethtool_stats = mt7530_get_ethtool_stats,
.get_sset_count = mt7530_get_sset_count, .get_sset_count = mt7530_get_sset_count,
.port_enable = mt7530_port_enable, .port_enable = mt7530_port_enable,
@@ -1614,18 +1712,43 @@ static const struct dsa_switch_ops mt753 @@ -1615,18 +1713,43 @@ static const struct dsa_switch_ops mt753
.port_vlan_del = mt7530_port_vlan_del, .port_vlan_del = mt7530_port_vlan_del,
.port_mirror_add = mt7530_port_mirror_add, .port_mirror_add = mt7530_port_mirror_add,
.port_mirror_del = mt7530_port_mirror_del, .port_mirror_del = mt7530_port_mirror_del,
@ -372,7 +372,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
{ /* sentinel */ }, { /* sentinel */ },
}; };
MODULE_DEVICE_TABLE(of, mt7530_of_match); MODULE_DEVICE_TABLE(of, mt7530_of_match);
@@ -1663,8 +1786,21 @@ mt7530_probe(struct mdio_device *mdiodev @@ -1664,8 +1787,21 @@ mt7530_probe(struct mdio_device *mdiodev
/* Get the hardware identifier from the devicetree node. /* Get the hardware identifier from the devicetree node.
* We will need it for some of the clock and regulator setup. * We will need it for some of the clock and regulator setup.
*/ */

View File

@ -28,7 +28,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -234,6 +234,12 @@ mt7530_write(struct mt7530_priv *priv, u @@ -235,6 +235,12 @@ mt7530_write(struct mt7530_priv *priv, u
} }
static u32 static u32
@ -41,7 +41,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
_mt7530_read(struct mt7530_dummy_poll *p) _mt7530_read(struct mt7530_dummy_poll *p)
{ {
struct mii_bus *bus = p->priv->bus; struct mii_bus *bus = p->priv->bus;
@@ -481,6 +487,108 @@ mt7530_pad_clk_setup(struct dsa_switch * @@ -482,6 +488,108 @@ mt7530_pad_clk_setup(struct dsa_switch *
return 0; return 0;
} }
@ -150,7 +150,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
static void static void
mt7530_mib_reset(struct dsa_switch *ds) mt7530_mib_reset(struct dsa_switch *ds)
{ {
@@ -505,6 +613,217 @@ static int mt7530_phy_write(struct dsa_s @@ -506,6 +614,217 @@ static int mt7530_phy_write(struct dsa_s
return mdiobus_write_nested(priv->bus, port, regnum, val); return mdiobus_write_nested(priv->bus, port, regnum, val);
} }
@ -368,7 +368,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
static void static void
mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset, mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset,
uint8_t *data) uint8_t *data)
@@ -621,9 +940,14 @@ unlock_exit: @@ -622,9 +941,14 @@ unlock_exit:
} }
static int static int
@ -385,7 +385,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
/* Enable Mediatek header mode on the cpu port */ /* Enable Mediatek header mode on the cpu port */
mt7530_write(priv, MT7530_PVC_P(port), mt7530_write(priv, MT7530_PVC_P(port),
PORT_SPEC_TAG); PORT_SPEC_TAG);
@@ -636,7 +960,7 @@ mt7530_cpu_port_enable(struct mt7530_pri @@ -637,7 +961,7 @@ mt7530_cpu_port_enable(struct mt7530_pri
mt7530_rmw(priv, MT7530_MFC, CPU_MASK, CPU_EN | CPU_PORT(port)); mt7530_rmw(priv, MT7530_MFC, CPU_MASK, CPU_EN | CPU_PORT(port));
/* CPU port gets connected to all user ports of /* CPU port gets connected to all user ports of
@ -394,7 +394,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
*/ */
mt7530_write(priv, MT7530_PCR_P(port), mt7530_write(priv, MT7530_PCR_P(port),
PCR_MATRIX(dsa_user_ports(priv->ds))); PCR_MATRIX(dsa_user_ports(priv->ds)));
@@ -1122,27 +1446,42 @@ mt7530_port_vlan_del(struct dsa_switch * @@ -1123,27 +1447,42 @@ mt7530_port_vlan_del(struct dsa_switch *
return 0; return 0;
} }
@ -444,7 +444,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
val = mt7530_read(priv, MT7530_PCR_P(port)); val = mt7530_read(priv, MT7530_PCR_P(port));
if (ingress) { if (ingress) {
@@ -1157,7 +1496,7 @@ static int mt7530_port_mirror_add(struct @@ -1158,7 +1497,7 @@ static int mt7530_port_mirror_add(struct
return 0; return 0;
} }
@ -453,7 +453,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
struct dsa_mall_mirror_tc_entry *mirror) struct dsa_mall_mirror_tc_entry *mirror)
{ {
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
@@ -1174,9 +1513,9 @@ static void mt7530_port_mirror_del(struc @@ -1175,9 +1514,9 @@ static void mt7530_port_mirror_del(struc
mt7530_write(priv, MT7530_PCR_P(port), val); mt7530_write(priv, MT7530_PCR_P(port), val);
if (!priv->mirror_rx && !priv->mirror_tx) { if (!priv->mirror_rx && !priv->mirror_tx) {
@ -466,7 +466,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
} }
} }
@@ -1282,7 +1621,7 @@ mt7530_setup(struct dsa_switch *ds) @@ -1283,7 +1622,7 @@ mt7530_setup(struct dsa_switch *ds)
PCR_MATRIX_CLR); PCR_MATRIX_CLR);
if (dsa_is_cpu_port(ds, i)) if (dsa_is_cpu_port(ds, i))
@ -475,7 +475,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
else else
mt7530_port_disable(ds, i); mt7530_port_disable(ds, i);
@@ -1336,6 +1675,118 @@ mt7530_setup(struct dsa_switch *ds) @@ -1337,6 +1676,118 @@ mt7530_setup(struct dsa_switch *ds)
return 0; return 0;
} }
@ -594,7 +594,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
static bool static bool
mt7530_phy_mode_supported(struct dsa_switch *ds, int port, mt7530_phy_mode_supported(struct dsa_switch *ds, int port,
const struct phylink_link_state *state) const struct phylink_link_state *state)
@@ -1374,6 +1825,47 @@ unsupported: @@ -1375,6 +1826,47 @@ unsupported:
return false; return false;
} }
@ -642,7 +642,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
static bool static bool
mt753x_phy_mode_supported(struct dsa_switch *ds, int port, mt753x_phy_mode_supported(struct dsa_switch *ds, int port,
const struct phylink_link_state *state) const struct phylink_link_state *state)
@@ -1406,6 +1898,227 @@ mt7530_mac_config(struct dsa_switch *ds, @@ -1407,6 +1899,227 @@ mt7530_mac_config(struct dsa_switch *ds,
return 0; return 0;
} }
@ -870,7 +870,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
static int static int
mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode, mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
const struct phylink_link_state *state) const struct phylink_link_state *state)
@@ -1441,6 +2154,8 @@ mt753x_phylink_mac_config(struct dsa_swi @@ -1442,6 +2155,8 @@ mt753x_phylink_mac_config(struct dsa_swi
if (mt753x_mac_config(ds, port, mode, state) < 0) if (mt753x_mac_config(ds, port, mode, state) < 0)
goto unsupported; goto unsupported;
@ -879,7 +879,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
break; break;
case 6: /* 1st cpu port */ case 6: /* 1st cpu port */
if (priv->p6_interface == state->interface) if (priv->p6_interface == state->interface)
@@ -1460,7 +2175,8 @@ unsupported: @@ -1461,7 +2176,8 @@ unsupported:
return; return;
} }
@ -889,7 +889,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
dev_err(ds->dev, "%s: in-band negotiation unsupported\n", dev_err(ds->dev, "%s: in-band negotiation unsupported\n",
__func__); __func__);
return; return;
@@ -1470,7 +2186,7 @@ unsupported: @@ -1471,7 +2187,7 @@ unsupported:
mcr_new = mcr_cur; mcr_new = mcr_cur;
mcr_new &= ~PMCR_LINK_SETTINGS_MASK; mcr_new &= ~PMCR_LINK_SETTINGS_MASK;
mcr_new |= PMCR_IFG_XMIT(1) | PMCR_MAC_MODE | PMCR_BACKOFF_EN | mcr_new |= PMCR_IFG_XMIT(1) | PMCR_MAC_MODE | PMCR_BACKOFF_EN |
@ -898,7 +898,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
/* Are we connected to external phy */ /* Are we connected to external phy */
if (port == 5 && dsa_is_user_port(ds, 5)) if (port == 5 && dsa_is_user_port(ds, 5))
@@ -1480,7 +2196,18 @@ unsupported: @@ -1481,7 +2197,18 @@ unsupported:
mt7530_write(priv, MT7530_PMCR_P(port), mcr_new); mt7530_write(priv, MT7530_PMCR_P(port), mcr_new);
} }
@ -918,7 +918,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
unsigned int mode, unsigned int mode,
phy_interface_t interface) phy_interface_t interface)
{ {
@@ -1489,7 +2216,19 @@ static void mt7530_phylink_mac_link_down @@ -1490,7 +2217,19 @@ static void mt7530_phylink_mac_link_down
mt7530_clear(priv, MT7530_PMCR_P(port), PMCR_LINK_SETTINGS_MASK); mt7530_clear(priv, MT7530_PMCR_P(port), PMCR_LINK_SETTINGS_MASK);
} }
@ -939,7 +939,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
unsigned int mode, unsigned int mode,
phy_interface_t interface, phy_interface_t interface,
struct phy_device *phydev, struct phy_device *phydev,
@@ -1499,18 +2238,29 @@ static void mt7530_phylink_mac_link_up(s @@ -1500,18 +2239,29 @@ static void mt7530_phylink_mac_link_up(s
struct mt7530_priv *priv = ds->priv; struct mt7530_priv *priv = ds->priv;
u32 mcr; u32 mcr;
@ -971,7 +971,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
break; break;
} }
if (duplex == DUPLEX_FULL) { if (duplex == DUPLEX_FULL) {
@@ -1524,6 +2274,45 @@ static void mt7530_phylink_mac_link_up(s @@ -1525,6 +2275,45 @@ static void mt7530_phylink_mac_link_up(s
mt7530_set(priv, MT7530_PMCR_P(port), mcr); mt7530_set(priv, MT7530_PMCR_P(port), mcr);
} }
@ -1017,7 +1017,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
static void static void
mt7530_mac_port_validate(struct dsa_switch *ds, int port, mt7530_mac_port_validate(struct dsa_switch *ds, int port,
unsigned long *supported) unsigned long *supported)
@@ -1532,6 +2321,14 @@ mt7530_mac_port_validate(struct dsa_swit @@ -1533,6 +2322,14 @@ mt7530_mac_port_validate(struct dsa_swit
phylink_set(supported, 1000baseX_Full); phylink_set(supported, 1000baseX_Full);
} }
@ -1032,7 +1032,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
static void static void
mt753x_phylink_validate(struct dsa_switch *ds, int port, mt753x_phylink_validate(struct dsa_switch *ds, int port,
unsigned long *supported, unsigned long *supported,
@@ -1548,7 +2345,8 @@ mt753x_phylink_validate(struct dsa_switc @@ -1549,7 +2346,8 @@ mt753x_phylink_validate(struct dsa_switc
phylink_set_port_modes(mask); phylink_set_port_modes(mask);
@ -1042,7 +1042,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
phylink_set(mask, 10baseT_Half); phylink_set(mask, 10baseT_Half);
phylink_set(mask, 10baseT_Full); phylink_set(mask, 10baseT_Full);
phylink_set(mask, 100baseT_Half); phylink_set(mask, 100baseT_Half);
@@ -1567,6 +2365,11 @@ mt753x_phylink_validate(struct dsa_switc @@ -1568,6 +2366,11 @@ mt753x_phylink_validate(struct dsa_switc
linkmode_and(supported, supported, mask); linkmode_and(supported, supported, mask);
linkmode_and(state->advertising, state->advertising, mask); linkmode_and(state->advertising, state->advertising, mask);
@ -1054,7 +1054,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
} }
static int static int
@@ -1657,6 +2460,63 @@ static int mt7530_set_mac_eee(struct dsa @@ -1658,6 +2461,63 @@ static int mt7530_set_mac_eee(struct dsa
return 0; return 0;
} }
@ -1118,7 +1118,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
static int static int
mt753x_phylink_mac_link_state(struct dsa_switch *ds, int port, mt753x_phylink_mac_link_state(struct dsa_switch *ds, int port,
struct phylink_link_state *state) struct phylink_link_state *state)
@@ -1710,13 +2570,14 @@ static const struct dsa_switch_ops mt753 @@ -1711,13 +2571,14 @@ static const struct dsa_switch_ops mt753
.port_vlan_prepare = mt7530_port_vlan_prepare, .port_vlan_prepare = mt7530_port_vlan_prepare,
.port_vlan_add = mt7530_port_vlan_add, .port_vlan_add = mt7530_port_vlan_add,
.port_vlan_del = mt7530_port_vlan_del, .port_vlan_del = mt7530_port_vlan_del,
@ -1137,7 +1137,7 @@ Signed-off-by: Sean Wang <sean.wang@mediatek.com>
.get_mac_eee = mt7530_get_mac_eee, .get_mac_eee = mt7530_get_mac_eee,
.set_mac_eee = mt7530_set_mac_eee, .set_mac_eee = mt7530_set_mac_eee,
}; };
@@ -1744,11 +2605,26 @@ static const struct mt753x_info mt753x_t @@ -1745,11 +2606,26 @@ static const struct mt753x_info mt753x_t
.mac_port_get_state = mt7530_phylink_mac_link_state, .mac_port_get_state = mt7530_phylink_mac_link_state,
.mac_port_config = mt7530_mac_config, .mac_port_config = mt7530_mac_config,
}, },

View File

@ -19,7 +19,7 @@
}, },
[PORT_NPCM] = { [PORT_NPCM] = {
.name = "Nuvoton 16550", .name = "Nuvoton 16550",
@@ -2591,6 +2591,11 @@ serial8250_do_set_termios(struct uart_po @@ -2597,6 +2597,11 @@ serial8250_do_set_termios(struct uart_po
unsigned long flags; unsigned long flags;
unsigned int baud, quot, frac = 0; unsigned int baud, quot, frac = 0;

View File

@ -69,7 +69,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
/* J6 */ /* J6 */
--- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts --- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts +++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
@@ -126,10 +126,6 @@ @@ -127,10 +127,6 @@
}; };
}; };

View File

@ -37,7 +37,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>; reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
--- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts --- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts +++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
@@ -132,7 +132,6 @@ @@ -133,7 +133,6 @@
status = "okay"; status = "okay";
max-link-speed = <2>; max-link-speed = <2>;
reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>; reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;

View File

@ -24,7 +24,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
--- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts --- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts +++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
@@ -130,7 +130,6 @@ @@ -131,7 +131,6 @@
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>; pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
status = "okay"; status = "okay";

View File

@ -13,7 +13,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
--- a/drivers/pci/controller/pci-mvebu.c --- a/drivers/pci/controller/pci-mvebu.c
+++ b/drivers/pci/controller/pci-mvebu.c +++ b/drivers/pci/controller/pci-mvebu.c
@@ -928,6 +928,7 @@ static int mvebu_pcie_powerup(struct mve @@ -936,6 +936,7 @@ static int mvebu_pcie_powerup(struct mve
if (port->reset_gpio) { if (port->reset_gpio) {
u32 reset_udelay = PCI_PM_D3COLD_WAIT * 1000; u32 reset_udelay = PCI_PM_D3COLD_WAIT * 1000;
@ -21,7 +21,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
of_property_read_u32(port->dn, "reset-delay-us", of_property_read_u32(port->dn, "reset-delay-us",
&reset_udelay); &reset_udelay);
@@ -935,7 +936,13 @@ static int mvebu_pcie_powerup(struct mve @@ -943,7 +944,13 @@ static int mvebu_pcie_powerup(struct mve
udelay(100); udelay(100);
gpiod_set_value_cansleep(port->reset_gpio, 0); gpiod_set_value_cansleep(port->reset_gpio, 0);
@ -36,7 +36,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
} }
return 0; return 0;
@@ -1099,15 +1106,16 @@ static int mvebu_pcie_probe(struct platf @@ -1107,15 +1114,16 @@ static int mvebu_pcie_probe(struct platf
if (!child) if (!child)
continue; continue;

View File

@ -22,7 +22,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
#include <linux/crc32.h> #include <linux/crc32.h>
#include <linux/if_vlan.h> #include <linux/if_vlan.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
@@ -4335,6 +4336,22 @@ static void rtl_tally_reset(struct r8152 @@ -4336,6 +4337,22 @@ static void rtl_tally_reset(struct r8152
ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data); ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data);
} }
@ -45,7 +45,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
static void r8152b_init(struct r8152 *tp) static void r8152b_init(struct r8152 *tp)
{ {
u32 ocp_data; u32 ocp_data;
@@ -4376,6 +4393,8 @@ static void r8152b_init(struct r8152 *tp @@ -4377,6 +4394,8 @@ static void r8152b_init(struct r8152 *tp
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN); ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
@ -54,7 +54,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
} }
static void r8153_init(struct r8152 *tp) static void r8153_init(struct r8152 *tp)
@@ -4510,6 +4529,8 @@ static void r8153_init(struct r8152 *tp) @@ -4511,6 +4530,8 @@ static void r8153_init(struct r8152 *tp)
tp->coalesce = COALESCE_SLOW; tp->coalesce = COALESCE_SLOW;
break; break;
} }
@ -63,7 +63,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
} }
static void r8153b_init(struct r8152 *tp) static void r8153b_init(struct r8152 *tp)
@@ -4586,6 +4607,8 @@ static void r8153b_init(struct r8152 *tp @@ -4587,6 +4608,8 @@ static void r8153b_init(struct r8152 *tp
rtl_tally_reset(tp); rtl_tally_reset(tp);
tp->coalesce = 15000; /* 15 us */ tp->coalesce = 15000; /* 15 us */

View File

@ -14,7 +14,7 @@ Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
--- a/drivers/platform/x86/pcengines-apuv2.c --- a/drivers/platform/x86/pcengines-apuv2.c
+++ b/drivers/platform/x86/pcengines-apuv2.c +++ b/drivers/platform/x86/pcengines-apuv2.c
@@ -186,6 +186,33 @@ static const struct dmi_system_id apu_gp @@ -188,6 +188,33 @@ static const struct dmi_system_id apu_gp
}, },
.driver_data = (void *)&board_apu2, .driver_data = (void *)&board_apu2,
}, },