mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
kernel: bump 5.4 to 5.4.185 (#9080)
* kernel: bump 5.4 to 5.4.184 * kernel: bump 5.4 to 5.4.185
This commit is contained in:
parent
62d205a746
commit
f684871135
@ -1,2 +1,2 @@
|
|||||||
LINUX_VERSION-5.4 = .175
|
LINUX_VERSION-5.4 = .185
|
||||||
LINUX_KERNEL_HASH-5.4.175 = ac901bdffb1488d6c730ca7ab42322163dd331b240e2f06ad83d199e251a4840
|
LINUX_KERNEL_HASH-5.4.185 = d15fe9da679bfb624f35f127a17559f6d037ad37a313cf5fd22ce155401f3787
|
||||||
|
@ -292,7 +292,7 @@
|
|||||||
#endif /* _LINUX_TYPES_H */
|
#endif /* _LINUX_TYPES_H */
|
||||||
--- a/net/ipv4/af_inet.c
|
--- a/net/ipv4/af_inet.c
|
||||||
+++ b/net/ipv4/af_inet.c
|
+++ b/net/ipv4/af_inet.c
|
||||||
@@ -1441,8 +1441,8 @@ struct sk_buff *inet_gro_receive(struct
|
@@ -1444,8 +1444,8 @@ struct sk_buff *inet_gro_receive(struct
|
||||||
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
|
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
|
|
||||||
@ -534,7 +534,7 @@
|
|||||||
goto next_ht;
|
goto next_ht;
|
||||||
--- a/net/ipv6/ip6_offload.c
|
--- a/net/ipv6/ip6_offload.c
|
||||||
+++ b/net/ipv6/ip6_offload.c
|
+++ b/net/ipv6/ip6_offload.c
|
||||||
@@ -240,7 +240,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
|
@@ -242,7 +242,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
iph2 = (struct ipv6hdr *)(p->data + off);
|
iph2 = (struct ipv6hdr *)(p->data + off);
|
||||||
|
@ -37,7 +37,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-bcm2835.c
|
--- a/drivers/i2c/busses/i2c-bcm2835.c
|
||||||
+++ b/drivers/i2c/busses/i2c-bcm2835.c
|
+++ b/drivers/i2c/busses/i2c-bcm2835.c
|
||||||
@@ -51,6 +51,18 @@
|
@@ -56,6 +56,18 @@
|
||||||
#define BCM2835_I2C_CDIV_MIN 0x0002
|
#define BCM2835_I2C_CDIV_MIN 0x0002
|
||||||
#define BCM2835_I2C_CDIV_MAX 0xFFFE
|
#define BCM2835_I2C_CDIV_MAX 0xFFFE
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
|||||||
struct bcm2835_i2c_dev {
|
struct bcm2835_i2c_dev {
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
void __iomem *regs;
|
void __iomem *regs;
|
||||||
@@ -63,8 +75,78 @@ struct bcm2835_i2c_dev {
|
@@ -68,8 +80,78 @@ struct bcm2835_i2c_dev {
|
||||||
u32 msg_err;
|
u32 msg_err;
|
||||||
u8 *msg_buf;
|
u8 *msg_buf;
|
||||||
size_t msg_buf_remaining;
|
size_t msg_buf_remaining;
|
||||||
@ -135,7 +135,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
|||||||
static inline void bcm2835_i2c_writel(struct bcm2835_i2c_dev *i2c_dev,
|
static inline void bcm2835_i2c_writel(struct bcm2835_i2c_dev *i2c_dev,
|
||||||
u32 reg, u32 val)
|
u32 reg, u32 val)
|
||||||
{
|
{
|
||||||
@@ -252,6 +334,7 @@ static void bcm2835_i2c_start_transfer(s
|
@@ -257,6 +339,7 @@ static void bcm2835_i2c_start_transfer(s
|
||||||
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_A, msg->addr);
|
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_A, msg->addr);
|
||||||
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DLEN, msg->len);
|
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DLEN, msg->len);
|
||||||
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, c);
|
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, c);
|
||||||
@ -143,7 +143,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void bcm2835_i2c_finish_transfer(struct bcm2835_i2c_dev *i2c_dev)
|
static void bcm2835_i2c_finish_transfer(struct bcm2835_i2c_dev *i2c_dev)
|
||||||
@@ -278,6 +361,7 @@ static irqreturn_t bcm2835_i2c_isr(int t
|
@@ -283,6 +366,7 @@ static irqreturn_t bcm2835_i2c_isr(int t
|
||||||
u32 val, err;
|
u32 val, err;
|
||||||
|
|
||||||
val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S);
|
val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S);
|
||||||
@ -151,7 +151,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
|||||||
|
|
||||||
err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR);
|
err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR);
|
||||||
if (err) {
|
if (err) {
|
||||||
@@ -344,6 +428,13 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
@@ -349,6 +433,13 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||||
unsigned long time_left;
|
unsigned long time_left;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
|||||||
for (i = 0; i < (num - 1); i++)
|
for (i = 0; i < (num - 1); i++)
|
||||||
if (msgs[i].flags & I2C_M_RD) {
|
if (msgs[i].flags & I2C_M_RD) {
|
||||||
dev_warn_once(i2c_dev->dev,
|
dev_warn_once(i2c_dev->dev,
|
||||||
@@ -362,6 +453,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
@@ -367,6 +458,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||||
|
|
||||||
bcm2835_i2c_finish_transfer(i2c_dev);
|
bcm2835_i2c_finish_transfer(i2c_dev);
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
|||||||
if (!time_left) {
|
if (!time_left) {
|
||||||
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C,
|
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C,
|
||||||
BCM2835_I2C_C_CLEAR);
|
BCM2835_I2C_C_CLEAR);
|
||||||
@@ -372,7 +467,9 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
@@ -377,7 +472,9 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||||
if (!i2c_dev->msg_err)
|
if (!i2c_dev->msg_err)
|
||||||
return num;
|
return num;
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ Signed-off-by: Noralf Tronnes <notro@tronnes.org>
|
|||||||
|
|
||||||
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
|
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
|
||||||
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
|
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
|
||||||
@@ -350,7 +350,7 @@ static const struct gpio_chip bcm2835_gp
|
@@ -359,7 +359,7 @@ static const struct gpio_chip bcm2835_gp
|
||||||
.get = bcm2835_gpio_get,
|
.get = bcm2835_gpio_get,
|
||||||
.set = bcm2835_gpio_set,
|
.set = bcm2835_gpio_set,
|
||||||
.set_config = gpiochip_generic_config,
|
.set_config = gpiochip_generic_config,
|
||||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/kernel/cgroup/cgroup.c
|
--- a/kernel/cgroup/cgroup.c
|
||||||
+++ b/kernel/cgroup/cgroup.c
|
+++ b/kernel/cgroup/cgroup.c
|
||||||
@@ -5721,6 +5721,9 @@ int __init cgroup_init_early(void)
|
@@ -5749,6 +5749,9 @@ int __init cgroup_init_early(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
/**
|
/**
|
||||||
* cgroup_init - cgroup initialization
|
* cgroup_init - cgroup initialization
|
||||||
*
|
*
|
||||||
@@ -5759,6 +5762,12 @@ int __init cgroup_init(void)
|
@@ -5787,6 +5790,12 @@ int __init cgroup_init(void)
|
||||||
|
|
||||||
mutex_unlock(&cgroup_mutex);
|
mutex_unlock(&cgroup_mutex);
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
for_each_subsys(ss, ssid) {
|
for_each_subsys(ss, ssid) {
|
||||||
if (ss->early_init) {
|
if (ss->early_init) {
|
||||||
struct cgroup_subsys_state *css =
|
struct cgroup_subsys_state *css =
|
||||||
@@ -6168,6 +6177,10 @@ static int __init cgroup_disable(char *s
|
@@ -6196,6 +6205,10 @@ static int __init cgroup_disable(char *s
|
||||||
strcmp(token, ss->legacy_name))
|
strcmp(token, ss->legacy_name))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||||
pr_info("Disabling %s control group subsystem\n",
|
pr_info("Disabling %s control group subsystem\n",
|
||||||
ss->name);
|
ss->name);
|
||||||
@@ -6177,6 +6190,31 @@ static int __init cgroup_disable(char *s
|
@@ -6205,6 +6218,31 @@ static int __init cgroup_disable(char *s
|
||||||
}
|
}
|
||||||
__setup("cgroup_disable=", cgroup_disable);
|
__setup("cgroup_disable=", cgroup_disable);
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/usb/core/hcd.c
|
--- a/drivers/usb/core/hcd.c
|
||||||
+++ b/drivers/usb/core/hcd.c
|
+++ b/drivers/usb/core/hcd.c
|
||||||
@@ -1941,6 +1941,16 @@ reset:
|
@@ -1962,6 +1962,16 @@ reset:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci.c
|
--- a/drivers/usb/host/xhci.c
|
||||||
+++ b/drivers/usb/host/xhci.c
|
+++ b/drivers/usb/host/xhci.c
|
||||||
@@ -1469,6 +1469,103 @@ command_cleanup:
|
@@ -1475,6 +1475,103 @@ command_cleanup:
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
* non-error returns are a promise to giveback() the urb later
|
* non-error returns are a promise to giveback() the urb later
|
||||||
* we drop ownership so next owner (or urb unlink) can get it
|
* we drop ownership so next owner (or urb unlink) can get it
|
||||||
*/
|
*/
|
||||||
@@ -5358,6 +5455,7 @@ static const struct hc_driver xhci_hc_dr
|
@@ -5376,6 +5473,7 @@ static const struct hc_driver xhci_hc_dr
|
||||||
.endpoint_reset = xhci_endpoint_reset,
|
.endpoint_reset = xhci_endpoint_reset,
|
||||||
.check_bandwidth = xhci_check_bandwidth,
|
.check_bandwidth = xhci_check_bandwidth,
|
||||||
.reset_bandwidth = xhci_reset_bandwidth,
|
.reset_bandwidth = xhci_reset_bandwidth,
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-bcm2835.c
|
--- a/drivers/i2c/busses/i2c-bcm2835.c
|
||||||
+++ b/drivers/i2c/busses/i2c-bcm2835.c
|
+++ b/drivers/i2c/busses/i2c-bcm2835.c
|
||||||
@@ -188,6 +188,7 @@ static int clk_bcm2835_i2c_set_rate(stru
|
@@ -193,6 +193,7 @@ static int clk_bcm2835_i2c_set_rate(stru
|
||||||
{
|
{
|
||||||
struct clk_bcm2835_i2c *div = to_clk_bcm2835_i2c(hw);
|
struct clk_bcm2835_i2c *div = to_clk_bcm2835_i2c(hw);
|
||||||
u32 redl, fedl;
|
u32 redl, fedl;
|
||||||
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
u32 divider = clk_bcm2835_i2c_calc_divider(rate, parent_rate);
|
u32 divider = clk_bcm2835_i2c_calc_divider(rate, parent_rate);
|
||||||
|
|
||||||
if (divider == -EINVAL)
|
if (divider == -EINVAL)
|
||||||
@@ -211,6 +212,17 @@ static int clk_bcm2835_i2c_set_rate(stru
|
@@ -216,6 +217,17 @@ static int clk_bcm2835_i2c_set_rate(stru
|
||||||
bcm2835_i2c_writel(div->i2c_dev, BCM2835_I2C_DEL,
|
bcm2835_i2c_writel(div->i2c_dev, BCM2835_I2C_DEL,
|
||||||
(fedl << BCM2835_I2C_FEDL_SHIFT) |
|
(fedl << BCM2835_I2C_FEDL_SHIFT) |
|
||||||
(redl << BCM2835_I2C_REDL_SHIFT));
|
(redl << BCM2835_I2C_REDL_SHIFT));
|
||||||
|
@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||||
|
|
||||||
@@ -1261,6 +1264,9 @@
|
@@ -1263,6 +1266,9 @@
|
||||||
#define USB_VENDOR_ID_XAT 0x2505
|
#define USB_VENDOR_ID_XAT 0x2505
|
||||||
#define USB_DEVICE_ID_XAT_CSR 0x0220
|
#define USB_DEVICE_ID_XAT_CSR 0x0220
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||||
@@ -192,6 +193,7 @@ static const struct hid_device_id hid_qu
|
@@ -194,6 +195,7 @@ static const struct hid_device_id hid_qu
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
|
||||||
|
@ -14,12 +14,12 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
|
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
|
||||||
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
|
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
|
||||||
@@ -1135,7 +1135,7 @@ static int bcm2835_pinctrl_probe(struct
|
@@ -1315,7 +1315,7 @@ static int bcm2835_pinctrl_probe(struct
|
||||||
raw_spin_lock_init(&pc->irq_lock[i]);
|
girq->default_type = IRQ_TYPE_NONE;
|
||||||
}
|
girq->handler = handle_level_irq;
|
||||||
|
|
||||||
- err = gpiochip_add_data(&pc->gpio_chip, pc);
|
- err = gpiochip_add_data(&pc->gpio_chip, pc);
|
||||||
+ err = devm_gpiochip_add_data(dev, &pc->gpio_chip, pc);
|
+ err = devm_gpiochip_add_data(dev, &pc->gpio_chip, pc);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(dev, "could not add GPIO chip\n");
|
dev_err(dev, "could not add GPIO chip\n");
|
||||||
return err;
|
goto out_remove;
|
||||||
|
@ -190,7 +190,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
{}, \
|
{}, \
|
||||||
}; \
|
}; \
|
||||||
\
|
\
|
||||||
@@ -344,6 +355,11 @@ static void __exit fbtft_driver_module_e
|
@@ -347,6 +358,11 @@ static void __exit fbtft_driver_module_e
|
||||||
module_init(fbtft_driver_module_init); \
|
module_init(fbtft_driver_module_init); \
|
||||||
module_exit(fbtft_driver_module_exit);
|
module_exit(fbtft_driver_module_exit);
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/net/bridge/br_device.c
|
--- a/net/bridge/br_device.c
|
||||||
+++ b/net/bridge/br_device.c
|
+++ b/net/bridge/br_device.c
|
||||||
@@ -36,6 +36,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff *
|
@@ -35,6 +35,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff *
|
||||||
struct ethhdr *eth;
|
const unsigned char *dest;
|
||||||
u16 vid = 0;
|
u16 vid = 0;
|
||||||
|
|
||||||
+ memset(skb->cb, 0, sizeof(struct br_input_skb_cb));
|
+ memset(skb->cb, 0, sizeof(struct br_input_skb_cb));
|
||||||
|
@ -66,7 +66,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -5475,8 +5475,7 @@ static inline void skb_gro_reset_offset(
|
@@ -5435,8 +5435,7 @@ static inline void skb_gro_reset_offset(
|
||||||
NAPI_GRO_CB(skb)->frag0 = NULL;
|
NAPI_GRO_CB(skb)->frag0 = NULL;
|
||||||
NAPI_GRO_CB(skb)->frag0_len = 0;
|
NAPI_GRO_CB(skb)->frag0_len = 0;
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|||||||
|
|
||||||
--- a/drivers/net/phy/phylink.c
|
--- a/drivers/net/phy/phylink.c
|
||||||
+++ b/drivers/net/phy/phylink.c
|
+++ b/drivers/net/phy/phylink.c
|
||||||
@@ -565,26 +565,17 @@ static const struct sfp_upstream_ops sfp
|
@@ -565,31 +565,17 @@ static const struct sfp_upstream_ops sfp
|
||||||
static int phylink_register_sfp(struct phylink *pl,
|
static int phylink_register_sfp(struct phylink *pl,
|
||||||
struct fwnode_handle *fwnode)
|
struct fwnode_handle *fwnode)
|
||||||
{
|
{
|
||||||
@ -42,6 +42,11 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- if (!fwnode_device_is_available(ref.fwnode)) {
|
||||||
|
- fwnode_handle_put(ref.fwnode);
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
- pl->sfp_bus = sfp_register_upstream(ref.fwnode, pl, &sfp_phylink_ops);
|
- pl->sfp_bus = sfp_register_upstream(ref.fwnode, pl, &sfp_phylink_ops);
|
||||||
- if (!pl->sfp_bus)
|
- if (!pl->sfp_bus)
|
||||||
- return -ENOMEM;
|
- return -ENOMEM;
|
||||||
|
@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -2198,6 +2198,13 @@ config TRIM_UNUSED_KSYMS
|
@@ -2208,6 +2208,13 @@ config TRIM_UNUSED_KSYMS
|
||||||
|
|
||||||
If unsure, or if you need to build out-of-tree modules, say N.
|
If unsure, or if you need to build out-of-tree modules, say N.
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|||||||
|
|
||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -111,6 +111,7 @@ config ARM
|
@@ -112,6 +112,7 @@ config ARM
|
||||||
select HAVE_UID16
|
select HAVE_UID16
|
||||||
select HAVE_VIRT_CPU_ACCOUNTING_GEN
|
select HAVE_VIRT_CPU_ACCOUNTING_GEN
|
||||||
select IRQ_FORCED_THREADING
|
select IRQ_FORCED_THREADING
|
||||||
@ -31,7 +31,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|||||||
select OF_EARLY_FLATTREE if OF
|
select OF_EARLY_FLATTREE if OF
|
||||||
--- a/arch/arm/boot/compressed/Makefile
|
--- a/arch/arm/boot/compressed/Makefile
|
||||||
+++ b/arch/arm/boot/compressed/Makefile
|
+++ b/arch/arm/boot/compressed/Makefile
|
||||||
@@ -106,6 +106,7 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
|
@@ -108,6 +108,7 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
|
||||||
ORIG_CFLAGS := $(KBUILD_CFLAGS)
|
ORIG_CFLAGS := $(KBUILD_CFLAGS)
|
||||||
KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
|
KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
|
||||||
endif
|
endif
|
||||||
@ -72,7 +72,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|||||||
|
|
||||||
--- a/arch/arm/kernel/vmlinux.lds.h
|
--- a/arch/arm/kernel/vmlinux.lds.h
|
||||||
+++ b/arch/arm/kernel/vmlinux.lds.h
|
+++ b/arch/arm/kernel/vmlinux.lds.h
|
||||||
@@ -22,13 +22,13 @@
|
@@ -22,7 +22,7 @@
|
||||||
#define ARM_MMU_DISCARD(x)
|
#define ARM_MMU_DISCARD(x)
|
||||||
#else
|
#else
|
||||||
#define ARM_MMU_KEEP(x)
|
#define ARM_MMU_KEEP(x)
|
||||||
@ -80,6 +80,8 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|||||||
+#define ARM_MMU_DISCARD(x) KEEP(x)
|
+#define ARM_MMU_DISCARD(x) KEEP(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -41,7 +41,7 @@
|
||||||
#define PROC_INFO \
|
#define PROC_INFO \
|
||||||
. = ALIGN(4); \
|
. = ALIGN(4); \
|
||||||
__proc_info_begin = .; \
|
__proc_info_begin = .; \
|
||||||
@ -88,7 +90,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|||||||
__proc_info_end = .;
|
__proc_info_end = .;
|
||||||
|
|
||||||
#define HYPERVISOR_TEXT \
|
#define HYPERVISOR_TEXT \
|
||||||
@@ -39,11 +39,11 @@
|
@@ -52,11 +52,11 @@
|
||||||
#define IDMAP_TEXT \
|
#define IDMAP_TEXT \
|
||||||
ALIGN_FUNCTION(); \
|
ALIGN_FUNCTION(); \
|
||||||
__idmap_text_start = .; \
|
__idmap_text_start = .; \
|
||||||
@ -102,7 +104,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|||||||
__hyp_idmap_text_end = .;
|
__hyp_idmap_text_end = .;
|
||||||
|
|
||||||
#define ARM_DISCARD \
|
#define ARM_DISCARD \
|
||||||
@@ -86,12 +86,12 @@
|
@@ -99,12 +99,12 @@
|
||||||
. = ALIGN(8); \
|
. = ALIGN(8); \
|
||||||
.ARM.unwind_idx : { \
|
.ARM.unwind_idx : { \
|
||||||
__start_unwind_idx = .; \
|
__start_unwind_idx = .; \
|
||||||
@ -117,20 +119,29 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|||||||
__stop_unwind_tab = .; \
|
__stop_unwind_tab = .; \
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,14 +102,14 @@
|
@@ -116,13 +116,13 @@
|
||||||
#define ARM_VECTORS \
|
__vectors_lma = .; \
|
||||||
__vectors_start = .; \
|
OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \
|
||||||
.vectors 0xffff0000 : AT(__vectors_start) { \
|
.vectors { \
|
||||||
- *(.vectors) \
|
- *(.vectors) \
|
||||||
+ KEEP(*(.vectors)) \
|
+ KEEP(*(.vectors)) \
|
||||||
|
} \
|
||||||
|
.vectors.bhb.loop8 { \
|
||||||
|
- *(.vectors.bhb.loop8) \
|
||||||
|
+ KEEP(*(.vectors.bhb.loop8)) \
|
||||||
|
} \
|
||||||
|
.vectors.bhb.bpiall { \
|
||||||
|
- *(.vectors.bhb.bpiall) \
|
||||||
|
+ KEEP(*(.vectors.bhb.bpiall)) \
|
||||||
|
} \
|
||||||
} \
|
} \
|
||||||
. = __vectors_start + SIZEOF(.vectors); \
|
ARM_LMA(__vectors, .vectors); \
|
||||||
__vectors_end = .; \
|
@@ -134,7 +134,7 @@
|
||||||
\
|
\
|
||||||
__stubs_start = .; \
|
__stubs_lma = .; \
|
||||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) { \
|
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) { \
|
||||||
- *(.stubs) \
|
- *(.stubs) \
|
||||||
+ KEEP(*(.stubs)) \
|
+ KEEP(*(.stubs)) \
|
||||||
} \
|
} \
|
||||||
. = __stubs_start + SIZEOF(.stubs); \
|
ARM_LMA(__stubs, .stubs); \
|
||||||
__stubs_end = .; \
|
. = __stubs_lma + SIZEOF(.stubs); \
|
||||||
|
@ -286,7 +286,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
goto err;
|
goto err;
|
||||||
--- a/net/core/net-procfs.c
|
--- a/net/core/net-procfs.c
|
||||||
+++ b/net/core/net-procfs.c
|
+++ b/net/core/net-procfs.c
|
||||||
@@ -279,10 +279,12 @@ static int __net_init dev_proc_net_init(
|
@@ -309,10 +309,12 @@ static int __net_init dev_proc_net_init(
|
||||||
if (!proc_create_net("dev", 0444, net->proc_net, &dev_seq_ops,
|
if (!proc_create_net("dev", 0444, net->proc_net, &dev_seq_ops,
|
||||||
sizeof(struct seq_net_private)))
|
sizeof(struct seq_net_private)))
|
||||||
goto out;
|
goto out;
|
||||||
@ -301,7 +301,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
sizeof(struct seq_net_private)))
|
sizeof(struct seq_net_private)))
|
||||||
goto out_softnet;
|
goto out_softnet;
|
||||||
|
|
||||||
@@ -292,9 +294,11 @@ static int __net_init dev_proc_net_init(
|
@@ -322,9 +324,11 @@ static int __net_init dev_proc_net_init(
|
||||||
out:
|
out:
|
||||||
return rc;
|
return rc;
|
||||||
out_ptype:
|
out_ptype:
|
||||||
@ -315,7 +315,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
out_dev:
|
out_dev:
|
||||||
remove_proc_entry("dev", net->proc_net);
|
remove_proc_entry("dev", net->proc_net);
|
||||||
goto out;
|
goto out;
|
||||||
@@ -304,8 +308,10 @@ static void __net_exit dev_proc_net_exit
|
@@ -334,8 +338,10 @@ static void __net_exit dev_proc_net_exit
|
||||||
{
|
{
|
||||||
wext_proc_exit(net);
|
wext_proc_exit(net);
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
|||||||
|
|
||||||
--- a/arch/mips/Kconfig
|
--- a/arch/mips/Kconfig
|
||||||
+++ b/arch/mips/Kconfig
|
+++ b/arch/mips/Kconfig
|
||||||
@@ -2043,7 +2043,8 @@ config CPU_MIPS32
|
@@ -2041,7 +2041,8 @@ config CPU_MIPS32
|
||||||
|
|
||||||
config CPU_MIPS64
|
config CPU_MIPS64
|
||||||
bool
|
bool
|
||||||
|
@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net>
|
|||||||
---
|
---
|
||||||
--- a/arch/mips/Kconfig
|
--- a/arch/mips/Kconfig
|
||||||
+++ b/arch/mips/Kconfig
|
+++ b/arch/mips/Kconfig
|
||||||
@@ -1074,9 +1074,6 @@ config FW_ARC
|
@@ -1072,9 +1072,6 @@ config FW_ARC
|
||||||
config ARCH_MAY_HAVE_PC_FDC
|
config ARCH_MAY_HAVE_PC_FDC
|
||||||
bool
|
bool
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net>
|
|||||||
config CEVT_BCM1480
|
config CEVT_BCM1480
|
||||||
bool
|
bool
|
||||||
|
|
||||||
@@ -3050,6 +3047,18 @@ choice
|
@@ -3048,6 +3045,18 @@ choice
|
||||||
bool "Extend builtin kernel arguments with bootloader arguments"
|
bool "Extend builtin kernel arguments with bootloader arguments"
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
#define PACKET_FANOUT_LB 1
|
#define PACKET_FANOUT_LB 1
|
||||||
--- a/net/packet/af_packet.c
|
--- a/net/packet/af_packet.c
|
||||||
+++ b/net/packet/af_packet.c
|
+++ b/net/packet/af_packet.c
|
||||||
@@ -1797,6 +1797,7 @@ static int packet_rcv_spkt(struct sk_buf
|
@@ -1801,6 +1801,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||||
{
|
{
|
||||||
struct sock *sk;
|
struct sock *sk;
|
||||||
struct sockaddr_pkt *spkt;
|
struct sockaddr_pkt *spkt;
|
||||||
@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* When we registered the protocol we saved the socket in the data
|
* When we registered the protocol we saved the socket in the data
|
||||||
@@ -1804,6 +1805,7 @@ static int packet_rcv_spkt(struct sk_buf
|
@@ -1808,6 +1809,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sk = pt->af_packet_priv;
|
sk = pt->af_packet_priv;
|
||||||
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Yank back the headers [hope the device set this
|
* Yank back the headers [hope the device set this
|
||||||
@@ -1816,7 +1818,7 @@ static int packet_rcv_spkt(struct sk_buf
|
@@ -1820,7 +1822,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||||
* so that this procedure is noop.
|
* so that this procedure is noop.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
@@ -2054,12 +2056,12 @@ static int packet_rcv(struct sk_buff *sk
|
@@ -2058,12 +2060,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||||
unsigned int snaplen, res;
|
unsigned int snaplen, res;
|
||||||
bool is_drop_n_account = false;
|
bool is_drop_n_account = false;
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
goto drop;
|
goto drop;
|
||||||
|
|
||||||
@@ -2185,12 +2187,12 @@ static int tpacket_rcv(struct sk_buff *s
|
@@ -2189,12 +2191,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
|
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
|
||||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
|
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
goto drop;
|
goto drop;
|
||||||
|
|
||||||
@@ -3289,6 +3291,7 @@ static int packet_create(struct net *net
|
@@ -3293,6 +3295,7 @@ static int packet_create(struct net *net
|
||||||
mutex_init(&po->pg_vec_lock);
|
mutex_init(&po->pg_vec_lock);
|
||||||
po->rollover = NULL;
|
po->rollover = NULL;
|
||||||
po->prot_hook.func = packet_rcv;
|
po->prot_hook.func = packet_rcv;
|
||||||
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
if (sock->type == SOCK_PACKET)
|
if (sock->type == SOCK_PACKET)
|
||||||
po->prot_hook.func = packet_rcv_spkt;
|
po->prot_hook.func = packet_rcv_spkt;
|
||||||
@@ -3924,6 +3927,16 @@ packet_setsockopt(struct socket *sock, i
|
@@ -3930,6 +3933,16 @@ packet_setsockopt(struct socket *sock, i
|
||||||
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
default:
|
default:
|
||||||
return -ENOPROTOOPT;
|
return -ENOPROTOOPT;
|
||||||
}
|
}
|
||||||
@@ -3980,6 +3993,13 @@ static int packet_getsockopt(struct sock
|
@@ -3986,6 +3999,13 @@ static int packet_getsockopt(struct sock
|
||||||
case PACKET_VNET_HDR:
|
case PACKET_VNET_HDR:
|
||||||
val = po->has_vnet_hdr;
|
val = po->has_vnet_hdr;
|
||||||
break;
|
break;
|
||||||
|
@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
+MODULE_ALIAS("nf-flow-table-hw");
|
+MODULE_ALIAS("nf-flow-table-hw");
|
||||||
--- a/net/netfilter/nf_tables_api.c
|
--- a/net/netfilter/nf_tables_api.c
|
||||||
+++ b/net/netfilter/nf_tables_api.c
|
+++ b/net/netfilter/nf_tables_api.c
|
||||||
@@ -5743,6 +5743,13 @@ static int nf_tables_flowtable_parse_hoo
|
@@ -5748,6 +5748,13 @@ static int nf_tables_flowtable_parse_hoo
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
|
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
|
||||||
if (!ops)
|
if (!ops)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -5873,10 +5880,19 @@ static int nf_tables_newflowtable(struct
|
@@ -5878,10 +5885,19 @@ static int nf_tables_newflowtable(struct
|
||||||
}
|
}
|
||||||
|
|
||||||
flowtable->data.type = type;
|
flowtable->data.type = type;
|
||||||
@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
|
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
|
||||||
flowtable);
|
flowtable);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
@@ -6002,7 +6018,8 @@ static int nf_tables_fill_flowtable_info
|
@@ -6007,7 +6023,8 @@ static int nf_tables_fill_flowtable_info
|
||||||
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
|
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
|
||||||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
|
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
|
||||||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
|
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
|
||||||
|
@ -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"
|
||||||
@@ -384,6 +388,28 @@ static const struct ethtool_ops br_ethto
|
@@ -382,6 +386,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,
|
||||||
@@ -412,6 +438,9 @@ static const struct net_device_ops br_ne
|
@@ -410,6 +436,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,
|
||||||
|
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/include/linux/netdevice.h
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/include/linux/netdevice.h
|
+++ b/include/linux/netdevice.h
|
||||||
@@ -1927,6 +1927,8 @@ struct net_device {
|
@@ -1931,6 +1931,8 @@ struct net_device {
|
||||||
struct netdev_hw_addr_list mc;
|
struct netdev_hw_addr_list mc;
|
||||||
struct netdev_hw_addr_list dev_addrs;
|
struct netdev_hw_addr_list dev_addrs;
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
__u16 tc_index; /* traffic control index */
|
__u16 tc_index; /* traffic control index */
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -5541,6 +5541,9 @@ static enum gro_result dev_gro_receive(s
|
@@ -5501,6 +5501,9 @@ static enum gro_result dev_gro_receive(s
|
||||||
int same_flow;
|
int same_flow;
|
||||||
int grow;
|
int grow;
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (netif_elide_gro(skb->dev))
|
if (netif_elide_gro(skb->dev))
|
||||||
goto normal;
|
goto normal;
|
||||||
|
|
||||||
@@ -7484,6 +7487,48 @@ static void __netdev_adjacent_dev_unlink
|
@@ -7303,6 +7306,48 @@ static void __netdev_adjacent_dev_unlink
|
||||||
&upper_dev->adj_list.lower);
|
&upper_dev->adj_list.lower);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
static int __netdev_upper_dev_link(struct net_device *dev,
|
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||||
struct net_device *upper_dev, bool master,
|
struct net_device *upper_dev, bool master,
|
||||||
void *upper_priv, void *upper_info,
|
void *upper_priv, void *upper_info,
|
||||||
@@ -7534,6 +7579,7 @@ static int __netdev_upper_dev_link(struc
|
@@ -7353,6 +7398,7 @@ static int __netdev_upper_dev_link(struc
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
ret = notifier_to_errno(ret);
|
ret = notifier_to_errno(ret);
|
||||||
@@ -7627,6 +7673,7 @@ void netdev_upper_dev_unlink(struct net_
|
@@ -7446,6 +7492,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||||
|
|
||||||
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
|
|
||||||
@@ -8357,6 +8404,7 @@ int dev_set_mac_address(struct net_devic
|
@@ -8176,6 +8223,7 @@ int dev_set_mac_address(struct net_devic
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
dev->addr_assign_type = NET_ADDR_SET;
|
dev->addr_assign_type = NET_ADDR_SET;
|
||||||
|
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
static int netif_rx_internal(struct sk_buff *skb);
|
static int netif_rx_internal(struct sk_buff *skb);
|
||||||
static int call_netdevice_notifiers_info(unsigned long val,
|
static int call_netdevice_notifiers_info(unsigned long val,
|
||||||
@@ -5940,6 +5941,11 @@ void __napi_schedule(struct napi_struct
|
@@ -5943,6 +5944,11 @@ void __napi_schedule(struct napi_struct
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
local_irq_save(flags);
|
local_irq_save(flags);
|
||||||
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
@@ -5991,6 +5997,10 @@ EXPORT_SYMBOL(napi_schedule_prep);
|
@@ -5994,6 +6000,10 @@ EXPORT_SYMBOL(napi_schedule_prep);
|
||||||
*/
|
*/
|
||||||
void __napi_schedule_irqoff(struct napi_struct *n)
|
void __napi_schedule_irqoff(struct napi_struct *n)
|
||||||
{
|
{
|
||||||
@ -118,7 +118,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
|
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
|
||||||
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
||||||
else
|
else
|
||||||
@@ -6255,9 +6265,89 @@ static void init_gro_hash(struct napi_st
|
@@ -6258,9 +6268,89 @@ static void init_gro_hash(struct napi_st
|
||||||
napi->gro_bitmask = 0;
|
napi->gro_bitmask = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
INIT_LIST_HEAD(&napi->poll_list);
|
INIT_LIST_HEAD(&napi->poll_list);
|
||||||
hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
|
hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
|
||||||
napi->timer.function = napi_watchdog;
|
napi->timer.function = napi_watchdog;
|
||||||
@@ -6274,6 +6364,7 @@ void netif_napi_add(struct net_device *d
|
@@ -6277,6 +6367,7 @@ void netif_napi_add(struct net_device *d
|
||||||
#ifdef CONFIG_NETPOLL
|
#ifdef CONFIG_NETPOLL
|
||||||
napi->poll_owner = -1;
|
napi->poll_owner = -1;
|
||||||
#endif
|
#endif
|
||||||
@ -216,7 +216,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
set_bit(NAPI_STATE_SCHED, &napi->state);
|
set_bit(NAPI_STATE_SCHED, &napi->state);
|
||||||
set_bit(NAPI_STATE_NPSVC, &napi->state);
|
set_bit(NAPI_STATE_NPSVC, &napi->state);
|
||||||
list_add_rcu(&napi->dev_list, &dev->napi_list);
|
list_add_rcu(&napi->dev_list, &dev->napi_list);
|
||||||
@@ -6314,6 +6405,7 @@ static void flush_gro_hash(struct napi_s
|
@@ -6317,6 +6408,7 @@ static void flush_gro_hash(struct napi_s
|
||||||
void netif_napi_del(struct napi_struct *napi)
|
void netif_napi_del(struct napi_struct *napi)
|
||||||
{
|
{
|
||||||
might_sleep();
|
might_sleep();
|
||||||
@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (napi_hash_del(napi))
|
if (napi_hash_del(napi))
|
||||||
synchronize_net();
|
synchronize_net();
|
||||||
list_del_init(&napi->dev_list);
|
list_del_init(&napi->dev_list);
|
||||||
@@ -6326,50 +6418,18 @@ EXPORT_SYMBOL(netif_napi_del);
|
@@ -6329,50 +6421,18 @@ EXPORT_SYMBOL(netif_napi_del);
|
||||||
|
|
||||||
static int napi_poll(struct napi_struct *n, struct list_head *repoll)
|
static int napi_poll(struct napi_struct *n, struct list_head *repoll)
|
||||||
{
|
{
|
||||||
@ -279,7 +279,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
/* Some drivers may have called napi_schedule
|
/* Some drivers may have called napi_schedule
|
||||||
* prior to exhausting their budget.
|
* prior to exhausting their budget.
|
||||||
@@ -10349,6 +10409,10 @@ static int __init net_dev_init(void)
|
@@ -10352,6 +10412,10 @@ static int __init net_dev_init(void)
|
||||||
sd->backlog.weight = weight_p;
|
sd->backlog.weight = weight_p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -806,13 +796,23 @@ static int __phylink_connect_phy(struct
|
@@ -803,13 +796,23 @@ static int __phylink_connect_phy(struct
|
||||||
*/
|
*/
|
||||||
int phylink_connect_phy(struct phylink *pl, struct phy_device *phy)
|
int phylink_connect_phy(struct phylink *pl, struct phy_device *phy)
|
||||||
{
|
{
|
||||||
|
@ -55,7 +55,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
if (changed && !test_bit(PHYLINK_DISABLE_STOPPED,
|
if (changed && !test_bit(PHYLINK_DISABLE_STOPPED,
|
||||||
&pl->phylink_disable_state))
|
&pl->phylink_disable_state))
|
||||||
@@ -1775,15 +1778,20 @@ static int phylink_sfp_module_insert(voi
|
@@ -1770,15 +1778,20 @@ static int phylink_sfp_module_insert(voi
|
||||||
const struct sfp_eeprom_id *id)
|
const struct sfp_eeprom_id *id)
|
||||||
{
|
{
|
||||||
struct phylink *pl = upstream;
|
struct phylink *pl = upstream;
|
||||||
|
@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
/**
|
/**
|
||||||
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
||||||
* @tf: Target ATA taskfile
|
* @tf: Target ATA taskfile
|
||||||
@@ -5151,6 +5164,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
@@ -5152,6 +5165,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||||
if (tag < 0)
|
if (tag < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
|
|
||||||
qc = __ata_qc_from_tag(ap, tag);
|
qc = __ata_qc_from_tag(ap, tag);
|
||||||
qc->tag = qc->hw_tag = tag;
|
qc->tag = qc->hw_tag = tag;
|
||||||
@@ -6087,6 +6103,9 @@ struct ata_port *ata_port_alloc(struct a
|
@@ -6088,6 +6104,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||||
ap->stats.unhandled_irq = 1;
|
ap->stats.unhandled_irq = 1;
|
||||||
ap->stats.idle_irq = 1;
|
ap->stats.idle_irq = 1;
|
||||||
#endif
|
#endif
|
||||||
@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
ata_sff_port_init(ap);
|
ata_sff_port_init(ap);
|
||||||
|
|
||||||
return ap;
|
return ap;
|
||||||
@@ -6122,6 +6141,12 @@ static void ata_host_release(struct kref
|
@@ -6123,6 +6142,12 @@ static void ata_host_release(struct kref
|
||||||
|
|
||||||
kfree(ap->pmp_link);
|
kfree(ap->pmp_link);
|
||||||
kfree(ap->slave_link);
|
kfree(ap->slave_link);
|
||||||
@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
kfree(ap);
|
kfree(ap);
|
||||||
host->ports[i] = NULL;
|
host->ports[i] = NULL;
|
||||||
}
|
}
|
||||||
@@ -6585,7 +6610,23 @@ int ata_host_register(struct ata_host *h
|
@@ -6586,7 +6611,23 @@ int ata_host_register(struct ata_host *h
|
||||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||||
host->ports[i]->local_port_no = i + 1;
|
host->ports[i]->local_port_no = i + 1;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
|||||||
|
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -1665,6 +1665,15 @@ config EMBEDDED
|
@@ -1675,6 +1675,15 @@ config EMBEDDED
|
||||||
an embedded system so certain expert options are available
|
an embedded system so certain expert options are available
|
||||||
for configuration.
|
for configuration.
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
|
|
||||||
--- a/drivers/mtd/nand/raw/qcom_nandc.c
|
--- a/drivers/mtd/nand/raw/qcom_nandc.c
|
||||||
+++ b/drivers/mtd/nand/raw/qcom_nandc.c
|
+++ b/drivers/mtd/nand/raw/qcom_nandc.c
|
||||||
@@ -159,6 +159,11 @@
|
@@ -158,6 +158,11 @@
|
||||||
/* NAND_CTRL bits */
|
/* NAND_CTRL bits */
|
||||||
#define BAM_MODE_EN BIT(0)
|
#define BAM_MODE_EN BIT(0)
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
/*
|
/*
|
||||||
* the NAND controller performs reads/writes with ECC in 516 byte chunks.
|
* the NAND controller performs reads/writes with ECC in 516 byte chunks.
|
||||||
* the driver calls the chunks 'step' or 'codeword' interchangeably
|
* the driver calls the chunks 'step' or 'codeword' interchangeably
|
||||||
@@ -430,6 +435,13 @@ struct qcom_nand_controller {
|
@@ -429,6 +434,13 @@ struct qcom_nand_controller {
|
||||||
* @cfg0, cfg1, cfg0_raw..: NANDc register configurations needed for
|
* @cfg0, cfg1, cfg0_raw..: NANDc register configurations needed for
|
||||||
* ecc/non-ecc mode for the current nand flash
|
* ecc/non-ecc mode for the current nand flash
|
||||||
* device
|
* device
|
||||||
@ -42,7 +42,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
*/
|
*/
|
||||||
struct qcom_nand_host {
|
struct qcom_nand_host {
|
||||||
struct nand_chip chip;
|
struct nand_chip chip;
|
||||||
@@ -452,6 +464,9 @@ struct qcom_nand_host {
|
@@ -451,6 +463,9 @@ struct qcom_nand_host {
|
||||||
u32 ecc_bch_cfg;
|
u32 ecc_bch_cfg;
|
||||||
u32 clrflashstatus;
|
u32 clrflashstatus;
|
||||||
u32 clrreadstatus;
|
u32 clrreadstatus;
|
||||||
@ -52,7 +52,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -460,12 +475,14 @@ struct qcom_nand_host {
|
@@ -459,12 +474,14 @@ struct qcom_nand_host {
|
||||||
* @ecc_modes - ecc mode for NAND
|
* @ecc_modes - ecc mode for NAND
|
||||||
* @is_bam - whether NAND controller is using BAM
|
* @is_bam - whether NAND controller is using BAM
|
||||||
* @is_qpic - whether NAND CTRL is part of qpic IP
|
* @is_qpic - whether NAND CTRL is part of qpic IP
|
||||||
@ -67,7 +67,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
u32 dev_cmd_reg_start;
|
u32 dev_cmd_reg_start;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1604,7 +1621,7 @@ qcom_nandc_read_cw_raw(struct mtd_info *
|
@@ -1603,7 +1620,7 @@ qcom_nandc_read_cw_raw(struct mtd_info *
|
||||||
data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
|
data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
|
||||||
oob_size1 = host->bbm_size;
|
oob_size1 = host->bbm_size;
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
data_size2 = ecc->size - data_size1 -
|
data_size2 = ecc->size - data_size1 -
|
||||||
((ecc->steps - 1) * 4);
|
((ecc->steps - 1) * 4);
|
||||||
oob_size2 = (ecc->steps * 4) + host->ecc_bytes_hw +
|
oob_size2 = (ecc->steps * 4) + host->ecc_bytes_hw +
|
||||||
@@ -1685,7 +1702,7 @@ check_for_erased_page(struct qcom_nand_h
|
@@ -1684,7 +1701,7 @@ check_for_erased_page(struct qcom_nand_h
|
||||||
}
|
}
|
||||||
|
|
||||||
for_each_set_bit(cw, &uncorrectable_cws, ecc->steps) {
|
for_each_set_bit(cw, &uncorrectable_cws, ecc->steps) {
|
||||||
@ -85,7 +85,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
data_size = ecc->size - ((ecc->steps - 1) * 4);
|
data_size = ecc->size - ((ecc->steps - 1) * 4);
|
||||||
oob_size = (ecc->steps * 4) + host->ecc_bytes_hw;
|
oob_size = (ecc->steps * 4) + host->ecc_bytes_hw;
|
||||||
} else {
|
} else {
|
||||||
@@ -1844,7 +1861,7 @@ static int read_page_ecc(struct qcom_nan
|
@@ -1843,7 +1860,7 @@ static int read_page_ecc(struct qcom_nan
|
||||||
for (i = 0; i < ecc->steps; i++) {
|
for (i = 0; i < ecc->steps; i++) {
|
||||||
int data_size, oob_size;
|
int data_size, oob_size;
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
data_size = ecc->size - ((ecc->steps - 1) << 2);
|
data_size = ecc->size - ((ecc->steps - 1) << 2);
|
||||||
oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
|
oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
|
||||||
host->spare_bytes;
|
host->spare_bytes;
|
||||||
@@ -1941,6 +1958,30 @@ static int copy_last_cw(struct qcom_nand
|
@@ -1940,6 +1957,30 @@ static int copy_last_cw(struct qcom_nand
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
/* implements ecc->read_page() */
|
/* implements ecc->read_page() */
|
||||||
static int qcom_nandc_read_page(struct nand_chip *chip, uint8_t *buf,
|
static int qcom_nandc_read_page(struct nand_chip *chip, uint8_t *buf,
|
||||||
int oob_required, int page)
|
int oob_required, int page)
|
||||||
@@ -1949,6 +1990,9 @@ static int qcom_nandc_read_page(struct n
|
@@ -1948,6 +1989,9 @@ static int qcom_nandc_read_page(struct n
|
||||||
struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
|
struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
|
||||||
u8 *data_buf, *oob_buf = NULL;
|
u8 *data_buf, *oob_buf = NULL;
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
nand_read_page_op(chip, page, 0, NULL, 0);
|
nand_read_page_op(chip, page, 0, NULL, 0);
|
||||||
data_buf = buf;
|
data_buf = buf;
|
||||||
oob_buf = oob_required ? chip->oob_poi : NULL;
|
oob_buf = oob_required ? chip->oob_poi : NULL;
|
||||||
@@ -1968,6 +2012,9 @@ static int qcom_nandc_read_page_raw(stru
|
@@ -1967,6 +2011,9 @@ static int qcom_nandc_read_page_raw(stru
|
||||||
int cw, ret;
|
int cw, ret;
|
||||||
u8 *data_buf = buf, *oob_buf = chip->oob_poi;
|
u8 *data_buf = buf, *oob_buf = chip->oob_poi;
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
for (cw = 0; cw < ecc->steps; cw++) {
|
for (cw = 0; cw < ecc->steps; cw++) {
|
||||||
ret = qcom_nandc_read_cw_raw(mtd, chip, data_buf, oob_buf,
|
ret = qcom_nandc_read_cw_raw(mtd, chip, data_buf, oob_buf,
|
||||||
page, cw);
|
page, cw);
|
||||||
@@ -1988,6 +2035,9 @@ static int qcom_nandc_read_oob(struct na
|
@@ -1987,6 +2034,9 @@ static int qcom_nandc_read_oob(struct na
|
||||||
struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
|
struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
|
||||||
struct nand_ecc_ctrl *ecc = &chip->ecc;
|
struct nand_ecc_ctrl *ecc = &chip->ecc;
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
clear_read_regs(nandc);
|
clear_read_regs(nandc);
|
||||||
clear_bam_transaction(nandc);
|
clear_bam_transaction(nandc);
|
||||||
|
|
||||||
@@ -2008,6 +2058,9 @@ static int qcom_nandc_write_page(struct
|
@@ -2007,6 +2057,9 @@ static int qcom_nandc_write_page(struct
|
||||||
u8 *data_buf, *oob_buf;
|
u8 *data_buf, *oob_buf;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
nand_prog_page_begin_op(chip, page, 0, NULL, 0);
|
nand_prog_page_begin_op(chip, page, 0, NULL, 0);
|
||||||
|
|
||||||
clear_read_regs(nandc);
|
clear_read_regs(nandc);
|
||||||
@@ -2023,7 +2076,7 @@ static int qcom_nandc_write_page(struct
|
@@ -2022,7 +2075,7 @@ static int qcom_nandc_write_page(struct
|
||||||
for (i = 0; i < ecc->steps; i++) {
|
for (i = 0; i < ecc->steps; i++) {
|
||||||
int data_size, oob_size;
|
int data_size, oob_size;
|
||||||
|
|
||||||
@ -174,7 +174,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
data_size = ecc->size - ((ecc->steps - 1) << 2);
|
data_size = ecc->size - ((ecc->steps - 1) << 2);
|
||||||
oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
|
oob_size = (ecc->steps << 2) + host->ecc_bytes_hw +
|
||||||
host->spare_bytes;
|
host->spare_bytes;
|
||||||
@@ -2080,6 +2133,9 @@ static int qcom_nandc_write_page_raw(str
|
@@ -2079,6 +2132,9 @@ static int qcom_nandc_write_page_raw(str
|
||||||
u8 *data_buf, *oob_buf;
|
u8 *data_buf, *oob_buf;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
nand_prog_page_begin_op(chip, page, 0, NULL, 0);
|
nand_prog_page_begin_op(chip, page, 0, NULL, 0);
|
||||||
clear_read_regs(nandc);
|
clear_read_regs(nandc);
|
||||||
clear_bam_transaction(nandc);
|
clear_bam_transaction(nandc);
|
||||||
@@ -2098,7 +2154,7 @@ static int qcom_nandc_write_page_raw(str
|
@@ -2097,7 +2153,7 @@ static int qcom_nandc_write_page_raw(str
|
||||||
data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
|
data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1);
|
||||||
oob_size1 = host->bbm_size;
|
oob_size1 = host->bbm_size;
|
||||||
|
|
||||||
@ -193,7 +193,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
data_size2 = ecc->size - data_size1 -
|
data_size2 = ecc->size - data_size1 -
|
||||||
((ecc->steps - 1) << 2);
|
((ecc->steps - 1) << 2);
|
||||||
oob_size2 = (ecc->steps << 2) + host->ecc_bytes_hw +
|
oob_size2 = (ecc->steps << 2) + host->ecc_bytes_hw +
|
||||||
@@ -2158,6 +2214,9 @@ static int qcom_nandc_write_oob(struct n
|
@@ -2157,6 +2213,9 @@ static int qcom_nandc_write_oob(struct n
|
||||||
int data_size, oob_size;
|
int data_size, oob_size;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -203,7 +203,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
host->use_ecc = true;
|
host->use_ecc = true;
|
||||||
clear_bam_transaction(nandc);
|
clear_bam_transaction(nandc);
|
||||||
|
|
||||||
@@ -2806,6 +2865,7 @@ static int qcom_nand_host_init_and_regis
|
@@ -2781,6 +2840,7 @@ static int qcom_nand_host_init_and_regis
|
||||||
struct nand_chip *chip = &host->chip;
|
struct nand_chip *chip = &host->chip;
|
||||||
struct mtd_info *mtd = nand_to_mtd(chip);
|
struct mtd_info *mtd = nand_to_mtd(chip);
|
||||||
struct device *dev = nandc->dev;
|
struct device *dev = nandc->dev;
|
||||||
@ -211,7 +211,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = of_property_read_u32(dn, "reg", &host->cs);
|
ret = of_property_read_u32(dn, "reg", &host->cs);
|
||||||
@@ -2866,6 +2926,17 @@ static int qcom_nand_host_init_and_regis
|
@@ -2841,6 +2901,17 @@ static int qcom_nand_host_init_and_regis
|
||||||
if (ret)
|
if (ret)
|
||||||
nand_cleanup(chip);
|
nand_cleanup(chip);
|
||||||
|
|
||||||
@ -229,7 +229,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3032,6 +3103,7 @@ static int qcom_nandc_remove(struct plat
|
@@ -3001,6 +3072,7 @@ static int qcom_nandc_remove(struct plat
|
||||||
static const struct qcom_nandc_props ipq806x_nandc_props = {
|
static const struct qcom_nandc_props ipq806x_nandc_props = {
|
||||||
.ecc_modes = (ECC_RS_4BIT | ECC_BCH_8BIT),
|
.ecc_modes = (ECC_RS_4BIT | ECC_BCH_8BIT),
|
||||||
.is_bam = false,
|
.is_bam = false,
|
||||||
|
@ -135,7 +135,7 @@
|
|||||||
|
|
||||||
unsigned short gflags;
|
unsigned short gflags;
|
||||||
unsigned short padded;
|
unsigned short padded;
|
||||||
@@ -2526,6 +2541,10 @@ enum netdev_cmd {
|
@@ -2527,6 +2542,10 @@ enum netdev_cmd {
|
||||||
NETDEV_CVLAN_FILTER_DROP_INFO,
|
NETDEV_CVLAN_FILTER_DROP_INFO,
|
||||||
NETDEV_SVLAN_FILTER_PUSH_INFO,
|
NETDEV_SVLAN_FILTER_PUSH_INFO,
|
||||||
NETDEV_SVLAN_FILTER_DROP_INFO,
|
NETDEV_SVLAN_FILTER_DROP_INFO,
|
||||||
@ -514,7 +514,7 @@
|
|||||||
if (bond_is_lb(bond))
|
if (bond_is_lb(bond))
|
||||||
bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP);
|
bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP);
|
||||||
} else {
|
} else {
|
||||||
@@ -1379,6 +1396,7 @@ int bond_enslave(struct net_device *bond
|
@@ -1407,6 +1425,7 @@ int bond_enslave(struct net_device *bond
|
||||||
const struct net_device_ops *slave_ops = slave_dev->netdev_ops;
|
const struct net_device_ops *slave_ops = slave_dev->netdev_ops;
|
||||||
struct slave *new_slave = NULL, *prev_slave;
|
struct slave *new_slave = NULL, *prev_slave;
|
||||||
struct sockaddr_storage ss;
|
struct sockaddr_storage ss;
|
||||||
@ -522,7 +522,7 @@
|
|||||||
int link_reporting;
|
int link_reporting;
|
||||||
int res = 0, i;
|
int res = 0, i;
|
||||||
|
|
||||||
@@ -1780,6 +1798,13 @@ int bond_enslave(struct net_device *bond
|
@@ -1806,6 +1825,13 @@ int bond_enslave(struct net_device *bond
|
||||||
if (bond_mode_can_use_xmit_hash(bond))
|
if (bond_mode_can_use_xmit_hash(bond))
|
||||||
bond_update_slave_arr(bond, NULL);
|
bond_update_slave_arr(bond, NULL);
|
||||||
|
|
||||||
@ -536,7 +536,7 @@
|
|||||||
|
|
||||||
slave_info(bond_dev, slave_dev, "Enslaving as %s interface with %s link\n",
|
slave_info(bond_dev, slave_dev, "Enslaving as %s interface with %s link\n",
|
||||||
bond_is_active_slave(new_slave) ? "an active" : "a backup",
|
bond_is_active_slave(new_slave) ? "an active" : "a backup",
|
||||||
@@ -1852,6 +1877,14 @@ err_undo_flags:
|
@@ -1878,6 +1904,14 @@ err_undo_flags:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -551,7 +551,7 @@
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1873,6 +1906,7 @@ static int __bond_release_one(struct net
|
@@ -1899,6 +1933,7 @@ static int __bond_release_one(struct net
|
||||||
struct bonding *bond = netdev_priv(bond_dev);
|
struct bonding *bond = netdev_priv(bond_dev);
|
||||||
struct slave *slave, *oldcurrent;
|
struct slave *slave, *oldcurrent;
|
||||||
struct sockaddr_storage ss;
|
struct sockaddr_storage ss;
|
||||||
@ -559,7 +559,7 @@
|
|||||||
int old_flags = bond_dev->flags;
|
int old_flags = bond_dev->flags;
|
||||||
netdev_features_t old_features = bond_dev->features;
|
netdev_features_t old_features = bond_dev->features;
|
||||||
|
|
||||||
@@ -1895,6 +1929,14 @@ static int __bond_release_one(struct net
|
@@ -1921,6 +1956,14 @@ static int __bond_release_one(struct net
|
||||||
|
|
||||||
bond_set_slave_inactive_flags(slave, BOND_SLAVE_NOTIFY_NOW);
|
bond_set_slave_inactive_flags(slave, BOND_SLAVE_NOTIFY_NOW);
|
||||||
|
|
||||||
@ -574,7 +574,7 @@
|
|||||||
bond_sysfs_slave_del(slave);
|
bond_sysfs_slave_del(slave);
|
||||||
|
|
||||||
/* recompute stats just before removing the slave */
|
/* recompute stats just before removing the slave */
|
||||||
@@ -2190,6 +2232,10 @@ static void bond_miimon_commit(struct bo
|
@@ -2217,6 +2260,10 @@ static void bond_miimon_commit(struct bo
|
||||||
{
|
{
|
||||||
struct list_head *iter;
|
struct list_head *iter;
|
||||||
struct slave *slave, *primary;
|
struct slave *slave, *primary;
|
||||||
@ -585,7 +585,7 @@
|
|||||||
|
|
||||||
bond_for_each_slave(bond, slave, iter) {
|
bond_for_each_slave(bond, slave, iter) {
|
||||||
switch (slave->link_new_state) {
|
switch (slave->link_new_state) {
|
||||||
@@ -2233,6 +2279,12 @@ static void bond_miimon_commit(struct bo
|
@@ -2260,6 +2307,12 @@ static void bond_miimon_commit(struct bo
|
||||||
|
|
||||||
bond_miimon_link_change(bond, slave, BOND_LINK_UP);
|
bond_miimon_link_change(bond, slave, BOND_LINK_UP);
|
||||||
|
|
||||||
@ -598,7 +598,7 @@
|
|||||||
if (!bond->curr_active_slave || slave == primary)
|
if (!bond->curr_active_slave || slave == primary)
|
||||||
goto do_failover;
|
goto do_failover;
|
||||||
|
|
||||||
@@ -2274,6 +2326,15 @@ do_failover:
|
@@ -2301,6 +2354,15 @@ do_failover:
|
||||||
}
|
}
|
||||||
|
|
||||||
bond_set_carrier(bond);
|
bond_set_carrier(bond);
|
||||||
@ -614,7 +614,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* bond_mii_monitor
|
/* bond_mii_monitor
|
||||||
@@ -4327,6 +4389,11 @@ static void bond_destructor(struct net_d
|
@@ -4383,6 +4445,11 @@ static void bond_destructor(struct net_d
|
||||||
struct bonding *bond = netdev_priv(bond_dev);
|
struct bonding *bond = netdev_priv(bond_dev);
|
||||||
if (bond->wq)
|
if (bond->wq)
|
||||||
destroy_workqueue(bond->wq);
|
destroy_workqueue(bond->wq);
|
||||||
@ -626,7 +626,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
void bond_setup(struct net_device *bond_dev)
|
void bond_setup(struct net_device *bond_dev)
|
||||||
@@ -4872,6 +4939,16 @@ int bond_create(struct net *net, const c
|
@@ -4932,6 +4999,16 @@ int bond_create(struct net *net, const c
|
||||||
bond_work_init_all(bond);
|
bond_work_init_all(bond);
|
||||||
|
|
||||||
rtnl_unlock();
|
rtnl_unlock();
|
||||||
@ -643,7 +643,7 @@
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4967,6 +5028,203 @@ static void __exit bonding_exit(void)
|
@@ -5027,6 +5104,203 @@ static void __exit bonding_exit(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1284,7 +1284,7 @@
|
|||||||
struct fib_table *tb;
|
struct fib_table *tb;
|
||||||
--- a/net/ipv6/addrconf.c
|
--- a/net/ipv6/addrconf.c
|
||||||
+++ b/net/ipv6/addrconf.c
|
+++ b/net/ipv6/addrconf.c
|
||||||
@@ -7173,3 +7173,35 @@ void addrconf_cleanup(void)
|
@@ -7183,3 +7183,35 @@ void addrconf_cleanup(void)
|
||||||
|
|
||||||
destroy_workqueue(addrconf_wq);
|
destroy_workqueue(addrconf_wq);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
diff --git a/crypto/authenc.c b/crypto/authenc.c
|
|
||||||
index 3f0ed9402..17ce66bba 100644
|
|
||||||
--- a/crypto/authenc.c
|
--- a/crypto/authenc.c
|
||||||
+++ b/crypto/authenc.c
|
+++ b/crypto/authenc.c
|
||||||
@@ -449,6 +449,8 @@ static int crypto_authenc_create(struct crypto_template *tmpl,
|
@@ -449,6 +449,8 @@ static int crypto_authenc_create(struct crypto_template *tmpl,
|
||||||
@ -11,8 +9,6 @@ index 3f0ed9402..17ce66bba 100644
|
|||||||
inst->alg.base.cra_priority = enc->base.cra_priority * 10 +
|
inst->alg.base.cra_priority = enc->base.cra_priority * 10 +
|
||||||
auth_base->cra_priority;
|
auth_base->cra_priority;
|
||||||
inst->alg.base.cra_blocksize = enc->base.cra_blocksize;
|
inst->alg.base.cra_blocksize = enc->base.cra_blocksize;
|
||||||
diff --git a/include/linux/crypto.h b/include/linux/crypto.h
|
|
||||||
index 19ea3a371..1463e824c 100644
|
|
||||||
--- a/include/linux/crypto.h
|
--- a/include/linux/crypto.h
|
||||||
+++ b/include/linux/crypto.h
|
+++ b/include/linux/crypto.h
|
||||||
@@ -104,6 +104,11 @@
|
@@ -104,6 +104,11 @@
|
||||||
@ -27,11 +23,9 @@ index 19ea3a371..1463e824c 100644
|
|||||||
/*
|
/*
|
||||||
* Transform masks and values (for crt_flags).
|
* Transform masks and values (for crt_flags).
|
||||||
*/
|
*/
|
||||||
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
|
|
||||||
index 5c9677640..23b3a9e91 100644
|
|
||||||
--- a/net/ipv4/esp4.c
|
--- a/net/ipv4/esp4.c
|
||||||
+++ b/net/ipv4/esp4.c
|
+++ b/net/ipv4/esp4.c
|
||||||
@@ -488,6 +488,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
|
@@ -483,6 +483,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
struct ip_esp_hdr *esph;
|
struct ip_esp_hdr *esph;
|
||||||
struct crypto_aead *aead;
|
struct crypto_aead *aead;
|
||||||
struct esp_info esp;
|
struct esp_info esp;
|
||||||
@ -39,7 +33,7 @@ index 5c9677640..23b3a9e91 100644
|
|||||||
|
|
||||||
esp.inplace = true;
|
esp.inplace = true;
|
||||||
|
|
||||||
@@ -499,6 +500,11 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
|
@@ -494,6 +495,11 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
aead = x->data;
|
aead = x->data;
|
||||||
alen = crypto_aead_authsize(aead);
|
alen = crypto_aead_authsize(aead);
|
||||||
|
|
||||||
@ -51,7 +45,7 @@ index 5c9677640..23b3a9e91 100644
|
|||||||
esp.tfclen = 0;
|
esp.tfclen = 0;
|
||||||
if (x->tfcpad) {
|
if (x->tfcpad) {
|
||||||
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
||||||
@@ -708,6 +714,7 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb)
|
@@ -703,6 +709,7 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
u8 *iv;
|
u8 *iv;
|
||||||
struct scatterlist *sg;
|
struct scatterlist *sg;
|
||||||
int err = -EINVAL;
|
int err = -EINVAL;
|
||||||
@ -59,7 +53,7 @@ index 5c9677640..23b3a9e91 100644
|
|||||||
|
|
||||||
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen))
|
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen))
|
||||||
goto out;
|
goto out;
|
||||||
@@ -715,6 +722,12 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb)
|
@@ -710,6 +717,12 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
if (elen <= 0)
|
if (elen <= 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
@ -72,8 +66,6 @@ index 5c9677640..23b3a9e91 100644
|
|||||||
assoclen = sizeof(struct ip_esp_hdr);
|
assoclen = sizeof(struct ip_esp_hdr);
|
||||||
seqhilen = 0;
|
seqhilen = 0;
|
||||||
|
|
||||||
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
|
|
||||||
index a3b403ba8..019bea284 100644
|
|
||||||
--- a/net/ipv6/esp6.c
|
--- a/net/ipv6/esp6.c
|
||||||
+++ b/net/ipv6/esp6.c
|
+++ b/net/ipv6/esp6.c
|
||||||
@@ -429,6 +429,7 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
|
@@ -429,6 +429,7 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
--- a/net/bridge/br_device.c
|
--- a/net/bridge/br_device.c
|
||||||
+++ b/net/bridge/br_device.c
|
+++ b/net/bridge/br_device.c
|
||||||
@@ -85,6 +85,12 @@ netdev_tx_t br_dev_xmit(struct sk_buff *
|
@@ -87,6 +87,12 @@ netdev_tx_t br_dev_xmit(struct sk_buff *
|
||||||
if (is_broadcast_ether_addr(dest)) {
|
if (is_broadcast_ether_addr(dest)) {
|
||||||
br_flood(br, skb, BR_PKT_BROADCAST, false, true);
|
br_flood(br, skb, BR_PKT_BROADCAST, false, true);
|
||||||
} else if (is_multicast_ether_addr(dest)) {
|
} else if (is_multicast_ether_addr(dest)) {
|
||||||
|
@ -63,7 +63,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
|||||||
* address space as memory. Needed when the kernel wants to execute
|
* address space as memory. Needed when the kernel wants to execute
|
||||||
--- a/arch/arm/mm/mmu.c
|
--- a/arch/arm/mm/mmu.c
|
||||||
+++ b/arch/arm/mm/mmu.c
|
+++ b/arch/arm/mm/mmu.c
|
||||||
@@ -314,6 +314,13 @@ static struct mem_type mem_types[] __ro_
|
@@ -316,6 +316,13 @@ static struct mem_type mem_types[] __ro_
|
||||||
.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
|
.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
|
||||||
.domain = DOMAIN_KERNEL,
|
.domain = DOMAIN_KERNEL,
|
||||||
},
|
},
|
||||||
@ -77,7 +77,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
|||||||
[MT_ROM] = {
|
[MT_ROM] = {
|
||||||
.prot_sect = PMD_TYPE_SECT,
|
.prot_sect = PMD_TYPE_SECT,
|
||||||
.domain = DOMAIN_KERNEL,
|
.domain = DOMAIN_KERNEL,
|
||||||
@@ -650,6 +657,7 @@ static void __init build_mem_type_table(
|
@@ -652,6 +659,7 @@ static void __init build_mem_type_table(
|
||||||
}
|
}
|
||||||
kern_pgprot |= PTE_EXT_AF;
|
kern_pgprot |= PTE_EXT_AF;
|
||||||
vecs_pgprot |= PTE_EXT_AF;
|
vecs_pgprot |= PTE_EXT_AF;
|
||||||
@ -85,7 +85,7 @@ Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Set PXN for user mappings
|
* Set PXN for user mappings
|
||||||
@@ -678,6 +686,7 @@ static void __init build_mem_type_table(
|
@@ -680,6 +688,7 @@ static void __init build_mem_type_table(
|
||||||
mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
|
mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
|
||||||
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
|
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
|
||||||
mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
|
mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
|
||||||
|
@ -47,7 +47,7 @@ during v5.5-rc1.
|
|||||||
|
|
||||||
--- a/drivers/net/phy/phylink.c
|
--- a/drivers/net/phy/phylink.c
|
||||||
+++ b/drivers/net/phy/phylink.c
|
+++ b/drivers/net/phy/phylink.c
|
||||||
@@ -1008,7 +1008,8 @@ void phylink_start(struct phylink *pl)
|
@@ -1013,7 +1013,8 @@ void phylink_start(struct phylink *pl)
|
||||||
if (irq <= 0)
|
if (irq <= 0)
|
||||||
mod_timer(&pl->link_poll, jiffies + HZ);
|
mod_timer(&pl->link_poll, jiffies + HZ);
|
||||||
}
|
}
|
||||||
|
@ -439,7 +439,7 @@ This reverts commit cf9441adb1a35506d7606866c382b9d8614169b5.
|
|||||||
IRQF_SHARED, dev_name(dev), pdev);
|
IRQF_SHARED, dev_name(dev), pdev);
|
||||||
--- a/sound/soc/xilinx/xlnx_formatter_pcm.c
|
--- a/sound/soc/xilinx/xlnx_formatter_pcm.c
|
||||||
+++ b/sound/soc/xilinx/xlnx_formatter_pcm.c
|
+++ b/sound/soc/xilinx/xlnx_formatter_pcm.c
|
||||||
@@ -613,6 +613,7 @@ static int xlnx_formatter_pcm_probe(stru
|
@@ -634,6 +634,7 @@ static int xlnx_formatter_pcm_probe(stru
|
||||||
aud_drv_data->mm2s_irq = platform_get_irq_byname(pdev,
|
aud_drv_data->mm2s_irq = platform_get_irq_byname(pdev,
|
||||||
"irq_mm2s");
|
"irq_mm2s");
|
||||||
if (aud_drv_data->mm2s_irq < 0) {
|
if (aud_drv_data->mm2s_irq < 0) {
|
||||||
@ -447,7 +447,7 @@ This reverts commit cf9441adb1a35506d7606866c382b9d8614169b5.
|
|||||||
ret = aud_drv_data->mm2s_irq;
|
ret = aud_drv_data->mm2s_irq;
|
||||||
goto clk_err;
|
goto clk_err;
|
||||||
}
|
}
|
||||||
@@ -639,6 +640,7 @@ static int xlnx_formatter_pcm_probe(stru
|
@@ -660,6 +661,7 @@ static int xlnx_formatter_pcm_probe(stru
|
||||||
aud_drv_data->s2mm_irq = platform_get_irq_byname(pdev,
|
aud_drv_data->s2mm_irq = platform_get_irq_byname(pdev,
|
||||||
"irq_s2mm");
|
"irq_s2mm");
|
||||||
if (aud_drv_data->s2mm_irq < 0) {
|
if (aud_drv_data->s2mm_irq < 0) {
|
||||||
|
@ -210,7 +210,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|||||||
|
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
|
||||||
@@ -57,16 +55,16 @@ void __par_io_config_pin(struct qe_pio_r
|
@@ -59,16 +57,16 @@ void __par_io_config_pin(struct qe_pio_r
|
||||||
pin_mask1bit = (u32) (1 << (QE_PIO_PINS - (pin + 1)));
|
pin_mask1bit = (u32) (1 << (QE_PIO_PINS - (pin + 1)));
|
||||||
|
|
||||||
/* Set open drain, if required */
|
/* Set open drain, if required */
|
||||||
@ -232,7 +232,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|||||||
|
|
||||||
/* get all bits mask for 2 bit per port */
|
/* get all bits mask for 2 bit per port */
|
||||||
pin_mask2bits = (u32) (0x3 << (QE_PIO_PINS -
|
pin_mask2bits = (u32) (0x3 << (QE_PIO_PINS -
|
||||||
@@ -78,34 +76,30 @@ void __par_io_config_pin(struct qe_pio_r
|
@@ -80,34 +78,30 @@ void __par_io_config_pin(struct qe_pio_r
|
||||||
|
|
||||||
/* clear and set 2 bits mask */
|
/* clear and set 2 bits mask */
|
||||||
if (pin > (QE_PIO_PINS / 2) - 1) {
|
if (pin > (QE_PIO_PINS / 2) - 1) {
|
||||||
@ -277,7 +277,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(__par_io_config_pin);
|
EXPORT_SYMBOL(__par_io_config_pin);
|
||||||
@@ -133,12 +127,12 @@ int par_io_data_set(u8 port, u8 pin, u8
|
@@ -135,12 +129,12 @@ int par_io_data_set(u8 port, u8 pin, u8
|
||||||
/* calculate pin location */
|
/* calculate pin location */
|
||||||
pin_mask = (u32) (1 << (QE_PIO_PINS - 1 - pin));
|
pin_mask = (u32) (1 << (QE_PIO_PINS - 1 - pin));
|
||||||
|
|
||||||
|
@ -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
|
||||||
@@ -3655,6 +3655,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
@@ -3670,6 +3670,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;
|
||||||
|
@ -20,7 +20,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/core/hcd.c
|
--- a/drivers/usb/core/hcd.c
|
||||||
+++ b/drivers/usb/core/hcd.c
|
+++ b/drivers/usb/core/hcd.c
|
||||||
@@ -2111,6 +2111,140 @@ int usb_hcd_get_frame_number (struct usb
|
@@ -2125,6 +2125,140 @@ int usb_hcd_get_frame_number (struct usb
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
@ -174,7 +174,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
* bursts that are required to move all packets in this TD. Only SuperSpeed
|
* bursts that are required to move all packets in this TD. Only SuperSpeed
|
||||||
--- a/drivers/usb/host/xhci.c
|
--- a/drivers/usb/host/xhci.c
|
||||||
+++ b/drivers/usb/host/xhci.c
|
+++ b/drivers/usb/host/xhci.c
|
||||||
@@ -5393,6 +5393,7 @@ static const struct hc_driver xhci_hc_dr
|
@@ -5403,6 +5403,7 @@ static const struct hc_driver xhci_hc_dr
|
||||||
.disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout,
|
.disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout,
|
||||||
.find_raw_port_number = xhci_find_raw_port_number,
|
.find_raw_port_number = xhci_find_raw_port_number,
|
||||||
.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,
|
.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci.c
|
--- a/drivers/usb/host/xhci.c
|
||||||
+++ b/drivers/usb/host/xhci.c
|
+++ b/drivers/usb/host/xhci.c
|
||||||
@@ -5414,6 +5414,8 @@ void xhci_init_driver(struct hc_driver *
|
@@ -5424,6 +5424,8 @@ void xhci_init_driver(struct hc_driver *
|
||||||
drv->check_bandwidth = over->check_bandwidth;
|
drv->check_bandwidth = over->check_bandwidth;
|
||||||
if (over->reset_bandwidth)
|
if (over->reset_bandwidth)
|
||||||
drv->reset_bandwidth = over->reset_bandwidth;
|
drv->reset_bandwidth = over->reset_bandwidth;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/drivers/net/phy/phylink.c
|
--- a/drivers/net/phy/phylink.c
|
||||||
+++ b/drivers/net/phy/phylink.c
|
+++ b/drivers/net/phy/phylink.c
|
||||||
@@ -1242,6 +1242,11 @@ int phylink_ethtool_ksettings_set(struct
|
@@ -1247,6 +1247,11 @@ int phylink_ethtool_ksettings_set(struct
|
||||||
|
|
||||||
/* If we have a PHY, configure the phy */
|
/* If we have a PHY, configure the phy */
|
||||||
if (pl->phydev) {
|
if (pl->phydev) {
|
||||||
@ -12,7 +12,7 @@
|
|||||||
ret = phy_ethtool_ksettings_set(pl->phydev, &our_kset);
|
ret = phy_ethtool_ksettings_set(pl->phydev, &our_kset);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
@@ -1420,8 +1425,11 @@ int phylink_ethtool_get_eee(struct phyli
|
@@ -1425,8 +1430,11 @@ int phylink_ethtool_get_eee(struct phyli
|
||||||
|
|
||||||
ASSERT_RTNL();
|
ASSERT_RTNL();
|
||||||
|
|
||||||
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -1438,9 +1446,11 @@ int phylink_ethtool_set_eee(struct phyli
|
@@ -1443,9 +1451,11 @@ int phylink_ethtool_set_eee(struct phyli
|
||||||
|
|
||||||
ASSERT_RTNL();
|
ASSERT_RTNL();
|
||||||
|
|
||||||
|
@ -10,8 +10,6 @@ Subject: [PATCH] net: phy: Add driver for Motorcomm YT8531(S) PHYs
|
|||||||
include/linux/motorcomm_phy.h | 5 +
|
include/linux/motorcomm_phy.h | 5 +
|
||||||
4 files changed, 350 insertions(+), 1 deletion(-)
|
4 files changed, 350 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
|
||||||
index 8dc4def..bcd46ca 100644
|
|
||||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||||
@@ -112,6 +112,10 @@ static void stmmac_exit_fs(struct net_device *dev);
|
@@ -112,6 +112,10 @@ static void stmmac_exit_fs(struct net_device *dev);
|
||||||
@ -117,8 +115,6 @@ index 8dc4def..bcd46ca 100644
|
|||||||
|
|
||||||
ret = register_netdev(ndev);
|
ret = register_netdev(ndev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
diff --git a/drivers/net/phy/motorcomm.c b/drivers/net/phy/motorcomm.c
|
|
||||||
index 17a4f6c..e37dfb9 100644
|
|
||||||
--- a/drivers/net/phy/motorcomm.c
|
--- a/drivers/net/phy/motorcomm.c
|
||||||
+++ b/drivers/net/phy/motorcomm.c
|
+++ b/drivers/net/phy/motorcomm.c
|
||||||
@@ -26,6 +26,13 @@
|
@@ -26,6 +26,13 @@
|
||||||
@ -337,8 +333,6 @@ index 17a4f6c..e37dfb9 100644
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
|
|
||||||
index 950277e..3a35040 100644
|
|
||||||
--- a/drivers/net/phy/phy_device.c
|
--- a/drivers/net/phy/phy_device.c
|
||||||
+++ b/drivers/net/phy/phy_device.c
|
+++ b/drivers/net/phy/phy_device.c
|
||||||
@@ -31,6 +31,7 @@
|
@@ -31,6 +31,7 @@
|
||||||
@ -450,8 +444,6 @@ index 950277e..3a35040 100644
|
|||||||
/* If the phy_id is mostly Fs, there is no device there */
|
/* If the phy_id is mostly Fs, there is no device there */
|
||||||
if ((phy_id & 0x1fffffff) == 0x1fffffff)
|
if ((phy_id & 0x1fffffff) == 0x1fffffff)
|
||||||
return ERR_PTR(-ENODEV);
|
return ERR_PTR(-ENODEV);
|
||||||
diff --git a/include/linux/motorcomm_phy.h b/include/linux/motorcomm_phy.h
|
|
||||||
index facce6d..23cccca 100644
|
|
||||||
--- a/include/linux/motorcomm_phy.h
|
--- a/include/linux/motorcomm_phy.h
|
||||||
+++ b/include/linux/motorcomm_phy.h
|
+++ b/include/linux/motorcomm_phy.h
|
||||||
@@ -14,6 +14,8 @@
|
@@ -14,6 +14,8 @@
|
||||||
|
@ -8345,16 +8345,6 @@
|
|||||||
ret_val = phy->ops.write_reg(hw,
|
ret_val = phy->ops.write_reg(hw,
|
||||||
(STANDARD_AN_REG_MASK <<
|
(STANDARD_AN_REG_MASK <<
|
||||||
MMD_DEVADDR_SHIFT) |
|
MMD_DEVADDR_SHIFT) |
|
||||||
@@ -734,8 +746,6 @@
|
|
||||||
if (ret_val)
|
|
||||||
return ret_val;
|
|
||||||
ret_val = igc_write_phy_reg_mdic(hw, offset, data);
|
|
||||||
- if (ret_val)
|
|
||||||
- return ret_val;
|
|
||||||
hw->phy.ops.release(hw);
|
|
||||||
} else {
|
|
||||||
ret_val = igc_write_xmdio_reg(hw, (u16)offset, dev_addr,
|
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/intel/igc/igc_ptp.c 1970-01-01 08:00:00.000000000 +0800
|
--- a/drivers/net/ethernet/intel/igc/igc_ptp.c 1970-01-01 08:00:00.000000000 +0800
|
||||||
+++ b/drivers/net/ethernet/intel/igc/igc_ptp.c 2022-03-10 14:33:17.227212778 +0800
|
+++ b/drivers/net/ethernet/intel/igc/igc_ptp.c 2022-03-10 14:33:17.227212778 +0800
|
||||||
@@ -0,0 +1,620 @@
|
@@ -0,0 +1,620 @@
|
||||||
|
Loading…
Reference in New Issue
Block a user