atheros: various space related changes

- remove odd blank lines
 - remove odd spaces after casts
 - fix alignment

 No functional changes.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 42496
This commit is contained in:
John Crispin 2014-09-12 06:52:36 +00:00
parent d34c3e0674
commit 2e9deed90a
6 changed files with 52 additions and 89 deletions

View file

@ -681,7 +681,7 @@
+#endif /* __ASM_MACH_AR231X_WAR_H */ +#endif /* __ASM_MACH_AR231X_WAR_H */
--- /dev/null --- /dev/null
+++ b/arch/mips/include/asm/mach-ar231x/ar2315_regs.h +++ b/arch/mips/include/asm/mach-ar231x/ar2315_regs.h
@@ -0,0 +1,617 @@ @@ -0,0 +1,614 @@
+/* +/*
+ * Register definitions for AR2315+ + * Register definitions for AR2315+
+ * + *
@ -707,7 +707,6 @@
+#define AR2315_IRQ_LCBUS_PCI (MIPS_CPU_IRQ_BASE+5) /* C0_CAUSE: 0x2000 */ +#define AR2315_IRQ_LCBUS_PCI (MIPS_CPU_IRQ_BASE+5) /* C0_CAUSE: 0x2000 */
+#define AR2315_IRQ_WLAN0_POLL (MIPS_CPU_IRQ_BASE+6) /* C0_CAUSE: 0x4000 */ +#define AR2315_IRQ_WLAN0_POLL (MIPS_CPU_IRQ_BASE+6) /* C0_CAUSE: 0x4000 */
+ +
+
+/* +/*
+ * Miscellaneous interrupts, which share IP2. + * Miscellaneous interrupts, which share IP2.
+ */ + */
@ -723,7 +722,6 @@
+#define AR2315_MISC_IRQ_IR_RSVD (AR231X_MISC_IRQ_BASE+9) +#define AR2315_MISC_IRQ_IR_RSVD (AR231X_MISC_IRQ_BASE+9)
+#define AR2315_MISC_IRQ_COUNT 10 +#define AR2315_MISC_IRQ_COUNT 10
+ +
+
+/* +/*
+ * Address map + * Address map
+ */ + */
@ -742,7 +740,7 @@
+#define AR2315_ENET0_MII (AR2315_ENET0 + 0x14) +#define AR2315_ENET0_MII (AR2315_ENET0 + 0x14)
+ +
+/* +/*
+ * Reset Register + * Cold reset register
+ */ + */
+#define AR2315_COLD_RESET (AR2315_DSLBASE + 0x0000) +#define AR2315_COLD_RESET (AR2315_DSLBASE + 0x0000)
+ +
@ -756,7 +754,9 @@
+ RESET_COLD_AHB) /* full system */ + RESET_COLD_AHB) /* full system */
+#define AR2317_RESET_SYSTEM 0x00000010 +#define AR2317_RESET_SYSTEM 0x00000010
+ +
+ +/*
+ * Reset register
+ */
+#define AR2315_RESET (AR2315_DSLBASE + 0x0004) +#define AR2315_RESET (AR2315_DSLBASE + 0x0004)
+ +
+/* warm reset WLAN0 MAC */ +/* warm reset WLAN0 MAC */
@ -837,7 +837,6 @@
+#define AR2315_CONFIG_CPU_MMR 0x00040000 +#define AR2315_CONFIG_CPU_MMR 0x00040000
+#define AR2315_CONFIG_BIG 0x00000400 +#define AR2315_CONFIG_BIG 0x00000400
+ +
+
+/* +/*
+ * NMI control + * NMI control
+ */ + */
@ -1173,7 +1172,6 @@
+#define AR2315_PCI_HOST_OUT_DIS (AR2315_PCI + 0x0904) +#define AR2315_PCI_HOST_OUT_DIS (AR2315_PCI + 0x0904)
+#define AR2315_PCI_HOST_OUT_PTR (AR2315_PCI + 0x0908) +#define AR2315_PCI_HOST_OUT_PTR (AR2315_PCI + 0x0908)
+ +
+
+/* +/*
+ * Local Bus Interface Registers + * Local Bus Interface Registers
+ */ + */
@ -1220,7 +1218,6 @@
+#define AR2315_LBM_TIMEOUT_SHFT 7 +#define AR2315_LBM_TIMEOUT_SHFT 7
+#define AR2315_LBM_PORTMUX 0x07000000 +#define AR2315_LBM_PORTMUX 0x07000000
+ +
+
+#define AR2315_LB_RXTSOFF (AR2315_LOCAL + 0x0010) +#define AR2315_LB_RXTSOFF (AR2315_LOCAL + 0x0010)
+ +
+#define AR2315_LB_TX_CHAIN_EN (AR2315_LOCAL + 0x0100) +#define AR2315_LB_TX_CHAIN_EN (AR2315_LOCAL + 0x0100)
@ -1301,7 +1298,7 @@
+#endif /* __ASM_MACH_AR231X_AR2315_REGS_H */ +#endif /* __ASM_MACH_AR231X_AR2315_REGS_H */
--- /dev/null --- /dev/null
+++ b/arch/mips/include/asm/mach-ar231x/ar5312_regs.h +++ b/arch/mips/include/asm/mach-ar231x/ar5312_regs.h
@@ -0,0 +1,253 @@ @@ -0,0 +1,249 @@
+/* +/*
+ * This file is subject to the terms and conditions of the GNU General Public + * 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 + * License. See the file "COPYING" in the main directory of this archive
@ -1320,14 +1317,12 @@
+/* +/*
+ * IRQs + * IRQs
+ */ + */
+
+#define AR5312_IRQ_WLAN0_INTRS (MIPS_CPU_IRQ_BASE+2) /* C0_CAUSE: 0x0400 */ +#define AR5312_IRQ_WLAN0_INTRS (MIPS_CPU_IRQ_BASE+2) /* C0_CAUSE: 0x0400 */
+#define AR5312_IRQ_ENET0_INTRS (MIPS_CPU_IRQ_BASE+3) /* C0_CAUSE: 0x0800 */ +#define AR5312_IRQ_ENET0_INTRS (MIPS_CPU_IRQ_BASE+3) /* C0_CAUSE: 0x0800 */
+#define AR5312_IRQ_ENET1_INTRS (MIPS_CPU_IRQ_BASE+4) /* C0_CAUSE: 0x1000 */ +#define AR5312_IRQ_ENET1_INTRS (MIPS_CPU_IRQ_BASE+4) /* C0_CAUSE: 0x1000 */
+#define AR5312_IRQ_WLAN1_INTRS (MIPS_CPU_IRQ_BASE+5) /* C0_CAUSE: 0x2000 */ +#define AR5312_IRQ_WLAN1_INTRS (MIPS_CPU_IRQ_BASE+5) /* C0_CAUSE: 0x2000 */
+#define AR5312_IRQ_MISC_INTRS (MIPS_CPU_IRQ_BASE+6) /* C0_CAUSE: 0x4000 */ +#define AR5312_IRQ_MISC_INTRS (MIPS_CPU_IRQ_BASE+6) /* C0_CAUSE: 0x4000 */
+ +
+
+/* +/*
+ * Miscellaneous interrupts, which share IP6. + * Miscellaneous interrupts, which share IP6.
+ */ + */
@ -1343,8 +1338,9 @@
+#define AR5312_MISC_IRQ_SPI (AR231X_MISC_IRQ_BASE+9) +#define AR5312_MISC_IRQ_SPI (AR231X_MISC_IRQ_BASE+9)
+#define AR5312_MISC_IRQ_COUNT 10 +#define AR5312_MISC_IRQ_COUNT 10
+ +
+ +/*
+/* Address Map */ + * Address Map
+ */
+#define AR5312_WLAN0 0x18000000 +#define AR5312_WLAN0 0x18000000
+#define AR5312_WLAN1 0x18500000 +#define AR5312_WLAN1 0x18500000
+#define AR5312_ENET0 0x18100000 +#define AR5312_ENET0 0x18100000
@ -1465,7 +1461,6 @@
+#define AR2313_CLOCKCTL1_MULTIPLIER_SHIFT 16 +#define AR2313_CLOCKCTL1_MULTIPLIER_SHIFT 16
+#define AR2313_CLOCKCTL1_DOUBLER_MASK 0x00000000 +#define AR2313_CLOCKCTL1_DOUBLER_MASK 0x00000000
+ +
+
+/* AR5312_ENABLE register bit field definitions */ +/* AR5312_ENABLE register bit field definitions */
+#define AR5312_ENABLE_WLAN0 0x0001 +#define AR5312_ENABLE_WLAN0 0x0001
+#define AR5312_ENABLE_ENET0 0x0002 +#define AR5312_ENABLE_ENET0 0x0002
@ -1552,12 +1547,10 @@
+#define AR5312_GPIO_CR_UART(x) (1 << ((x)+16)) /* uart multiplex */ +#define AR5312_GPIO_CR_UART(x) (1 << ((x)+16)) /* uart multiplex */
+#define AR5312_NUM_GPIO 8 +#define AR5312_NUM_GPIO 8
+ +
+
+#endif /* __ASM_MACH_AR231X_AR5312_REGS_H */ +#endif /* __ASM_MACH_AR231X_AR5312_REGS_H */
+
--- /dev/null --- /dev/null
+++ b/arch/mips/ar231x/ar5312.c +++ b/arch/mips/ar231x/ar5312.c
@@ -0,0 +1,541 @@ @@ -0,0 +1,534 @@
+/* +/*
+ * This file is subject to the terms and conditions of the GNU General Public + * 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 + * License. See the file "COPYING" in the main directory of this archive
@ -1634,7 +1627,6 @@
+ do_IRQ(AR231X_IRQ_CPU_CLOCK); + do_IRQ(AR231X_IRQ_CPU_CLOCK);
+} +}
+ +
+
+/* Enable the specified AR5312_MISC_IRQ interrupt */ +/* Enable the specified AR5312_MISC_IRQ interrupt */
+static void +static void
+ar5312_misc_irq_unmask(struct irq_data *d) +ar5312_misc_irq_unmask(struct irq_data *d)
@ -1664,7 +1656,6 @@
+ .irq_mask = ar5312_misc_irq_mask, + .irq_mask = ar5312_misc_irq_mask,
+}; +};
+ +
+
+static irqreturn_t ar5312_ahb_proc_handler(int cpl, void *dev_id) +static irqreturn_t ar5312_ahb_proc_handler(int cpl, void *dev_id)
+{ +{
+ u32 proc1 = ar231x_read_reg(AR5312_PROC1); + u32 proc1 = ar231x_read_reg(AR5312_PROC1);
@ -1679,13 +1670,11 @@
+ return IRQ_HANDLED; + return IRQ_HANDLED;
+} +}
+ +
+
+static struct irqaction ar5312_ahb_proc_interrupt = { +static struct irqaction ar5312_ahb_proc_interrupt = {
+ .handler = ar5312_ahb_proc_handler, + .handler = ar5312_ahb_proc_handler,
+ .name = "ar5312_ahb_proc_interrupt", + .name = "ar5312_ahb_proc_interrupt",
+}; +};
+ +
+
+void __init ar5312_irq_init(void) +void __init ar5312_irq_init(void)
+{ +{
+ int i; + int i;
@ -1951,7 +1940,6 @@
+ return 0; + return 0;
+} +}
+ +
+
+static void ar5312_restart(char *command) +static void ar5312_restart(char *command)
+{ +{
+ /* reset the system */ + /* reset the system */
@ -1960,14 +1948,12 @@
+ ar231x_write_reg(AR5312_RESET, AR5312_RESET_SYSTEM); + ar231x_write_reg(AR5312_RESET, AR5312_RESET_SYSTEM);
+} +}
+ +
+
+/* +/*
+ * This table is indexed by bits 5..4 of the CLOCKCTL1 register + * This table is indexed by bits 5..4 of the CLOCKCTL1 register
+ * to determine the predevisor value. + * to determine the predevisor value.
+ */ + */
+static int clockctl1_predivide_table[4] __initdata = { 1, 2, 4, 5 }; +static int clockctl1_predivide_table[4] __initdata = { 1, 2, 4, 5 };
+ +
+
+static int __init +static int __init
+ar5312_cpu_frequency(void) +ar5312_cpu_frequency(void)
+{ +{
@ -2079,7 +2065,7 @@
+ devid = ar231x_read_reg(AR5312_REV); + devid = ar231x_read_reg(AR5312_REV);
+ devid >>= AR5312_REV_WMAC_MIN_S; + devid >>= AR5312_REV_WMAC_MIN_S;
+ devid &= AR5312_REV_CHIP; + devid &= AR5312_REV_CHIP;
+ ar231x_board.devid = (u16) devid; + ar231x_board.devid = (u16)devid;
+ ar5312_gpio_init(); + ar5312_gpio_init();
+} +}
+ +
@ -2101,7 +2087,7 @@
+ +
--- /dev/null --- /dev/null
+++ b/arch/mips/ar231x/ar2315.c +++ b/arch/mips/ar231x/ar2315.c
@@ -0,0 +1,559 @@ @@ -0,0 +1,556 @@
+/* +/*
+ * This file is subject to the terms and conditions of the GNU General Public + * 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 + * License. See the file "COPYING" in the main directory of this archive
@ -2308,13 +2294,13 @@
+ int irq = AR231X_MISC_IRQ_BASE + i; + int irq = AR231X_MISC_IRQ_BASE + i;
+ +
+ irq_set_chip_and_handler(irq, &ar2315_misc_irq_chip, + irq_set_chip_and_handler(irq, &ar2315_misc_irq_chip,
+ handle_level_irq); + handle_level_irq);
+ } + }
+ for (i = 0; i < AR2315_NUM_GPIO; i++) { + for (i = 0; i < AR2315_NUM_GPIO; i++) {
+ int irq = AR231X_GPIO_IRQ_BASE + i; + int irq = AR231X_GPIO_IRQ_BASE + i;
+ +
+ irq_set_chip_and_handler(irq, &ar2315_gpio_irq_chip, + irq_set_chip_and_handler(irq, &ar2315_gpio_irq_chip,
+ handle_level_irq); + handle_level_irq);
+ } + }
+ irq_set_chained_handler(AR2315_MISC_IRQ_GPIO, ar2315_gpio_irq_handler); + irq_set_chained_handler(AR2315_MISC_IRQ_GPIO, ar2315_gpio_irq_handler);
+ setup_irq(AR2315_MISC_IRQ_AHB, &ar2315_ahb_proc_interrupt); + setup_irq(AR2315_MISC_IRQ_AHB, &ar2315_ahb_proc_interrupt);
@ -2529,7 +2515,6 @@
+ mips_reset_vec(); + mips_reset_vec();
+} +}
+ +
+
+/* +/*
+ * This table is indexed by bits 5..4 of the CLOCKCTL1 register + * This table is indexed by bits 5..4 of the CLOCKCTL1 register
+ * to determine the predevisor value. + * to determine the predevisor value.
@ -2610,8 +2595,6 @@
+ return ret; + return ret;
+} +}
+ +
+
+
+void __init +void __init
+ar2315_prom_init(void) +ar2315_prom_init(void)
+{ +{
@ -2830,7 +2813,7 @@
+#endif +#endif
--- /dev/null --- /dev/null
+++ b/arch/mips/ar231x/devices.c +++ b/arch/mips/ar231x/devices.c
@@ -0,0 +1,182 @@ @@ -0,0 +1,180 @@
+#include <linux/kernel.h> +#include <linux/kernel.h>
+#include <linux/init.h> +#include <linux/init.h>
+#include <linux/serial.h> +#include <linux/serial.h>
@ -2915,7 +2898,6 @@
+ } + }
+}; +};
+ +
+
+static struct platform_device ar231x_wmac[] = { +static struct platform_device ar231x_wmac[] = {
+ { + {
+ .id = 0, + .id = 0,
@ -2946,12 +2928,11 @@
+const char *get_system_type(void) +const char *get_system_type(void)
+{ +{
+ if ((ar231x_devtype >= ARRAY_SIZE(devtype_strings)) || + if ((ar231x_devtype >= ARRAY_SIZE(devtype_strings)) ||
+ !devtype_strings[ar231x_devtype]) + !devtype_strings[ar231x_devtype])
+ return devtype_strings[DEV_TYPE_UNKNOWN]; + return devtype_strings[DEV_TYPE_UNKNOWN];
+ return devtype_strings[ar231x_devtype]; + return devtype_strings[ar231x_devtype];
+} +}
+ +
+
+int __init +int __init
+ar231x_add_ethernet(int nr, u32 base, const char *mii_name, u32 mii_base, +ar231x_add_ethernet(int nr, u32 base, const char *mii_name, u32 mii_base,
+ int irq, void *pdata) + int irq, void *pdata)

View file

@ -61,7 +61,7 @@
+ ar231x_mask_reg(AR2315_PCI_MISC_CONFIG, 0, AR2315_PCIMISC_CFG_SEL); + ar231x_mask_reg(AR2315_PCI_MISC_CONFIG, 0, AR2315_PCIMISC_CFG_SEL);
+ mb(); + mb();
+ +
+ addr = (u32) configspace + (1 << (13 + dev)) + (func << 8) + where; + addr = (u32)configspace + (1 << (13 + dev)) + (func << 8) + where;
+ if (size == 1) + if (size == 1)
+ addr ^= 0x3; + addr ^= 0x3;
+ else if (size == 2) + else if (size == 2)
@ -189,10 +189,10 @@
+ return -ENODEV; + return -ENODEV;
+ +
+ /* Remap PCI config space */ + /* Remap PCI config space */
+ configspace = (unsigned long) ioremap_nocache(AR2315_PCIEXT, + configspace = (unsigned long)ioremap_nocache(AR2315_PCIEXT,
+ 1*1024*1024); + 1 * 1024 * 1024);
+ ar231x_pci_controller.io_map_base = + ar231x_pci_controller.io_map_base =
+ (unsigned long) ioremap_nocache(AR2315_MEM_BASE + + (unsigned long)ioremap_nocache(AR2315_MEM_BASE +
+ AR2315_MEM_SIZE, AR2315_IO_SIZE); + AR2315_MEM_SIZE, AR2315_IO_SIZE);
+ set_io_port_base(ar231x_pci_controller.io_map_base); /* PCI I/O space*/ + set_io_port_base(ar231x_pci_controller.io_map_base); /* PCI I/O space*/
+ +
@ -204,29 +204,29 @@
+ msleep(20); + msleep(20);
+ +
+ ar231x_mask_reg(AR2315_ENDIAN_CTL, 0, + ar231x_mask_reg(AR2315_ENDIAN_CTL, 0,
+ AR2315_CONFIG_PCIAHB | AR2315_CONFIG_PCIAHB_BRIDGE); + AR2315_CONFIG_PCIAHB | AR2315_CONFIG_PCIAHB_BRIDGE);
+ +
+ ar231x_write_reg(AR2315_PCICLK, AR2315_PCICLK_PLLC_CLKM | + ar231x_write_reg(AR2315_PCICLK, AR2315_PCICLK_PLLC_CLKM |
+ (AR2315_PCICLK_IN_FREQ_DIV_6 << AR2315_PCICLK_DIV_S)); + (AR2315_PCICLK_IN_FREQ_DIV_6 << AR2315_PCICLK_DIV_S));
+ ar231x_mask_reg(AR2315_AHB_ARB_CTL, 0, AR2315_ARB_PCI); + ar231x_mask_reg(AR2315_AHB_ARB_CTL, 0, AR2315_ARB_PCI);
+ ar231x_mask_reg(AR2315_IF_CTL, AR2315_IF_PCI_CLK_MASK | AR2315_IF_MASK, + ar231x_mask_reg(AR2315_IF_CTL, AR2315_IF_PCI_CLK_MASK | AR2315_IF_MASK,
+ AR2315_IF_PCI | AR2315_IF_PCI_HOST | AR2315_IF_PCI_INTR | + AR2315_IF_PCI | AR2315_IF_PCI_HOST |
+ (AR2315_IF_PCI_CLK_OUTPUT_CLK << AR2315_IF_PCI_CLK_SHIFT)); + AR2315_IF_PCI_INTR | (AR2315_IF_PCI_CLK_OUTPUT_CLK <<
+ AR2315_IF_PCI_CLK_SHIFT));
+ +
+ /* Reset the PCI bus by setting bits 5-4 in PCI_MCFG */ + /* Reset the PCI bus by setting bits 5-4 in PCI_MCFG */
+ ar231x_mask_reg(AR2315_PCI_MISC_CONFIG, AR2315_PCIMISC_RST_MODE, + ar231x_mask_reg(AR2315_PCI_MISC_CONFIG, AR2315_PCIMISC_RST_MODE,
+ AR2315_PCIRST_LOW); + AR2315_PCIRST_LOW);
+ msleep(100); + msleep(100);
+ +
+ /* Bring the PCI out of reset */ + /* Bring the PCI out of reset */
+ ar231x_mask_reg(AR2315_PCI_MISC_CONFIG, AR2315_PCIMISC_RST_MODE, + ar231x_mask_reg(AR2315_PCI_MISC_CONFIG, AR2315_PCIMISC_RST_MODE,
+ AR2315_PCIRST_HIGH | AR2315_PCICACHE_DIS | 0x8); + AR2315_PCIRST_HIGH | AR2315_PCICACHE_DIS | 0x8);
+ +
+ ar231x_write_reg(AR2315_PCI_UNCACHE_CFG, + ar231x_write_reg(AR2315_PCI_UNCACHE_CFG,
+ 0x1E | /* 1GB uncached */ + 0x1E | /* 1GB uncached */
+ (1 << 5) | /* Enable uncached */ + (1 << 5) | /* Enable uncached */
+ (0x2 << 30) /* Base: 0x80000000 */ + (0x2 << 30) /* Base: 0x80000000 */);
+ );
+ ar231x_read_reg(AR2315_PCI_UNCACHE_CFG); + ar231x_read_reg(AR2315_PCI_UNCACHE_CFG);
+ +
+ msleep(500); + msleep(500);

