Refreshed all patches.
Removed upstreamed hunks:
- 703-phy-support-layerscape.patch
Compile-tested on: ar71xx
Runtime-tested on: ar71xx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_RELEASE?=1
-LINUX_VERSION-4.9 = .135
+LINUX_VERSION-4.9 = .137
LINUX_VERSION-4.14 = .80
-LINUX_KERNEL_HASH-4.9.135 = e023b0bbe9ea7fc56aa57210342dd18ea3e0900ee207226df1523c6d7df154ce
+LINUX_KERNEL_HASH-4.9.137 = 6db2512a9094bf4c830124641d1275635600b052962a7db3556da18914ea2589
LINUX_KERNEL_HASH-4.14.80 = 9ddc7bc11cbea6475ac5abf18e01a143d7d506bece591e0dcb15c9452d3ed7d2
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -132,6 +132,209 @@
+@@ -137,6 +137,209 @@
interrupt-controller;
#interrupt-cells = <2>;
+};
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -390,6 +390,13 @@
+@@ -395,6 +395,13 @@
interrupts = <2 14>; /* pwa1 */
};
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -476,6 +476,14 @@
+@@ -481,6 +481,14 @@
status = "disabled";
};
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data, int in_pm)
{
-@@ -1951,7 +1955,8 @@ static int smsc95xx_rx_fixup(struct usbn
+@@ -1954,7 +1958,8 @@ static int smsc95xx_rx_fixup(struct usbn
if (dev->net->features & NETIF_F_RXCSUM)
smsc95xx_rx_csum_offload(skb);
skb_trim(skb, skb->len - 4); /* remove fcs */
return 1;
}
-@@ -1969,7 +1974,8 @@ static int smsc95xx_rx_fixup(struct usbn
+@@ -1972,7 +1977,8 @@ static int smsc95xx_rx_fixup(struct usbn
if (dev->net->features & NETIF_F_RXCSUM)
smsc95xx_rx_csum_offload(ax_skb);
skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data, int in_pm)
{
-@@ -1106,13 +1110,13 @@ static int smsc95xx_reset(struct usbnet
+@@ -1109,13 +1113,13 @@ static int smsc95xx_reset(struct usbnet
if (!turbo_mode) {
burst_cap = 0;
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data, int in_pm)
{
-@@ -918,6 +923,53 @@ static int smsc95xx_ioctl(struct net_dev
+@@ -921,6 +926,53 @@ static int smsc95xx_ioctl(struct net_dev
return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
}
static void smsc95xx_init_mac_address(struct usbnet *dev)
{
const u8 *mac_addr;
-@@ -939,6 +991,10 @@ static void smsc95xx_init_mac_address(st
+@@ -942,6 +994,10 @@ static void smsc95xx_init_mac_address(st
}
}
}
if (val & BCM2835_I2C_S_DONE) {
-@@ -137,21 +141,38 @@ static irqreturn_t bcm2835_i2c_isr(int t
+@@ -139,21 +143,38 @@ static irqreturn_t bcm2835_i2c_isr(int t
i2c_dev->msg_err = BCM2835_I2C_S_LEN;
else
i2c_dev->msg_err = 0;
}
static int bcm2835_i2c_xfer_msg(struct bcm2835_i2c_dev *i2c_dev,
-@@ -181,8 +202,9 @@ static int bcm2835_i2c_xfer_msg(struct b
+@@ -183,8 +204,9 @@ static int bcm2835_i2c_xfer_msg(struct b
time_left = wait_for_completion_timeout(&i2c_dev->completion,
BCM2835_I2C_TIMEOUT);
--- a/drivers/i2c/busses/i2c-bcm2835.c
+++ b/drivers/i2c/busses/i2c-bcm2835.c
-@@ -216,7 +216,7 @@ static int bcm2835_i2c_xfer_msg(struct b
+@@ -218,7 +218,7 @@ static int bcm2835_i2c_xfer_msg(struct b
(msg->flags & I2C_M_IGNORE_NAK))
return 0;
--- a/drivers/i2c/busses/i2c-bcm2835.c
+++ b/drivers/i2c/busses/i2c-bcm2835.c
-@@ -212,10 +212,6 @@ static int bcm2835_i2c_xfer_msg(struct b
+@@ -214,10 +214,6 @@ static int bcm2835_i2c_xfer_msg(struct b
if (likely(!i2c_dev->msg_err))
return 0;
* Note about I2C_C_CLEAR on error:
* The I2C_C_CLEAR on errors will take some time to resolve -- if you were in
* non-idle state and I2C_C_READ, it sets an abort_rx flag and runs through
-@@ -151,6 +191,12 @@ static irqreturn_t bcm2835_i2c_isr(int t
+@@ -153,6 +193,12 @@ static irqreturn_t bcm2835_i2c_isr(int t
}
bcm2835_fill_txfifo(i2c_dev);
return IRQ_HANDLED;
}
-@@ -175,30 +221,25 @@ complete:
+@@ -177,30 +223,25 @@ complete:
return IRQ_HANDLED;
}
time_left = wait_for_completion_timeout(&i2c_dev->completion,
BCM2835_I2C_TIMEOUT);
-@@ -209,31 +250,15 @@ static int bcm2835_i2c_xfer_msg(struct b
+@@ -211,31 +252,15 @@ static int bcm2835_i2c_xfer_msg(struct b
return -ETIMEDOUT;
}
struct bcm2835_i2c_dev {
struct device *dev;
void __iomem *regs;
-@@ -242,7 +240,7 @@ static int bcm2835_i2c_xfer(struct i2c_a
+@@ -244,7 +242,7 @@ static int bcm2835_i2c_xfer(struct i2c_a
bcm2835_i2c_start_transfer(i2c_dev);
time_left = wait_for_completion_timeout(&i2c_dev->completion,
static void bcm2835_fill_txfifo(struct bcm2835_i2c_dev *i2c_dev)
{
u32 val;
-@@ -224,7 +249,7 @@ static int bcm2835_i2c_xfer(struct i2c_a
+@@ -226,7 +251,7 @@ static int bcm2835_i2c_xfer(struct i2c_a
{
struct bcm2835_i2c_dev *i2c_dev = i2c_get_adapdata(adap);
unsigned long time_left;
for (i = 0; i < (num - 1); i++)
if (msgs[i].flags & I2C_M_RD) {
-@@ -233,6 +258,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
+@@ -235,6 +260,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
return -EOPNOTSUPP;
}
i2c_dev->curr_msg = msgs;
i2c_dev->num_msgs = num;
reinit_completion(&i2c_dev->completion);
-@@ -282,7 +311,6 @@ static int bcm2835_i2c_probe(struct plat
+@@ -284,7 +313,6 @@ static int bcm2835_i2c_probe(struct plat
{
struct bcm2835_i2c_dev *i2c_dev;
struct resource *mem, *irq;
int ret;
struct i2c_adapter *adap;
-@@ -306,28 +334,13 @@ static int bcm2835_i2c_probe(struct plat
+@@ -308,28 +336,13 @@ static int bcm2835_i2c_probe(struct plat
}
ret = of_property_read_u32(pdev->dev.of_node, "clock-frequency",
err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR);
if (err) {
-@@ -251,6 +335,13 @@ static int bcm2835_i2c_xfer(struct i2c_a
+@@ -253,6 +337,13 @@ static int bcm2835_i2c_xfer(struct i2c_a
unsigned long time_left;
int i, ret;
for (i = 0; i < (num - 1); i++)
if (msgs[i].flags & I2C_M_RD) {
dev_warn_once(i2c_dev->dev,
-@@ -270,6 +361,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
+@@ -272,6 +363,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
time_left = wait_for_completion_timeout(&i2c_dev->completion,
adap->timeout);
if (!time_left) {
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C,
BCM2835_I2C_C_CLEAR);
-@@ -280,7 +375,9 @@ static int bcm2835_i2c_xfer(struct i2c_a
+@@ -282,7 +377,9 @@ static int bcm2835_i2c_xfer(struct i2c_a
if (!i2c_dev->msg_err)
return num;
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -366,6 +366,7 @@
+@@ -371,6 +371,7 @@
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
+};
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -93,10 +93,13 @@
+@@ -98,10 +98,13 @@
#clock-cells = <1>;
reg = <0x7e101000 0x2000>;
};
rng@7e104000 {
-@@ -398,6 +401,26 @@
+@@ -403,6 +406,26 @@
status = "disabled";
};
aux: aux@0x7e215000 {
compatible = "brcm,bcm2835-aux";
#clock-cells = <1>;
-@@ -457,6 +480,26 @@
+@@ -462,6 +485,26 @@
interrupts = <2 1>;
};
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
-@@ -919,6 +919,8 @@ static unsigned int yenta_probe_irq(stru
+@@ -920,6 +920,8 @@ static unsigned int yenta_probe_irq(stru
* Probe for usable interrupts using the force
* register to generate bogus card status events.
*/
cb_writel(socket, CB_SOCKET_EVENT, -1);
cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
reg = exca_readb(socket, I365_CSCINT);
-@@ -934,6 +936,7 @@ static unsigned int yenta_probe_irq(stru
+@@ -935,6 +937,7 @@ static unsigned int yenta_probe_irq(stru
}
cb_writel(socket, CB_SOCKET_MASK, 0);
exca_writeb(socket, I365_CSCINT, reg);
mask = probe_irq_mask(val) & 0xffff;
-@@ -1018,6 +1021,10 @@ static void yenta_get_socket_capabilitie
+@@ -1019,6 +1022,10 @@ static void yenta_get_socket_capabilitie
else
socket->socket.irq_mask = 0;
dev_info(&socket->dev->dev, "ISA IRQ mask 0x%04x, PCI irq %d\n",
socket->socket.irq_mask, socket->cb_irq);
}
-@@ -1250,6 +1257,15 @@ static int yenta_probe(struct pci_dev *d
+@@ -1251,6 +1258,15 @@ static int yenta_probe(struct pci_dev *d
dev_info(&dev->dev, "Socket status: %08x\n",
cb_readl(socket, CB_SOCKET_STATE));
if (err)
break;
}
-@@ -1458,7 +1495,8 @@ br_multicast_leave_group(struct net_brid
+@@ -1465,7 +1502,8 @@ br_multicast_leave_group(struct net_brid
struct net_bridge_port *port,
struct br_ip *group,
struct bridge_mcast_other_query *other_query,
{
struct net_bridge_mdb_htable *mdb;
struct net_bridge_mdb_entry *mp;
-@@ -1482,7 +1520,7 @@ br_multicast_leave_group(struct net_brid
+@@ -1489,7 +1527,7 @@ br_multicast_leave_group(struct net_brid
for (pp = &mp->ports;
(p = mlock_dereference(*pp, br)) != NULL;
pp = &p->next) {
continue;
rcu_assign_pointer(*pp, p->next);
-@@ -1513,7 +1551,7 @@ br_multicast_leave_group(struct net_brid
+@@ -1520,7 +1558,7 @@ br_multicast_leave_group(struct net_brid
for (p = mlock_dereference(mp->ports, br);
p != NULL;
p = mlock_dereference(p->next, br)) {
continue;
if (!hlist_unhashed(&p->mglist) &&
-@@ -1564,7 +1602,8 @@ out:
+@@ -1571,7 +1609,8 @@ out:
static void br_ip4_multicast_leave_group(struct net_bridge *br,
struct net_bridge_port *port,
__be32 group,
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
-@@ -1579,14 +1618,15 @@ static void br_ip4_multicast_leave_group
+@@ -1586,14 +1625,15 @@ static void br_ip4_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
-@@ -1601,7 +1641,7 @@ static void br_ip6_multicast_leave_group
+@@ -1608,7 +1648,7 @@ static void br_ip6_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
}
#endif
-@@ -1644,6 +1684,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1651,6 +1691,7 @@ static int br_multicast_ipv4_rcv(struct
u16 vid)
{
struct sk_buff *skb_trimmed = NULL;
struct igmphdr *ih;
int err;
-@@ -1659,13 +1700,14 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1666,13 +1707,14 @@ static int br_multicast_ipv4_rcv(struct
}
ih = igmp_hdr(skb);
break;
case IGMPV3_HOST_MEMBERSHIP_REPORT:
err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid);
-@@ -1674,7 +1716,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1681,7 +1723,7 @@ static int br_multicast_ipv4_rcv(struct
err = br_ip4_multicast_query(br, port, skb_trimmed, vid);
break;
case IGMP_HOST_LEAVE_MESSAGE:
break;
}
-@@ -1694,6 +1736,7 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1701,6 +1743,7 @@ static int br_multicast_ipv6_rcv(struct
u16 vid)
{
struct sk_buff *skb_trimmed = NULL;
struct mld_msg *mld;
int err;
-@@ -1713,8 +1756,10 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1720,8 +1763,10 @@ static int br_multicast_ipv6_rcv(struct
switch (mld->mld_type) {
case ICMPV6_MGM_REPORT:
break;
case ICMPV6_MLD2_REPORT:
err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid);
-@@ -1723,7 +1768,8 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1730,7 +1775,8 @@ static int br_multicast_ipv6_rcv(struct
err = br_ip6_multicast_query(br, port, skb_trimmed, vid);
break;
case ICMPV6_MGM_REDUCTION:
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
-@@ -2001,13 +2001,13 @@ static struct sk_buff *smsc95xx_tx_fixup
+@@ -2004,13 +2004,13 @@ static struct sk_buff *smsc95xx_tx_fixup
/* We do not advertise SG, so skbs should be already linearized */
BUG_ON(skb_shinfo(skb)->nr_frags);
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -872,6 +872,7 @@ static const struct flash_info spi_nor_i
+@@ -878,6 +878,7 @@ static const struct flash_info spi_nor_i
{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) },
{ "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
{ "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, 0) },
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1263,6 +1263,13 @@ static int spansion_quad_enable(struct s
+@@ -1269,6 +1269,13 @@ static int spansion_quad_enable(struct s
return ret;
}
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -906,7 +906,7 @@ static const struct flash_info spi_nor_i
+@@ -912,7 +912,7 @@ static const struct flash_info spi_nor_i
{ "s70fl01gs", INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) },
{ "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) },
{ "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256, 0) },
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -922,6 +922,7 @@ static const struct flash_info spi_nor_i
+@@ -928,6 +928,7 @@ static const struct flash_info spi_nor_i
{ "s25fl132k", INFO(0x014016, 0, 64 * 1024, 64, SECT_4K) },
{ "s25fl164k", INFO(0x014017, 0, 64 * 1024, 128, SECT_4K) },
{ "s25fl204k", INFO(0x014013, 0, 64 * 1024, 8, SECT_4K | SPI_NOR_DUAL_READ) },
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -879,6 +879,7 @@ static const struct flash_info spi_nor_i
+@@ -885,6 +885,7 @@ static const struct flash_info spi_nor_i
{ "mx66l1g55g", INFO(0xc2261b, 0, 64 * 1024, 2048, SPI_NOR_QUAD_READ) },
/* Micron */
/* NOTE: double check command sets and memory organization when you add
* more nor chips. This current list focusses on newer chips, which
* have been converging on command sets which including JEDEC ID.
-@@ -1014,6 +1073,13 @@ static const struct flash_info spi_nor_i
+@@ -1020,6 +1079,13 @@ static const struct flash_info spi_nor_i
{ "cat25c09", CAT25_INFO( 128, 8, 32, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) },
{ "cat25c17", CAT25_INFO( 256, 8, 32, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) },
{ "cat25128", CAT25_INFO(2048, 8, 64, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) },
{ },
};
-@@ -1054,7 +1120,12 @@ static int spi_nor_read(struct mtd_info
+@@ -1060,7 +1126,12 @@ static int spi_nor_read(struct mtd_info
return ret;
while (len) {
if (ret == 0) {
/* We shouldn't see 0-length reads */
ret = -EIO;
-@@ -1175,8 +1246,23 @@ static int spi_nor_write(struct mtd_info
+@@ -1181,8 +1252,23 @@ static int spi_nor_write(struct mtd_info
for (i = 0; i < len; ) {
ssize_t written;
WARN_ONCE(page_offset,
"Writing at offset %zu into a NOR page. Writing partial pages may decrease reliability and increase wear of NOR flash.",
page_offset);
-@@ -1184,8 +1270,11 @@ static int spi_nor_write(struct mtd_info
+@@ -1190,8 +1276,11 @@ static int spi_nor_write(struct mtd_info
page_remain = min_t(size_t,
nor->page_size - page_offset, len - i);
if (ret < 0)
goto write_err;
written = ret;
-@@ -1319,6 +1408,47 @@ static int spi_nor_check(struct spi_nor
+@@ -1325,6 +1414,47 @@ static int spi_nor_check(struct spi_nor
return 0;
}
int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
{
const struct flash_info *info = NULL;
-@@ -1367,6 +1497,14 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1373,6 +1503,14 @@ int spi_nor_scan(struct spi_nor *nor, co
mutex_init(&nor->lock);
/*
* Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up
* with the software protection bits set
*/
-@@ -1524,6 +1662,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1530,6 +1668,12 @@ int spi_nor_scan(struct spi_nor *nor, co
nor->read_dummy = spi_nor_read_dummy_cycles(nor);
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1305,6 +1305,9 @@ static int macronix_quad_enable(struct s
+@@ -1311,6 +1311,9 @@ static int macronix_quad_enable(struct s
val = read_sr(nor);
if (val < 0)
return val;
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1263,9 +1263,6 @@ static int spi_nor_write(struct mtd_info
+@@ -1269,9 +1269,6 @@ static int spi_nor_write(struct mtd_info
page_offset = do_div(aux, nor->page_size);
}
static struct seq_rw_config stfsm_s25fl_write4_configs[] = {
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1632,16 +1632,16 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1638,16 +1638,16 @@ int spi_nor_scan(struct spi_nor *nor, co
/* Dedicated 4-byte command set */
switch (nor->flash_read) {
case SPI_NOR_QUAD:
/* Enable/disable 4-byte addressing mode. */
static inline int set_4byte(struct spi_nor *nor, const struct flash_info *info,
int enable)
-@@ -1628,27 +1704,10 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1634,27 +1710,10 @@ int spi_nor_scan(struct spi_nor *nor, co
else if (mtd->size > 0x1000000) {
/* enable 4-byte addressing if the device exceeds 16MiB */
nor->addr_width = 4;
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1017,7 +1017,7 @@ static const struct flash_info spi_nor_i
+@@ -1023,7 +1023,7 @@ static const struct flash_info spi_nor_i
{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) },
{ "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
{ "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, 0) },
writel(irq->mask, adpt->base + EMAC_INT_MASK);
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
-@@ -7578,7 +7578,7 @@ static int rtl8169_poll(struct napi_stru
+@@ -7576,7 +7576,7 @@ static int rtl8169_poll(struct napi_stru
}
if (work_done < budget) {
dma_intr_ena = smsc9420_reg_read(pd, DMAC_INTR_ENA);
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -2705,7 +2705,7 @@ static int stmmac_poll(struct napi_struc
+@@ -2706,7 +2706,7 @@ static int stmmac_poll(struct napi_struc
work_done = stmmac_rx(priv, budget);
if (work_done < budget) {
opt->ops.opt_nflen = 8;
}
-@@ -1187,7 +1187,7 @@ route_lookup:
+@@ -1199,7 +1199,7 @@ route_lookup:
if (encap_limit >= 0) {
init_tel_txopt(&opt, encap_limit);
+ ipv6_push_frag_opts(skb, &opt.ops, &proto);
}
- /* Calculate max headroom for all the headers and adjust
+ skb_push(skb, sizeof(struct ipv6hdr));
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1595,6 +1595,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1601,6 +1601,7 @@ int spi_nor_scan(struct spi_nor *nor, co
if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
JEDEC_MFR(info) == SNOR_MFR_INTEL ||
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1597,6 +1597,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1603,6 +1603,7 @@ int spi_nor_scan(struct spi_nor *nor, co
JEDEC_MFR(info) == SNOR_MFR_INTEL ||
JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
JEDEC_MFR(info) == SNOR_MFR_SST ||
info->flags & SPI_NOR_HAS_LOCK) {
write_enable(nor);
write_sr(nor, 0);
-@@ -1615,7 +1616,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1621,7 +1622,8 @@ int spi_nor_scan(struct spi_nor *nor, co
/* NOR protection support for STmicro/Micron chips and similar */
if (JEDEC_MFR(info) == SNOR_MFR_MICRON ||
depends on ARCH_AT91 || (ARM && COMPILE_TEST)
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1642,10 +1642,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1648,10 +1648,12 @@ int spi_nor_scan(struct spi_nor *nor, co
#ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS
/* prefer "small sector" erase if possible */
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1146,6 +1146,11 @@ static const struct flash_info spi_nor_i
+@@ -1152,6 +1152,11 @@ static const struct flash_info spi_nor_i
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
},
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1014,6 +1014,7 @@ static const struct flash_info spi_nor_i
+@@ -1020,6 +1020,7 @@ static const struct flash_info spi_nor_i
{ "mx25l3205d", INFO(0xc22016, 0, 64 * 1024, 64, SECT_4K) },
{ "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64, SECT_4K) },
{ "mx25l6405d", INFO(0xc22017, 0, 64 * 1024, 128, SECT_4K) },
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1171,6 +1171,10 @@ static const struct flash_info spi_nor_i
+@@ -1177,6 +1177,10 @@ static const struct flash_info spi_nor_i
{ "3S400AN", S3AN_INFO(0x1f2400, 256, 264) },
{ "3S700AN", S3AN_INFO(0x1f2500, 512, 264) },
{ "3S1400AN", S3AN_INFO(0x1f2600, 512, 528) },
+}
--- a/fs/jffs2/super.c
+++ b/fs/jffs2/super.c
-@@ -372,14 +372,41 @@ static int __init init_jffs2_fs(void)
+@@ -370,14 +370,41 @@ static int __init init_jffs2_fs(void)
BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -2610,6 +2632,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -2613,6 +2635,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
/*
* Allocate a dst for local (unicast / anycast) address.
*/
-@@ -2847,7 +2880,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -2850,7 +2883,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -3219,6 +3253,9 @@ static int rt6_fill_node(struct net *net
+@@ -3222,6 +3256,9 @@ static int rt6_fill_node(struct net *net
case -EACCES:
rtm->rtm_type = RTN_PROHIBIT;
break;
case -EAGAIN:
rtm->rtm_type = RTN_THROW;
break;
-@@ -3495,6 +3532,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3490,6 +3527,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -3506,6 +3545,7 @@ static int ip6_route_dev_notify(struct n
+@@ -3501,6 +3540,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put(net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put(net->ipv6.ip6_prohibit_entry->rt6i_idev);
in6_dev_put(net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
-@@ -3721,6 +3761,17 @@ static int __net_init ip6_route_net_init
+@@ -3716,6 +3756,17 @@ static int __net_init ip6_route_net_init
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
#endif
net->ipv6.sysctl.flush_delay = 0;
-@@ -3739,6 +3790,8 @@ out:
+@@ -3734,6 +3785,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -3756,6 +3809,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3751,6 +3804,7 @@ static void __net_exit ip6_route_net_exi
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
}
-@@ -3829,6 +3883,9 @@ void __init ip6_route_init_special_entri
+@@ -3824,6 +3878,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
/*
* Some BIOS implementations leave the Intel GPU interrupts enabled,
* even though no one is handling them (f.e. i915 driver is never loaded).
-@@ -3128,6 +3132,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3132,6 +3136,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
/* Everspin */
{ "mr25h256", CAT25_INFO( 32 * 1024, 1, 256, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) },
-@@ -1014,12 +1028,15 @@ static const struct flash_info spi_nor_i
+@@ -1020,12 +1034,15 @@ static const struct flash_info spi_nor_i
{ "mx25l3205d", INFO(0xc22016, 0, 64 * 1024, 64, SECT_4K) },
{ "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64, SECT_4K) },
{ "mx25l6405d", INFO(0xc22017, 0, 64 * 1024, 128, SECT_4K) },
{ "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
{ "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_QUAD_READ) },
{ "mx66l1g55g", INFO(0xc2261b, 0, 64 * 1024, 2048, SPI_NOR_QUAD_READ) },
-@@ -1033,10 +1050,11 @@ static const struct flash_info spi_nor_i
+@@ -1039,10 +1056,11 @@ static const struct flash_info spi_nor_i
{ "n25q128a11", INFO(0x20bb18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ) },
{ "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ) },
{ "n25q256a", INFO(0x20ba19, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_QUAD_READ) },
/* PMC */
{ "pm25lv512", INFO(0, 0, 32 * 1024, 2, SECT_4K_PMC) },
-@@ -1054,8 +1072,11 @@ static const struct flash_info spi_nor_i
+@@ -1060,8 +1078,11 @@ static const struct flash_info spi_nor_i
{ "s70fl01gs", INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) },
{ "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) },
{ "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256, 0) },
{ "s25fl129p1", INFO(0x012018, 0x4d01, 64 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
{ "s25sl004a", INFO(0x010212, 0, 64 * 1024, 8, 0) },
{ "s25sl008a", INFO(0x010213, 0, 64 * 1024, 16, 0) },
-@@ -1130,6 +1151,9 @@ static const struct flash_info spi_nor_i
+@@ -1136,6 +1157,9 @@ static const struct flash_info spi_nor_i
{ "w25x80", INFO(0xef3014, 0, 64 * 1024, 16, SECT_4K) },
{ "w25x16", INFO(0xef3015, 0, 64 * 1024, 32, SECT_4K) },
{ "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) },
{ "w25q32", INFO(0xef4016, 0, 64 * 1024, 64, SECT_4K) },
{
"w25q32dw", INFO(0xef6016, 0, 64 * 1024, 64,
-@@ -1201,6 +1225,53 @@ static const struct flash_info *spi_nor_
+@@ -1207,6 +1231,53 @@ static const struct flash_info *spi_nor_
id[0], id[1], id[2]);
return ERR_PTR(-ENODEV);
}
static int spi_nor_read(struct mtd_info *mtd, loff_t from, size_t len,
size_t *retlen, u_char *buf)
-@@ -1420,7 +1491,7 @@ static int macronix_quad_enable(struct s
+@@ -1426,7 +1497,7 @@ static int macronix_quad_enable(struct s
* Write status Register and configuration register with 2 bytes
* The first byte will be written to the status register, while the
* second byte will be written to the configuration register.
*/
static int write_sr_cr(struct spi_nor *nor, u16 val)
{
-@@ -1468,6 +1539,24 @@ static int spansion_quad_enable(struct s
+@@ -1474,6 +1545,24 @@ static int spansion_quad_enable(struct s
return 0;
}
static int set_quad_mode(struct spi_nor *nor, const struct flash_info *info)
{
int status;
-@@ -1614,9 +1703,25 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1620,9 +1709,25 @@ int spi_nor_scan(struct spi_nor *nor, co
write_sr(nor, 0);
spi_nor_wait_till_ready(nor);
}
mtd->priv = nor;
mtd->type = MTD_NORFLASH;
mtd->writesize = 1;
-@@ -1650,6 +1755,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1656,6 +1761,8 @@ int spi_nor_scan(struct spi_nor *nor, co
nor->flags |= SNOR_F_USE_FSR;
if (info->flags & SPI_NOR_HAS_TB)
nor->flags |= SNOR_F_HAS_SR_TB;
#ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS
/* prefer "small sector" erase if possible */
-@@ -1689,9 +1796,15 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1695,9 +1802,15 @@ int spi_nor_scan(struct spi_nor *nor, co
/* Some devices cannot do fast-read, no matter what DT tells us */
if (info->flags & SPI_NOR_NO_FR)
nor->flash_read = SPI_NOR_NORMAL;
ret = set_quad_mode(nor, info);
if (ret) {
dev_err(dev, "quad mode not supported\n");
-@@ -1704,6 +1817,9 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1710,6 +1823,9 @@ int spi_nor_scan(struct spi_nor *nor, co
/* Default commands */
switch (nor->flash_read) {
}
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -4673,3 +4673,11 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IN
+@@ -4677,3 +4677,11 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2031, quirk_no_aersid);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2032, quirk_no_aersid);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2033, quirk_no_aersid);
+MODULE_DESCRIPTION("Freescale Backplane driver");
+MODULE_AUTHOR("Shaohui Xie <Shaohui.Xie@freescale.com>");
+MODULE_LICENSE("GPL v2");
---- a/drivers/net/phy/marvell.c
-+++ b/drivers/net/phy/marvell.c
-@@ -1610,7 +1610,7 @@ static struct phy_driver marvell_drivers
- .flags = PHY_HAS_INTERRUPT,
- .probe = marvell_probe,
- .config_init = &m88e1145_config_init,
-- .config_aneg = &marvell_config_aneg,
-+ .config_aneg = &m88e1101_config_aneg,
- .read_status = &genphy_read_status,
- .ack_interrupt = &marvell_ack_interrupt,
- .config_intr = &marvell_config_intr,
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -591,7 +591,7 @@ int phy_mii_ioctl(struct phy_device *phy
};
struct tcrypt_result {
-@@ -1333,6 +1333,10 @@ static int do_test(const char *alg, u32
+@@ -1336,6 +1336,10 @@ static int do_test(const char *alg, u32
ret += tcrypt_test("hmac(sha3-512)");
break;
case 150:
ret += tcrypt_test("ansi_cprng");
break;
-@@ -1394,6 +1398,9 @@ static int do_test(const char *alg, u32
+@@ -1397,6 +1401,9 @@ static int do_test(const char *alg, u32
case 190:
ret += tcrypt_test("authenc(hmac(sha512),cbc(des3_ede))");
break;
case 200:
test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0,
speed_template_16_24_32);
-@@ -1408,9 +1415,9 @@ static int do_test(const char *alg, u32
+@@ -1411,9 +1418,9 @@ static int do_test(const char *alg, u32
test_cipher_speed("lrw(aes)", DECRYPT, sec, NULL, 0,
speed_template_32_40_48);
test_cipher_speed("xts(aes)", ENCRYPT, sec, NULL, 0,
test_cipher_speed("cts(cbc(aes))", ENCRYPT, sec, NULL, 0,
speed_template_16_24_32);
test_cipher_speed("cts(cbc(aes))", DECRYPT, sec, NULL, 0,
-@@ -1841,9 +1848,9 @@ static int do_test(const char *alg, u32
+@@ -1844,9 +1851,9 @@ static int do_test(const char *alg, u32
test_acipher_speed("lrw(aes)", DECRYPT, sec, NULL, 0,
speed_template_32_40_48);
test_acipher_speed("xts(aes)", ENCRYPT, sec, NULL, 0,
extern bool caam_little_end;
+extern bool caam_imx;
- #define caam_to_cpu(len) \
- static inline u##len caam##len ## _to_cpu(u##len val) \
+ #define caam_to_cpu(len) \
+ static inline u##len caam##len ## _to_cpu(u##len val) \
@@ -154,13 +156,10 @@ static inline u64 rd_reg64(void __iomem
#else /* CONFIG_64BIT */
static inline void wr_reg64(void __iomem *reg, u64 data)
pkt_len = le32_to_cpu(rx_desc->opts1) & RX_LEN_MASK;
if (pkt_len < ETH_ZLEN)
break;
-@@ -4510,6 +4515,7 @@ static struct usb_device_id rtl8152_tabl
+@@ -4513,6 +4518,7 @@ static struct usb_device_id rtl8152_tabl
{REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x304f)},
{REALTEK_USB_DEVICE(VENDOR_ID_LINKSYS, 0x0041)},
{REALTEK_USB_DEVICE(VENDOR_ID_NVIDIA, 0x09ff)},