aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/atheros/patches-3.14/100-board.patch17
-rw-r--r--target/linux/atheros/patches-3.14/110-ar2313_ethernet.patch6
-rw-r--r--target/linux/atheros/patches-3.14/220-enet_micrel_workaround.patch7
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;