mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 10:39:04 +00:00
kernel: bump 5.4 to 5.4.80
Removed since could be reverse-applied by quilt and found to be included upstream: backport-5.4/789-net-usb-qmi_wwan-Set-DTR-quirk-for-MR400.patch All modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711, ath79/generic Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Curtis Deptuck <curtdept@me.com> [x86_64 build/run]
This commit is contained in:
parent
f29231ece7
commit
4e39949dd1
@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
|
|||||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINUX_VERSION-5.4 = .79
|
LINUX_VERSION-5.4 = .80
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-5.4.79 = a59091fb08ff66a344a7842b7c891f36cef609eed1d2944edf475cca8d91ce25
|
LINUX_KERNEL_HASH-5.4.80 = 49da425c1f3c530fd3ff31d85a0461f6b6dc6e459f7faf3eee23e49a98ce64c7
|
||||||
|
|
||||||
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)))))))
|
||||||
|
@ -99,7 +99,7 @@ Subject: [PATCH 210/210] b44: register adm switch
|
|||||||
dev_info(sdev->dev,
|
dev_info(sdev->dev,
|
||||||
"could not find PHY at %i, use fixed one\n",
|
"could not find PHY at %i, use fixed one\n",
|
||||||
bp->phy_addr);
|
bp->phy_addr);
|
||||||
@@ -2480,6 +2548,7 @@ static void b44_remove_one(struct ssb_de
|
@@ -2481,6 +2549,7 @@ static void b44_remove_one(struct ssb_de
|
||||||
unregister_netdev(dev);
|
unregister_netdev(dev);
|
||||||
if (bp->flags & B44_FLAG_EXTERNAL_PHY)
|
if (bp->flags & B44_FLAG_EXTERNAL_PHY)
|
||||||
b44_unregister_phy_one(bp);
|
b44_unregister_phy_one(bp);
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
From df8d85d8c69d6837817e54dcb73c84a8b5a13877 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Filip Moc <dev@moc6.cz>
|
|
||||||
Date: Tue, 17 Nov 2020 18:36:31 +0100
|
|
||||||
Subject: net: usb: qmi_wwan: Set DTR quirk for MR400
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
LTE module MR400 embedded in TL-MR6400 v4 requires DTR to be set.
|
|
||||||
|
|
||||||
Signed-off-by: Filip Moc <dev@moc6.cz>
|
|
||||||
Acked-by: Bjørn Mork <bjorn@mork.no>
|
|
||||||
Link: https://lore.kernel.org/r/20201117173631.GA550981@moc6.cz
|
|
||||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
||||||
---
|
|
||||||
drivers/net/usb/qmi_wwan.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/drivers/net/usb/qmi_wwan.c
|
|
||||||
+++ b/drivers/net/usb/qmi_wwan.c
|
|
||||||
@@ -1092,7 +1092,7 @@ static const struct usb_device_id produc
|
|
||||||
{QMI_FIXED_INTF(0x05c6, 0x9011, 4)},
|
|
||||||
{QMI_FIXED_INTF(0x05c6, 0x9021, 1)},
|
|
||||||
{QMI_FIXED_INTF(0x05c6, 0x9022, 2)},
|
|
||||||
- {QMI_FIXED_INTF(0x05c6, 0x9025, 4)}, /* Alcatel-sbell ASB TL131 TDD LTE (China Mobile) */
|
|
||||||
+ {QMI_QUIRK_SET_DTR(0x05c6, 0x9025, 4)}, /* Alcatel-sbell ASB TL131 TDD LTE (China Mobile) */
|
|
||||||
{QMI_FIXED_INTF(0x05c6, 0x9026, 3)},
|
|
||||||
{QMI_FIXED_INTF(0x05c6, 0x902e, 5)},
|
|
||||||
{QMI_FIXED_INTF(0x05c6, 0x9031, 5)},
|
|
@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
|
|||||||
|
|
||||||
--- a/mm/page_alloc.c
|
--- a/mm/page_alloc.c
|
||||||
+++ b/mm/page_alloc.c
|
+++ b/mm/page_alloc.c
|
||||||
@@ -6861,7 +6861,7 @@ static void __ref alloc_node_mem_map(str
|
@@ -6883,7 +6883,7 @@ static void __ref alloc_node_mem_map(str
|
||||||
mem_map = NODE_DATA(0)->node_mem_map;
|
mem_map = NODE_DATA(0)->node_mem_map;
|
||||||
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
|
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
|
||||||
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
||||||
|
@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include "br_private.h"
|
#include "br_private.h"
|
||||||
@@ -375,6 +379,28 @@ static const struct ethtool_ops br_ethto
|
@@ -376,6 +380,28 @@ static const struct ethtool_ops br_ethto
|
||||||
.get_link = ethtool_op_get_link,
|
.get_link = ethtool_op_get_link,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
static const struct net_device_ops br_netdev_ops = {
|
static const struct net_device_ops br_netdev_ops = {
|
||||||
.ndo_open = br_dev_open,
|
.ndo_open = br_dev_open,
|
||||||
.ndo_stop = br_dev_stop,
|
.ndo_stop = br_dev_stop,
|
||||||
@@ -403,6 +429,9 @@ static const struct net_device_ops br_ne
|
@@ -404,6 +430,9 @@ static const struct net_device_ops br_ne
|
||||||
.ndo_bridge_setlink = br_setlink,
|
.ndo_bridge_setlink = br_setlink,
|
||||||
.ndo_bridge_dellink = br_dellink,
|
.ndo_bridge_dellink = br_dellink,
|
||||||
.ndo_features_check = passthru_features_check,
|
.ndo_features_check = passthru_features_check,
|
||||||
|
@ -295,7 +295,7 @@ This reverts commit cf9441adb1a35506d7606866c382b9d8614169b5.
|
|||||||
ret = devm_request_irq(&pdev->dev, irq, mxs_saif_irq, 0,
|
ret = devm_request_irq(&pdev->dev, irq, mxs_saif_irq, 0,
|
||||||
--- a/sound/soc/qcom/lpass-platform.c
|
--- a/sound/soc/qcom/lpass-platform.c
|
||||||
+++ b/sound/soc/qcom/lpass-platform.c
|
+++ b/sound/soc/qcom/lpass-platform.c
|
||||||
@@ -565,8 +565,11 @@ int asoc_qcom_lpass_platform_register(st
|
@@ -568,8 +568,11 @@ int asoc_qcom_lpass_platform_register(st
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
drvdata->lpaif_irq = platform_get_irq_byname(pdev, "lpass-irq-lpaif");
|
drvdata->lpaif_irq = platform_get_irq_byname(pdev, "lpass-irq-lpaif");
|
||||||
|
@ -25,7 +25,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -783,16 +783,23 @@ static inline struct flexcan_priv *rx_of
|
@@ -785,16 +785,23 @@ static inline struct flexcan_priv *rx_of
|
||||||
return container_of(offload, struct flexcan_priv, offload);
|
return container_of(offload, struct flexcan_priv, offload);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
mb = flexcan_get_mb(priv, n);
|
mb = flexcan_get_mb(priv, n);
|
||||||
|
|
||||||
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
||||||
@@ -806,7 +813,7 @@ static unsigned int flexcan_mailbox_read
|
@@ -808,7 +815,7 @@ static unsigned int flexcan_mailbox_read
|
||||||
code = reg_ctrl & FLEXCAN_MB_CODE_MASK;
|
code = reg_ctrl & FLEXCAN_MB_CODE_MASK;
|
||||||
if ((code != FLEXCAN_MB_CODE_RX_FULL) &&
|
if ((code != FLEXCAN_MB_CODE_RX_FULL) &&
|
||||||
(code != FLEXCAN_MB_CODE_RX_OVERRUN))
|
(code != FLEXCAN_MB_CODE_RX_OVERRUN))
|
||||||
@ -61,7 +61,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
if (code == FLEXCAN_MB_CODE_RX_OVERRUN) {
|
if (code == FLEXCAN_MB_CODE_RX_OVERRUN) {
|
||||||
/* This MB was overrun, we lost data */
|
/* This MB was overrun, we lost data */
|
||||||
@@ -816,11 +823,17 @@ static unsigned int flexcan_mailbox_read
|
@@ -818,11 +825,17 @@ static unsigned int flexcan_mailbox_read
|
||||||
} else {
|
} else {
|
||||||
reg_iflag1 = priv->read(®s->iflag1);
|
reg_iflag1 = priv->read(®s->iflag1);
|
||||||
if (!(reg_iflag1 & FLEXCAN_IFLAG_RX_FIFO_AVAILABLE))
|
if (!(reg_iflag1 & FLEXCAN_IFLAG_RX_FIFO_AVAILABLE))
|
||||||
@ -80,7 +80,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
/* increase timstamp to full 32 bit */
|
/* increase timstamp to full 32 bit */
|
||||||
*timestamp = reg_ctrl << 16;
|
*timestamp = reg_ctrl << 16;
|
||||||
|
|
||||||
@@ -839,7 +852,7 @@ static unsigned int flexcan_mailbox_read
|
@@ -841,7 +854,7 @@ static unsigned int flexcan_mailbox_read
|
||||||
*(__be32 *)(cf->data + i) = data;
|
*(__be32 *)(cf->data + i) = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
||||||
/* Clear IRQ */
|
/* Clear IRQ */
|
||||||
if (n < 32)
|
if (n < 32)
|
||||||
@@ -856,7 +869,7 @@ static unsigned int flexcan_mailbox_read
|
@@ -858,7 +871,7 @@ static unsigned int flexcan_mailbox_read
|
||||||
*/
|
*/
|
||||||
priv->read(®s->timer);
|
priv->read(®s->timer);
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -1569,7 +1569,6 @@ static int flexcan_probe(struct platform
|
@@ -1573,7 +1573,6 @@ static int flexcan_probe(struct platform
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
struct flexcan_priv *priv;
|
struct flexcan_priv *priv;
|
||||||
struct regulator *reg_xceiver;
|
struct regulator *reg_xceiver;
|
||||||
@ -25,7 +25,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
struct clk *clk_ipg = NULL, *clk_per = NULL;
|
struct clk *clk_ipg = NULL, *clk_per = NULL;
|
||||||
struct flexcan_regs __iomem *regs;
|
struct flexcan_regs __iomem *regs;
|
||||||
int err, irq;
|
int err, irq;
|
||||||
@@ -1604,12 +1603,11 @@ static int flexcan_probe(struct platform
|
@@ -1608,12 +1607,11 @@ static int flexcan_probe(struct platform
|
||||||
clock_freq = clk_get_rate(clk_per);
|
clock_freq = clk_get_rate(clk_per);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -743,8 +743,6 @@ static void flexcan_irq_state(struct net
|
@@ -745,8 +745,6 @@ static void flexcan_irq_state(struct net
|
||||||
u32 timestamp;
|
u32 timestamp;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
flt = reg_esr & FLEXCAN_ESR_FLT_CONF_MASK;
|
flt = reg_esr & FLEXCAN_ESR_FLT_CONF_MASK;
|
||||||
if (likely(flt == FLEXCAN_ESR_FLT_CONF_ACTIVE)) {
|
if (likely(flt == FLEXCAN_ESR_FLT_CONF_ACTIVE)) {
|
||||||
tx_state = unlikely(reg_esr & FLEXCAN_ESR_TX_WRN) ?
|
tx_state = unlikely(reg_esr & FLEXCAN_ESR_TX_WRN) ?
|
||||||
@@ -764,6 +762,8 @@ static void flexcan_irq_state(struct net
|
@@ -766,6 +764,8 @@ static void flexcan_irq_state(struct net
|
||||||
if (likely(new_state == priv->can.state))
|
if (likely(new_state == priv->can.state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
#define FLEXCAN_IFLAG_RX_FIFO_OVERFLOW BIT(7)
|
#define FLEXCAN_IFLAG_RX_FIFO_OVERFLOW BIT(7)
|
||||||
#define FLEXCAN_IFLAG_RX_FIFO_WARN BIT(6)
|
#define FLEXCAN_IFLAG_RX_FIFO_WARN BIT(6)
|
||||||
#define FLEXCAN_IFLAG_RX_FIFO_AVAILABLE BIT(5)
|
#define FLEXCAN_IFLAG_RX_FIFO_AVAILABLE BIT(5)
|
||||||
@@ -879,7 +879,7 @@ static inline u64 flexcan_read_reg_iflag
|
@@ -881,7 +881,7 @@ static inline u64 flexcan_read_reg_iflag
|
||||||
u32 iflag1, iflag2;
|
u32 iflag1, iflag2;
|
||||||
|
|
||||||
iflag2 = priv->read(®s->iflag2) & priv->reg_imask2_default &
|
iflag2 = priv->read(®s->iflag2) & priv->reg_imask2_default &
|
||||||
@ -32,7 +32,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
iflag1 = priv->read(®s->iflag1) & priv->reg_imask1_default;
|
iflag1 = priv->read(®s->iflag1) & priv->reg_imask1_default;
|
||||||
|
|
||||||
return (u64)iflag2 << 32 | iflag1;
|
return (u64)iflag2 << 32 | iflag1;
|
||||||
@@ -929,7 +929,7 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -931,7 +931,7 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
reg_iflag2 = priv->read(®s->iflag2);
|
reg_iflag2 = priv->read(®s->iflag2);
|
||||||
|
|
||||||
/* transmission complete interrupt */
|
/* transmission complete interrupt */
|
||||||
@ -41,7 +41,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
u32 reg_ctrl = priv->read(&priv->tx_mb->can_ctrl);
|
u32 reg_ctrl = priv->read(&priv->tx_mb->can_ctrl);
|
||||||
|
|
||||||
handled = IRQ_HANDLED;
|
handled = IRQ_HANDLED;
|
||||||
@@ -941,7 +941,7 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -943,7 +943,7 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
/* after sending a RTR frame MB is in RX mode */
|
/* after sending a RTR frame MB is in RX mode */
|
||||||
priv->write(FLEXCAN_MB_CODE_TX_INACTIVE,
|
priv->write(FLEXCAN_MB_CODE_TX_INACTIVE,
|
||||||
&priv->tx_mb->can_ctrl);
|
&priv->tx_mb->can_ctrl);
|
||||||
@ -50,7 +50,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
netif_wake_queue(dev);
|
netif_wake_queue(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1320,7 +1320,7 @@ static int flexcan_open(struct net_devic
|
@@ -1321,7 +1321,7 @@ static int flexcan_open(struct net_devic
|
||||||
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
|
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
|
||||||
|
|
||||||
priv->reg_imask1_default = 0;
|
priv->reg_imask1_default = 0;
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -897,13 +897,13 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -899,13 +899,13 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
|
|
||||||
/* reception interrupt */
|
/* reception interrupt */
|
||||||
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
||||||
|
@ -49,7 +49,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
struct clk *clk_ipg;
|
struct clk *clk_ipg;
|
||||||
struct clk *clk_per;
|
struct clk *clk_per;
|
||||||
@@ -878,9 +878,9 @@ static inline u64 flexcan_read_reg_iflag
|
@@ -880,9 +880,9 @@ static inline u64 flexcan_read_reg_iflag
|
||||||
struct flexcan_regs __iomem *regs = priv->regs;
|
struct flexcan_regs __iomem *regs = priv->regs;
|
||||||
u32 iflag1, iflag2;
|
u32 iflag1, iflag2;
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
return (u64)iflag2 << 32 | iflag1;
|
return (u64)iflag2 << 32 | iflag1;
|
||||||
}
|
}
|
||||||
@@ -1227,8 +1227,8 @@ static int flexcan_chip_start(struct net
|
@@ -1225,8 +1225,8 @@ static int flexcan_chip_start(struct net
|
||||||
/* enable interrupts atomically */
|
/* enable interrupts atomically */
|
||||||
disable_irq(dev->irq);
|
disable_irq(dev->irq);
|
||||||
priv->write(priv->reg_ctrl_default, ®s->ctrl);
|
priv->write(priv->reg_ctrl_default, ®s->ctrl);
|
||||||
@ -72,7 +72,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
enable_irq(dev->irq);
|
enable_irq(dev->irq);
|
||||||
|
|
||||||
/* print chip status */
|
/* print chip status */
|
||||||
@@ -1319,8 +1319,8 @@ static int flexcan_open(struct net_devic
|
@@ -1320,8 +1320,8 @@ static int flexcan_open(struct net_devic
|
||||||
priv->tx_mb_idx = priv->mb_count - 1;
|
priv->tx_mb_idx = priv->mb_count - 1;
|
||||||
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
|
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
priv->offload.mailbox_read = flexcan_mailbox_read;
|
priv->offload.mailbox_read = flexcan_mailbox_read;
|
||||||
|
|
||||||
@@ -1332,12 +1332,12 @@ static int flexcan_open(struct net_devic
|
@@ -1333,12 +1333,12 @@ static int flexcan_open(struct net_devic
|
||||||
|
|
||||||
imask = GENMASK_ULL(priv->offload.mb_last,
|
imask = GENMASK_ULL(priv->offload.mb_last,
|
||||||
priv->offload.mb_first);
|
priv->offload.mb_first);
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -878,8 +878,7 @@ static inline u64 flexcan_read_reg_iflag
|
@@ -880,8 +880,7 @@ static inline u64 flexcan_read_reg_iflag
|
||||||
struct flexcan_regs __iomem *regs = priv->regs;
|
struct flexcan_regs __iomem *regs = priv->regs;
|
||||||
u32 iflag1, iflag2;
|
u32 iflag1, iflag2;
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
iflag1 = priv->read(®s->iflag1) & priv->rx_mask1;
|
iflag1 = priv->read(®s->iflag1) & priv->rx_mask1;
|
||||||
|
|
||||||
return (u64)iflag2 << 32 | iflag1;
|
return (u64)iflag2 << 32 | iflag1;
|
||||||
@@ -1228,7 +1227,7 @@ static int flexcan_chip_start(struct net
|
@@ -1226,7 +1225,7 @@ static int flexcan_chip_start(struct net
|
||||||
disable_irq(dev->irq);
|
disable_irq(dev->irq);
|
||||||
priv->write(priv->reg_ctrl_default, ®s->ctrl);
|
priv->write(priv->reg_ctrl_default, ®s->ctrl);
|
||||||
priv->write(priv->rx_mask1, ®s->imask1);
|
priv->write(priv->rx_mask1, ®s->imask1);
|
||||||
@ -43,7 +43,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
enable_irq(dev->irq);
|
enable_irq(dev->irq);
|
||||||
|
|
||||||
/* print chip status */
|
/* print chip status */
|
||||||
@@ -1319,9 +1318,6 @@ static int flexcan_open(struct net_devic
|
@@ -1320,9 +1319,6 @@ static int flexcan_open(struct net_devic
|
||||||
priv->tx_mb_idx = priv->mb_count - 1;
|
priv->tx_mb_idx = priv->mb_count - 1;
|
||||||
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
|
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
priv->offload.mailbox_read = flexcan_mailbox_read;
|
priv->offload.mailbox_read = flexcan_mailbox_read;
|
||||||
|
|
||||||
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
||||||
@@ -1332,12 +1328,12 @@ static int flexcan_open(struct net_devic
|
@@ -1333,12 +1329,12 @@ static int flexcan_open(struct net_devic
|
||||||
|
|
||||||
imask = GENMASK_ULL(priv->offload.mb_last,
|
imask = GENMASK_ULL(priv->offload.mb_last,
|
||||||
priv->offload.mb_first);
|
priv->offload.mb_first);
|
||||||
|
@ -41,7 +41,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
struct clk *clk_ipg;
|
struct clk *clk_ipg;
|
||||||
struct clk *clk_per;
|
struct clk *clk_per;
|
||||||
@@ -872,16 +872,15 @@ static struct sk_buff *flexcan_mailbox_r
|
@@ -874,16 +874,15 @@ static struct sk_buff *flexcan_mailbox_r
|
||||||
return skb;
|
return skb;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static irqreturn_t flexcan_irq(int irq, void *dev_id)
|
static irqreturn_t flexcan_irq(int irq, void *dev_id)
|
||||||
@@ -1052,6 +1051,7 @@ static int flexcan_chip_start(struct net
|
@@ -1054,6 +1053,7 @@ static int flexcan_chip_start(struct net
|
||||||
struct flexcan_priv *priv = netdev_priv(dev);
|
struct flexcan_priv *priv = netdev_priv(dev);
|
||||||
struct flexcan_regs __iomem *regs = priv->regs;
|
struct flexcan_regs __iomem *regs = priv->regs;
|
||||||
u32 reg_mcr, reg_ctrl, reg_ctrl2, reg_mecr;
|
u32 reg_mcr, reg_ctrl, reg_ctrl2, reg_mecr;
|
||||||
@ -70,7 +70,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
int err, i;
|
int err, i;
|
||||||
struct flexcan_mb __iomem *mb;
|
struct flexcan_mb __iomem *mb;
|
||||||
|
|
||||||
@@ -1226,8 +1226,9 @@ static int flexcan_chip_start(struct net
|
@@ -1224,8 +1224,9 @@ static int flexcan_chip_start(struct net
|
||||||
/* enable interrupts atomically */
|
/* enable interrupts atomically */
|
||||||
disable_irq(dev->irq);
|
disable_irq(dev->irq);
|
||||||
priv->write(priv->reg_ctrl_default, ®s->ctrl);
|
priv->write(priv->reg_ctrl_default, ®s->ctrl);
|
||||||
@ -82,7 +82,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
enable_irq(dev->irq);
|
enable_irq(dev->irq);
|
||||||
|
|
||||||
/* print chip status */
|
/* print chip status */
|
||||||
@@ -1321,19 +1322,14 @@ static int flexcan_open(struct net_devic
|
@@ -1322,19 +1323,14 @@ static int flexcan_open(struct net_devic
|
||||||
priv->offload.mailbox_read = flexcan_mailbox_read;
|
priv->offload.mailbox_read = flexcan_mailbox_read;
|
||||||
|
|
||||||
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
||||||
|
@ -39,7 +39,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
u32 reg_ctrl_default;
|
u32 reg_ctrl_default;
|
||||||
|
|
||||||
struct clk *clk_ipg;
|
struct clk *clk_ipg;
|
||||||
@@ -890,7 +890,8 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -892,7 +892,8 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
struct flexcan_priv *priv = netdev_priv(dev);
|
struct flexcan_priv *priv = netdev_priv(dev);
|
||||||
struct flexcan_regs __iomem *regs = priv->regs;
|
struct flexcan_regs __iomem *regs = priv->regs;
|
||||||
irqreturn_t handled = IRQ_NONE;
|
irqreturn_t handled = IRQ_NONE;
|
||||||
@ -49,7 +49,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
enum can_state last_state = priv->can.state;
|
enum can_state last_state = priv->can.state;
|
||||||
|
|
||||||
/* reception interrupt */
|
/* reception interrupt */
|
||||||
@@ -924,10 +925,10 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -926,10 +927,10 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
u32 reg_ctrl = priv->read(&priv->tx_mb->can_ctrl);
|
u32 reg_ctrl = priv->read(&priv->tx_mb->can_ctrl);
|
||||||
|
|
||||||
handled = IRQ_HANDLED;
|
handled = IRQ_HANDLED;
|
||||||
@@ -939,7 +940,7 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -941,7 +942,7 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
/* after sending a RTR frame MB is in RX mode */
|
/* after sending a RTR frame MB is in RX mode */
|
||||||
priv->write(FLEXCAN_MB_CODE_TX_INACTIVE,
|
priv->write(FLEXCAN_MB_CODE_TX_INACTIVE,
|
||||||
&priv->tx_mb->can_ctrl);
|
&priv->tx_mb->can_ctrl);
|
||||||
@ -71,7 +71,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
netif_wake_queue(dev);
|
netif_wake_queue(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1226,7 +1227,7 @@ static int flexcan_chip_start(struct net
|
@@ -1224,7 +1225,7 @@ static int flexcan_chip_start(struct net
|
||||||
/* enable interrupts atomically */
|
/* enable interrupts atomically */
|
||||||
disable_irq(dev->irq);
|
disable_irq(dev->irq);
|
||||||
priv->write(priv->reg_ctrl_default, ®s->ctrl);
|
priv->write(priv->reg_ctrl_default, ®s->ctrl);
|
||||||
@ -80,7 +80,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
priv->write(upper_32_bits(reg_imask), ®s->imask2);
|
priv->write(upper_32_bits(reg_imask), ®s->imask2);
|
||||||
priv->write(lower_32_bits(reg_imask), ®s->imask1);
|
priv->write(lower_32_bits(reg_imask), ®s->imask1);
|
||||||
enable_irq(dev->irq);
|
enable_irq(dev->irq);
|
||||||
@@ -1318,6 +1319,7 @@ static int flexcan_open(struct net_devic
|
@@ -1319,6 +1320,7 @@ static int flexcan_open(struct net_devic
|
||||||
flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_OFF_FIFO);
|
flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_OFF_FIFO);
|
||||||
priv->tx_mb_idx = priv->mb_count - 1;
|
priv->tx_mb_idx = priv->mb_count - 1;
|
||||||
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
|
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -778,6 +778,23 @@ static void flexcan_irq_state(struct net
|
@@ -780,6 +780,23 @@ static void flexcan_irq_state(struct net
|
||||||
dev->stats.rx_fifo_errors++;
|
dev->stats.rx_fifo_errors++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
static inline struct flexcan_priv *rx_offload_to_priv(struct can_rx_offload *offload)
|
static inline struct flexcan_priv *rx_offload_to_priv(struct can_rx_offload *offload)
|
||||||
{
|
{
|
||||||
return container_of(offload, struct flexcan_priv, offload);
|
return container_of(offload, struct flexcan_priv, offload);
|
||||||
@@ -872,17 +889,6 @@ static struct sk_buff *flexcan_mailbox_r
|
@@ -874,17 +891,6 @@ static struct sk_buff *flexcan_mailbox_r
|
||||||
return skb;
|
return skb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -790,11 +790,24 @@ static inline u64 flexcan_read64_mask(st
|
@@ -792,11 +792,24 @@ static inline u64 flexcan_read64_mask(st
|
||||||
return reg & mask;
|
return reg & mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
static inline struct flexcan_priv *rx_offload_to_priv(struct can_rx_offload *offload)
|
static inline struct flexcan_priv *rx_offload_to_priv(struct can_rx_offload *offload)
|
||||||
{
|
{
|
||||||
return container_of(offload, struct flexcan_priv, offload);
|
return container_of(offload, struct flexcan_priv, offload);
|
||||||
@@ -931,7 +944,7 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -933,7 +946,7 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
/* transmission complete interrupt */
|
/* transmission complete interrupt */
|
||||||
if (reg_iflag_tx & priv->tx_mask) {
|
if (reg_iflag_tx & priv->tx_mask) {
|
||||||
@@ -946,7 +959,7 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -948,7 +961,7 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
/* after sending a RTR frame MB is in RX mode */
|
/* after sending a RTR frame MB is in RX mode */
|
||||||
priv->write(FLEXCAN_MB_CODE_TX_INACTIVE,
|
priv->write(FLEXCAN_MB_CODE_TX_INACTIVE,
|
||||||
&priv->tx_mb->can_ctrl);
|
&priv->tx_mb->can_ctrl);
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -883,15 +883,10 @@ static struct sk_buff *flexcan_mailbox_r
|
@@ -885,15 +885,10 @@ static struct sk_buff *flexcan_mailbox_r
|
||||||
}
|
}
|
||||||
|
|
||||||
mark_as_read:
|
mark_as_read:
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -627,10 +627,10 @@ static int flexcan_get_berr_counter(cons
|
@@ -629,10 +629,10 @@ static int flexcan_get_berr_counter(cons
|
||||||
static netdev_tx_t flexcan_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
static netdev_tx_t flexcan_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||||
{
|
{
|
||||||
const struct flexcan_priv *priv = netdev_priv(dev);
|
const struct flexcan_priv *priv = netdev_priv(dev);
|
||||||
@ -28,7 +28,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (can_dropped_invalid_skb(dev, skb))
|
if (can_dropped_invalid_skb(dev, skb))
|
||||||
@@ -638,18 +638,18 @@ static netdev_tx_t flexcan_start_xmit(st
|
@@ -640,18 +640,18 @@ static netdev_tx_t flexcan_start_xmit(st
|
||||||
|
|
||||||
netif_stop_queue(dev);
|
netif_stop_queue(dev);
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
priv->write(data, &priv->tx_mb->data[i / sizeof(u32)]);
|
priv->write(data, &priv->tx_mb->data[i / sizeof(u32)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -821,7 +821,7 @@ static struct sk_buff *flexcan_mailbox_r
|
@@ -823,7 +823,7 @@ static struct sk_buff *flexcan_mailbox_r
|
||||||
struct flexcan_regs __iomem *regs = priv->regs;
|
struct flexcan_regs __iomem *regs = priv->regs;
|
||||||
struct flexcan_mb __iomem *mb;
|
struct flexcan_mb __iomem *mb;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
@ -62,7 +62,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
u32 reg_ctrl, reg_id, reg_iflag1;
|
u32 reg_ctrl, reg_id, reg_iflag1;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -858,8 +858,8 @@ static struct sk_buff *flexcan_mailbox_r
|
@@ -860,8 +860,8 @@ static struct sk_buff *flexcan_mailbox_r
|
||||||
reg_ctrl = priv->read(&mb->can_ctrl);
|
reg_ctrl = priv->read(&mb->can_ctrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
skb = ERR_PTR(-ENOMEM);
|
skb = ERR_PTR(-ENOMEM);
|
||||||
goto mark_as_read;
|
goto mark_as_read;
|
||||||
}
|
}
|
||||||
@@ -869,17 +869,17 @@ static struct sk_buff *flexcan_mailbox_r
|
@@ -871,17 +871,17 @@ static struct sk_buff *flexcan_mailbox_r
|
||||||
|
|
||||||
reg_id = priv->read(&mb->can_id);
|
reg_id = priv->read(&mb->can_id);
|
||||||
if (reg_ctrl & FLEXCAN_MB_CNT_IDE)
|
if (reg_ctrl & FLEXCAN_MB_CNT_IDE)
|
||||||
|
@ -124,7 +124,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
/* FlexCAN module is essentially modelled as a little-endian IP in most
|
/* FlexCAN module is essentially modelled as a little-endian IP in most
|
||||||
* SoCs, i.e the registers as well as the message buffer areas are
|
* SoCs, i.e the registers as well as the message buffer areas are
|
||||||
* implemented in a little-endian fashion.
|
* implemented in a little-endian fashion.
|
||||||
@@ -630,7 +684,7 @@ static netdev_tx_t flexcan_start_xmit(st
|
@@ -632,7 +686,7 @@ static netdev_tx_t flexcan_start_xmit(st
|
||||||
struct canfd_frame *cfd = (struct canfd_frame *)skb->data;
|
struct canfd_frame *cfd = (struct canfd_frame *)skb->data;
|
||||||
u32 can_id;
|
u32 can_id;
|
||||||
u32 data;
|
u32 data;
|
||||||
@ -133,7 +133,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (can_dropped_invalid_skb(dev, skb))
|
if (can_dropped_invalid_skb(dev, skb))
|
||||||
@@ -648,6 +702,9 @@ static netdev_tx_t flexcan_start_xmit(st
|
@@ -650,6 +704,9 @@ static netdev_tx_t flexcan_start_xmit(st
|
||||||
if (cfd->can_id & CAN_RTR_FLAG)
|
if (cfd->can_id & CAN_RTR_FLAG)
|
||||||
ctrl |= FLEXCAN_MB_CNT_RTR;
|
ctrl |= FLEXCAN_MB_CNT_RTR;
|
||||||
|
|
||||||
@ -143,7 +143,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
for (i = 0; i < cfd->len; i += sizeof(u32)) {
|
for (i = 0; i < cfd->len; i += sizeof(u32)) {
|
||||||
data = be32_to_cpup((__be32 *)&cfd->data[i]);
|
data = be32_to_cpup((__be32 *)&cfd->data[i]);
|
||||||
priv->write(data, &priv->tx_mb->data[i / sizeof(u32)]);
|
priv->write(data, &priv->tx_mb->data[i / sizeof(u32)]);
|
||||||
@@ -858,7 +915,10 @@ static struct sk_buff *flexcan_mailbox_r
|
@@ -860,7 +917,10 @@ static struct sk_buff *flexcan_mailbox_r
|
||||||
reg_ctrl = priv->read(&mb->can_ctrl);
|
reg_ctrl = priv->read(&mb->can_ctrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
if (unlikely(!skb)) {
|
if (unlikely(!skb)) {
|
||||||
skb = ERR_PTR(-ENOMEM);
|
skb = ERR_PTR(-ENOMEM);
|
||||||
goto mark_as_read;
|
goto mark_as_read;
|
||||||
@@ -873,9 +933,17 @@ static struct sk_buff *flexcan_mailbox_r
|
@@ -875,9 +935,17 @@ static struct sk_buff *flexcan_mailbox_r
|
||||||
else
|
else
|
||||||
cfd->can_id = (reg_id >> 18) & CAN_SFF_MASK;
|
cfd->can_id = (reg_id >> 18) & CAN_SFF_MASK;
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
for (i = 0; i < cfd->len; i += sizeof(u32)) {
|
for (i = 0; i < cfd->len; i += sizeof(u32)) {
|
||||||
__be32 data = cpu_to_be32(priv->read(&mb->data[i / sizeof(u32)]));
|
__be32 data = cpu_to_be32(priv->read(&mb->data[i / sizeof(u32)]));
|
||||||
@@ -1020,27 +1088,14 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -1022,27 +1090,14 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
|
|
||||||
static void flexcan_set_bittiming(struct net_device *dev)
|
static void flexcan_set_bittiming(struct net_device *dev)
|
||||||
{
|
{
|
||||||
@ -209,7 +209,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
if (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK)
|
if (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK)
|
||||||
reg |= FLEXCAN_CTRL_LPB;
|
reg |= FLEXCAN_CTRL_LPB;
|
||||||
if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY)
|
if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY)
|
||||||
@@ -1051,9 +1106,102 @@ static void flexcan_set_bittiming(struct
|
@@ -1053,9 +1108,102 @@ static void flexcan_set_bittiming(struct
|
||||||
netdev_dbg(dev, "writing ctrl=0x%08x\n", reg);
|
netdev_dbg(dev, "writing ctrl=0x%08x\n", reg);
|
||||||
priv->write(reg, ®s->ctrl);
|
priv->write(reg, ®s->ctrl);
|
||||||
|
|
||||||
@ -315,7 +315,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* flexcan_chip_start
|
/* flexcan_chip_start
|
||||||
@@ -1065,7 +1213,7 @@ static int flexcan_chip_start(struct net
|
@@ -1067,7 +1215,7 @@ static int flexcan_chip_start(struct net
|
||||||
{
|
{
|
||||||
struct flexcan_priv *priv = netdev_priv(dev);
|
struct flexcan_priv *priv = netdev_priv(dev);
|
||||||
struct flexcan_regs __iomem *regs = priv->regs;
|
struct flexcan_regs __iomem *regs = priv->regs;
|
||||||
@ -324,7 +324,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
u64 reg_imask;
|
u64 reg_imask;
|
||||||
int err, i;
|
int err, i;
|
||||||
struct flexcan_mb __iomem *mb;
|
struct flexcan_mb __iomem *mb;
|
||||||
@@ -1162,6 +1310,26 @@ static int flexcan_chip_start(struct net
|
@@ -1164,6 +1312,26 @@ static int flexcan_chip_start(struct net
|
||||||
netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl);
|
netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl);
|
||||||
priv->write(reg_ctrl, ®s->ctrl);
|
priv->write(reg_ctrl, ®s->ctrl);
|
||||||
|
|
||||||
@ -351,7 +351,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
|
if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
|
||||||
reg_ctrl2 = priv->read(®s->ctrl2);
|
reg_ctrl2 = priv->read(®s->ctrl2);
|
||||||
reg_ctrl2 |= FLEXCAN_CTRL2_EACEN | FLEXCAN_CTRL2_RRS;
|
reg_ctrl2 |= FLEXCAN_CTRL2_EACEN | FLEXCAN_CTRL2_RRS;
|
||||||
@@ -1309,6 +1477,12 @@ static int flexcan_open(struct net_devic
|
@@ -1304,6 +1472,12 @@ static int flexcan_open(struct net_devic
|
||||||
struct flexcan_priv *priv = netdev_priv(dev);
|
struct flexcan_priv *priv = netdev_priv(dev);
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@ -362,11 +362,11 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
err = pm_runtime_get_sync(priv->dev);
|
err = pm_runtime_get_sync(priv->dev);
|
||||||
if (err < 0)
|
if (err < 0) {
|
||||||
return err;
|
pm_runtime_put_noidle(priv->dev);
|
||||||
@@ -1321,7 +1495,10 @@ static int flexcan_open(struct net_devic
|
@@ -1322,7 +1496,10 @@ static int flexcan_open(struct net_devic
|
||||||
if (err)
|
if (err)
|
||||||
goto out_close;
|
goto out_transceiver_disable;
|
||||||
|
|
||||||
- priv->mb_size = sizeof(struct flexcan_mb) + CAN_MAX_DLEN;
|
- priv->mb_size = sizeof(struct flexcan_mb) + CAN_MAX_DLEN;
|
||||||
+ if (priv->can.ctrlmode & CAN_CTRLMODE_FD)
|
+ if (priv->can.ctrlmode & CAN_CTRLMODE_FD)
|
||||||
@ -376,7 +376,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
priv->mb_count = (sizeof(priv->regs->mb[0]) / priv->mb_size) +
|
priv->mb_count = (sizeof(priv->regs->mb[0]) / priv->mb_size) +
|
||||||
(sizeof(priv->regs->mb[1]) / priv->mb_size);
|
(sizeof(priv->regs->mb[1]) / priv->mb_size);
|
||||||
|
|
||||||
@@ -1666,6 +1843,18 @@ static int flexcan_probe(struct platform
|
@@ -1670,6 +1847,18 @@ static int flexcan_probe(struct platform
|
||||||
priv->devtype_data = devtype_data;
|
priv->devtype_data = devtype_data;
|
||||||
priv->reg_xceiver = reg_xceiver;
|
priv->reg_xceiver = reg_xceiver;
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
--- a/drivers/net/can/flexcan.c
|
--- a/drivers/net/can/flexcan.c
|
||||||
+++ b/drivers/net/can/flexcan.c
|
+++ b/drivers/net/can/flexcan.c
|
||||||
@@ -702,9 +702,13 @@ static netdev_tx_t flexcan_start_xmit(st
|
@@ -704,9 +704,13 @@ static netdev_tx_t flexcan_start_xmit(st
|
||||||
if (cfd->can_id & CAN_RTR_FLAG)
|
if (cfd->can_id & CAN_RTR_FLAG)
|
||||||
ctrl |= FLEXCAN_MB_CNT_RTR;
|
ctrl |= FLEXCAN_MB_CNT_RTR;
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
for (i = 0; i < cfd->len; i += sizeof(u32)) {
|
for (i = 0; i < cfd->len; i += sizeof(u32)) {
|
||||||
data = be32_to_cpup((__be32 *)&cfd->data[i]);
|
data = be32_to_cpup((__be32 *)&cfd->data[i]);
|
||||||
priv->write(data, &priv->tx_mb->data[i / sizeof(u32)]);
|
priv->write(data, &priv->tx_mb->data[i / sizeof(u32)]);
|
||||||
@@ -935,6 +939,9 @@ static struct sk_buff *flexcan_mailbox_r
|
@@ -937,6 +941,9 @@ static struct sk_buff *flexcan_mailbox_r
|
||||||
|
|
||||||
if (reg_ctrl & FLEXCAN_MB_CNT_EDL) {
|
if (reg_ctrl & FLEXCAN_MB_CNT_EDL) {
|
||||||
cfd->len = can_dlc2len(get_canfd_dlc((reg_ctrl >> 16) & 0xf));
|
cfd->len = can_dlc2len(get_canfd_dlc((reg_ctrl >> 16) & 0xf));
|
||||||
|
@ -31,7 +31,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
/* FLEXCAN memory error control register (MECR) bits */
|
/* FLEXCAN memory error control register (MECR) bits */
|
||||||
#define FLEXCAN_MECR_ECRWRDIS BIT(31)
|
#define FLEXCAN_MECR_ECRWRDIS BIT(31)
|
||||||
@@ -1322,6 +1323,7 @@ static int flexcan_chip_start(struct net
|
@@ -1324,6 +1325,7 @@ static int flexcan_chip_start(struct net
|
||||||
reg_fdctrl = priv->read(®s->fdctrl) & ~FLEXCAN_FDCTRL_FDRATE;
|
reg_fdctrl = priv->read(®s->fdctrl) & ~FLEXCAN_FDCTRL_FDRATE;
|
||||||
reg_fdctrl &= ~(FLEXCAN_FDCTRL_MBDSR1(0x3) | FLEXCAN_FDCTRL_MBDSR0(0x3));
|
reg_fdctrl &= ~(FLEXCAN_FDCTRL_MBDSR1(0x3) | FLEXCAN_FDCTRL_MBDSR0(0x3));
|
||||||
reg_mcr = priv->read(®s->mcr) & ~FLEXCAN_MCR_FDEN;
|
reg_mcr = priv->read(®s->mcr) & ~FLEXCAN_MCR_FDEN;
|
||||||
@ -39,7 +39,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
/* support BRS when set CAN FD mode
|
/* support BRS when set CAN FD mode
|
||||||
* 64 bytes payload per MB and 7 MBs per RAM block by default
|
* 64 bytes payload per MB and 7 MBs per RAM block by default
|
||||||
@@ -1331,10 +1333,14 @@ static int flexcan_chip_start(struct net
|
@@ -1333,10 +1335,14 @@ static int flexcan_chip_start(struct net
|
||||||
reg_fdctrl |= FLEXCAN_FDCTRL_FDRATE;
|
reg_fdctrl |= FLEXCAN_FDCTRL_FDRATE;
|
||||||
reg_fdctrl |= FLEXCAN_FDCTRL_MBDSR1(0x3) | FLEXCAN_FDCTRL_MBDSR0(0x3);
|
reg_fdctrl |= FLEXCAN_FDCTRL_MBDSR1(0x3) | FLEXCAN_FDCTRL_MBDSR0(0x3);
|
||||||
reg_mcr |= FLEXCAN_MCR_FDEN;
|
reg_mcr |= FLEXCAN_MCR_FDEN;
|
||||||
@ -54,7 +54,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
|
if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
|
||||||
@@ -1852,7 +1858,7 @@ static int flexcan_probe(struct platform
|
@@ -1856,7 +1862,7 @@ static int flexcan_probe(struct platform
|
||||||
|
|
||||||
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_TIMESTAMP_SUPPORT_FD) {
|
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_TIMESTAMP_SUPPORT_FD) {
|
||||||
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
|
||||||
|
@ -31,7 +31,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
/* FLEXCAN FD Bit Timing register (FDCBT) bits */
|
/* FLEXCAN FD Bit Timing register (FDCBT) bits */
|
||||||
#define FLEXCAN_FDCBT_FPRESDIV(x) (((x) & 0x3ff) << 20)
|
#define FLEXCAN_FDCBT_FPRESDIV(x) (((x) & 0x3ff) << 20)
|
||||||
@@ -1100,7 +1103,7 @@ static void flexcan_set_bittiming(struct
|
@@ -1102,7 +1105,7 @@ static void flexcan_set_bittiming(struct
|
||||||
struct can_bittiming *bt = &priv->can.bittiming;
|
struct can_bittiming *bt = &priv->can.bittiming;
|
||||||
struct can_bittiming *dbt = &priv->can.data_bittiming;
|
struct can_bittiming *dbt = &priv->can.data_bittiming;
|
||||||
struct flexcan_regs __iomem *regs = priv->regs;
|
struct flexcan_regs __iomem *regs = priv->regs;
|
||||||
@ -40,7 +40,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
|
|
||||||
reg = priv->read(®s->ctrl);
|
reg = priv->read(®s->ctrl);
|
||||||
reg &= ~(FLEXCAN_CTRL_LPB | FLEXCAN_CTRL_SMP | FLEXCAN_CTRL_LOM);
|
reg &= ~(FLEXCAN_CTRL_LPB | FLEXCAN_CTRL_SMP | FLEXCAN_CTRL_LOM);
|
||||||
@@ -1172,6 +1175,19 @@ static void flexcan_set_bittiming(struct
|
@@ -1174,6 +1177,19 @@ static void flexcan_set_bittiming(struct
|
||||||
FLEXCAN_FDCBT_FPROPSEG(dbt->prop_seg);
|
FLEXCAN_FDCBT_FPROPSEG(dbt->prop_seg);
|
||||||
priv->write(reg_fdcbt, ®s->fdcbt);
|
priv->write(reg_fdcbt, ®s->fdcbt);
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
if (bt->brp != dbt->brp)
|
if (bt->brp != dbt->brp)
|
||||||
netdev_warn(dev, "Warning!! data brp = %d and brp = %d don't match.\n"
|
netdev_warn(dev, "Warning!! data brp = %d and brp = %d don't match.\n"
|
||||||
"flexcan may not work. consider using different bitrate or data bitrate\n",
|
"flexcan may not work. consider using different bitrate or data bitrate\n",
|
||||||
@@ -1321,6 +1337,7 @@ static int flexcan_chip_start(struct net
|
@@ -1323,6 +1339,7 @@ static int flexcan_chip_start(struct net
|
||||||
/* FDCTRL */
|
/* FDCTRL */
|
||||||
if (priv->can.ctrlmode_supported & CAN_CTRLMODE_FD) {
|
if (priv->can.ctrlmode_supported & CAN_CTRLMODE_FD) {
|
||||||
reg_fdctrl = priv->read(®s->fdctrl) & ~FLEXCAN_FDCTRL_FDRATE;
|
reg_fdctrl = priv->read(®s->fdctrl) & ~FLEXCAN_FDCTRL_FDRATE;
|
||||||
|
@ -52,7 +52,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
static const struct flexcan_devtype_data fsl_vf610_devtype_data = {
|
static const struct flexcan_devtype_data fsl_vf610_devtype_data = {
|
||||||
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
|
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
|
||||||
FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP |
|
FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP |
|
||||||
@@ -1759,6 +1766,7 @@ out_put_node:
|
@@ -1763,6 +1770,7 @@ out_put_node:
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct of_device_id flexcan_of_match[] = {
|
static const struct of_device_id flexcan_of_match[] = {
|
||||||
|
@ -35,7 +35,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
|
|||||||
static const struct flexcan_devtype_data fsl_ls1021a_r2_devtype_data = {
|
static const struct flexcan_devtype_data fsl_ls1021a_r2_devtype_data = {
|
||||||
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
|
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
|
||||||
FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
|
FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
|
||||||
@@ -1775,6 +1782,7 @@ static const struct of_device_id flexcan
|
@@ -1779,6 +1786,7 @@ static const struct of_device_id flexcan
|
||||||
{ .compatible = "fsl,p1010-flexcan", .data = &fsl_p1010_devtype_data, },
|
{ .compatible = "fsl,p1010-flexcan", .data = &fsl_p1010_devtype_data, },
|
||||||
{ .compatible = "fsl,vf610-flexcan", .data = &fsl_vf610_devtype_data, },
|
{ .compatible = "fsl,vf610-flexcan", .data = &fsl_vf610_devtype_data, },
|
||||||
{ .compatible = "fsl,ls1021ar2-flexcan", .data = &fsl_ls1021a_r2_devtype_data, },
|
{ .compatible = "fsl,ls1021ar2-flexcan", .data = &fsl_ls1021a_r2_devtype_data, },
|
||||||
|
@ -28,7 +28,7 @@ Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
|
|||||||
#include <linux/regmap.h>
|
#include <linux/regmap.h>
|
||||||
|
|
||||||
#define DRV_NAME "flexcan"
|
#define DRV_NAME "flexcan"
|
||||||
@@ -1955,9 +1956,7 @@ static int __maybe_unused flexcan_suspen
|
@@ -1959,9 +1960,7 @@ static int __maybe_unused flexcan_suspen
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
} else {
|
} else {
|
||||||
@ -39,7 +39,7 @@ Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
|
|||||||
}
|
}
|
||||||
netif_stop_queue(dev);
|
netif_stop_queue(dev);
|
||||||
netif_device_detach(dev);
|
netif_device_detach(dev);
|
||||||
@@ -1983,7 +1982,9 @@ static int __maybe_unused flexcan_resume
|
@@ -1987,7 +1986,9 @@ static int __maybe_unused flexcan_resume
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
} else {
|
} else {
|
||||||
|
@ -47,7 +47,7 @@ Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
|
|||||||
|
|
||||||
/* FLEXCAN Bit Timing register (CBT) bits */
|
/* FLEXCAN Bit Timing register (CBT) bits */
|
||||||
#define FLEXCAN_CBT_BTF BIT(31)
|
#define FLEXCAN_CBT_BTF BIT(31)
|
||||||
@@ -1054,6 +1053,12 @@ static irqreturn_t flexcan_irq(int irq,
|
@@ -1056,6 +1055,12 @@ static irqreturn_t flexcan_irq(int irq,
|
||||||
|
|
||||||
reg_esr = priv->read(®s->esr);
|
reg_esr = priv->read(®s->esr);
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
|
|||||||
|
|
||||||
|
|
||||||
reg_mcr = priv->read(®s->mcr);
|
reg_mcr = priv->read(®s->mcr);
|
||||||
@@ -1766,11 +1810,6 @@ static int flexcan_setup_stop_mode(struc
|
@@ -1770,11 +1814,6 @@ static int flexcan_setup_stop_mode(struc
|
||||||
gpr_np->full_name, priv->stm.req_gpr, priv->stm.req_bit,
|
gpr_np->full_name, priv->stm.req_gpr, priv->stm.req_bit,
|
||||||
priv->stm.ack_gpr, priv->stm.ack_bit);
|
priv->stm.ack_gpr, priv->stm.ack_bit);
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out_put_node:
|
out_put_node:
|
||||||
@@ -1778,6 +1817,30 @@ out_put_node:
|
@@ -1782,6 +1821,30 @@ out_put_node:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
|
|||||||
static const struct of_device_id flexcan_of_match[] = {
|
static const struct of_device_id flexcan_of_match[] = {
|
||||||
{ .compatible = "fsl,imx8qm-flexcan", .data = &fsl_imx8qm_devtype_data, },
|
{ .compatible = "fsl,imx8qm-flexcan", .data = &fsl_imx8qm_devtype_data, },
|
||||||
{ .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, },
|
{ .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, },
|
||||||
@@ -1920,9 +1983,19 @@ static int flexcan_probe(struct platform
|
@@ -1924,9 +1987,19 @@ static int flexcan_probe(struct platform
|
||||||
devm_can_led_init(dev);
|
devm_can_led_init(dev);
|
||||||
|
|
||||||
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE) {
|
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE) {
|
||||||
|
@ -36,7 +36,7 @@ Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
|
|||||||
static const struct can_bittiming_const flexcan_bittiming_const = {
|
static const struct can_bittiming_const flexcan_bittiming_const = {
|
||||||
.name = DRV_NAME,
|
.name = DRV_NAME,
|
||||||
.tseg1_min = 4,
|
.tseg1_min = 4,
|
||||||
@@ -1852,6 +1857,8 @@ static const struct of_device_id flexcan
|
@@ -1856,6 +1861,8 @@ static const struct of_device_id flexcan
|
||||||
{ .compatible = "fsl,vf610-flexcan", .data = &fsl_vf610_devtype_data, },
|
{ .compatible = "fsl,vf610-flexcan", .data = &fsl_vf610_devtype_data, },
|
||||||
{ .compatible = "fsl,ls1021ar2-flexcan", .data = &fsl_ls1021a_r2_devtype_data, },
|
{ .compatible = "fsl,ls1021ar2-flexcan", .data = &fsl_ls1021a_r2_devtype_data, },
|
||||||
{ .compatible = "fsl,lx2160ar1-flexcan", .data = &fsl_lx2160a_r1_devtype_data, },
|
{ .compatible = "fsl,lx2160ar1-flexcan", .data = &fsl_lx2160a_r1_devtype_data, },
|
||||||
|
@ -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
|
||||||
@@ -1517,7 +1517,9 @@ static void gswip_phylink_mac_link_down(
|
@@ -1518,7 +1518,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,
|
||||||
|
Loading…
Reference in New Issue
Block a user