View file

@ -33,7 +33,7 @@
+obj-$(CONFIG_NET_AR231X) += ar231x.o +obj-$(CONFIG_NET_AR231X) += ar231x.o
--- /dev/null --- /dev/null
+++ b/drivers/net/ethernet/atheros/ar231x/ar231x.c +++ b/drivers/net/ethernet/atheros/ar231x/ar231x.c
@@ -0,0 +1,1218 @@ @@ -0,0 +1,1206 @@
+/* +/*
+ * ar231x.c: Linux driver for the Atheros AR231x Ethernet device. + * ar231x.c: Linux driver for the Atheros AR231x Ethernet device.
+ * + *
@ -241,7 +241,7 @@
+ dev->features |= NETIF_F_HIGHDMA; + dev->features |= NETIF_F_HIGHDMA;
+ dev->netdev_ops = &ar231x_ops; + dev->netdev_ops = &ar231x_ops;
+ +
+ tasklet_init(&sp->rx_tasklet, rx_tasklet_func, (unsigned long) dev); + tasklet_init(&sp->rx_tasklet, rx_tasklet_func, (unsigned long)dev);
+ tasklet_disable(&sp->rx_tasklet); + tasklet_disable(&sp->rx_tasklet);
+ +
+ sp->eth_regs = ioremap_nocache(ar_eth_base, sizeof(*sp->eth_regs)); + sp->eth_regs = ioremap_nocache(ar_eth_base, sizeof(*sp->eth_regs));
@ -324,7 +324,6 @@
+ return 0; + return 0;
+} +}
+ +
+
+static void ar231x_multicast_list(struct net_device *dev) +static void ar231x_multicast_list(struct net_device *dev)
+{ +{
+ struct ar231x_private *sp = netdev_priv(dev); + struct ar231x_private *sp = netdev_priv(dev);
@ -372,7 +371,6 @@
+ return 0; + return 0;
+} +}
+ +
+
+/** +/**
+ * Restart the AR2313 ethernet controller. + * Restart the AR2313 ethernet controller.
+ */ + */
@ -412,7 +410,6 @@
+ } + }
+} +}
+ +
+
+static int ar231x_allocate_descriptors(struct net_device *dev) +static int ar231x_allocate_descriptors(struct net_device *dev)
+{ +{
+ struct ar231x_private *sp = netdev_priv(dev); + struct ar231x_private *sp = netdev_priv(dev);
@ -431,7 +428,7 @@
+ return 1; + return 1;
+ +
+ /* invalidate caches */ + /* invalidate caches */
+ dma_cache_inv((unsigned int) space, size); + dma_cache_inv((unsigned int)space, size);
+ +
+ /* now convert pointer to KSEG1 */ + /* now convert pointer to KSEG1 */
+ space = (ar231x_descr_t *)KSEG1ADDR(space); + space = (ar231x_descr_t *)KSEG1ADDR(space);
@ -457,7 +454,6 @@
+ return 0; + return 0;
+} +}
+ +
+
+/** +/**
+ * Generic cleanup handling data allocated during init. Used when the + * Generic cleanup handling data allocated during init. Used when the
+ * module is unloaded or if an error occurs during initialization + * module is unloaded or if an error occurs during initialization
@ -509,7 +505,7 @@
+ init_timer(&sp->link_timer); + init_timer(&sp->link_timer);
+ +
+ sp->link_timer.function = ar231x_link_timer_fn; + sp->link_timer.function = ar231x_link_timer_fn;
+ sp->link_timer.data = (int) dev; + sp->link_timer.data = (int)dev;
+ sp->link_timer.expires = jiffies + HZ; + sp->link_timer.expires = jiffies + HZ;
+ +
+ add_timer(&sp->link_timer); + add_timer(&sp->link_timer);
@ -568,7 +564,7 @@
+ } + }
+ +
+ printk(KERN_INFO "%s: Configuring MAC for %s duplex\n", + printk(KERN_INFO "%s: Configuring MAC for %s duplex\n",
+ dev->name, (duplex) ? "full" : "half"); + dev->name, (duplex) ? "full" : "half");
+ +
+ if (duplex) { + if (duplex) {
+ /* full duplex */ + /* full duplex */
@ -649,7 +645,6 @@
+ return 0; + return 0;
+} +}
+ +
+
+static int ar231x_init(struct net_device *dev) +static int ar231x_init(struct net_device *dev)
+{ +{
+ struct ar231x_private *sp = netdev_priv(dev); + struct ar231x_private *sp = netdev_priv(dev);
@ -667,7 +662,7 @@
+ if (sp->rx_skb == NULL) { + if (sp->rx_skb == NULL) {
+ sp->rx_skb = + sp->rx_skb =
+ kmalloc(sizeof(struct sk_buff *) * AR2313_DESCR_ENTRIES, + kmalloc(sizeof(struct sk_buff *) * AR2313_DESCR_ENTRIES,
+ GFP_KERNEL); + GFP_KERNEL);
+ if (!(sp->rx_skb)) { + if (!(sp->rx_skb)) {
+ printk("%s: %s: rx_skb kmalloc failed\n", + printk("%s: %s: rx_skb kmalloc failed\n",
+ dev->name, __func__); + dev->name, __func__);
@ -680,7 +675,7 @@
+ if (sp->tx_skb == NULL) { + if (sp->tx_skb == NULL) {
+ sp->tx_skb = + sp->tx_skb =
+ kmalloc(sizeof(struct sk_buff *) * AR2313_DESCR_ENTRIES, + kmalloc(sizeof(struct sk_buff *) * AR2313_DESCR_ENTRIES,
+ GFP_KERNEL); + GFP_KERNEL);
+ if (!(sp->tx_skb)) { + if (!(sp->tx_skb)) {
+ printk("%s: %s: tx_skb kmalloc failed\n", + printk("%s: %s: tx_skb kmalloc failed\n",
+ dev->name, __func__); + dev->name, __func__);
@ -714,17 +709,14 @@
+ ar231x_reset_reg(dev); + ar231x_reset_reg(dev);
+ +
+ /* Get the IRQ */ + /* Get the IRQ */
+ ecode = + ecode = request_irq(dev->irq, &ar231x_interrupt, IRQF_DISABLED,
+ request_irq(dev->irq, &ar231x_interrupt, + dev->name, dev);
+ IRQF_DISABLED,
+ dev->name, dev);
+ if (ecode) { + if (ecode) {
+ printk(KERN_WARNING "%s: %s: Requested IRQ %d is busy\n", + printk(KERN_WARNING "%s: %s: Requested IRQ %d is busy\n",
+ dev->name, __func__, dev->irq); + dev->name, __func__, dev->irq);
+ goto init_error; + goto init_error;
+ } + }
+ +
+
+ tasklet_enable(&sp->rx_tasklet); + tasklet_enable(&sp->rx_tasklet);
+ +
+ return 0; + return 0;
@ -866,7 +858,6 @@
+ return rval; + return rval;
+} +}
+ +
+
+static void ar231x_tx_int(struct net_device *dev) +static void ar231x_tx_int(struct net_device *dev)
+{ +{
+ struct ar231x_private *sp = netdev_priv(dev); + struct ar231x_private *sp = netdev_priv(dev);
@ -918,7 +909,6 @@
+ sp->tx_csm = idx; + sp->tx_csm = idx;
+} +}
+ +
+
+static void rx_tasklet_func(unsigned long data) +static void rx_tasklet_func(unsigned long data)
+{ +{
+ struct net_device *dev = (struct net_device *)data; + struct net_device *dev = (struct net_device *)data;
@ -982,7 +972,6 @@
+ return IRQ_HANDLED; + return IRQ_HANDLED;
+} +}
+ +
+
+static int ar231x_open(struct net_device *dev) +static int ar231x_open(struct net_device *dev)
+{ +{
+ struct ar231x_private *sp = netdev_priv(dev); + struct ar231x_private *sp = netdev_priv(dev);
@ -1245,16 +1234,15 @@
+ sp->oldduplex = -1; + sp->oldduplex = -1;
+ sp->phy_dev = phydev; + sp->phy_dev = phydev;
+ +
+ printk(KERN_INFO "%s: attached PHY driver [%s] " + printk(KERN_INFO "%s: attached PHY driver [%s] (mii_bus:phy_addr=%s)\n",
+ "(mii_bus:phy_addr=%s)\n", + dev->name, phydev->drv->name, dev_name(&phydev->dev));
+ dev->name, phydev->drv->name, dev_name(&phydev->dev));
+ +
+ return 0; + return 0;
+} +}
+ +
--- /dev/null --- /dev/null
+++ b/drivers/net/ethernet/atheros/ar231x/ar231x.h +++ b/drivers/net/ethernet/atheros/ar231x/ar231x.h
@@ -0,0 +1,295 @@ @@ -0,0 +1,288 @@
+/* +/*
+ * ar231x.h: Linux driver for the Atheros AR231x Ethernet device. + * ar231x.h: Linux driver for the Atheros AR231x Ethernet device.
+ * + *
@ -1404,7 +1392,6 @@
+#define DMA_CONTROL_ST BIT(13) /* start transmit */ +#define DMA_CONTROL_ST BIT(13) /* start transmit */
+#define DMA_CONTROL_SF BIT(21) /* store and forward */ +#define DMA_CONTROL_SF BIT(21) /* store and forward */
+ +
+
+typedef struct { +typedef struct {
+ volatile unsigned int status; /* OWN, Device control and status. */ + volatile unsigned int status; /* OWN, Device control and status. */
+ volatile unsigned int devcs; /* pkt Control bits + Length */ + volatile unsigned int devcs; /* pkt Control bits + Length */
@ -1412,8 +1399,6 @@
+ volatile unsigned int descr; /* Next descriptor in chain. */ + volatile unsigned int descr; /* Next descriptor in chain. */
+} ar231x_descr_t; +} ar231x_descr_t;
+ +
+
+
+/** +/**
+ * New Combo structure for Both Eth0 AND eth1 + * New Combo structure for Both Eth0 AND eth1
+ * + *
@ -1430,7 +1415,6 @@
+ volatile unsigned int vlan_tag; /* 0x20 */ + volatile unsigned int vlan_tag; /* 0x20 */
+ volatile unsigned int pad[7]; /* 0x24 - 0x3c */ + volatile unsigned int pad[7]; /* 0x24 - 0x3c */
+ volatile unsigned int ucast_table[8]; /* 0x40-0x5c */ + volatile unsigned int ucast_table[8]; /* 0x40-0x5c */
+
+} ETHERNET_STRUCT; +} ETHERNET_STRUCT;
+ +
+typedef struct { +typedef struct {
@ -1496,7 +1480,6 @@
+ ar231x_descr_t *rx_ring; + ar231x_descr_t *rx_ring;
+ ar231x_descr_t *tx_ring; + ar231x_descr_t *tx_ring;
+ +
+
+ struct sk_buff **rx_skb; + struct sk_buff **rx_skb;
+ struct sk_buff **tx_skb; + struct sk_buff **tx_skb;
+ +
@ -1516,7 +1499,6 @@
+ char *mapping; + char *mapping;
+ } desc; + } desc;
+ +
+
+ struct timer_list link_timer; + struct timer_list link_timer;
+ unsigned short phy; /* merlot phy = 1, samsung phy = 0x1f */ + unsigned short phy; /* merlot phy = 1, samsung phy = 0x1f */
+ unsigned short mac; + unsigned short mac;
@ -1531,7 +1513,6 @@
+ int oldduplex; + int oldduplex;
+}; +};
+ +
+
+/* Prototypes */ +/* Prototypes */
+static int ar231x_init(struct net_device *dev); +static int ar231x_init(struct net_device *dev);
+#ifdef TX_TIMEOUT +#ifdef TX_TIMEOUT
@ -1543,10 +1524,10 @@
+static int ar231x_open(struct net_device *dev); +static int ar231x_open(struct net_device *dev);
+static int ar231x_start_xmit(struct sk_buff *skb, struct net_device *dev); +static int ar231x_start_xmit(struct sk_buff *skb, struct net_device *dev);
+static int ar231x_close(struct net_device *dev); +static int ar231x_close(struct net_device *dev);
+static int ar231x_ioctl(struct net_device *dev, struct ifreq *ifr, +static int ar231x_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
+ int cmd);
+static void ar231x_init_cleanup(struct net_device *dev); +static void ar231x_init_cleanup(struct net_device *dev);
+static int ar231x_setup_timer(struct net_device *dev); +static int ar231x_setup_timer(struct net_device *dev);
+static void ar231x_link_timer_fn(unsigned long data); +static void ar231x_link_timer_fn(unsigned long data);
+static void ar231x_check_link(struct net_device *dev); +static void ar231x_check_link(struct net_device *dev);
+#endif /* _AR2313_H_ */ +
+#endif /* _AR2313_H_ */

View file

@ -183,7 +183,7 @@
+ op = &stm_opcodes[opcode]; + op = &stm_opcodes[opcode];
+ reg = spiflash_wait_busy(priv); + reg = spiflash_wait_busy(priv);
+ spiflash_write_reg(priv, SPI_FLASH_OPCODE, + spiflash_write_reg(priv, SPI_FLASH_OPCODE,
+ ((u32) op->code) | (addr << 8)); + ((u32)op->code) | (addr << 8));
+ +
+ reg &= ~SPI_CTL_TX_RX_CNT_MASK; + reg &= ~SPI_CTL_TX_RX_CNT_MASK;
+ reg |= SPI_CTL_START | op->tx_cnt | (op->rx_cnt << 4); + reg |= SPI_CTL_START | op->tx_cnt | (op->rx_cnt << 4);
@ -453,7 +453,7 @@
+ /* parse redboot partitions */ + /* parse redboot partitions */
+ +
+ result = mtd_device_parse_register(mtd, part_probe_types, + result = mtd_device_parse_register(mtd, part_probe_types,
+ NULL, NULL, 0); + NULL, NULL, 0);
+#endif +#endif
+ +
+ return result; + return result;

View file

@ -1,6 +1,6 @@
--- /dev/null --- /dev/null
+++ b/drivers/watchdog/ar2315-wtd.c +++ b/drivers/watchdog/ar2315-wtd.c
@@ -0,0 +1,208 @@ @@ -0,0 +1,209 @@
+/* +/*
+ * This program is free software; you can redistribute it and/or modify + * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by + * it under the terms of the GNU General Public License as published by
@ -77,7 +77,8 @@
+ if (in_use) + if (in_use)
+ return -EBUSY; + return -EBUSY;
+ ar2315_wdt_enable(); + ar2315_wdt_enable();
+ in_use = started = 1; + in_use = 1;
+ started = 1;
+ return nonseekable_open(inode, file); + return nonseekable_open(inode, file);
+} +}
+ +

View file

@ -66,7 +66,7 @@
if (ar231x_mdiobus_probe(dev) != 0) { if (ar231x_mdiobus_probe(dev) != 0) {
printk(KERN_ERR "%s: mdiobus_probe failed\n", dev->name); printk(KERN_ERR "%s: mdiobus_probe failed\n", dev->name);
rx_tasklet_cleanup(dev); rx_tasklet_cleanup(dev);
@@ -330,8 +375,10 @@ static int ar231x_remove(struct platform @@ -329,8 +374,10 @@ static int ar231x_remove(struct platform
rx_tasklet_cleanup(dev); rx_tasklet_cleanup(dev);
ar231x_init_cleanup(dev); ar231x_init_cleanup(dev);
unregister_netdev(dev); unregister_netdev(dev);
@ -79,7 +79,7 @@
kfree(dev); kfree(dev);
return 0; return 0;
} }
@@ -1090,6 +1137,9 @@ static int ar231x_ioctl(struct net_devic @@ -1079,6 +1126,9 @@ static int ar231x_ioctl(struct net_devic
{ {
struct ar231x_private *sp = netdev_priv(dev); struct ar231x_private *sp = netdev_priv(dev);