mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 18:19:02 +00:00
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:
parent
662401d903
commit
378769b555
@ -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)))))))
|
||||||
|
@ -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) },
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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. */
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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,
|
|
@ -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;
|
|
@ -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++;
|
||||||
|
@ -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,
|
||||||
|
@ -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;
|
||||||
|
@ -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 */
|
||||||
|
@ -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 \
|
||||||
|
@ -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),
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
@ -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;
|
||||||
|
@ -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,
|
||||||
|
@ -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;
|
||||||
|
@ -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.
|
||||||
*/
|
*/
|
||||||
|
@ -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,
|
||||||
},
|
},
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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>;
|
||||||
|
@ -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";
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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 */
|
||||||
|
@ -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,
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user