diff options
Diffstat (limited to 'target/linux')
3 files changed, 20 insertions, 10 deletions
diff --git a/target/linux/atheros/patches-3.14/100-board.patch b/target/linux/atheros/patches-3.14/100-board.patch index c60c9e3740..5fae3f372c 100644 --- a/target/linux/atheros/patches-3.14/100-board.patch +++ b/target/linux/atheros/patches-3.14/100-board.patch @@ -1591,7 +1591,7 @@ + --- /dev/null +++ b/arch/mips/ar231x/ar5312.c -@@ -0,0 +1,540 @@ +@@ -0,0 +1,542 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive @@ -1731,6 +1731,7 @@ + ar231x_irq_dispatch = ar5312_irq_dispatch; + for (i = 0; i < AR5312_MISC_IRQ_COUNT; i++) { + int irq = AR231X_MISC_IRQ_BASE + i; ++ + irq_set_chip_and_handler(irq, &ar5312_misc_irq_chip, + handle_level_irq); + } @@ -1751,6 +1752,7 @@ +ar5312_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) +{ + u32 reg = ar231x_read_reg(AR5312_GPIO_DO); ++ + reg = value ? reg | (1 << gpio) : reg & ~(1 << gpio); + ar231x_write_reg(AR5312_GPIO_DO, reg); +} @@ -2080,8 +2082,8 @@ +static int __init +ar5312_gpio_init(void) +{ -+ int ret; -+ ret = gpiochip_add(&ar5312_gpio_chip); ++ int ret = gpiochip_add(&ar5312_gpio_chip); ++ + if (ret) { + pr_err("%s: failed to add gpiochip\n", ar5312_gpio_chip.label); + return ret; @@ -2134,7 +2136,7 @@ + --- /dev/null +++ b/arch/mips/ar231x/ar2315.c -@@ -0,0 +1,556 @@ +@@ -0,0 +1,559 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive @@ -2339,11 +2341,13 @@ + gpiointval = ar231x_read_reg(AR2315_GPIO_DI); + for (i = 0; i < AR2315_MISC_IRQ_COUNT; i++) { + int irq = AR231X_MISC_IRQ_BASE + i; ++ + irq_set_chip_and_handler(irq, &ar2315_misc_irq_chip, + handle_level_irq); + } + for (i = 0; i < AR2315_NUM_GPIO; i++) { + int irq = AR231X_GPIO_IRQ_BASE + i; ++ + irq_set_chip_and_handler(irq, &ar2315_gpio_irq_chip, + handle_level_irq); + } @@ -2365,6 +2369,7 @@ +ar2315_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) +{ + u32 reg = ar231x_read_reg(AR2315_GPIO_DO); ++ + reg = value ? reg | (1 << gpio) : reg & ~(1 << gpio); + ar231x_write_reg(AR2315_GPIO_DO, reg); +} @@ -2629,8 +2634,8 @@ +static int __init +ar2315_gpio_init(void) +{ -+ int ret; -+ ret = gpiochip_add(&ar2315_gpio_chip); ++ int ret = gpiochip_add(&ar2315_gpio_chip); ++ + if (ret) { + pr_err("%s: failed to add gpiochip\n", ar2315_gpio_chip.label); + return ret; diff --git a/target/linux/atheros/patches-3.14/110-ar2313_ethernet.patch b/target/linux/atheros/patches-3.14/110-ar2313_ethernet.patch index bda0ce3258..42812ff23a 100644 --- a/target/linux/atheros/patches-3.14/110-ar2313_ethernet.patch +++ b/target/linux/atheros/patches-3.14/110-ar2313_ethernet.patch @@ -33,7 +33,7 @@ +obj-$(CONFIG_NET_AR231X) += ar231x.o --- /dev/null +++ b/drivers/net/ethernet/atheros/ar231x/ar231x.c -@@ -0,0 +1,1250 @@ +@@ -0,0 +1,1254 @@ +/* + * ar231x.c: Linux driver for the Atheros AR231x Ethernet device. + * @@ -375,6 +375,7 @@ +{ + struct net_device *dev = platform_get_drvdata(pdev); + struct ar231x_private *sp = netdev_priv(dev); ++ + rx_tasklet_cleanup(dev); + ar231x_init_cleanup(dev); + unregister_netdev(dev); @@ -416,6 +417,7 @@ +static void ar231x_free_descriptors(struct net_device *dev) +{ + struct ar231x_private *sp = netdev_priv(dev); ++ + if (sp->rx_ring != NULL) { + kfree((void *)KSEG0ADDR(sp->rx_ring)); + sp->rx_ring = NULL; @@ -458,6 +460,7 @@ + /* Initialize the transmit Descriptors */ + for (j = 0; j < AR2313_DESCR_ENTRIES; j++) { + ar231x_descr_t *td = &sp->tx_ring[j]; ++ + td->status = 0; + td->devcs = DMA_TX1_CHAINED; + td->addr = 0; @@ -945,6 +948,7 @@ + tasklet_hi_schedule(&sp->rx_tasklet); + } else { + unsigned long flags; ++ + spin_lock_irqsave(&sp->lock, flags); + sp->dma_regs->intr_ena |= DMA_STATUS_RI; + spin_unlock_irqrestore(&sp->lock, flags); diff --git a/target/linux/atheros/patches-3.14/220-enet_micrel_workaround.patch b/target/linux/atheros/patches-3.14/220-enet_micrel_workaround.patch index dade7ee6ab..a110014594 100644 --- a/target/linux/atheros/patches-3.14/220-enet_micrel_workaround.patch +++ b/target/linux/atheros/patches-3.14/220-enet_micrel_workaround.patch @@ -41,7 +41,7 @@ static int ar231x_probe(struct platform_device *pdev) { struct net_device *dev; -@@ -286,6 +313,23 @@ static int ar231x_probe(struct platform_ +@@ -286,6 +313,24 @@ static int ar231x_probe(struct platform_ mdiobus_register(sp->mii_bus); @@ -51,6 +51,7 @@ + */ + if (!no_phy) { + u32 phy_id = 0; ++ + get_phy_id(sp->mii_bus, 1, &phy_id); + if (phy_id == 0x00221450) + no_phy = true; @@ -65,7 +66,7 @@ if (ar231x_mdiobus_probe(dev) != 0) { printk(KERN_ERR "%s: mdiobus_probe failed\n", dev->name); rx_tasklet_cleanup(dev); -@@ -342,8 +386,10 @@ static int ar231x_remove(struct platform +@@ -343,8 +388,10 @@ static int ar231x_remove(struct platform rx_tasklet_cleanup(dev); ar231x_init_cleanup(dev); unregister_netdev(dev); @@ -78,7 +79,7 @@ kfree(dev); return 0; } -@@ -1104,6 +1150,9 @@ static int ar231x_ioctl(struct net_devic +@@ -1108,6 +1155,9 @@ static int ar231x_ioctl(struct net_devic struct ar231x_private *sp = netdev_priv(dev); int ret; |