diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-25 07:25:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-25 07:25:22 -0400 |
commit | 8a9ea3237e7eb5c25f09e429ad242ae5a3d5ea22 (patch) | |
tree | a0a63398a9983667d52cbbbf4e2405b4f22b1d83 /arch | |
parent | 1be025d3cb40cd295123af2c394f7229ef9b30ca (diff) | |
parent | 8b3408f8ee994973869d8ba32c5bf482bc4ddca4 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1745 commits)
dp83640: free packet queues on remove
dp83640: use proper function to free transmit time stamping packets
ipv6: Do not use routes from locally generated RAs
|PATCH net-next] tg3: add tx_dropped counter
be2net: don't create multiple RX/TX rings in multi channel mode
be2net: don't create multiple TXQs in BE2
be2net: refactor VF setup/teardown code into be_vf_setup/clear()
be2net: add vlan/rx-mode/flow-control config to be_setup()
net_sched: cls_flow: use skb_header_pointer()
ipv4: avoid useless call of the function check_peer_pmtu
TCP: remove TCP_DEBUG
net: Fix driver name for mdio-gpio.c
ipv4: tcp: fix TOS value in ACK messages sent from TIME_WAIT
rtnetlink: Add missing manual netlink notification in dev_change_net_namespaces
ipv4: fix ipsec forward performance regression
jme: fix irq storm after suspend/resume
route: fix ICMP redirect validation
net: hold sock reference while processing tx timestamps
tcp: md5: add more const attributes
Add ethtool -g support to virtio_net
...
Fix up conflicts in:
- drivers/net/Kconfig:
The split-up generated a trivial conflict with removal of a
stale reference to Documentation/networking/net-modules.txt.
Remove it from the new location instead.
- fs/sysfs/dir.c:
Fairly nasty conflicts with the sysfs rb-tree usage, conflicting
with Eric Biederman's changes for tagged directories.
Diffstat (limited to 'arch')
48 files changed, 612 insertions, 209 deletions
diff --git a/arch/cris/arch-v10/drivers/Kconfig b/arch/cris/arch-v10/drivers/Kconfig index 0d7221779923..32d90867a984 100644 --- a/arch/cris/arch-v10/drivers/Kconfig +++ b/arch/cris/arch-v10/drivers/Kconfig | |||
@@ -4,6 +4,7 @@ config ETRAX_ETHERNET | |||
4 | bool "Ethernet support" | 4 | bool "Ethernet support" |
5 | depends on ETRAX_ARCH_V10 | 5 | depends on ETRAX_ARCH_V10 |
6 | select NET_ETHERNET | 6 | select NET_ETHERNET |
7 | select NET_CORE | ||
7 | select MII | 8 | select MII |
8 | help | 9 | help |
9 | This option enables the ETRAX 100LX built-in 10/100Mbit Ethernet | 10 | This option enables the ETRAX 100LX built-in 10/100Mbit Ethernet |
diff --git a/arch/cris/arch-v32/drivers/Kconfig b/arch/cris/arch-v32/drivers/Kconfig index 41a2732e8b9c..e47e9c3401b0 100644 --- a/arch/cris/arch-v32/drivers/Kconfig +++ b/arch/cris/arch-v32/drivers/Kconfig | |||
@@ -4,6 +4,7 @@ config ETRAX_ETHERNET | |||
4 | bool "Ethernet support" | 4 | bool "Ethernet support" |
5 | depends on ETRAX_ARCH_V32 | 5 | depends on ETRAX_ARCH_V32 |
6 | select NET_ETHERNET | 6 | select NET_ETHERNET |
7 | select NET_CORE | ||
7 | select MII | 8 | select MII |
8 | help | 9 | help |
9 | This option enables the ETRAX FS built-in 10/100Mbit Ethernet | 10 | This option enables the ETRAX FS built-in 10/100Mbit Ethernet |
diff --git a/arch/ia64/hp/sim/simeth.c b/arch/ia64/hp/sim/simeth.c index 7e81966ce481..47afcc61f6e5 100644 --- a/arch/ia64/hp/sim/simeth.c +++ b/arch/ia64/hp/sim/simeth.c | |||
@@ -172,7 +172,7 @@ static const struct net_device_ops simeth_netdev_ops = { | |||
172 | .ndo_stop = simeth_close, | 172 | .ndo_stop = simeth_close, |
173 | .ndo_start_xmit = simeth_tx, | 173 | .ndo_start_xmit = simeth_tx, |
174 | .ndo_get_stats = simeth_get_stats, | 174 | .ndo_get_stats = simeth_get_stats, |
175 | .ndo_set_multicast_list = set_multicast_list, /* not yet used */ | 175 | .ndo_set_rx_mode = set_multicast_list, /* not yet used */ |
176 | 176 | ||
177 | }; | 177 | }; |
178 | 178 | ||
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index b122adc8bdbb..4cbc6d8de210 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -92,15 +92,8 @@ config BCM47XX | |||
92 | select DMA_NONCOHERENT | 92 | select DMA_NONCOHERENT |
93 | select HW_HAS_PCI | 93 | select HW_HAS_PCI |
94 | select IRQ_CPU | 94 | select IRQ_CPU |
95 | select SYS_HAS_CPU_MIPS32_R1 | ||
96 | select SYS_SUPPORTS_32BIT_KERNEL | 95 | select SYS_SUPPORTS_32BIT_KERNEL |
97 | select SYS_SUPPORTS_LITTLE_ENDIAN | 96 | select SYS_SUPPORTS_LITTLE_ENDIAN |
98 | select SSB | ||
99 | select SSB_DRIVER_MIPS | ||
100 | select SSB_DRIVER_EXTIF | ||
101 | select SSB_EMBEDDED | ||
102 | select SSB_B43_PCI_BRIDGE if PCI | ||
103 | select SSB_PCICORE_HOSTMODE if PCI | ||
104 | select GENERIC_GPIO | 97 | select GENERIC_GPIO |
105 | select SYS_HAS_EARLY_PRINTK | 98 | select SYS_HAS_EARLY_PRINTK |
106 | select CFE | 99 | select CFE |
@@ -791,6 +784,7 @@ endchoice | |||
791 | 784 | ||
792 | source "arch/mips/alchemy/Kconfig" | 785 | source "arch/mips/alchemy/Kconfig" |
793 | source "arch/mips/ath79/Kconfig" | 786 | source "arch/mips/ath79/Kconfig" |
787 | source "arch/mips/bcm47xx/Kconfig" | ||
794 | source "arch/mips/bcm63xx/Kconfig" | 788 | source "arch/mips/bcm63xx/Kconfig" |
795 | source "arch/mips/jazz/Kconfig" | 789 | source "arch/mips/jazz/Kconfig" |
796 | source "arch/mips/jz4740/Kconfig" | 790 | source "arch/mips/jz4740/Kconfig" |
diff --git a/arch/mips/bcm47xx/Kconfig b/arch/mips/bcm47xx/Kconfig new file mode 100644 index 000000000000..6210b8d84109 --- /dev/null +++ b/arch/mips/bcm47xx/Kconfig | |||
@@ -0,0 +1,31 @@ | |||
1 | if BCM47XX | ||
2 | |||
3 | config BCM47XX_SSB | ||
4 | bool "SSB Support for Broadcom BCM47XX" | ||
5 | select SYS_HAS_CPU_MIPS32_R1 | ||
6 | select SSB | ||
7 | select SSB_DRIVER_MIPS | ||
8 | select SSB_DRIVER_EXTIF | ||
9 | select SSB_EMBEDDED | ||
10 | select SSB_B43_PCI_BRIDGE if PCI | ||
11 | select SSB_PCICORE_HOSTMODE if PCI | ||
12 | default y | ||
13 | help | ||
14 | Add support for old Broadcom BCM47xx boards with Sonics Silicon Backplane support. | ||
15 | |||
16 | This will generate an image with support for SSB and MIPS32 R1 instruction set. | ||
17 | |||
18 | config BCM47XX_BCMA | ||
19 | bool "BCMA Support for Broadcom BCM47XX" | ||
20 | select SYS_HAS_CPU_MIPS32_R2 | ||
21 | select BCMA | ||
22 | select BCMA_HOST_SOC | ||
23 | select BCMA_DRIVER_MIPS | ||
24 | select BCMA_DRIVER_PCI_HOSTMODE if PCI | ||
25 | default y | ||
26 | help | ||
27 | Add support for new Broadcom BCM47xx boards with Broadcom specific Advanced Microcontroller Bus. | ||
28 | |||
29 | This will generate an image with support for BCMA and MIPS32 R2 instruction set. | ||
30 | |||
31 | endif | ||
diff --git a/arch/mips/bcm47xx/Makefile b/arch/mips/bcm47xx/Makefile index 7465e8a72d9a..4add17349ff9 100644 --- a/arch/mips/bcm47xx/Makefile +++ b/arch/mips/bcm47xx/Makefile | |||
@@ -3,4 +3,5 @@ | |||
3 | # under Linux. | 3 | # under Linux. |
4 | # | 4 | # |
5 | 5 | ||
6 | obj-y := gpio.o irq.o nvram.o prom.o serial.o setup.o time.o wgt634u.o | 6 | obj-y += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o |
7 | obj-$(CONFIG_BCM47XX_SSB) += wgt634u.o | ||
diff --git a/arch/mips/bcm47xx/gpio.c b/arch/mips/bcm47xx/gpio.c index e4a5ee9c9721..57b425fd4d41 100644 --- a/arch/mips/bcm47xx/gpio.c +++ b/arch/mips/bcm47xx/gpio.c | |||
@@ -20,42 +20,82 @@ static DECLARE_BITMAP(gpio_in_use, BCM47XX_EXTIF_GPIO_LINES); | |||
20 | 20 | ||
21 | int gpio_request(unsigned gpio, const char *tag) | 21 | int gpio_request(unsigned gpio, const char *tag) |
22 | { | 22 | { |
23 | if (ssb_chipco_available(&ssb_bcm47xx.chipco) && | 23 | switch (bcm47xx_bus_type) { |
24 | ((unsigned)gpio >= BCM47XX_CHIPCO_GPIO_LINES)) | 24 | #ifdef CONFIG_BCM47XX_SSB |
25 | return -EINVAL; | 25 | case BCM47XX_BUS_TYPE_SSB: |
26 | if (ssb_chipco_available(&bcm47xx_bus.ssb.chipco) && | ||
27 | ((unsigned)gpio >= BCM47XX_CHIPCO_GPIO_LINES)) | ||
28 | return -EINVAL; | ||
26 | 29 | ||
27 | if (ssb_extif_available(&ssb_bcm47xx.extif) && | 30 | if (ssb_extif_available(&bcm47xx_bus.ssb.extif) && |
28 | ((unsigned)gpio >= BCM47XX_EXTIF_GPIO_LINES)) | 31 | ((unsigned)gpio >= BCM47XX_EXTIF_GPIO_LINES)) |
29 | return -EINVAL; | 32 | return -EINVAL; |
30 | 33 | ||
31 | if (test_and_set_bit(gpio, gpio_in_use)) | 34 | if (test_and_set_bit(gpio, gpio_in_use)) |
32 | return -EBUSY; | 35 | return -EBUSY; |
33 | 36 | ||
34 | return 0; | 37 | return 0; |
38 | #endif | ||
39 | #ifdef CONFIG_BCM47XX_BCMA | ||
40 | case BCM47XX_BUS_TYPE_BCMA: | ||
41 | if (gpio >= BCM47XX_CHIPCO_GPIO_LINES) | ||
42 | return -EINVAL; | ||
43 | |||
44 | if (test_and_set_bit(gpio, gpio_in_use)) | ||
45 | return -EBUSY; | ||
46 | |||
47 | return 0; | ||
48 | #endif | ||
49 | } | ||
50 | return -EINVAL; | ||
35 | } | 51 | } |
36 | EXPORT_SYMBOL(gpio_request); | 52 | EXPORT_SYMBOL(gpio_request); |
37 | 53 | ||
38 | void gpio_free(unsigned gpio) | 54 | void gpio_free(unsigned gpio) |
39 | { | 55 | { |
40 | if (ssb_chipco_available(&ssb_bcm47xx.chipco) && | 56 | switch (bcm47xx_bus_type) { |
41 | ((unsigned)gpio >= BCM47XX_CHIPCO_GPIO_LINES)) | 57 | #ifdef CONFIG_BCM47XX_SSB |
42 | return; | 58 | case BCM47XX_BUS_TYPE_SSB: |
59 | if (ssb_chipco_available(&bcm47xx_bus.ssb.chipco) && | ||
60 | ((unsigned)gpio >= BCM47XX_CHIPCO_GPIO_LINES)) | ||
61 | return; | ||
62 | |||
63 | if (ssb_extif_available(&bcm47xx_bus.ssb.extif) && | ||
64 | ((unsigned)gpio >= BCM47XX_EXTIF_GPIO_LINES)) | ||
65 | return; | ||
43 | 66 | ||
44 | if (ssb_extif_available(&ssb_bcm47xx.extif) && | 67 | clear_bit(gpio, gpio_in_use); |
45 | ((unsigned)gpio >= BCM47XX_EXTIF_GPIO_LINES)) | ||
46 | return; | 68 | return; |
69 | #endif | ||
70 | #ifdef CONFIG_BCM47XX_BCMA | ||
71 | case BCM47XX_BUS_TYPE_BCMA: | ||
72 | if (gpio >= BCM47XX_CHIPCO_GPIO_LINES) | ||
73 | return; | ||
47 | 74 | ||
48 | clear_bit(gpio, gpio_in_use); | 75 | clear_bit(gpio, gpio_in_use); |
76 | return; | ||
77 | #endif | ||
78 | } | ||
49 | } | 79 | } |
50 | EXPORT_SYMBOL(gpio_free); | 80 | EXPORT_SYMBOL(gpio_free); |
51 | 81 | ||
52 | int gpio_to_irq(unsigned gpio) | 82 | int gpio_to_irq(unsigned gpio) |
53 | { | 83 | { |
54 | if (ssb_chipco_available(&ssb_bcm47xx.chipco)) | 84 | switch (bcm47xx_bus_type) { |
55 | return ssb_mips_irq(ssb_bcm47xx.chipco.dev) + 2; | 85 | #ifdef CONFIG_BCM47XX_SSB |
56 | else if (ssb_extif_available(&ssb_bcm47xx.extif)) | 86 | case BCM47XX_BUS_TYPE_SSB: |
57 | return ssb_mips_irq(ssb_bcm47xx.extif.dev) + 2; | 87 | if (ssb_chipco_available(&bcm47xx_bus.ssb.chipco)) |
58 | else | 88 | return ssb_mips_irq(bcm47xx_bus.ssb.chipco.dev) + 2; |
59 | return -EINVAL; | 89 | else if (ssb_extif_available(&bcm47xx_bus.ssb.extif)) |
90 | return ssb_mips_irq(bcm47xx_bus.ssb.extif.dev) + 2; | ||
91 | else | ||
92 | return -EINVAL; | ||
93 | #endif | ||
94 | #ifdef CONFIG_BCM47XX_BCMA | ||
95 | case BCM47XX_BUS_TYPE_BCMA: | ||
96 | return bcma_core_mips_irq(bcm47xx_bus.bcma.bus.drv_cc.core) + 2; | ||
97 | #endif | ||
98 | } | ||
99 | return -EINVAL; | ||
60 | } | 100 | } |
61 | EXPORT_SYMBOL_GPL(gpio_to_irq); | 101 | EXPORT_SYMBOL_GPL(gpio_to_irq); |
diff --git a/arch/mips/bcm47xx/irq.c b/arch/mips/bcm47xx/irq.c index 325757acd020..8cf3833b2d29 100644 --- a/arch/mips/bcm47xx/irq.c +++ b/arch/mips/bcm47xx/irq.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
27 | #include <linux/irq.h> | 27 | #include <linux/irq.h> |
28 | #include <asm/irq_cpu.h> | 28 | #include <asm/irq_cpu.h> |
29 | #include <bcm47xx.h> | ||
29 | 30 | ||
30 | void plat_irq_dispatch(void) | 31 | void plat_irq_dispatch(void) |
31 | { | 32 | { |
@@ -51,5 +52,16 @@ void plat_irq_dispatch(void) | |||
51 | 52 | ||
52 | void __init arch_init_irq(void) | 53 | void __init arch_init_irq(void) |
53 | { | 54 | { |
55 | #ifdef CONFIG_BCM47XX_BCMA | ||
56 | if (bcm47xx_bus_type == BCM47XX_BUS_TYPE_BCMA) { | ||
57 | bcma_write32(bcm47xx_bus.bcma.bus.drv_mips.core, | ||
58 | BCMA_MIPS_MIPS74K_INTMASK(5), 1 << 31); | ||
59 | /* | ||
60 | * the kernel reads the timer irq from some register and thinks | ||
61 | * it's #5, but we offset it by 2 and route to #7 | ||
62 | */ | ||
63 | cp0_compare_irq = 7; | ||
64 | } | ||
65 | #endif | ||
54 | mips_cpu_irq_init(); | 66 | mips_cpu_irq_init(); |
55 | } | 67 | } |
diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c index 54db815bc86c..a84e3bb7387f 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c | |||
@@ -26,14 +26,35 @@ static char nvram_buf[NVRAM_SPACE]; | |||
26 | /* Probe for NVRAM header */ | 26 | /* Probe for NVRAM header */ |
27 | static void early_nvram_init(void) | 27 | static void early_nvram_init(void) |
28 | { | 28 | { |
29 | struct ssb_mipscore *mcore = &ssb_bcm47xx.mipscore; | 29 | #ifdef CONFIG_BCM47XX_SSB |
30 | struct ssb_mipscore *mcore_ssb; | ||
31 | #endif | ||
32 | #ifdef CONFIG_BCM47XX_BCMA | ||
33 | struct bcma_drv_cc *bcma_cc; | ||
34 | #endif | ||
30 | struct nvram_header *header; | 35 | struct nvram_header *header; |
31 | int i; | 36 | int i; |
32 | u32 base, lim, off; | 37 | u32 base = 0; |
38 | u32 lim = 0; | ||
39 | u32 off; | ||
33 | u32 *src, *dst; | 40 | u32 *src, *dst; |
34 | 41 | ||
35 | base = mcore->flash_window; | 42 | switch (bcm47xx_bus_type) { |
36 | lim = mcore->flash_window_size; | 43 | #ifdef CONFIG_BCM47XX_SSB |
44 | case BCM47XX_BUS_TYPE_SSB: | ||
45 | mcore_ssb = &bcm47xx_bus.ssb.mipscore; | ||
46 | base = mcore_ssb->flash_window; | ||
47 | lim = mcore_ssb->flash_window_size; | ||
48 | break; | ||
49 | #endif | ||
50 | #ifdef CONFIG_BCM47XX_BCMA | ||
51 | case BCM47XX_BUS_TYPE_BCMA: | ||
52 | bcma_cc = &bcm47xx_bus.bcma.bus.drv_cc; | ||
53 | base = bcma_cc->pflash.window; | ||
54 | lim = bcma_cc->pflash.window_size; | ||
55 | break; | ||
56 | #endif | ||
57 | } | ||
37 | 58 | ||
38 | off = FLASH_MIN; | 59 | off = FLASH_MIN; |
39 | while (off <= lim) { | 60 | while (off <= lim) { |
diff --git a/arch/mips/bcm47xx/serial.c b/arch/mips/bcm47xx/serial.c index 59c11afdb2ab..57981e4fe2bc 100644 --- a/arch/mips/bcm47xx/serial.c +++ b/arch/mips/bcm47xx/serial.c | |||
@@ -23,10 +23,11 @@ static struct platform_device uart8250_device = { | |||
23 | }, | 23 | }, |
24 | }; | 24 | }; |
25 | 25 | ||
26 | static int __init uart8250_init(void) | 26 | #ifdef CONFIG_BCM47XX_SSB |
27 | static int __init uart8250_init_ssb(void) | ||
27 | { | 28 | { |
28 | int i; | 29 | int i; |
29 | struct ssb_mipscore *mcore = &(ssb_bcm47xx.mipscore); | 30 | struct ssb_mipscore *mcore = &(bcm47xx_bus.ssb.mipscore); |
30 | 31 | ||
31 | memset(&uart8250_data, 0, sizeof(uart8250_data)); | 32 | memset(&uart8250_data, 0, sizeof(uart8250_data)); |
32 | 33 | ||
@@ -44,6 +45,47 @@ static int __init uart8250_init(void) | |||
44 | } | 45 | } |
45 | return platform_device_register(&uart8250_device); | 46 | return platform_device_register(&uart8250_device); |
46 | } | 47 | } |
48 | #endif | ||
49 | |||
50 | #ifdef CONFIG_BCM47XX_BCMA | ||
51 | static int __init uart8250_init_bcma(void) | ||
52 | { | ||
53 | int i; | ||
54 | struct bcma_drv_cc *cc = &(bcm47xx_bus.bcma.bus.drv_cc); | ||
55 | |||
56 | memset(&uart8250_data, 0, sizeof(uart8250_data)); | ||
57 | |||
58 | for (i = 0; i < cc->nr_serial_ports; i++) { | ||
59 | struct plat_serial8250_port *p = &(uart8250_data[i]); | ||
60 | struct bcma_serial_port *bcma_port; | ||
61 | bcma_port = &(cc->serial_ports[i]); | ||
62 | |||
63 | p->mapbase = (unsigned int) bcma_port->regs; | ||
64 | p->membase = (void *) bcma_port->regs; | ||
65 | p->irq = bcma_port->irq + 2; | ||
66 | p->uartclk = bcma_port->baud_base; | ||
67 | p->regshift = bcma_port->reg_shift; | ||
68 | p->iotype = UPIO_MEM; | ||
69 | p->flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ; | ||
70 | } | ||
71 | return platform_device_register(&uart8250_device); | ||
72 | } | ||
73 | #endif | ||
74 | |||
75 | static int __init uart8250_init(void) | ||
76 | { | ||
77 | switch (bcm47xx_bus_type) { | ||
78 | #ifdef CONFIG_BCM47XX_SSB | ||
79 | case BCM47XX_BUS_TYPE_SSB: | ||
80 | return uart8250_init_ssb(); | ||
81 | #endif | ||
82 | #ifdef CONFIG_BCM47XX_BCMA | ||
83 | case BCM47XX_BUS_TYPE_BCMA: | ||
84 | return uart8250_init_bcma(); | ||
85 | #endif | ||
86 | } | ||
87 | return -EINVAL; | ||
88 | } | ||
47 | 89 | ||
48 | module_init(uart8250_init); | 90 | module_init(uart8250_init); |
49 | 91 | ||
diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c index cfae81571ded..17c3d14d7c49 100644 --- a/arch/mips/bcm47xx/setup.c +++ b/arch/mips/bcm47xx/setup.c | |||
@@ -29,21 +29,36 @@ | |||
29 | #include <linux/types.h> | 29 | #include <linux/types.h> |
30 | #include <linux/ssb/ssb.h> | 30 | #include <linux/ssb/ssb.h> |
31 | #include <linux/ssb/ssb_embedded.h> | 31 | #include <linux/ssb/ssb_embedded.h> |
32 | #include <linux/bcma/bcma_soc.h> | ||
32 | #include <asm/bootinfo.h> | 33 | #include <asm/bootinfo.h> |
33 | #include <asm/reboot.h> | 34 | #include <asm/reboot.h> |
34 | #include <asm/time.h> | 35 | #include <asm/time.h> |
35 | #include <bcm47xx.h> | 36 | #include <bcm47xx.h> |
36 | #include <asm/mach-bcm47xx/nvram.h> | 37 | #include <asm/mach-bcm47xx/nvram.h> |
37 | 38 | ||
38 | struct ssb_bus ssb_bcm47xx; | 39 | union bcm47xx_bus bcm47xx_bus; |
39 | EXPORT_SYMBOL(ssb_bcm47xx); | 40 | EXPORT_SYMBOL(bcm47xx_bus); |
41 | |||
42 | enum bcm47xx_bus_type bcm47xx_bus_type; | ||
43 | EXPORT_SYMBOL(bcm47xx_bus_type); | ||
40 | 44 | ||
41 | static void bcm47xx_machine_restart(char *command) | 45 | static void bcm47xx_machine_restart(char *command) |
42 | { | 46 | { |
43 | printk(KERN_ALERT "Please stand by while rebooting the system...\n"); | 47 | printk(KERN_ALERT "Please stand by while rebooting the system...\n"); |
44 | local_irq_disable(); | 48 | local_irq_disable(); |
45 | /* Set the watchdog timer to reset immediately */ | 49 | /* Set the watchdog timer to reset immediately */ |
46 | ssb_watchdog_timer_set(&ssb_bcm47xx, 1); | 50 | switch (bcm47xx_bus_type) { |
51 | #ifdef CONFIG_BCM47XX_SSB | ||
52 | case BCM47XX_BUS_TYPE_SSB: | ||
53 | ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 1); | ||
54 | break; | ||
55 | #endif | ||
56 | #ifdef CONFIG_BCM47XX_BCMA | ||
57 | case BCM47XX_BUS_TYPE_BCMA: | ||
58 | bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 1); | ||
59 | break; | ||
60 | #endif | ||
61 | } | ||
47 | while (1) | 62 | while (1) |
48 | cpu_relax(); | 63 | cpu_relax(); |
49 | } | 64 | } |
@@ -52,11 +67,23 @@ static void bcm47xx_machine_halt(void) | |||
52 | { | 67 | { |
53 | /* Disable interrupts and watchdog and spin forever */ | 68 | /* Disable interrupts and watchdog and spin forever */ |
54 | local_irq_disable(); | 69 | local_irq_disable(); |
55 | ssb_watchdog_timer_set(&ssb_bcm47xx, 0); | 70 | switch (bcm47xx_bus_type) { |
71 | #ifdef CONFIG_BCM47XX_SSB | ||
72 | case BCM47XX_BUS_TYPE_SSB: | ||
73 | ssb_watchdog_timer_set(&bcm47xx_bus.ssb, 0); | ||
74 | break; | ||
75 | #endif | ||
76 | #ifdef CONFIG_BCM47XX_BCMA | ||
77 | case BCM47XX_BUS_TYPE_BCMA: | ||
78 | bcma_chipco_watchdog_timer_set(&bcm47xx_bus.bcma.bus.drv_cc, 0); | ||
79 | break; | ||
80 | #endif | ||
81 | } | ||
56 | while (1) | 82 | while (1) |
57 | cpu_relax(); | 83 | cpu_relax(); |
58 | } | 84 | } |
59 | 85 | ||
86 | #ifdef CONFIG_BCM47XX_SSB | ||
60 | #define READ_FROM_NVRAM(_outvar, name, buf) \ | 87 | #define READ_FROM_NVRAM(_outvar, name, buf) \ |
61 | if (nvram_getprefix(prefix, name, buf, sizeof(buf)) >= 0)\ | 88 | if (nvram_getprefix(prefix, name, buf, sizeof(buf)) >= 0)\ |
62 | sprom->_outvar = simple_strtoul(buf, NULL, 0); | 89 | sprom->_outvar = simple_strtoul(buf, NULL, 0); |
@@ -247,7 +274,7 @@ static int bcm47xx_get_invariants(struct ssb_bus *bus, | |||
247 | return 0; | 274 | return 0; |
248 | } | 275 | } |
249 | 276 | ||
250 | void __init plat_mem_setup(void) | 277 | static void __init bcm47xx_register_ssb(void) |
251 | { | 278 | { |
252 | int err; | 279 | int err; |
253 | char buf[100]; | 280 | char buf[100]; |
@@ -258,12 +285,12 @@ void __init plat_mem_setup(void) | |||
258 | printk(KERN_WARNING "bcm47xx: someone else already registered" | 285 | printk(KERN_WARNING "bcm47xx: someone else already registered" |
259 | " a ssb SPROM callback handler (err %d)\n", err); | 286 | " a ssb SPROM callback handler (err %d)\n", err); |
260 | 287 | ||
261 | err = ssb_bus_ssbbus_register(&ssb_bcm47xx, SSB_ENUM_BASE, | 288 | err = ssb_bus_ssbbus_register(&(bcm47xx_bus.ssb), SSB_ENUM_BASE, |
262 | bcm47xx_get_invariants); | 289 | bcm47xx_get_invariants); |
263 | if (err) | 290 | if (err) |
264 | panic("Failed to initialize SSB bus (err %d)\n", err); | 291 | panic("Failed to initialize SSB bus (err %d)\n", err); |
265 | 292 | ||
266 | mcore = &ssb_bcm47xx.mipscore; | 293 | mcore = &bcm47xx_bus.ssb.mipscore; |
267 | if (nvram_getenv("kernel_args", buf, sizeof(buf)) >= 0) { | 294 | if (nvram_getenv("kernel_args", buf, sizeof(buf)) >= 0) { |
268 | if (strstr(buf, "console=ttyS1")) { | 295 | if (strstr(buf, "console=ttyS1")) { |
269 | struct ssb_serial_port port; | 296 | struct ssb_serial_port port; |
@@ -276,8 +303,57 @@ void __init plat_mem_setup(void) | |||
276 | memcpy(&mcore->serial_ports[1], &port, sizeof(port)); | 303 | memcpy(&mcore->serial_ports[1], &port, sizeof(port)); |
277 | } | 304 | } |
278 | } | 305 | } |
306 | } | ||
307 | #endif | ||
308 | |||
309 | #ifdef CONFIG_BCM47XX_BCMA | ||
310 | static void __init bcm47xx_register_bcma(void) | ||
311 | { | ||
312 | int err; | ||
313 | |||
314 | err = bcma_host_soc_register(&bcm47xx_bus.bcma); | ||
315 | if (err) | ||
316 | panic("Failed to initialize BCMA bus (err %d)\n", err); | ||
317 | } | ||
318 | #endif | ||
319 | |||
320 | void __init plat_mem_setup(void) | ||
321 | { | ||
322 | struct cpuinfo_mips *c = ¤t_cpu_data; | ||
323 | |||
324 | if (c->cputype == CPU_74K) { | ||
325 | printk(KERN_INFO "bcm47xx: using bcma bus\n"); | ||
326 | #ifdef CONFIG_BCM47XX_BCMA | ||
327 | bcm47xx_bus_type = BCM47XX_BUS_TYPE_BCMA; | ||
328 | bcm47xx_register_bcma(); | ||
329 | #endif | ||
330 | } else { | ||
331 | printk(KERN_INFO "bcm47xx: using ssb bus\n"); | ||
332 | #ifdef CONFIG_BCM47XX_SSB | ||
333 | bcm47xx_bus_type = BCM47XX_BUS_TYPE_SSB; | ||
334 | bcm47xx_register_ssb(); | ||
335 | #endif | ||
336 | } | ||
279 | 337 | ||
280 | _machine_restart = bcm47xx_machine_restart; | 338 | _machine_restart = bcm47xx_machine_restart; |
281 | _machine_halt = bcm47xx_machine_halt; | 339 | _machine_halt = bcm47xx_machine_halt; |
282 | pm_power_off = bcm47xx_machine_halt; | 340 | pm_power_off = bcm47xx_machine_halt; |
283 | } | 341 | } |
342 | |||
343 | static int __init bcm47xx_register_bus_complete(void) | ||
344 | { | ||
345 | switch (bcm47xx_bus_type) { | ||
346 | #ifdef CONFIG_BCM47XX_SSB | ||
347 | case BCM47XX_BUS_TYPE_SSB: | ||
348 | /* Nothing to do */ | ||
349 | break; | ||
350 | #endif | ||
351 | #ifdef CONFIG_BCM47XX_BCMA | ||
352 | case BCM47XX_BUS_TYPE_BCMA: | ||
353 | bcma_bus_register(&bcm47xx_bus.bcma.bus); | ||
354 | break; | ||
355 | #endif | ||
356 | } | ||
357 | return 0; | ||
358 | } | ||
359 | device_initcall(bcm47xx_register_bus_complete); | ||
diff --git a/arch/mips/bcm47xx/time.c b/arch/mips/bcm47xx/time.c index 0c6f47b3fd94..536374dcba78 100644 --- a/arch/mips/bcm47xx/time.c +++ b/arch/mips/bcm47xx/time.c | |||
@@ -30,7 +30,7 @@ | |||
30 | 30 | ||
31 | void __init plat_time_init(void) | 31 | void __init plat_time_init(void) |
32 | { | 32 | { |
33 | unsigned long hz; | 33 | unsigned long hz = 0; |
34 | 34 | ||
35 | /* | 35 | /* |
36 | * Use deterministic values for initial counter interrupt | 36 | * Use deterministic values for initial counter interrupt |
@@ -39,7 +39,19 @@ void __init plat_time_init(void) | |||
39 | write_c0_count(0); | 39 | write_c0_count(0); |
40 | write_c0_compare(0xffff); | 40 | write_c0_compare(0xffff); |
41 | 41 | ||
42 | hz = ssb_cpu_clock(&ssb_bcm47xx.mipscore) / 2; | 42 | switch (bcm47xx_bus_type) { |
43 | #ifdef CONFIG_BCM47XX_SSB | ||
44 | case BCM47XX_BUS_TYPE_SSB: | ||
45 | hz = ssb_cpu_clock(&bcm47xx_bus.ssb.mipscore) / 2; | ||
46 | break; | ||
47 | #endif | ||
48 | #ifdef CONFIG_BCM47XX_BCMA | ||
49 | case BCM47XX_BUS_TYPE_BCMA: | ||
50 | hz = bcma_cpu_clock(&bcm47xx_bus.bcma.bus.drv_mips) / 2; | ||
51 | break; | ||
52 | #endif | ||
53 | } | ||
54 | |||
43 | if (!hz) | 55 | if (!hz) |
44 | hz = 100000000; | 56 | hz = 100000000; |
45 | 57 | ||
diff --git a/arch/mips/bcm47xx/wgt634u.c b/arch/mips/bcm47xx/wgt634u.c index 74d06965326f..e9f9ec8d443b 100644 --- a/arch/mips/bcm47xx/wgt634u.c +++ b/arch/mips/bcm47xx/wgt634u.c | |||
@@ -108,7 +108,7 @@ static irqreturn_t gpio_interrupt(int irq, void *ignored) | |||
108 | 108 | ||
109 | /* Interrupts are shared, check if the current one is | 109 | /* Interrupts are shared, check if the current one is |
110 | a GPIO interrupt. */ | 110 | a GPIO interrupt. */ |
111 | if (!ssb_chipco_irq_status(&ssb_bcm47xx.chipco, | 111 | if (!ssb_chipco_irq_status(&bcm47xx_bus.ssb.chipco, |
112 | SSB_CHIPCO_IRQ_GPIO)) | 112 | SSB_CHIPCO_IRQ_GPIO)) |
113 | return IRQ_NONE; | 113 | return IRQ_NONE; |
114 | 114 | ||
@@ -132,22 +132,26 @@ static int __init wgt634u_init(void) | |||
132 | * machine. Use the MAC address as an heuristic. Netgear Inc. has | 132 | * machine. Use the MAC address as an heuristic. Netgear Inc. has |
133 | * been allocated ranges 00:09:5b:xx:xx:xx and 00:0f:b5:xx:xx:xx. | 133 | * been allocated ranges 00:09:5b:xx:xx:xx and 00:0f:b5:xx:xx:xx. |
134 | */ | 134 | */ |
135 | u8 *et0mac; | ||
135 | 136 | ||
136 | u8 *et0mac = ssb_bcm47xx.sprom.et0mac; | 137 | if (bcm47xx_bus_type != BCM47XX_BUS_TYPE_SSB) |
138 | return -ENODEV; | ||
139 | |||
140 | et0mac = bcm47xx_bus.ssb.sprom.et0mac; | ||
137 | 141 | ||
138 | if (et0mac[0] == 0x00 && | 142 | if (et0mac[0] == 0x00 && |
139 | ((et0mac[1] == 0x09 && et0mac[2] == 0x5b) || | 143 | ((et0mac[1] == 0x09 && et0mac[2] == 0x5b) || |
140 | (et0mac[1] == 0x0f && et0mac[2] == 0xb5))) { | 144 | (et0mac[1] == 0x0f && et0mac[2] == 0xb5))) { |
141 | struct ssb_mipscore *mcore = &ssb_bcm47xx.mipscore; | 145 | struct ssb_mipscore *mcore = &bcm47xx_bus.ssb.mipscore; |
142 | 146 | ||
143 | printk(KERN_INFO "WGT634U machine detected.\n"); | 147 | printk(KERN_INFO "WGT634U machine detected.\n"); |
144 | 148 | ||
145 | if (!request_irq(gpio_to_irq(WGT634U_GPIO_RESET), | 149 | if (!request_irq(gpio_to_irq(WGT634U_GPIO_RESET), |
146 | gpio_interrupt, IRQF_SHARED, | 150 | gpio_interrupt, IRQF_SHARED, |
147 | "WGT634U GPIO", &ssb_bcm47xx.chipco)) { | 151 | "WGT634U GPIO", &bcm47xx_bus.ssb.chipco)) { |
148 | gpio_direction_input(WGT634U_GPIO_RESET); | 152 | gpio_direction_input(WGT634U_GPIO_RESET); |
149 | gpio_intmask(WGT634U_GPIO_RESET, 1); | 153 | gpio_intmask(WGT634U_GPIO_RESET, 1); |
150 | ssb_chipco_irq_mask(&ssb_bcm47xx.chipco, | 154 | ssb_chipco_irq_mask(&bcm47xx_bus.ssb.chipco, |
151 | SSB_CHIPCO_IRQ_GPIO, | 155 | SSB_CHIPCO_IRQ_GPIO, |
152 | SSB_CHIPCO_IRQ_GPIO); | 156 | SSB_CHIPCO_IRQ_GPIO); |
153 | } | 157 | } |
diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h index d008f47a28bd..de95e0723e2b 100644 --- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h +++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h | |||
@@ -19,7 +19,29 @@ | |||
19 | #ifndef __ASM_BCM47XX_H | 19 | #ifndef __ASM_BCM47XX_H |
20 | #define __ASM_BCM47XX_H | 20 | #define __ASM_BCM47XX_H |
21 | 21 | ||
22 | /* SSB bus */ | 22 | #include <linux/ssb/ssb.h> |
23 | extern struct ssb_bus ssb_bcm47xx; | 23 | #include <linux/bcma/bcma.h> |
24 | #include <linux/bcma/bcma_soc.h> | ||
25 | |||
26 | enum bcm47xx_bus_type { | ||
27 | #ifdef CONFIG_BCM47XX_SSB | ||
28 | BCM47XX_BUS_TYPE_SSB, | ||
29 | #endif | ||
30 | #ifdef CONFIG_BCM47XX_BCMA | ||
31 | BCM47XX_BUS_TYPE_BCMA, | ||
32 | #endif | ||
33 | }; | ||
34 | |||
35 | union bcm47xx_bus { | ||
36 | #ifdef CONFIG_BCM47XX_SSB | ||
37 | struct ssb_bus ssb; | ||
38 | #endif | ||
39 | #ifdef CONFIG_BCM47XX_BCMA | ||
40 | struct bcma_soc bcma; | ||
41 | #endif | ||
42 | }; | ||
43 | |||
44 | extern union bcm47xx_bus bcm47xx_bus; | ||
45 | extern enum bcm47xx_bus_type bcm47xx_bus_type; | ||
24 | 46 | ||
25 | #endif /* __ASM_BCM47XX_H */ | 47 | #endif /* __ASM_BCM47XX_H */ |
diff --git a/arch/mips/include/asm/mach-bcm47xx/gpio.h b/arch/mips/include/asm/mach-bcm47xx/gpio.h index 98504142124e..76961cabeedf 100644 --- a/arch/mips/include/asm/mach-bcm47xx/gpio.h +++ b/arch/mips/include/asm/mach-bcm47xx/gpio.h | |||
@@ -10,6 +10,7 @@ | |||
10 | #define __BCM47XX_GPIO_H | 10 | #define __BCM47XX_GPIO_H |
11 | 11 | ||
12 | #include <linux/ssb/ssb_embedded.h> | 12 | #include <linux/ssb/ssb_embedded.h> |
13 | #include <linux/bcma/bcma.h> | ||
13 | #include <asm/mach-bcm47xx/bcm47xx.h> | 14 | #include <asm/mach-bcm47xx/bcm47xx.h> |
14 | 15 | ||
15 | #define BCM47XX_EXTIF_GPIO_LINES 5 | 16 | #define BCM47XX_EXTIF_GPIO_LINES 5 |
@@ -21,41 +22,118 @@ extern int gpio_to_irq(unsigned gpio); | |||
21 | 22 | ||
22 | static inline int gpio_get_value(unsigned gpio) | 23 | static inline int gpio_get_value(unsigned gpio) |
23 | { | 24 | { |
24 | return ssb_gpio_in(&ssb_bcm47xx, 1 << gpio); | 25 | switch (bcm47xx_bus_type) { |
26 | #ifdef CONFIG_BCM47XX_SSB | ||
27 | case BCM47XX_BUS_TYPE_SSB: | ||
28 | return ssb_gpio_in(&bcm47xx_bus.ssb, 1 << gpio); | ||
29 | #endif | ||
30 | #ifdef CONFIG_BCM47XX_BCMA | ||
31 | case BCM47XX_BUS_TYPE_BCMA: | ||
32 | return bcma_chipco_gpio_in(&bcm47xx_bus.bcma.bus.drv_cc, | ||
33 | 1 << gpio); | ||
34 | #endif | ||
35 | } | ||
36 | return -EINVAL; | ||
25 | } | 37 | } |
26 | 38 | ||
27 | static inline void gpio_set_value(unsigned gpio, int value) | 39 | static inline void gpio_set_value(unsigned gpio, int value) |
28 | { | 40 | { |
29 | ssb_gpio_out(&ssb_bcm47xx, 1 << gpio, value ? 1 << gpio : 0); | 41 | switch (bcm47xx_bus_type) { |
42 | #ifdef CONFIG_BCM47XX_SSB | ||
43 | case BCM47XX_BUS_TYPE_SSB: | ||
44 | ssb_gpio_out(&bcm47xx_bus.ssb, 1 << gpio, | ||
45 | value ? 1 << gpio : 0); | ||
46 | return; | ||
47 | #endif | ||
48 | #ifdef CONFIG_BCM47XX_BCMA | ||
49 | case BCM47XX_BUS_TYPE_BCMA: | ||
50 | bcma_chipco_gpio_out(&bcm47xx_bus.bcma.bus.drv_cc, 1 << gpio, | ||
51 | value ? 1 << gpio : 0); | ||
52 | return; | ||
53 | #endif | ||
54 | } | ||
30 | } | 55 | } |
31 | 56 | ||
32 | static inline int gpio_direction_input(unsigned gpio) | 57 | static inline int gpio_direction_input(unsigned gpio) |
33 | { | 58 | { |
34 | ssb_gpio_outen(&ssb_bcm47xx, 1 << gpio, 0); | 59 | switch (bcm47xx_bus_type) { |
35 | return 0; | 60 | #ifdef CONFIG_BCM47XX_SSB |
61 | case BCM47XX_BUS_TYPE_SSB: | ||
62 | ssb_gpio_outen(&bcm47xx_bus.ssb, 1 << gpio, 0); | ||
63 | return 0; | ||
64 | #endif | ||
65 | #ifdef CONFIG_BCM47XX_BCMA | ||
66 | case BCM47XX_BUS_TYPE_BCMA: | ||
67 | bcma_chipco_gpio_outen(&bcm47xx_bus.bcma.bus.drv_cc, 1 << gpio, | ||
68 | 0); | ||
69 | return 0; | ||
70 | #endif | ||
71 | } | ||
72 | return -EINVAL; | ||
36 | } | 73 | } |
37 | 74 | ||
38 | static inline int gpio_direction_output(unsigned gpio, int value) | 75 | static inline int gpio_direction_output(unsigned gpio, int value) |
39 | { | 76 | { |
40 | /* first set the gpio out value */ | 77 | switch (bcm47xx_bus_type) { |
41 | ssb_gpio_out(&ssb_bcm47xx, 1 << gpio, value ? 1 << gpio : 0); | 78 | #ifdef CONFIG_BCM47XX_SSB |
42 | /* then set the gpio mode */ | 79 | case BCM47XX_BUS_TYPE_SSB: |
43 | ssb_gpio_outen(&ssb_bcm47xx, 1 << gpio, 1 << gpio); | 80 | /* first set the gpio out value */ |
44 | return 0; | 81 | ssb_gpio_out(&bcm47xx_bus.ssb, 1 << gpio, |
82 | value ? 1 << gpio : 0); | ||
83 | /* then set the gpio mode */ | ||
84 | ssb_gpio_outen(&bcm47xx_bus.ssb, 1 << gpio, 1 << gpio); | ||
85 | return 0; | ||
86 | #endif | ||
87 | #ifdef CONFIG_BCM47XX_BCMA | ||
88 | case BCM47XX_BUS_TYPE_BCMA: | ||
89 | /* first set the gpio out value */ | ||
90 | bcma_chipco_gpio_out(&bcm47xx_bus.bcma.bus.drv_cc, 1 << gpio, | ||
91 | value ? 1 << gpio : 0); | ||
92 | /* then set the gpio mode */ | ||
93 | bcma_chipco_gpio_outen(&bcm47xx_bus.bcma.bus.drv_cc, 1 << gpio, | ||
94 | 1 << gpio); | ||
95 | return 0; | ||
96 | #endif | ||
97 | } | ||
98 | return -EINVAL; | ||
45 | } | 99 | } |
46 | 100 | ||
47 | static inline int gpio_intmask(unsigned gpio, int value) | 101 | static inline int gpio_intmask(unsigned gpio, int value) |
48 | { | 102 | { |
49 | ssb_gpio_intmask(&ssb_bcm47xx, 1 << gpio, | 103 | switch (bcm47xx_bus_type) { |
50 | value ? 1 << gpio : 0); | 104 | #ifdef CONFIG_BCM47XX_SSB |
51 | return 0; | 105 | case BCM47XX_BUS_TYPE_SSB: |
106 | ssb_gpio_intmask(&bcm47xx_bus.ssb, 1 << gpio, | ||
107 | value ? 1 << gpio : 0); | ||
108 | return 0; | ||
109 | #endif | ||
110 | #ifdef CONFIG_BCM47XX_BCMA | ||
111 | case BCM47XX_BUS_TYPE_BCMA: | ||
112 | bcma_chipco_gpio_intmask(&bcm47xx_bus.bcma.bus.drv_cc, | ||
113 | 1 << gpio, value ? 1 << gpio : 0); | ||
114 | return 0; | ||
115 | #endif | ||
116 | } | ||
117 | return -EINVAL; | ||
52 | } | 118 | } |
53 | 119 | ||
54 | static inline int gpio_polarity(unsigned gpio, int value) | 120 | static inline int gpio_polarity(unsigned gpio, int value) |
55 | { | 121 | { |
56 | ssb_gpio_polarity(&ssb_bcm47xx, 1 << gpio, | 122 | switch (bcm47xx_bus_type) { |
57 | value ? 1 << gpio : 0); | 123 | #ifdef CONFIG_BCM47XX_SSB |
58 | return 0; | 124 | case BCM47XX_BUS_TYPE_SSB: |
125 | ssb_gpio_polarity(&bcm47xx_bus.ssb, 1 << gpio, | ||
126 | value ? 1 << gpio : 0); | ||
127 | return 0; | ||
128 | #endif | ||
129 | #ifdef CONFIG_BCM47XX_BCMA | ||
130 | case BCM47XX_BUS_TYPE_BCMA: | ||
131 | bcma_chipco_gpio_polarity(&bcm47xx_bus.bcma.bus.drv_cc, | ||
132 | 1 << gpio, value ? 1 << gpio : 0); | ||
133 | return 0; | ||
134 | #endif | ||
135 | } | ||
136 | return -EINVAL; | ||
59 | } | 137 | } |
60 | 138 | ||
61 | 139 | ||
diff --git a/arch/mips/pci/pci-bcm47xx.c b/arch/mips/pci/pci-bcm47xx.c index 455f8e50a007..400535a955d0 100644 --- a/arch/mips/pci/pci-bcm47xx.c +++ b/arch/mips/pci/pci-bcm47xx.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/types.h> | 25 | #include <linux/types.h> |
26 | #include <linux/pci.h> | 26 | #include <linux/pci.h> |
27 | #include <linux/ssb/ssb.h> | 27 | #include <linux/ssb/ssb.h> |
28 | #include <bcm47xx.h> | ||
28 | 29 | ||
29 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | 30 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
30 | { | 31 | { |
@@ -33,9 +34,13 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | |||
33 | 34 | ||
34 | int pcibios_plat_dev_init(struct pci_dev *dev) | 35 | int pcibios_plat_dev_init(struct pci_dev *dev) |
35 | { | 36 | { |
37 | #ifdef CONFIG_BCM47XX_SSB | ||
36 | int res; | 38 | int res; |
37 | u8 slot, pin; | 39 | u8 slot, pin; |
38 | 40 | ||
41 | if (bcm47xx_bus_type != BCM47XX_BUS_TYPE_SSB) | ||
42 | return 0; | ||
43 | |||
39 | res = ssb_pcibios_plat_dev_init(dev); | 44 | res = ssb_pcibios_plat_dev_init(dev); |
40 | if (res < 0) { | 45 | if (res < 0) { |
41 | printk(KERN_ALERT "PCI: Failed to init device %s\n", | 46 | printk(KERN_ALERT "PCI: Failed to init device %s\n", |
@@ -55,5 +60,6 @@ int pcibios_plat_dev_init(struct pci_dev *dev) | |||
55 | } | 60 | } |
56 | 61 | ||
57 | dev->irq = res; | 62 | dev->irq = res; |
63 | #endif | ||
58 | return 0; | 64 | return 0; |
59 | } | 65 | } |
diff --git a/arch/mips/txx9/generic/setup_tx4939.c b/arch/mips/txx9/generic/setup_tx4939.c index e9f95dcde379..ba3cec3155df 100644 --- a/arch/mips/txx9/generic/setup_tx4939.c +++ b/arch/mips/txx9/generic/setup_tx4939.c | |||
@@ -321,7 +321,7 @@ void __init tx4939_sio_init(unsigned int sclk, unsigned int cts_mask) | |||
321 | static u32 tx4939_get_eth_speed(struct net_device *dev) | 321 | static u32 tx4939_get_eth_speed(struct net_device *dev) |
322 | { | 322 | { |
323 | struct ethtool_cmd cmd; | 323 | struct ethtool_cmd cmd; |
324 | if (dev_ethtool_get_settings(dev, &cmd)) | 324 | if (__ethtool_get_settings(dev, &cmd)) |
325 | return 100; /* default 100Mbps */ | 325 | return 100; /* default 100Mbps */ |
326 | 326 | ||
327 | return ethtool_cmd_speed(&cmd); | 327 | return ethtool_cmd_speed(&cmd); |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 6926b61acfea..47682b67fd36 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -656,6 +656,8 @@ config SBUS | |||
656 | 656 | ||
657 | config FSL_SOC | 657 | config FSL_SOC |
658 | bool | 658 | bool |
659 | select HAVE_CAN_FLEXCAN if NET && CAN | ||
660 | select PPC_CLOCK if CAN_FLEXCAN | ||
659 | 661 | ||
660 | config FSL_PCI | 662 | config FSL_PCI |
661 | bool | 663 | bool |
diff --git a/arch/powerpc/boot/dts/p1010rdb.dts b/arch/powerpc/boot/dts/p1010rdb.dts index 6b33b73a5ba0..d6c669c888e9 100644 --- a/arch/powerpc/boot/dts/p1010rdb.dts +++ b/arch/powerpc/boot/dts/p1010rdb.dts | |||
@@ -23,6 +23,8 @@ | |||
23 | ethernet2 = &enet2; | 23 | ethernet2 = &enet2; |
24 | pci0 = &pci0; | 24 | pci0 = &pci0; |
25 | pci1 = &pci1; | 25 | pci1 = &pci1; |
26 | can0 = &can0; | ||
27 | can1 = &can1; | ||
26 | }; | 28 | }; |
27 | 29 | ||
28 | memory { | 30 | memory { |
@@ -169,14 +171,6 @@ | |||
169 | }; | 171 | }; |
170 | }; | 172 | }; |
171 | 173 | ||
172 | can0@1c000 { | ||
173 | fsl,flexcan-clock-source = "platform"; | ||
174 | }; | ||
175 | |||
176 | can1@1d000 { | ||
177 | fsl,flexcan-clock-source = "platform"; | ||
178 | }; | ||
179 | |||
180 | usb@22000 { | 174 | usb@22000 { |
181 | phy_type = "utmi"; | 175 | phy_type = "utmi"; |
182 | }; | 176 | }; |
diff --git a/arch/powerpc/boot/dts/p1010si.dtsi b/arch/powerpc/boot/dts/p1010si.dtsi index 7f51104f2e36..cabe0a453ae6 100644 --- a/arch/powerpc/boot/dts/p1010si.dtsi +++ b/arch/powerpc/boot/dts/p1010si.dtsi | |||
@@ -140,20 +140,18 @@ | |||
140 | interrupt-parent = <&mpic>; | 140 | interrupt-parent = <&mpic>; |
141 | }; | 141 | }; |
142 | 142 | ||
143 | can0@1c000 { | 143 | can0: can@1c000 { |
144 | compatible = "fsl,flexcan-v1.0"; | 144 | compatible = "fsl,p1010-flexcan"; |
145 | reg = <0x1c000 0x1000>; | 145 | reg = <0x1c000 0x1000>; |
146 | interrupts = <48 0x2>; | 146 | interrupts = <48 0x2>; |
147 | interrupt-parent = <&mpic>; | 147 | interrupt-parent = <&mpic>; |
148 | fsl,flexcan-clock-divider = <2>; | ||
149 | }; | 148 | }; |
150 | 149 | ||
151 | can1@1d000 { | 150 | can1: can@1d000 { |
152 | compatible = "fsl,flexcan-v1.0"; | 151 | compatible = "fsl,p1010-flexcan"; |
153 | reg = <0x1d000 0x1000>; | 152 | reg = <0x1d000 0x1000>; |
154 | interrupts = <61 0x2>; | 153 | interrupts = <61 0x2>; |
155 | interrupt-parent = <&mpic>; | 154 | interrupt-parent = <&mpic>; |
156 | fsl,flexcan-clock-divider = <2>; | ||
157 | }; | 155 | }; |
158 | 156 | ||
159 | L2: l2-cache-controller@20000 { | 157 | L2: l2-cache-controller@20000 { |
diff --git a/arch/powerpc/configs/40x/acadia_defconfig b/arch/powerpc/configs/40x/acadia_defconfig index 4182c772340b..ed3bab72a834 100644 --- a/arch/powerpc/configs/40x/acadia_defconfig +++ b/arch/powerpc/configs/40x/acadia_defconfig | |||
@@ -44,12 +44,13 @@ CONFIG_BLK_DEV_RAM=y | |||
44 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 44 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
45 | # CONFIG_MISC_DEVICES is not set | 45 | # CONFIG_MISC_DEVICES is not set |
46 | CONFIG_NETDEVICES=y | 46 | CONFIG_NETDEVICES=y |
47 | CONFIG_NET_ETHERNET=y | 47 | CONFIG_ETHERNET=y |
48 | CONFIG_NET_VENDOR_IBM=y | ||
48 | CONFIG_MII=y | 49 | CONFIG_MII=y |
49 | CONFIG_IBM_NEW_EMAC=y | 50 | CONFIG_IBM_EMAC=y |
50 | CONFIG_IBM_NEW_EMAC_RXB=256 | 51 | CONFIG_IBM_EMAC_RXB=256 |
51 | CONFIG_IBM_NEW_EMAC_TXB=256 | 52 | CONFIG_IBM_EMAC_TXB=256 |
52 | CONFIG_IBM_NEW_EMAC_DEBUG=y | 53 | CONFIG_IBM_EMAC_DEBUG=y |
53 | # CONFIG_NETDEV_1000 is not set | 54 | # CONFIG_NETDEV_1000 is not set |
54 | # CONFIG_NETDEV_10000 is not set | 55 | # CONFIG_NETDEV_10000 is not set |
55 | # CONFIG_INPUT is not set | 56 | # CONFIG_INPUT is not set |
diff --git a/arch/powerpc/configs/40x/ep405_defconfig b/arch/powerpc/configs/40x/ep405_defconfig index 2dbb293163f5..17582a3420fb 100644 --- a/arch/powerpc/configs/40x/ep405_defconfig +++ b/arch/powerpc/configs/40x/ep405_defconfig | |||
@@ -42,8 +42,9 @@ CONFIG_PROC_DEVICETREE=y | |||
42 | CONFIG_BLK_DEV_RAM=y | 42 | CONFIG_BLK_DEV_RAM=y |
43 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 43 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
44 | CONFIG_NETDEVICES=y | 44 | CONFIG_NETDEVICES=y |
45 | CONFIG_NET_ETHERNET=y | 45 | CONFIG_ETHERNET=y |
46 | CONFIG_IBM_NEW_EMAC=y | 46 | CONFIG_NET_VENDOR_IBM=y |
47 | CONFIG_IBM_EMAC=y | ||
47 | # CONFIG_INPUT is not set | 48 | # CONFIG_INPUT is not set |
48 | # CONFIG_SERIO is not set | 49 | # CONFIG_SERIO is not set |
49 | # CONFIG_VT is not set | 50 | # CONFIG_VT is not set |
diff --git a/arch/powerpc/configs/40x/hcu4_defconfig b/arch/powerpc/configs/40x/hcu4_defconfig index ebeb4accad65..dba263c1d3a2 100644 --- a/arch/powerpc/configs/40x/hcu4_defconfig +++ b/arch/powerpc/configs/40x/hcu4_defconfig | |||
@@ -43,8 +43,9 @@ CONFIG_PROC_DEVICETREE=y | |||
43 | CONFIG_BLK_DEV_RAM=y | 43 | CONFIG_BLK_DEV_RAM=y |
44 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 44 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
45 | CONFIG_NETDEVICES=y | 45 | CONFIG_NETDEVICES=y |
46 | CONFIG_NET_ETHERNET=y | 46 | CONFIG_ETHERNET=y |
47 | CONFIG_IBM_NEW_EMAC=y | 47 | CONFIG_NET_VENDOR_IBM=y |
48 | CONFIG_IBM_EMAC=y | ||
48 | # CONFIG_INPUT is not set | 49 | # CONFIG_INPUT is not set |
49 | # CONFIG_SERIO is not set | 50 | # CONFIG_SERIO is not set |
50 | # CONFIG_VT is not set | 51 | # CONFIG_VT is not set |
diff --git a/arch/powerpc/configs/40x/kilauea_defconfig b/arch/powerpc/configs/40x/kilauea_defconfig index 532ea9d93a15..f2d4be936e08 100644 --- a/arch/powerpc/configs/40x/kilauea_defconfig +++ b/arch/powerpc/configs/40x/kilauea_defconfig | |||
@@ -51,10 +51,11 @@ CONFIG_BLK_DEV_RAM=y | |||
51 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 51 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
52 | # CONFIG_MISC_DEVICES is not set | 52 | # CONFIG_MISC_DEVICES is not set |
53 | CONFIG_NETDEVICES=y | 53 | CONFIG_NETDEVICES=y |
54 | CONFIG_NET_ETHERNET=y | 54 | CONFIG_ETHERNET=y |
55 | CONFIG_IBM_NEW_EMAC=y | 55 | CONFIG_NET_VENDOR_IBM=y |
56 | CONFIG_IBM_NEW_EMAC_RXB=256 | 56 | CONFIG_IBM_EMAC=y |
57 | CONFIG_IBM_NEW_EMAC_TXB=256 | 57 | CONFIG_IBM_EMAC_RXB=256 |
58 | CONFIG_IBM_EMAC_TXB=256 | ||
58 | # CONFIG_NETDEV_1000 is not set | 59 | # CONFIG_NETDEV_1000 is not set |
59 | # CONFIG_NETDEV_10000 is not set | 60 | # CONFIG_NETDEV_10000 is not set |
60 | # CONFIG_INPUT is not set | 61 | # CONFIG_INPUT is not set |
diff --git a/arch/powerpc/configs/40x/makalu_defconfig b/arch/powerpc/configs/40x/makalu_defconfig index 3c142ac1b344..42b979355f9b 100644 --- a/arch/powerpc/configs/40x/makalu_defconfig +++ b/arch/powerpc/configs/40x/makalu_defconfig | |||
@@ -43,10 +43,11 @@ CONFIG_BLK_DEV_RAM=y | |||
43 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 43 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
44 | # CONFIG_MISC_DEVICES is not set | 44 | # CONFIG_MISC_DEVICES is not set |
45 | CONFIG_NETDEVICES=y | 45 | CONFIG_NETDEVICES=y |
46 | CONFIG_NET_ETHERNET=y | 46 | CONFIG_ETHERNET=y |
47 | CONFIG_IBM_NEW_EMAC=y | 47 | CONFIG_NET_VENDOR_IBM=y |
48 | CONFIG_IBM_NEW_EMAC_RXB=256 | 48 | CONFIG_IBM_EMAC=y |
49 | CONFIG_IBM_NEW_EMAC_TXB=256 | 49 | CONFIG_IBM_EMAC_RXB=256 |
50 | CONFIG_IBM_EMAC_TXB=256 | ||
50 | # CONFIG_NETDEV_1000 is not set | 51 | # CONFIG_NETDEV_1000 is not set |
51 | # CONFIG_NETDEV_10000 is not set | 52 | # CONFIG_NETDEV_10000 is not set |
52 | # CONFIG_INPUT is not set | 53 | # CONFIG_INPUT is not set |
diff --git a/arch/powerpc/configs/40x/walnut_defconfig b/arch/powerpc/configs/40x/walnut_defconfig index ff57d4828ffc..aa1a4cac3708 100644 --- a/arch/powerpc/configs/40x/walnut_defconfig +++ b/arch/powerpc/configs/40x/walnut_defconfig | |||
@@ -40,8 +40,9 @@ CONFIG_PROC_DEVICETREE=y | |||
40 | CONFIG_BLK_DEV_RAM=y | 40 | CONFIG_BLK_DEV_RAM=y |
41 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 41 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
42 | CONFIG_NETDEVICES=y | 42 | CONFIG_NETDEVICES=y |
43 | CONFIG_NET_ETHERNET=y | 43 | CONFIG_ETHERNET=y |
44 | CONFIG_IBM_NEW_EMAC=y | 44 | CONFIG_NET_VENDOR_IBM=y |
45 | CONFIG_IBM_EMAC=y | ||
45 | # CONFIG_INPUT is not set | 46 | # CONFIG_INPUT is not set |
46 | # CONFIG_SERIO is not set | 47 | # CONFIG_SERIO is not set |
47 | # CONFIG_VT is not set | 48 | # CONFIG_VT is not set |
diff --git a/arch/powerpc/configs/44x/arches_defconfig b/arch/powerpc/configs/44x/arches_defconfig index 3ed16d5c909d..329f9a3b892e 100644 --- a/arch/powerpc/configs/44x/arches_defconfig +++ b/arch/powerpc/configs/44x/arches_defconfig | |||
@@ -44,10 +44,11 @@ CONFIG_BLK_DEV_RAM=y | |||
44 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 44 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
45 | # CONFIG_MISC_DEVICES is not set | 45 | # CONFIG_MISC_DEVICES is not set |
46 | CONFIG_NETDEVICES=y | 46 | CONFIG_NETDEVICES=y |
47 | CONFIG_NET_ETHERNET=y | 47 | CONFIG_ETHERNET=y |
48 | CONFIG_IBM_NEW_EMAC=y | 48 | CONFIG_NET_VENDOR_IBM=y |
49 | CONFIG_IBM_NEW_EMAC_RXB=256 | 49 | CONFIG_IBM_EMAC=y |
50 | CONFIG_IBM_NEW_EMAC_TXB=256 | 50 | CONFIG_IBM_EMAC_RXB=256 |
51 | CONFIG_IBM_EMAC_TXB=256 | ||
51 | # CONFIG_NETDEV_1000 is not set | 52 | # CONFIG_NETDEV_1000 is not set |
52 | # CONFIG_NETDEV_10000 is not set | 53 | # CONFIG_NETDEV_10000 is not set |
53 | # CONFIG_INPUT is not set | 54 | # CONFIG_INPUT is not set |
diff --git a/arch/powerpc/configs/44x/bamboo_defconfig b/arch/powerpc/configs/44x/bamboo_defconfig index b1b7d2c5c059..cef7d62560c4 100644 --- a/arch/powerpc/configs/44x/bamboo_defconfig +++ b/arch/powerpc/configs/44x/bamboo_defconfig | |||
@@ -32,8 +32,9 @@ CONFIG_PROC_DEVICETREE=y | |||
32 | CONFIG_BLK_DEV_RAM=y | 32 | CONFIG_BLK_DEV_RAM=y |
33 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 33 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
34 | CONFIG_NETDEVICES=y | 34 | CONFIG_NETDEVICES=y |
35 | CONFIG_NET_ETHERNET=y | 35 | CONFIG_ETHERNET=y |
36 | CONFIG_IBM_NEW_EMAC=y | 36 | CONFIG_NET_VENDOR_IBM=y |
37 | CONFIG_IBM_EMAC=y | ||
37 | # CONFIG_INPUT is not set | 38 | # CONFIG_INPUT is not set |
38 | # CONFIG_SERIO is not set | 39 | # CONFIG_SERIO is not set |
39 | # CONFIG_VT is not set | 40 | # CONFIG_VT is not set |
diff --git a/arch/powerpc/configs/44x/bluestone_defconfig b/arch/powerpc/configs/44x/bluestone_defconfig index 30a0a8e08fdd..20c8d26d7fc0 100644 --- a/arch/powerpc/configs/44x/bluestone_defconfig +++ b/arch/powerpc/configs/44x/bluestone_defconfig | |||
@@ -38,10 +38,11 @@ CONFIG_PROC_DEVICETREE=y | |||
38 | CONFIG_BLK_DEV_RAM=y | 38 | CONFIG_BLK_DEV_RAM=y |
39 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 39 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
40 | CONFIG_NETDEVICES=y | 40 | CONFIG_NETDEVICES=y |
41 | CONFIG_NET_ETHERNET=y | 41 | CONFIG_ETHERNET=y |
42 | CONFIG_IBM_NEW_EMAC=y | 42 | CONFIG_NET_VENDOR_IBM=y |
43 | CONFIG_IBM_NEW_EMAC_RXB=256 | 43 | CONFIG_IBM_EMAC=y |
44 | CONFIG_IBM_NEW_EMAC_TXB=256 | 44 | CONFIG_IBM_EMAC_RXB=256 |
45 | CONFIG_IBM_EMAC_TXB=256 | ||
45 | CONFIG_SERIAL_8250=y | 46 | CONFIG_SERIAL_8250=y |
46 | CONFIG_SERIAL_8250_CONSOLE=y | 47 | CONFIG_SERIAL_8250_CONSOLE=y |
47 | CONFIG_SERIAL_8250_NR_UARTS=2 | 48 | CONFIG_SERIAL_8250_NR_UARTS=2 |
diff --git a/arch/powerpc/configs/44x/canyonlands_defconfig b/arch/powerpc/configs/44x/canyonlands_defconfig index a46942aac695..d5be93e6e92d 100644 --- a/arch/powerpc/configs/44x/canyonlands_defconfig +++ b/arch/powerpc/configs/44x/canyonlands_defconfig | |||
@@ -49,10 +49,11 @@ CONFIG_BLK_DEV_RAM=y | |||
49 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 49 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
50 | # CONFIG_MISC_DEVICES is not set | 50 | # CONFIG_MISC_DEVICES is not set |
51 | CONFIG_NETDEVICES=y | 51 | CONFIG_NETDEVICES=y |
52 | CONFIG_NET_ETHERNET=y | 52 | CONFIG_ETHERNET=y |
53 | CONFIG_IBM_NEW_EMAC=y | 53 | CONFIG_NET_VENDOR_IBM=y |
54 | CONFIG_IBM_NEW_EMAC_RXB=256 | 54 | CONFIG_IBM_EMAC=y |
55 | CONFIG_IBM_NEW_EMAC_TXB=256 | 55 | CONFIG_IBM_EMAC_RXB=256 |
56 | CONFIG_IBM_EMAC_TXB=256 | ||
56 | # CONFIG_NETDEV_1000 is not set | 57 | # CONFIG_NETDEV_1000 is not set |
57 | # CONFIG_NETDEV_10000 is not set | 58 | # CONFIG_NETDEV_10000 is not set |
58 | # CONFIG_INPUT is not set | 59 | # CONFIG_INPUT is not set |
diff --git a/arch/powerpc/configs/44x/ebony_defconfig b/arch/powerpc/configs/44x/ebony_defconfig index 07d77e51f1ba..f9269fc4ffcc 100644 --- a/arch/powerpc/configs/44x/ebony_defconfig +++ b/arch/powerpc/configs/44x/ebony_defconfig | |||
@@ -40,8 +40,9 @@ CONFIG_PROC_DEVICETREE=y | |||
40 | CONFIG_BLK_DEV_RAM=y | 40 | CONFIG_BLK_DEV_RAM=y |
41 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 41 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
42 | CONFIG_NETDEVICES=y | 42 | CONFIG_NETDEVICES=y |
43 | CONFIG_NET_ETHERNET=y | 43 | CONFIG_ETHERNET=y |
44 | CONFIG_IBM_NEW_EMAC=y | 44 | CONFIG_NET_VENDOR_IBM=y |
45 | CONFIG_IBM_EMAC=y | ||
45 | # CONFIG_INPUT is not set | 46 | # CONFIG_INPUT is not set |
46 | # CONFIG_SERIO is not set | 47 | # CONFIG_SERIO is not set |
47 | # CONFIG_VT is not set | 48 | # CONFIG_VT is not set |
diff --git a/arch/powerpc/configs/44x/eiger_defconfig b/arch/powerpc/configs/44x/eiger_defconfig index 2ce7e9aff09e..9be089038fd7 100644 --- a/arch/powerpc/configs/44x/eiger_defconfig +++ b/arch/powerpc/configs/44x/eiger_defconfig | |||
@@ -55,10 +55,11 @@ CONFIG_FUSION=y | |||
55 | CONFIG_FUSION_SAS=y | 55 | CONFIG_FUSION_SAS=y |
56 | CONFIG_I2O=y | 56 | CONFIG_I2O=y |
57 | CONFIG_NETDEVICES=y | 57 | CONFIG_NETDEVICES=y |
58 | CONFIG_NET_ETHERNET=y | 58 | CONFIG_ETHERNET=y |
59 | CONFIG_IBM_NEW_EMAC=y | 59 | CONFIG_NET_VENDOR_IBM=y |
60 | CONFIG_IBM_NEW_EMAC_RXB=256 | 60 | CONFIG_IBM_EMAC=y |
61 | CONFIG_IBM_NEW_EMAC_TXB=256 | 61 | CONFIG_IBM_EMAC_RXB=256 |
62 | CONFIG_IBM_EMAC_TXB=256 | ||
62 | CONFIG_E1000E=y | 63 | CONFIG_E1000E=y |
63 | # CONFIG_NETDEV_10000 is not set | 64 | # CONFIG_NETDEV_10000 is not set |
64 | # CONFIG_INPUT is not set | 65 | # CONFIG_INPUT is not set |
diff --git a/arch/powerpc/configs/44x/icon_defconfig b/arch/powerpc/configs/44x/icon_defconfig index 18730ff9de7c..82f73035a7ce 100644 --- a/arch/powerpc/configs/44x/icon_defconfig +++ b/arch/powerpc/configs/44x/icon_defconfig | |||
@@ -56,8 +56,9 @@ CONFIG_FUSION_SAS=y | |||
56 | CONFIG_FUSION_CTL=y | 56 | CONFIG_FUSION_CTL=y |
57 | CONFIG_FUSION_LOGGING=y | 57 | CONFIG_FUSION_LOGGING=y |
58 | CONFIG_NETDEVICES=y | 58 | CONFIG_NETDEVICES=y |
59 | CONFIG_NET_ETHERNET=y | 59 | CONFIG_ETHERNET=y |
60 | CONFIG_IBM_NEW_EMAC=y | 60 | CONFIG_NET_VENDOR_IBM=y |
61 | CONFIG_IBM_EMAC=y | ||
61 | # CONFIG_NETDEV_1000 is not set | 62 | # CONFIG_NETDEV_1000 is not set |
62 | # CONFIG_NETDEV_10000 is not set | 63 | # CONFIG_NETDEV_10000 is not set |
63 | # CONFIG_WLAN is not set | 64 | # CONFIG_WLAN is not set |
diff --git a/arch/powerpc/configs/44x/katmai_defconfig b/arch/powerpc/configs/44x/katmai_defconfig index 34c09144a699..109562c3c6be 100644 --- a/arch/powerpc/configs/44x/katmai_defconfig +++ b/arch/powerpc/configs/44x/katmai_defconfig | |||
@@ -42,8 +42,9 @@ CONFIG_BLK_DEV_RAM=y | |||
42 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 42 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
43 | CONFIG_MACINTOSH_DRIVERS=y | 43 | CONFIG_MACINTOSH_DRIVERS=y |
44 | CONFIG_NETDEVICES=y | 44 | CONFIG_NETDEVICES=y |
45 | CONFIG_NET_ETHERNET=y | 45 | CONFIG_ETHERNET=y |
46 | CONFIG_IBM_NEW_EMAC=y | 46 | CONFIG_NET_VENDOR_IBM=y |
47 | CONFIG_IBM_EMAC=y | ||
47 | # CONFIG_INPUT is not set | 48 | # CONFIG_INPUT is not set |
48 | # CONFIG_SERIO is not set | 49 | # CONFIG_SERIO is not set |
49 | # CONFIG_VT is not set | 50 | # CONFIG_VT is not set |
diff --git a/arch/powerpc/configs/44x/redwood_defconfig b/arch/powerpc/configs/44x/redwood_defconfig index 01cc2b1a7f9a..48802811da76 100644 --- a/arch/powerpc/configs/44x/redwood_defconfig +++ b/arch/powerpc/configs/44x/redwood_defconfig | |||
@@ -53,11 +53,12 @@ CONFIG_FUSION=y | |||
53 | CONFIG_FUSION_SAS=y | 53 | CONFIG_FUSION_SAS=y |
54 | CONFIG_I2O=y | 54 | CONFIG_I2O=y |
55 | CONFIG_NETDEVICES=y | 55 | CONFIG_NETDEVICES=y |
56 | CONFIG_NET_ETHERNET=y | 56 | CONFIG_ETHERNET=y |
57 | CONFIG_IBM_NEW_EMAC=y | 57 | CONFIG_NET_VENDOR_IBM=y |
58 | CONFIG_IBM_NEW_EMAC_RXB=256 | 58 | CONFIG_IBM_EMAC=y |
59 | CONFIG_IBM_NEW_EMAC_TXB=256 | 59 | CONFIG_IBM_EMAC_RXB=256 |
60 | CONFIG_IBM_NEW_EMAC_DEBUG=y | 60 | CONFIG_IBM_EMAC_TXB=256 |
61 | CONFIG_IBM_EMAC_DEBUG=y | ||
61 | CONFIG_E1000E=y | 62 | CONFIG_E1000E=y |
62 | # CONFIG_NETDEV_10000 is not set | 63 | # CONFIG_NETDEV_10000 is not set |
63 | # CONFIG_INPUT is not set | 64 | # CONFIG_INPUT is not set |
diff --git a/arch/powerpc/configs/44x/sam440ep_defconfig b/arch/powerpc/configs/44x/sam440ep_defconfig index dfcffede16ad..ca088cd581af 100644 --- a/arch/powerpc/configs/44x/sam440ep_defconfig +++ b/arch/powerpc/configs/44x/sam440ep_defconfig | |||
@@ -44,8 +44,9 @@ CONFIG_ATA=y | |||
44 | # CONFIG_SATA_PMP is not set | 44 | # CONFIG_SATA_PMP is not set |
45 | CONFIG_SATA_SIL=y | 45 | CONFIG_SATA_SIL=y |
46 | CONFIG_NETDEVICES=y | 46 | CONFIG_NETDEVICES=y |
47 | CONFIG_NET_ETHERNET=y | 47 | CONFIG_ETHERNET=y |
48 | CONFIG_IBM_NEW_EMAC=y | 48 | CONFIG_NET_VENDOR_IBM=y |
49 | CONFIG_IBM_EMAC=y | ||
49 | # CONFIG_NETDEV_1000 is not set | 50 | # CONFIG_NETDEV_1000 is not set |
50 | # CONFIG_NETDEV_10000 is not set | 51 | # CONFIG_NETDEV_10000 is not set |
51 | CONFIG_INPUT_FF_MEMLESS=m | 52 | CONFIG_INPUT_FF_MEMLESS=m |
diff --git a/arch/powerpc/configs/44x/sequoia_defconfig b/arch/powerpc/configs/44x/sequoia_defconfig index 47e399f2892f..b7a653b626db 100644 --- a/arch/powerpc/configs/44x/sequoia_defconfig +++ b/arch/powerpc/configs/44x/sequoia_defconfig | |||
@@ -46,8 +46,9 @@ CONFIG_PROC_DEVICETREE=y | |||
46 | CONFIG_BLK_DEV_RAM=y | 46 | CONFIG_BLK_DEV_RAM=y |
47 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 47 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
48 | CONFIG_NETDEVICES=y | 48 | CONFIG_NETDEVICES=y |
49 | CONFIG_NET_ETHERNET=y | 49 | CONFIG_ETHERNET=y |
50 | CONFIG_IBM_NEW_EMAC=y | 50 | CONFIG_NET_VENDOR_IBM=y |
51 | CONFIG_IBM_EMAC=y | ||
51 | # CONFIG_INPUT is not set | 52 | # CONFIG_INPUT is not set |
52 | # CONFIG_SERIO is not set | 53 | # CONFIG_SERIO is not set |
53 | # CONFIG_VT is not set | 54 | # CONFIG_VT is not set |
diff --git a/arch/powerpc/configs/44x/taishan_defconfig b/arch/powerpc/configs/44x/taishan_defconfig index a6a002ed5681..30de97f158a4 100644 --- a/arch/powerpc/configs/44x/taishan_defconfig +++ b/arch/powerpc/configs/44x/taishan_defconfig | |||
@@ -40,8 +40,9 @@ CONFIG_BLK_DEV_RAM=y | |||
40 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 40 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
41 | CONFIG_MACINTOSH_DRIVERS=y | 41 | CONFIG_MACINTOSH_DRIVERS=y |
42 | CONFIG_NETDEVICES=y | 42 | CONFIG_NETDEVICES=y |
43 | CONFIG_NET_ETHERNET=y | 43 | CONFIG_ETHERNET=y |
44 | CONFIG_IBM_NEW_EMAC=y | 44 | CONFIG_NET_VENDOR_IBM=y |
45 | CONFIG_IBM_EMAC=y | ||
45 | # CONFIG_INPUT is not set | 46 | # CONFIG_INPUT is not set |
46 | # CONFIG_SERIO is not set | 47 | # CONFIG_SERIO is not set |
47 | # CONFIG_VT is not set | 48 | # CONFIG_VT is not set |
diff --git a/arch/powerpc/configs/44x/warp_defconfig b/arch/powerpc/configs/44x/warp_defconfig index abf74dc1f79c..105bc56f4b2b 100644 --- a/arch/powerpc/configs/44x/warp_defconfig +++ b/arch/powerpc/configs/44x/warp_defconfig | |||
@@ -54,9 +54,10 @@ CONFIG_BLK_DEV_SD=y | |||
54 | CONFIG_SCSI_SPI_ATTRS=y | 54 | CONFIG_SCSI_SPI_ATTRS=y |
55 | # CONFIG_SCSI_LOWLEVEL is not set | 55 | # CONFIG_SCSI_LOWLEVEL is not set |
56 | CONFIG_NETDEVICES=y | 56 | CONFIG_NETDEVICES=y |
57 | CONFIG_NET_ETHERNET=y | 57 | CONFIG_ETHERNET=y |
58 | CONFIG_NET_VENDOR_IBM=y | ||
58 | CONFIG_MII=y | 59 | CONFIG_MII=y |
59 | CONFIG_IBM_NEW_EMAC=y | 60 | CONFIG_IBM_EMAC=y |
60 | # CONFIG_NETDEV_1000 is not set | 61 | # CONFIG_NETDEV_1000 is not set |
61 | # CONFIG_NETDEV_10000 is not set | 62 | # CONFIG_NETDEV_10000 is not set |
62 | # CONFIG_INPUT is not set | 63 | # CONFIG_INPUT is not set |
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig index bfd634b5ada7..7cb703b948b1 100644 --- a/arch/powerpc/configs/ppc40x_defconfig +++ b/arch/powerpc/configs/ppc40x_defconfig | |||
@@ -50,8 +50,9 @@ CONFIG_BLK_DEV_RAM=y | |||
50 | CONFIG_BLK_DEV_RAM_SIZE=35000 | 50 | CONFIG_BLK_DEV_RAM_SIZE=35000 |
51 | CONFIG_XILINX_SYSACE=m | 51 | CONFIG_XILINX_SYSACE=m |
52 | CONFIG_NETDEVICES=y | 52 | CONFIG_NETDEVICES=y |
53 | CONFIG_NET_ETHERNET=y | 53 | CONFIG_ETHERNET=y |
54 | CONFIG_IBM_NEW_EMAC=y | 54 | CONFIG_NET_VENDOR_IBM=y |
55 | CONFIG_IBM_EMAC=y | ||
55 | # CONFIG_INPUT is not set | 56 | # CONFIG_INPUT is not set |
56 | CONFIG_SERIO=m | 57 | CONFIG_SERIO=m |
57 | # CONFIG_SERIO_I8042 is not set | 58 | # CONFIG_SERIO_I8042 is not set |
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig index 47133202a625..6cdf1c0d2c8a 100644 --- a/arch/powerpc/configs/ppc44x_defconfig +++ b/arch/powerpc/configs/ppc44x_defconfig | |||
@@ -63,8 +63,9 @@ CONFIG_BLK_DEV_SD=m | |||
63 | # CONFIG_SCSI_LOWLEVEL is not set | 63 | # CONFIG_SCSI_LOWLEVEL is not set |
64 | CONFIG_NETDEVICES=y | 64 | CONFIG_NETDEVICES=y |
65 | CONFIG_TUN=m | 65 | CONFIG_TUN=m |
66 | CONFIG_NET_ETHERNET=y | 66 | CONFIG_ETHERNET=y |
67 | CONFIG_IBM_NEW_EMAC=y | 67 | CONFIG_NET_VENDOR_IBM=y |
68 | CONFIG_IBM_EMAC=y | ||
68 | # CONFIG_INPUT is not set | 69 | # CONFIG_INPUT is not set |
69 | CONFIG_SERIO=m | 70 | CONFIG_SERIO=m |
70 | # CONFIG_SERIO_I8042 is not set | 71 | # CONFIG_SERIO_I8042 is not set |
diff --git a/arch/powerpc/platforms/40x/Kconfig b/arch/powerpc/platforms/40x/Kconfig index d733d7ca939c..b5d87067a58b 100644 --- a/arch/powerpc/platforms/40x/Kconfig +++ b/arch/powerpc/platforms/40x/Kconfig | |||
@@ -130,21 +130,21 @@ config 405GP | |||
130 | bool | 130 | bool |
131 | select IBM405_ERR77 | 131 | select IBM405_ERR77 |
132 | select IBM405_ERR51 | 132 | select IBM405_ERR51 |
133 | select IBM_NEW_EMAC_ZMII | 133 | select IBM_EMAC_ZMII |
134 | 134 | ||
135 | config 405EP | 135 | config 405EP |
136 | bool | 136 | bool |
137 | 137 | ||
138 | config 405EX | 138 | config 405EX |
139 | bool | 139 | bool |
140 | select IBM_NEW_EMAC_EMAC4 | 140 | select IBM_EMAC_EMAC4 |
141 | select IBM_NEW_EMAC_RGMII | 141 | select IBM_EMAC_RGMII |
142 | 142 | ||
143 | config 405EZ | 143 | config 405EZ |
144 | bool | 144 | bool |
145 | select IBM_NEW_EMAC_NO_FLOW_CTRL | 145 | select IBM_EMAC_NO_FLOW_CTRL |
146 | select IBM_NEW_EMAC_MAL_CLR_ICINTSTAT | 146 | select IBM_EMAC_MAL_CLR_ICINTSTAT |
147 | select IBM_NEW_EMAC_MAL_COMMON_ERR | 147 | select IBM_EMAC_MAL_COMMON_ERR |
148 | 148 | ||
149 | config 405GPR | 149 | config 405GPR |
150 | bool | 150 | bool |
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig index e958b6f48ec2..762322ce24a9 100644 --- a/arch/powerpc/platforms/44x/Kconfig +++ b/arch/powerpc/platforms/44x/Kconfig | |||
@@ -23,7 +23,7 @@ config BLUESTONE | |||
23 | default n | 23 | default n |
24 | select PPC44x_SIMPLE | 24 | select PPC44x_SIMPLE |
25 | select APM821xx | 25 | select APM821xx |
26 | select IBM_NEW_EMAC_RGMII | 26 | select IBM_EMAC_RGMII |
27 | help | 27 | help |
28 | This option enables support for the APM APM821xx Evaluation board. | 28 | This option enables support for the APM APM821xx Evaluation board. |
29 | 29 | ||
@@ -122,8 +122,8 @@ config CANYONLANDS | |||
122 | select PPC4xx_PCI_EXPRESS | 122 | select PPC4xx_PCI_EXPRESS |
123 | select PCI_MSI | 123 | select PCI_MSI |
124 | select PPC4xx_MSI | 124 | select PPC4xx_MSI |
125 | select IBM_NEW_EMAC_RGMII | 125 | select IBM_EMAC_RGMII |
126 | select IBM_NEW_EMAC_ZMII | 126 | select IBM_EMAC_ZMII |
127 | help | 127 | help |
128 | This option enables support for the AMCC PPC460EX evaluation board. | 128 | This option enables support for the AMCC PPC460EX evaluation board. |
129 | 129 | ||
@@ -135,8 +135,8 @@ config GLACIER | |||
135 | select 460EX # Odd since it uses 460GT but the effects are the same | 135 | select 460EX # Odd since it uses 460GT but the effects are the same |
136 | select PCI | 136 | select PCI |
137 | select PPC4xx_PCI_EXPRESS | 137 | select PPC4xx_PCI_EXPRESS |
138 | select IBM_NEW_EMAC_RGMII | 138 | select IBM_EMAC_RGMII |
139 | select IBM_NEW_EMAC_ZMII | 139 | select IBM_EMAC_ZMII |
140 | help | 140 | help |
141 | This option enables support for the AMCC PPC460GT evaluation board. | 141 | This option enables support for the AMCC PPC460GT evaluation board. |
142 | 142 | ||
@@ -161,7 +161,7 @@ config EIGER | |||
161 | select 460SX | 161 | select 460SX |
162 | select PCI | 162 | select PCI |
163 | select PPC4xx_PCI_EXPRESS | 163 | select PPC4xx_PCI_EXPRESS |
164 | select IBM_NEW_EMAC_RGMII | 164 | select IBM_EMAC_RGMII |
165 | help | 165 | help |
166 | This option enables support for the AMCC PPC460SX evaluation board. | 166 | This option enables support for the AMCC PPC460SX evaluation board. |
167 | 167 | ||
@@ -260,59 +260,59 @@ config 440EP | |||
260 | bool | 260 | bool |
261 | select PPC_FPU | 261 | select PPC_FPU |
262 | select IBM440EP_ERR42 | 262 | select IBM440EP_ERR42 |
263 | select IBM_NEW_EMAC_ZMII | 263 | select IBM_EMAC_ZMII |
264 | select USB_ARCH_HAS_OHCI | 264 | select USB_ARCH_HAS_OHCI |
265 | 265 | ||
266 | config 440EPX | 266 | config 440EPX |
267 | bool | 267 | bool |
268 | select PPC_FPU | 268 | select PPC_FPU |
269 | select IBM_NEW_EMAC_EMAC4 | 269 | select IBM_EMAC_EMAC4 |
270 | select IBM_NEW_EMAC_RGMII | 270 | select IBM_EMAC_RGMII |
271 | select IBM_NEW_EMAC_ZMII | 271 | select IBM_EMAC_ZMII |
272 | 272 | ||
273 | config 440GRX | 273 | config 440GRX |
274 | bool | 274 | bool |
275 | select IBM_NEW_EMAC_EMAC4 | 275 | select IBM_EMAC_EMAC4 |
276 | select IBM_NEW_EMAC_RGMII | 276 | select IBM_EMAC_RGMII |
277 | select IBM_NEW_EMAC_ZMII | 277 | select IBM_EMAC_ZMII |
278 | 278 | ||
279 | config 440GP | 279 | config 440GP |
280 | bool | 280 | bool |
281 | select IBM_NEW_EMAC_ZMII | 281 | select IBM_EMAC_ZMII |
282 | 282 | ||
283 | config 440GX | 283 | config 440GX |
284 | bool | 284 | bool |
285 | select IBM_NEW_EMAC_EMAC4 | 285 | select IBM_EMAC_EMAC4 |
286 | select IBM_NEW_EMAC_RGMII | 286 | select IBM_EMAC_RGMII |
287 | select IBM_NEW_EMAC_ZMII #test only | 287 | select IBM_EMAC_ZMII #test only |
288 | select IBM_NEW_EMAC_TAH #test only | 288 | select IBM_EMAC_TAH #test only |
289 | 289 | ||
290 | config 440SP | 290 | config 440SP |
291 | bool | 291 | bool |
292 | 292 | ||
293 | config 440SPe | 293 | config 440SPe |
294 | bool | 294 | bool |
295 | select IBM_NEW_EMAC_EMAC4 | 295 | select IBM_EMAC_EMAC4 |
296 | 296 | ||
297 | config 460EX | 297 | config 460EX |
298 | bool | 298 | bool |
299 | select PPC_FPU | 299 | select PPC_FPU |
300 | select IBM_NEW_EMAC_EMAC4 | 300 | select IBM_EMAC_EMAC4 |
301 | select IBM_NEW_EMAC_TAH | 301 | select IBM_EMAC_TAH |
302 | 302 | ||
303 | config 460SX | 303 | config 460SX |
304 | bool | 304 | bool |
305 | select PPC_FPU | 305 | select PPC_FPU |
306 | select IBM_NEW_EMAC_EMAC4 | 306 | select IBM_EMAC_EMAC4 |
307 | select IBM_NEW_EMAC_RGMII | 307 | select IBM_EMAC_RGMII |
308 | select IBM_NEW_EMAC_ZMII | 308 | select IBM_EMAC_ZMII |
309 | select IBM_NEW_EMAC_TAH | 309 | select IBM_EMAC_TAH |
310 | 310 | ||
311 | config APM821xx | 311 | config APM821xx |
312 | bool | 312 | bool |
313 | select PPC_FPU | 313 | select PPC_FPU |
314 | select IBM_NEW_EMAC_EMAC4 | 314 | select IBM_EMAC_EMAC4 |
315 | select IBM_NEW_EMAC_TAH | 315 | select IBM_EMAC_TAH |
316 | 316 | ||
317 | # 44x errata/workaround config symbols, selected by the CPU models above | 317 | # 44x errata/workaround config symbols, selected by the CPU models above |
318 | config IBM440EP_ERR42 | 318 | config IBM440EP_ERR42 |
diff --git a/arch/powerpc/platforms/cell/Kconfig b/arch/powerpc/platforms/cell/Kconfig index 67d5009b4e86..2e7ff0c5cf42 100644 --- a/arch/powerpc/platforms/cell/Kconfig +++ b/arch/powerpc/platforms/cell/Kconfig | |||
@@ -17,10 +17,10 @@ config PPC_CELL_NATIVE | |||
17 | select PPC_CELL_COMMON | 17 | select PPC_CELL_COMMON |
18 | select MPIC | 18 | select MPIC |
19 | select PPC_IO_WORKAROUNDS | 19 | select PPC_IO_WORKAROUNDS |
20 | select IBM_NEW_EMAC_EMAC4 | 20 | select IBM_EMAC_EMAC4 |
21 | select IBM_NEW_EMAC_RGMII | 21 | select IBM_EMAC_RGMII |
22 | select IBM_NEW_EMAC_ZMII #test only | 22 | select IBM_EMAC_ZMII #test only |
23 | select IBM_NEW_EMAC_TAH #test only | 23 | select IBM_EMAC_TAH #test only |
24 | default n | 24 | default n |
25 | 25 | ||
26 | config PPC_IBM_CELL_BLADE | 26 | config PPC_IBM_CELL_BLADE |
diff --git a/arch/s390/include/asm/qdio.h b/arch/s390/include/asm/qdio.h index 15c97625df8d..21993623da9a 100644 --- a/arch/s390/include/asm/qdio.h +++ b/arch/s390/include/asm/qdio.h | |||
@@ -123,6 +123,40 @@ struct slibe { | |||
123 | }; | 123 | }; |
124 | 124 | ||
125 | /** | 125 | /** |
126 | * struct qaob - queue asynchronous operation block | ||
127 | * @res0: reserved parameters | ||
128 | * @res1: reserved parameter | ||
129 | * @res2: reserved parameter | ||
130 | * @res3: reserved parameter | ||
131 | * @aorc: asynchronous operation return code | ||
132 | * @flags: internal flags | ||
133 | * @cbtbs: control block type | ||
134 | * @sb_count: number of storage blocks | ||
135 | * @sba: storage block element addresses | ||
136 | * @dcount: size of storage block elements | ||
137 | * @user0: user defineable value | ||
138 | * @res4: reserved paramater | ||
139 | * @user1: user defineable value | ||
140 | * @user2: user defineable value | ||
141 | */ | ||
142 | struct qaob { | ||
143 | u64 res0[6]; | ||
144 | u8 res1; | ||
145 | u8 res2; | ||
146 | u8 res3; | ||
147 | u8 aorc; | ||
148 | u8 flags; | ||
149 | u16 cbtbs; | ||
150 | u8 sb_count; | ||
151 | u64 sba[QDIO_MAX_ELEMENTS_PER_BUFFER]; | ||
152 | u16 dcount[QDIO_MAX_ELEMENTS_PER_BUFFER]; | ||
153 | u64 user0; | ||
154 | u64 res4[2]; | ||
155 | u64 user1; | ||
156 | u64 user2; | ||
157 | } __attribute__ ((packed, aligned(256))); | ||
158 | |||
159 | /** | ||
126 | * struct slib - storage list information block (SLIB) | 160 | * struct slib - storage list information block (SLIB) |
127 | * @nsliba: next SLIB address (if any) | 161 | * @nsliba: next SLIB address (if any) |
128 | * @sla: SL address | 162 | * @sla: SL address |
@@ -225,6 +259,41 @@ struct slsb { | |||
225 | #define CHSC_AC2_DATA_DIV_AVAILABLE 0x0010 | 259 | #define CHSC_AC2_DATA_DIV_AVAILABLE 0x0010 |
226 | #define CHSC_AC2_DATA_DIV_ENABLED 0x0002 | 260 | #define CHSC_AC2_DATA_DIV_ENABLED 0x0002 |
227 | 261 | ||
262 | /** | ||
263 | * struct qdio_outbuf_state - SBAL related asynchronous operation information | ||
264 | * (for communication with upper layer programs) | ||
265 | * (only required for use with completion queues) | ||
266 | * @flags: flags indicating state of buffer | ||
267 | * @aob: pointer to QAOB used for the particular SBAL | ||
268 | * @user: pointer to upper layer program's state information related to SBAL | ||
269 | * (stored in user1 data of QAOB) | ||
270 | */ | ||
271 | struct qdio_outbuf_state { | ||
272 | u8 flags; | ||
273 | struct qaob *aob; | ||
274 | void *user; | ||
275 | }; | ||
276 | |||
277 | #define QDIO_OUTBUF_STATE_FLAG_NONE 0x00 | ||
278 | #define QDIO_OUTBUF_STATE_FLAG_PENDING 0x01 | ||
279 | |||
280 | #define CHSC_AC1_INITIATE_INPUTQ 0x80 | ||
281 | |||
282 | |||
283 | /* qdio adapter-characteristics-1 flag */ | ||
284 | #define AC1_SIGA_INPUT_NEEDED 0x40 /* process input queues */ | ||
285 | #define AC1_SIGA_OUTPUT_NEEDED 0x20 /* process output queues */ | ||
286 | #define AC1_SIGA_SYNC_NEEDED 0x10 /* ask hypervisor to sync */ | ||
287 | #define AC1_AUTOMATIC_SYNC_ON_THININT 0x08 /* set by hypervisor */ | ||
288 | #define AC1_AUTOMATIC_SYNC_ON_OUT_PCI 0x04 /* set by hypervisor */ | ||
289 | #define AC1_SC_QEBSM_AVAILABLE 0x02 /* available for subchannel */ | ||
290 | #define AC1_SC_QEBSM_ENABLED 0x01 /* enabled for subchannel */ | ||
291 | |||
292 | #define CHSC_AC2_DATA_DIV_AVAILABLE 0x0010 | ||
293 | #define CHSC_AC2_DATA_DIV_ENABLED 0x0002 | ||
294 | |||
295 | #define CHSC_AC3_FORMAT2_CQ_AVAILABLE 0x8000 | ||
296 | |||
228 | struct qdio_ssqd_desc { | 297 | struct qdio_ssqd_desc { |
229 | u8 flags; | 298 | u8 flags; |
230 | u8:8; | 299 | u8:8; |
@@ -243,8 +312,7 @@ struct qdio_ssqd_desc { | |||
243 | u64 sch_token; | 312 | u64 sch_token; |
244 | u8 mro; | 313 | u8 mro; |
245 | u8 mri; | 314 | u8 mri; |
246 | u8:8; | 315 | u16 qdioac3; |
247 | u8 sbalic; | ||
248 | u16:16; | 316 | u16:16; |
249 | u8:8; | 317 | u8:8; |
250 | u8 mmwc; | 318 | u8 mmwc; |
@@ -280,9 +348,11 @@ typedef void qdio_handler_t(struct ccw_device *, unsigned int, int, | |||
280 | * @no_output_qs: number of output queues | 348 | * @no_output_qs: number of output queues |
281 | * @input_handler: handler to be called for input queues | 349 | * @input_handler: handler to be called for input queues |
282 | * @output_handler: handler to be called for output queues | 350 | * @output_handler: handler to be called for output queues |
351 | * @queue_start_poll: polling handlers (one per input queue or NULL) | ||
283 | * @int_parm: interruption parameter | 352 | * @int_parm: interruption parameter |
284 | * @input_sbal_addr_array: address of no_input_qs * 128 pointers | 353 | * @input_sbal_addr_array: address of no_input_qs * 128 pointers |
285 | * @output_sbal_addr_array: address of no_output_qs * 128 pointers | 354 | * @output_sbal_addr_array: address of no_output_qs * 128 pointers |
355 | * @output_sbal_state_array: no_output_qs * 128 state info (for CQ or NULL) | ||
286 | */ | 356 | */ |
287 | struct qdio_initialize { | 357 | struct qdio_initialize { |
288 | struct ccw_device *cdev; | 358 | struct ccw_device *cdev; |
@@ -297,11 +367,12 @@ struct qdio_initialize { | |||
297 | unsigned int no_output_qs; | 367 | unsigned int no_output_qs; |
298 | qdio_handler_t *input_handler; | 368 | qdio_handler_t *input_handler; |
299 | qdio_handler_t *output_handler; | 369 | qdio_handler_t *output_handler; |
300 | void (*queue_start_poll) (struct ccw_device *, int, unsigned long); | 370 | void (**queue_start_poll) (struct ccw_device *, int, unsigned long); |
301 | int scan_threshold; | 371 | int scan_threshold; |
302 | unsigned long int_parm; | 372 | unsigned long int_parm; |
303 | void **input_sbal_addr_array; | 373 | void **input_sbal_addr_array; |
304 | void **output_sbal_addr_array; | 374 | void **output_sbal_addr_array; |
375 | struct qdio_outbuf_state *output_sbal_state_array; | ||
305 | }; | 376 | }; |
306 | 377 | ||
307 | #define QDIO_STATE_INACTIVE 0x00000002 /* after qdio_cleanup */ | 378 | #define QDIO_STATE_INACTIVE 0x00000002 /* after qdio_cleanup */ |
@@ -316,6 +387,7 @@ struct qdio_initialize { | |||
316 | extern int qdio_allocate(struct qdio_initialize *); | 387 | extern int qdio_allocate(struct qdio_initialize *); |
317 | extern int qdio_establish(struct qdio_initialize *); | 388 | extern int qdio_establish(struct qdio_initialize *); |
318 | extern int qdio_activate(struct ccw_device *); | 389 | extern int qdio_activate(struct ccw_device *); |
390 | extern void qdio_release_aob(struct qaob *); | ||
319 | extern int do_QDIO(struct ccw_device *, unsigned int, int, unsigned int, | 391 | extern int do_QDIO(struct ccw_device *, unsigned int, int, unsigned int, |
320 | unsigned int); | 392 | unsigned int); |
321 | extern int qdio_start_irq(struct ccw_device *, int); | 393 | extern int qdio_start_irq(struct ccw_device *, int); |
diff --git a/arch/sh/include/asm/sh_eth.h b/arch/sh/include/asm/sh_eth.h deleted file mode 100644 index 0f325da0f923..000000000000 --- a/arch/sh/include/asm/sh_eth.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | #ifndef __ASM_SH_ETH_H__ | ||
2 | #define __ASM_SH_ETH_H__ | ||
3 | |||
4 | #include <linux/phy.h> | ||
5 | |||
6 | enum {EDMAC_LITTLE_ENDIAN, EDMAC_BIG_ENDIAN}; | ||
7 | enum { | ||
8 | SH_ETH_REG_GIGABIT, | ||
9 | SH_ETH_REG_FAST_SH4, | ||
10 | SH_ETH_REG_FAST_SH3_SH2 | ||
11 | }; | ||
12 | |||
13 | struct sh_eth_plat_data { | ||
14 | int phy; | ||
15 | int edmac_endian; | ||
16 | int register_type; | ||
17 | phy_interface_t phy_interface; | ||
18 | void (*set_mdio_gate)(unsigned long addr); | ||
19 | |||
20 | unsigned char mac_addr[6]; | ||
21 | unsigned no_ether_link:1; | ||
22 | unsigned ether_link_active_low:1; | ||
23 | }; | ||
24 | |||
25 | #endif | ||
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c index 22745b47c829..a492e59883a3 100644 --- a/arch/um/drivers/net_kern.c +++ b/arch/um/drivers/net_kern.c | |||
@@ -368,7 +368,7 @@ static const struct net_device_ops uml_netdev_ops = { | |||
368 | .ndo_open = uml_net_open, | 368 | .ndo_open = uml_net_open, |
369 | .ndo_stop = uml_net_close, | 369 | .ndo_stop = uml_net_close, |
370 | .ndo_start_xmit = uml_net_start_xmit, | 370 | .ndo_start_xmit = uml_net_start_xmit, |
371 | .ndo_set_multicast_list = uml_net_set_multicast_list, | 371 | .ndo_set_rx_mode = uml_net_set_multicast_list, |
372 | .ndo_tx_timeout = uml_net_tx_timeout, | 372 | .ndo_tx_timeout = uml_net_tx_timeout, |
373 | .ndo_set_mac_address = eth_mac_addr, | 373 | .ndo_set_mac_address = eth_mac_addr, |
374 | .ndo_change_mtu = uml_net_change_mtu, | 374 | .ndo_change_mtu = uml_net_change_mtu, |
diff --git a/arch/xtensa/platforms/iss/network.c b/arch/xtensa/platforms/iss/network.c index f717e20d961b..7dde24456427 100644 --- a/arch/xtensa/platforms/iss/network.c +++ b/arch/xtensa/platforms/iss/network.c | |||
@@ -633,7 +633,7 @@ static const struct net_device_ops iss_netdev_ops = { | |||
633 | .ndo_set_mac_address = iss_net_set_mac, | 633 | .ndo_set_mac_address = iss_net_set_mac, |
634 | //.ndo_do_ioctl = iss_net_ioctl, | 634 | //.ndo_do_ioctl = iss_net_ioctl, |
635 | .ndo_tx_timeout = iss_net_tx_timeout, | 635 | .ndo_tx_timeout = iss_net_tx_timeout, |
636 | .ndo_set_multicast_list = iss_net_set_multicast_list, | 636 | .ndo_set_rx_mode = iss_net_set_multicast_list, |
637 | }; | 637 | }; |
638 | 638 | ||
639 | static int iss_net_configure(int index, char *init) | 639 | static int iss_net_configure(int index, char *init) |