diff options
Diffstat (limited to 'target/linux/ixp4xx/patches-3.18')
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) |