summaryrefslogtreecommitdiff
path: root/target/linux/ixp4xx
diff options
context:
space:
mode:
authorJonas Gorski <jogo@openwrt.org>2015-05-21 19:32:46 +0000
committerJonas Gorski <jogo@openwrt.org>2015-05-21 19:32:46 +0000
commit76d079204df113afa9e382a43abb5e1a2135150d (patch)
tree8e472ab203e8d6a47dc2e285b3becbfca35d04c6 /target/linux/ixp4xx
parent072937888e133f5e97fd05a7496eaf7eeae04079 (diff)
downloadmtk-20170518-76d079204df113afa9e382a43abb5e1a2135150d.zip
mtk-20170518-76d079204df113afa9e382a43abb5e1a2135150d.tar.gz
mtk-20170518-76d079204df113afa9e382a43abb5e1a2135150d.tar.bz2
kernel: update 3.18 to 3.18.14
Changelogs: * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.12 * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.13 * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.14 Build tested on brcm63xx and ipq806x, runtested on brcm63xx. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 45711
Diffstat (limited to 'target/linux/ixp4xx')
-rw-r--r--target/linux/ixp4xx/patches-3.18/001-arm-ixp4xx-set-cohorent_dma_mask-for-ethernet-platfo.patch58
-rw-r--r--target/linux/ixp4xx/patches-3.18/002-ixp4xx_eth-use-parent-device-for-dma-allocations.patch14
-rw-r--r--target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch28
-rw-r--r--target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch6
-rw-r--r--target/linux/ixp4xx/patches-3.18/090-increase_entropy_pools.patch2
-rw-r--r--target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch22
-rw-r--r--target/linux/ixp4xx/patches-3.18/175-avila_hss_audio_support.patch4
-rw-r--r--target/linux/ixp4xx/patches-3.18/203-npe_driver_mask_phy_features.patch2
-rw-r--r--target/linux/ixp4xx/patches-3.18/205-npe_driver_separate_phy_functions.patch16
-rw-r--r--target/linux/ixp4xx/patches-3.18/206-npe_driver_add_update_link_function.patch6
-rw-r--r--target/linux/ixp4xx/patches-3.18/207-npe_driver_multiphy_support.patch8
-rw-r--r--target/linux/ixp4xx/patches-3.18/295-latch_led_driver.patch6
-rw-r--r--target/linux/ixp4xx/patches-3.18/304-ixp4xx_eth_jumboframe.patch6
-rw-r--r--target/linux/ixp4xx/patches-3.18/600-skb_avoid_dmabounce.patch2
-rw-r--r--target/linux/ixp4xx/patches-3.18/910-ixp4xx-nr_irq_lines.patch2
15 files changed, 80 insertions, 102 deletions
diff --git a/target/linux/ixp4xx/patches-3.18/001-arm-ixp4xx-set-cohorent_dma_mask-for-ethernet-platfo.patch b/target/linux/ixp4xx/patches-3.18/001-arm-ixp4xx-set-cohorent_dma_mask-for-ethernet-platfo.patch
index 495df07..3ca3eb7 100644
--- a/target/linux/ixp4xx/patches-3.18/001-arm-ixp4xx-set-cohorent_dma_mask-for-ethernet-platfo.patch
+++ b/target/linux/ixp4xx/patches-3.18/001-arm-ixp4xx-set-cohorent_dma_mask-for-ethernet-platfo.patch
@@ -18,11 +18,9 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
arch/arm/mach-ixp4xx/vulcan-setup.c | 2 ++
7 files changed, 14 insertions(+)
-Index: linux-3.18.5/arch/arm/mach-ixp4xx/fsg-setup.c
-===================================================================
---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/fsg-setup.c 2015-02-09 13:54:27.000000000 +0100
-+++ linux-3.18.5/arch/arm/mach-ixp4xx/fsg-setup.c 2015-02-09 13:54:43.025969682 +0100
-@@ -142,12 +142,14 @@
+--- a/arch/arm/mach-ixp4xx/fsg-setup.c
++++ b/arch/arm/mach-ixp4xx/fsg-setup.c
+@@ -142,12 +142,14 @@ static struct platform_device fsg_eth[]
.id = IXP4XX_ETH_NPEB,
.dev = {
.platform_data = fsg_plat_eth,
@@ -37,11 +35,9 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/fsg-setup.c
},
}
};
-Index: linux-3.18.5/arch/arm/mach-ixp4xx/goramo_mlr.c
-===================================================================
---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/goramo_mlr.c 2015-02-09 13:54:27.000000000 +0100
-+++ linux-3.18.5/arch/arm/mach-ixp4xx/goramo_mlr.c 2015-02-09 13:54:43.025969682 +0100
-@@ -295,10 +295,12 @@
+--- a/arch/arm/mach-ixp4xx/goramo_mlr.c
++++ b/arch/arm/mach-ixp4xx/goramo_mlr.c
+@@ -295,10 +295,12 @@ static struct platform_device device_eth
.name = "ixp4xx_eth",
.id = IXP4XX_ETH_NPEB,
.dev.platform_data = eth_plat,
@@ -54,10 +50,8 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/goramo_mlr.c
}
};
-Index: linux-3.18.5/arch/arm/mach-ixp4xx/ixdp425-setup.c
-===================================================================
---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/ixdp425-setup.c 2015-02-09 13:54:27.000000000 +0100
-+++ linux-3.18.5/arch/arm/mach-ixp4xx/ixdp425-setup.c 2015-02-09 13:54:43.025969682 +0100
+--- a/arch/arm/mach-ixp4xx/ixdp425-setup.c
++++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c
@@ -20,6 +20,7 @@
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
@@ -66,7 +60,7 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/ixdp425-setup.c
#include <linux/gpio.h>
#include <asm/types.h>
#include <asm/setup.h>
-@@ -196,10 +197,12 @@
+@@ -196,10 +197,12 @@ static struct platform_device ixdp425_et
.name = "ixp4xx_eth",
.id = IXP4XX_ETH_NPEB,
.dev.platform_data = ixdp425_plat_eth,
@@ -79,11 +73,9 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/ixdp425-setup.c
}
};
-Index: linux-3.18.5/arch/arm/mach-ixp4xx/nas100d-setup.c
-===================================================================
---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/nas100d-setup.c 2015-02-09 13:54:27.000000000 +0100
-+++ linux-3.18.5/arch/arm/mach-ixp4xx/nas100d-setup.c 2015-02-09 13:54:43.025969682 +0100
-@@ -170,6 +170,7 @@
+--- a/arch/arm/mach-ixp4xx/nas100d-setup.c
++++ b/arch/arm/mach-ixp4xx/nas100d-setup.c
+@@ -170,6 +170,7 @@ static struct platform_device nas100d_et
.name = "ixp4xx_eth",
.id = IXP4XX_ETH_NPEB,
.dev.platform_data = nas100d_plat_eth,
@@ -91,11 +83,9 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/nas100d-setup.c
}
};
-Index: linux-3.18.5/arch/arm/mach-ixp4xx/nslu2-setup.c
-===================================================================
---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/nslu2-setup.c 2015-02-09 13:54:27.000000000 +0100
-+++ linux-3.18.5/arch/arm/mach-ixp4xx/nslu2-setup.c 2015-02-09 13:54:43.025969682 +0100
-@@ -182,6 +182,7 @@
+--- a/arch/arm/mach-ixp4xx/nslu2-setup.c
++++ b/arch/arm/mach-ixp4xx/nslu2-setup.c
+@@ -182,6 +182,7 @@ static struct platform_device nslu2_eth[
.name = "ixp4xx_eth",
.id = IXP4XX_ETH_NPEB,
.dev.platform_data = nslu2_plat_eth,
@@ -103,10 +93,8 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/nslu2-setup.c
}
};
-Index: linux-3.18.5/arch/arm/mach-ixp4xx/omixp-setup.c
-===================================================================
---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/omixp-setup.c 2015-02-09 13:54:27.000000000 +0100
-+++ linux-3.18.5/arch/arm/mach-ixp4xx/omixp-setup.c 2015-02-09 13:55:01.150008153 +0100
+--- a/arch/arm/mach-ixp4xx/omixp-setup.c
++++ b/arch/arm/mach-ixp4xx/omixp-setup.c
@@ -17,6 +17,7 @@
#include <linux/serial_8250.h>
#include <linux/mtd/mtd.h>
@@ -115,7 +103,7 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/omixp-setup.c
#include <linux/leds.h>
#include <asm/setup.h>
-@@ -188,10 +189,12 @@
+@@ -188,10 +189,12 @@ static struct platform_device ixdp425_et
.name = "ixp4xx_eth",
.id = IXP4XX_ETH_NPEB,
.dev.platform_data = ixdp425_plat_eth,
@@ -128,11 +116,9 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/omixp-setup.c
},
};
-Index: linux-3.18.5/arch/arm/mach-ixp4xx/vulcan-setup.c
-===================================================================
---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/vulcan-setup.c 2015-02-09 13:54:27.000000000 +0100
-+++ linux-3.18.5/arch/arm/mach-ixp4xx/vulcan-setup.c 2015-02-09 13:54:43.025969682 +0100
-@@ -139,6 +139,7 @@
+--- a/arch/arm/mach-ixp4xx/vulcan-setup.c
++++ b/arch/arm/mach-ixp4xx/vulcan-setup.c
+@@ -139,6 +139,7 @@ static struct platform_device vulcan_eth
.id = IXP4XX_ETH_NPEB,
.dev = {
.platform_data = &vulcan_plat_eth[0],
@@ -140,7 +126,7 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/vulcan-setup.c
},
},
[1] = {
-@@ -146,6 +147,7 @@
+@@ -146,6 +147,7 @@ static struct platform_device vulcan_eth
.id = IXP4XX_ETH_NPEC,
.dev = {
.platform_data = &vulcan_plat_eth[1],
diff --git a/target/linux/ixp4xx/patches-3.18/002-ixp4xx_eth-use-parent-device-for-dma-allocations.patch b/target/linux/ixp4xx/patches-3.18/002-ixp4xx_eth-use-parent-device-for-dma-allocations.patch
index 702d182..ceaf21b 100644
--- a/target/linux/ixp4xx/patches-3.18/002-ixp4xx_eth-use-parent-device-for-dma-allocations.patch
+++ b/target/linux/ixp4xx/patches-3.18/002-ixp4xx_eth-use-parent-device-for-dma-allocations.patch
@@ -15,7 +15,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
--- a/drivers/net/ethernet/xscale/ixp4xx_eth.c
+++ b/drivers/net/ethernet/xscale/ixp4xx_eth.c
-@@ -661,10 +661,10 @@ static inline void queue_put_desc(unsign
+@@ -657,10 +657,10 @@ static inline void queue_put_desc(unsign
static inline void dma_unmap_tx(struct port *port, struct desc *desc)
{
#ifdef __ARMEB__
@@ -28,7 +28,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
ALIGN((desc->data & 3) + desc->buf_len, 4),
DMA_TO_DEVICE);
#endif
-@@ -731,9 +731,9 @@ static int eth_poll(struct napi_struct *
+@@ -727,9 +727,9 @@ static int eth_poll(struct napi_struct *
#ifdef __ARMEB__
if ((skb = netdev_alloc_skb(dev, RX_BUFF_SIZE))) {
@@ -40,7 +40,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
dev_kfree_skb(skb);
skb = NULL;
}
-@@ -756,10 +756,11 @@ static int eth_poll(struct napi_struct *
+@@ -752,10 +752,11 @@ static int eth_poll(struct napi_struct *
#ifdef __ARMEB__
temp = skb;
skb = port->rx_buff_tab[n];
@@ -54,7 +54,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
RX_BUFF_SIZE, DMA_FROM_DEVICE);
memcpy_swab32((u32 *)skb->data, (u32 *)port->rx_buff_tab[n],
ALIGN(NET_IP_ALIGN + desc->pkt_len, 4) / 4);
-@@ -878,7 +879,7 @@ static int eth_xmit(struct sk_buff *skb,
+@@ -874,7 +875,7 @@ static int eth_xmit(struct sk_buff *skb,
memcpy_swab32(mem, (u32 *)((int)skb->data & ~3), bytes / 4);
#endif
@@ -63,7 +63,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
if (dma_mapping_error(&dev->dev, phys)) {
dev_kfree_skb(skb);
#ifndef __ARMEB__
-@@ -1128,7 +1129,7 @@ static int init_queues(struct port *port
+@@ -1124,7 +1125,7 @@ static int init_queues(struct port *port
int i;
if (!ports_open) {
@@ -72,7 +72,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
POOL_ALLOC_SIZE, 32, 0);
if (!dma_pool)
return -ENOMEM;
-@@ -1156,9 +1157,9 @@ static int init_queues(struct port *port
+@@ -1152,9 +1153,9 @@ static int init_queues(struct port *port
data = buff;
#endif
desc->buf_len = MAX_MRU;
@@ -84,7 +84,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
free_buffer(buff);
return -EIO;
}
-@@ -1178,7 +1179,7 @@ static void destroy_queues(struct port *
+@@ -1174,7 +1175,7 @@ static void destroy_queues(struct port *
struct desc *desc = rx_desc_ptr(port, i);
buffer_t *buff = port->rx_buff_tab[i];
if (buff) {
diff --git a/target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch b/target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch
index 00b7b0c..4732d16 100644
--- a/target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch
+++ b/target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch
@@ -1,8 +1,6 @@
-Index: linux-3.18.5/drivers/gpio/Kconfig
-===================================================================
---- linux-3.18.5.orig/drivers/gpio/Kconfig 2015-01-30 02:41:03.000000000 +0100
-+++ linux-3.18.5/drivers/gpio/Kconfig 2015-02-09 13:55:16.942041668 +0100
-@@ -794,6 +794,14 @@
+--- a/drivers/gpio/Kconfig
++++ b/drivers/gpio/Kconfig
+@@ -794,6 +794,14 @@ config GPIO_RDC321X
Support for the RDC R321x SoC GPIOs over southbridge
PCI configuration space.
@@ -17,19 +15,15 @@ Index: linux-3.18.5/drivers/gpio/Kconfig
comment "SPI GPIO expanders:"
config GPIO_MAX7301
-Index: linux-3.18.5/drivers/gpio/Makefile
-===================================================================
---- linux-3.18.5.orig/drivers/gpio/Makefile 2015-01-30 02:41:03.000000000 +0100
-+++ linux-3.18.5/drivers/gpio/Makefile 2015-02-09 13:56:05.990145732 +0100
-@@ -106,3 +106,4 @@
+--- a/drivers/gpio/Makefile
++++ b/drivers/gpio/Makefile
+@@ -106,3 +106,4 @@ obj-$(CONFIG_GPIO_XILINX) += gpio-xilinx
obj-$(CONFIG_GPIO_XTENSA) += gpio-xtensa.o
obj-$(CONFIG_GPIO_ZEVIO) += gpio-zevio.o
obj-$(CONFIG_GPIO_ZYNQ) += gpio-zynq.o
+obj-$(CONFIG_GPIO_GW_I2C_PLD) += gw_i2c_pld.o
-Index: linux-3.18.5/drivers/gpio/gw_i2c_pld.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.18.5/drivers/gpio/gw_i2c_pld.c 2015-02-09 14:02:00.146895858 +0100
+--- /dev/null
++++ b/drivers/gpio/gw_i2c_pld.c
@@ -0,0 +1,371 @@
+/*
+ * Gateworks I2C PLD GPIO expander
@@ -402,10 +396,8 @@ Index: linux-3.18.5/drivers/gpio/gw_i2c_pld.c
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Chris Lang");
-Index: linux-3.18.5/include/linux/i2c/gw_i2c_pld.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-3.18.5/include/linux/i2c/gw_i2c_pld.h 2015-02-09 13:55:16.946041675 +0100
+--- /dev/null
++++ b/include/linux/i2c/gw_i2c_pld.h
@@ -0,0 +1,20 @@
+#ifndef __LINUX_GW_I2C_PLD_H
+#define __LINUX_GW_I2C_PLD_H
diff --git a/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch b/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch
index c71ffd6..0e51793 100644
--- a/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch
+++ b/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
-@@ -93,22 +93,7 @@
+@@ -93,22 +93,7 @@ void __init ixp4xx_map_io(void)
/*
* GPIO-functions
*/
@@ -24,7 +24,7 @@
{
if (direction == IXP4XX_GPIO_IN)
*IXP4XX_GPIO_GPOER |= (1 << line);
-@@ -116,17 +101,17 @@
+@@ -116,17 +101,17 @@ static void gpio_line_config(u8 line, u3
*IXP4XX_GPIO_GPOER &= ~(1 << line);
}
@@ -49,7 +49,7 @@
/*************************************************************************
--- a/arch/arm/mach-ixp4xx/include/mach/platform.h
+++ b/arch/arm/mach-ixp4xx/include/mach/platform.h
-@@ -131,5 +131,21 @@
+@@ -131,5 +131,21 @@ struct pci_sys_data;
extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
extern struct pci_ops ixp4xx_ops;
diff --git a/target/linux/ixp4xx/patches-3.18/090-increase_entropy_pools.patch b/target/linux/ixp4xx/patches-3.18/090-increase_entropy_pools.patch
index 991b8d1..285505c 100644
--- a/target/linux/ixp4xx/patches-3.18/090-increase_entropy_pools.patch
+++ b/target/linux/ixp4xx/patches-3.18/090-increase_entropy_pools.patch
@@ -1,6 +1,6 @@
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
-@@ -280,11 +280,11 @@
+@@ -285,11 +285,11 @@
/*
* Configuration information
*/
diff --git a/target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch b/target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch
index 1c80d16..54dc905 100644
--- a/target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch
+++ b/target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch
@@ -1,6 +1,6 @@
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
-@@ -410,6 +410,20 @@ static void mem_serial_out(struct uart_p
+@@ -416,6 +416,20 @@ static void mem_serial_out(struct uart_p
writeb(value, p->membase + offset);
}
@@ -21,7 +21,7 @@
static void mem32_serial_out(struct uart_port *p, int offset, int value)
{
offset = offset << p->regshift;
-@@ -461,6 +475,11 @@ static void set_io_from_upio(struct uart
+@@ -466,6 +480,11 @@ static void set_io_from_upio(struct uart
p->serial_out = mem32_serial_out;
break;
@@ -33,7 +33,7 @@
#if defined(CONFIG_MIPS_ALCHEMY) || defined(CONFIG_SERIAL_8250_RT288X)
case UPIO_AU:
p->serial_in = au_serial_in;
-@@ -486,6 +505,7 @@ serial_port_out_sync(struct uart_port *p
+@@ -491,6 +510,7 @@ serial_port_out_sync(struct uart_port *p
switch (p->iotype) {
case UPIO_MEM:
case UPIO_MEM32:
@@ -41,7 +41,7 @@
case UPIO_AU:
p->serial_out(p, offset, value);
p->serial_in(p, UART_LCR); /* safe, no side-effects */
-@@ -2538,6 +2558,7 @@ static int serial8250_request_std_resour
+@@ -2655,6 +2675,7 @@ static int serial8250_request_std_resour
case UPIO_TSI:
case UPIO_MEM32:
case UPIO_MEM:
@@ -49,7 +49,7 @@
if (!port->mapbase)
break;
-@@ -2574,6 +2595,7 @@ static void serial8250_release_std_resou
+@@ -2691,6 +2712,7 @@ static void serial8250_release_std_resou
case UPIO_TSI:
case UPIO_MEM32:
case UPIO_MEM:
@@ -57,7 +57,7 @@
if (!port->mapbase)
break;
-@@ -3113,6 +3135,7 @@ static int serial8250_probe(struct platf
+@@ -3424,6 +3446,7 @@ static int serial8250_probe(struct platf
uart.port.set_termios = p->set_termios;
uart.port.pm = p->pm;
uart.port.dev = &dev->dev;
@@ -65,7 +65,7 @@
uart.port.irqflags |= irqflag;
ret = serial8250_register_8250_port(&uart);
if (ret < 0) {
-@@ -3264,6 +3287,7 @@ int serial8250_register_8250_port(struct
+@@ -3580,6 +3603,7 @@ int serial8250_register_8250_port(struct
uart->port.flags = up->port.flags | UPF_BOOT_AUTOCONF;
uart->bugs = up->bugs;
uart->port.mapbase = up->port.mapbase;
@@ -83,7 +83,7 @@
case UPIO_MEM:
case UPIO_MEM32:
case UPIO_AU:
-@@ -2711,6 +2712,7 @@ int uart_match_port(struct uart_port *po
+@@ -2736,6 +2737,7 @@ int uart_match_port(struct uart_port *po
case UPIO_HUB6:
return (port1->iobase == port2->iobase) &&
(port1->hub6 == port2->hub6);
@@ -103,7 +103,7 @@
unsigned int type; /* If UPF_FIXED_TYPE */
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
-@@ -141,6 +141,7 @@ struct uart_port {
+@@ -146,6 +146,7 @@ struct uart_port {
#define UPIO_MEM32 (3)
#define UPIO_AU (4) /* Au1x00 and RT288x type IO */
#define UPIO_TSI (5) /* Tsi108/109 type IO */
@@ -111,8 +111,8 @@
unsigned int read_status_mask; /* driver specific */
unsigned int ignore_status_mask; /* driver specific */
-@@ -189,6 +190,7 @@ struct uart_port {
-
+@@ -202,6 +203,7 @@ struct uart_port {
+ int hw_stopped; /* sw-assisted CTS flow state */
unsigned int mctrl; /* current modem ctrl settings */
unsigned int timeout; /* character-based timeout */
+ unsigned int rw_delay; /* udelay for slow busses, IXP4XX Expansion Bus */
diff --git a/target/linux/ixp4xx/patches-3.18/175-avila_hss_audio_support.patch b/target/linux/ixp4xx/patches-3.18/175-avila_hss_audio_support.patch
index ac19851..92342bf 100644
--- a/target/linux/ixp4xx/patches-3.18/175-avila_hss_audio_support.patch
+++ b/target/linux/ixp4xx/patches-3.18/175-avila_hss_audio_support.patch
@@ -1,6 +1,6 @@
--- a/sound/soc/Kconfig
+++ b/sound/soc/Kconfig
-@@ -54,6 +54,7 @@ source "sound/soc/spear/Kconfig"
+@@ -55,6 +55,7 @@ source "sound/soc/spear/Kconfig"
source "sound/soc/tegra/Kconfig"
source "sound/soc/txx9/Kconfig"
source "sound/soc/ux500/Kconfig"
@@ -10,7 +10,7 @@
source "sound/soc/codecs/Kconfig"
--- a/sound/soc/Makefile
+++ b/sound/soc/Makefile
-@@ -31,3 +31,4 @@ obj-$(CONFIG_SND_SOC) += spear/
+@@ -32,3 +32,4 @@ obj-$(CONFIG_SND_SOC) += spear/
obj-$(CONFIG_SND_SOC) += tegra/
obj-$(CONFIG_SND_SOC) += txx9/
obj-$(CONFIG_SND_SOC) += ux500/
diff --git a/target/linux/ixp4xx/patches-3.18/203-npe_driver_mask_phy_features.patch b/target/linux/ixp4xx/patches-3.18/203-npe_driver_mask_phy_features.patch
index 7d35781..359873d 100644
--- a/target/linux/ixp4xx/patches-3.18/203-npe_driver_mask_phy_features.patch
+++ b/target/linux/ixp4xx/patches-3.18/203-npe_driver_mask_phy_features.patch
@@ -1,6 +1,6 @@
--- a/drivers/net/ethernet/xscale/ixp4xx_eth.c
+++ b/drivers/net/ethernet/xscale/ixp4xx_eth.c
-@@ -1483,6 +1483,10 @@ static int eth_init_one(struct platform_
+@@ -1474,6 +1474,10 @@ static int eth_init_one(struct platform_
goto err_free_mem;
}
diff --git a/target/linux/ixp4xx/patches-3.18/205-npe_driver_separate_phy_functions.patch b/target/linux/ixp4xx/patches-3.18/205-npe_driver_separate_phy_functions.patch
index fa577e2..6d1eb7b 100644
--- a/target/linux/ixp4xx/patches-3.18/205-npe_driver_separate_phy_functions.patch
+++ b/target/linux/ixp4xx/patches-3.18/205-npe_driver_separate_phy_functions.patch
@@ -9,7 +9,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch
--- a/drivers/net/ethernet/xscale/ixp4xx_eth.c
+++ b/drivers/net/ethernet/xscale/ixp4xx_eth.c
-@@ -593,6 +593,51 @@ static void ixp4xx_adjust_link(struct ne
+@@ -589,6 +589,51 @@ static void ixp4xx_adjust_link(struct ne
dev->name, port->speed, port->duplex ? "full" : "half");
}
@@ -61,7 +61,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch
static inline void debug_pkt(struct net_device *dev, const char *func,
u8 *data, int len)
-@@ -1263,8 +1308,7 @@ static int eth_open(struct net_device *d
+@@ -1259,8 +1304,7 @@ static int eth_open(struct net_device *d
return err;
}
@@ -71,7 +71,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch
for (i = 0; i < ETH_ALEN; i++)
__raw_writel(dev->dev_addr[i], &port->regs->hw_addr[i]);
-@@ -1385,7 +1429,7 @@ static int eth_close(struct net_device *
+@@ -1381,7 +1425,7 @@ static int eth_close(struct net_device *
printk(KERN_CRIT "%s: unable to disable loopback\n",
dev->name);
@@ -80,15 +80,15 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch
if (!ports_open)
qmgr_disable_irq(TXDONE_QUEUE);
-@@ -1411,7 +1455,6 @@ static int eth_init_one(struct platform_
+@@ -1407,7 +1451,6 @@ static int eth_init_one(struct platform_
struct net_device *dev;
struct eth_plat_info *plat = dev_get_platdata(&pdev->dev);
u32 regs_phys;
- char phy_id[MII_BUS_ID_SIZE + 3];
int err;
- if (ptp_filter_init(ptp_filter, ARRAY_SIZE(ptp_filter))) {
-@@ -1474,20 +1517,9 @@ static int eth_init_one(struct platform_
+ if (!(dev = alloc_etherdev(sizeof(struct port))))
+@@ -1465,20 +1508,9 @@ static int eth_init_one(struct platform_
__raw_writel(DEFAULT_CORE_CNTRL, &port->regs->core_control);
udelay(50);
@@ -111,7 +111,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch
if ((err = register_netdev(dev)))
goto err_phy_dis;
-@@ -1498,7 +1530,7 @@ static int eth_init_one(struct platform_
+@@ -1489,7 +1521,7 @@ static int eth_init_one(struct platform_
return 0;
err_phy_dis:
@@ -120,7 +120,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch
err_free_mem:
npe_port_tab[NPE_ID(port->id)] = NULL;
release_resource(port->mem_res);
-@@ -1515,7 +1547,7 @@ static int eth_remove_one(struct platfor
+@@ -1506,7 +1538,7 @@ static int eth_remove_one(struct platfor
struct port *port = netdev_priv(dev);
unregister_netdev(dev);
diff --git a/target/linux/ixp4xx/patches-3.18/206-npe_driver_add_update_link_function.patch b/target/linux/ixp4xx/patches-3.18/206-npe_driver_add_update_link_function.patch
index cb06069..f1a7707 100644
--- a/target/linux/ixp4xx/patches-3.18/206-npe_driver_add_update_link_function.patch
+++ b/target/linux/ixp4xx/patches-3.18/206-npe_driver_add_update_link_function.patch
@@ -9,7 +9,7 @@
u8 firmware[4];
int hwts_tx_en;
int hwts_rx_en;
-@@ -562,37 +562,52 @@ static void ixp4xx_mdio_remove(void)
+@@ -558,37 +558,52 @@ static void ixp4xx_mdio_remove(void)
mdiobus_free(mdio_bus);
}
@@ -77,7 +77,7 @@
static int ixp4xx_phy_connect(struct net_device *dev)
{
struct port *port = netdev_priv(dev);
-@@ -628,7 +643,6 @@ static void ixp4xx_phy_start(struct net_
+@@ -624,7 +639,6 @@ static void ixp4xx_phy_start(struct net_
{
struct port *port = netdev_priv(dev);
@@ -85,7 +85,7 @@
phy_start(port->phydev);
}
-@@ -1524,6 +1538,10 @@ static int eth_init_one(struct platform_
+@@ -1515,6 +1529,10 @@ static int eth_init_one(struct platform_
if ((err = register_netdev(dev)))
goto err_phy_dis;
diff --git a/target/linux/ixp4xx/patches-3.18/207-npe_driver_multiphy_support.patch b/target/linux/ixp4xx/patches-3.18/207-npe_driver_multiphy_support.patch
index c1dda69..32035ab 100644
--- a/target/linux/ixp4xx/patches-3.18/207-npe_driver_multiphy_support.patch
+++ b/target/linux/ixp4xx/patches-3.18/207-npe_driver_multiphy_support.patch
@@ -37,7 +37,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer
/* Information about built-in HSS (synchronous serial) interfaces */
--- a/drivers/net/ethernet/xscale/ixp4xx_eth.c
+++ b/drivers/net/ethernet/xscale/ixp4xx_eth.c
-@@ -614,6 +614,37 @@ static int ixp4xx_phy_connect(struct net
+@@ -610,6 +610,37 @@ static int ixp4xx_phy_connect(struct net
struct eth_plat_info *plat = port->plat;
char phy_id[MII_BUS_ID_SIZE + 3];
@@ -75,7 +75,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer
snprintf(phy_id, MII_BUS_ID_SIZE + 3, PHY_ID_FMT,
mdio_bus->id, plat->phy);
port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link,
-@@ -636,21 +667,32 @@ static void ixp4xx_phy_disconnect(struct
+@@ -632,21 +663,32 @@ static void ixp4xx_phy_disconnect(struct
{
struct port *port = netdev_priv(dev);
@@ -111,7 +111,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer
}
static inline void debug_pkt(struct net_device *dev, const char *func,
-@@ -1052,6 +1094,9 @@ static int eth_ioctl(struct net_device *
+@@ -1048,6 +1090,9 @@ static int eth_ioctl(struct net_device *
return hwtstamp_get(dev, req);
}
@@ -121,7 +121,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer
return phy_mii_ioctl(port->phydev, req, cmd);
}
-@@ -1072,18 +1117,30 @@ static void ixp4xx_get_drvinfo(struct ne
+@@ -1068,18 +1113,30 @@ static void ixp4xx_get_drvinfo(struct ne
static int ixp4xx_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
{
struct port *port = netdev_priv(dev);
diff --git a/target/linux/ixp4xx/patches-3.18/295-latch_led_driver.patch b/target/linux/ixp4xx/patches-3.18/295-latch_led_driver.patch
index 0d5119d..97d4445 100644
--- a/target/linux/ixp4xx/patches-3.18/295-latch_led_driver.patch
+++ b/target/linux/ixp4xx/patches-3.18/295-latch_led_driver.patch
@@ -1,6 +1,6 @@
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
-@@ -251,6 +251,12 @@ config LEDS_LP8788
+@@ -250,6 +250,12 @@ config LEDS_LP8788
help
This option enables support for the Keyboard LEDs on the LP8788 PMIC.
@@ -15,7 +15,7 @@
depends on LEDS_CLASS
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
-@@ -22,6 +22,7 @@ obj-$(CONFIG_LEDS_SUNFIRE) += leds-sunf
+@@ -21,6 +21,7 @@ obj-$(CONFIG_LEDS_SUNFIRE) += leds-sunf
obj-$(CONFIG_LEDS_PCA9532) += leds-pca9532.o
obj-$(CONFIG_LEDS_GPIO_REGISTER) += leds-gpio-register.o
obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
@@ -180,7 +180,7 @@
+MODULE_DESCRIPTION("Latch LED driver");
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
-@@ -285,4 +285,18 @@ static inline void ledtrig_cpu(enum cpu_
+@@ -297,4 +297,18 @@ static inline void ledtrig_cpu(enum cpu_
}
#endif
diff --git a/target/linux/ixp4xx/patches-3.18/304-ixp4xx_eth_jumboframe.patch b/target/linux/ixp4xx/patches-3.18/304-ixp4xx_eth_jumboframe.patch
index 0ac595c..b16086b 100644
--- a/target/linux/ixp4xx/patches-3.18/304-ixp4xx_eth_jumboframe.patch
+++ b/target/linux/ixp4xx/patches-3.18/304-ixp4xx_eth_jumboframe.patch
@@ -9,7 +9,7 @@
#define RX_BUFF_SIZE ALIGN((NET_IP_ALIGN) + MAX_MRU, 4)
#define NAPI_WEIGHT 16
-@@ -1319,6 +1319,32 @@ static void destroy_queues(struct port *
+@@ -1315,6 +1315,32 @@ static void destroy_queues(struct port *
}
}
@@ -42,7 +42,7 @@
static int eth_open(struct net_device *dev)
{
struct port *port = netdev_priv(dev);
-@@ -1370,6 +1396,8 @@ static int eth_open(struct net_device *d
+@@ -1366,6 +1392,8 @@ static int eth_open(struct net_device *d
if (npe_send_recv_message(port->npe, &msg, "ETH_SET_FIREWALL_MODE"))
return -EIO;
@@ -51,7 +51,7 @@
if ((err = request_queues(port)) != 0)
return err;
-@@ -1509,7 +1537,26 @@ static int eth_close(struct net_device *
+@@ -1505,7 +1533,26 @@ static int eth_close(struct net_device *
return 0;
}
diff --git a/target/linux/ixp4xx/patches-3.18/600-skb_avoid_dmabounce.patch b/target/linux/ixp4xx/patches-3.18/600-skb_avoid_dmabounce.patch
index 2e4c75e..65b1c1f 100644
--- a/target/linux/ixp4xx/patches-3.18/600-skb_avoid_dmabounce.patch
+++ b/target/linux/ixp4xx/patches-3.18/600-skb_avoid_dmabounce.patch
@@ -10,7 +10,7 @@
/* Get the HEAD */
skb = kmem_cache_alloc_node(cache, gfp_mask & ~__GFP_DMA, node);
-@@ -1057,6 +1060,10 @@ int pskb_expand_head(struct sk_buff *skb
+@@ -1096,6 +1099,10 @@ int pskb_expand_head(struct sk_buff *skb
if (skb_shared(skb))
BUG();
diff --git a/target/linux/ixp4xx/patches-3.18/910-ixp4xx-nr_irq_lines.patch b/target/linux/ixp4xx/patches-3.18/910-ixp4xx-nr_irq_lines.patch
index 970ee49..06e09f4 100644
--- a/target/linux/ixp4xx/patches-3.18/910-ixp4xx-nr_irq_lines.patch
+++ b/target/linux/ixp4xx/patches-3.18/910-ixp4xx-nr_irq_lines.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/mach-ixp4xx/ixdp425-pci.c
+++ b/arch/arm/mach-ixp4xx/ixdp425-pci.c
-@@ -53,7 +53,7 @@ static int __init ixdp425_map_irq(const
+@@ -53,7 +53,7 @@ static int __init ixdp425_map_irq(const
};
if (slot >= 1 && slot <= MAX_DEV && pin >= 1 && pin <= IRQ_LINES)