aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-10-25 21:41:32 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-25 21:41:32 -0400
commit4833c16dea61cb30d6f77dfec3067a08ba79b361 (patch)
treefdf6cd3a851bca2c8c9db2e751abd5eddfcb2f66
parente0e170bd7ded2ec16e2813d63c0faff43193fde8 (diff)
parentad3e01a331435a06055cdaf19cc973dd138dc925 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: Blackfin: fix inverted anomaly 05000481 logic Blackfin: drop unused irq_panic()/DEBUG_ICACHE_CHECK Blackfin: ppi/spi/twi headers: add missing __BFP undef Blackfin: update defconfigs Blackfin: bfin_twi.h: start a common TWI header netdev: bfin_mac: push settings to platform resources
-rw-r--r--arch/blackfin/Kconfig.debug11
-rw-r--r--arch/blackfin/configs/BF518F-EZBRD_defconfig2
-rw-r--r--arch/blackfin/configs/BF526-EZBRD_defconfig2
-rw-r--r--arch/blackfin/configs/BF527-AD7160-EVAL_defconfig2
-rw-r--r--arch/blackfin/configs/BF527-EZKIT-V2_defconfig3
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig3
-rw-r--r--arch/blackfin/configs/BF527-TLL6527M_defconfig1
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig2
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig2
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig3
-rw-r--r--arch/blackfin/configs/BF538-EZKIT_defconfig3
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig4
-rw-r--r--arch/blackfin/configs/BF561-ACVILON_defconfig4
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig1
-rw-r--r--arch/blackfin/configs/BlackStamp_defconfig3
-rw-r--r--arch/blackfin/configs/CM-BF527_defconfig4
-rw-r--r--arch/blackfin/configs/CM-BF533_defconfig3
-rw-r--r--arch/blackfin/configs/CM-BF537E_defconfig3
-rw-r--r--arch/blackfin/configs/CM-BF537U_defconfig3
-rw-r--r--arch/blackfin/configs/CM-BF548_defconfig3
-rw-r--r--arch/blackfin/configs/CM-BF561_defconfig3
-rw-r--r--arch/blackfin/configs/H8606_defconfig3
-rw-r--r--arch/blackfin/configs/IP0X_defconfig3
-rw-r--r--arch/blackfin/configs/PNAV-10_defconfig2
-rw-r--r--arch/blackfin/configs/SRV1_defconfig3
-rw-r--r--arch/blackfin/configs/TCM-BF518_defconfig1
-rw-r--r--arch/blackfin/configs/TCM-BF537_defconfig2
-rw-r--r--arch/blackfin/include/asm/bfin5xx_spi.h2
-rw-r--r--arch/blackfin/include/asm/bfin_ppi.h2
-rw-r--r--arch/blackfin/include/asm/bfin_twi.h45
-rw-r--r--arch/blackfin/include/asm/cdef_LPBlackfin.h2
-rw-r--r--arch/blackfin/mach-bf518/boards/ezbrd.c44
-rw-r--r--arch/blackfin/mach-bf518/boards/tcm-bf518.c24
-rw-r--r--arch/blackfin/mach-bf527/boards/cm_bf527.c24
-rw-r--r--arch/blackfin/mach-bf527/boards/ezbrd.c24
-rw-r--r--arch/blackfin/mach-bf527/boards/ezkit.c24
-rw-r--r--arch/blackfin/mach-bf527/boards/tll6527m.c24
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537e.c24
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537u.c24
-rw-r--r--arch/blackfin/mach-bf537/boards/minotaur.c24
-rw-r--r--arch/blackfin/mach-bf537/boards/pnav10.c24
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c24
-rw-r--r--arch/blackfin/mach-bf537/boards/tcm_bf537.c24
-rw-r--r--arch/blackfin/mach-common/Makefile1
-rw-r--r--arch/blackfin/mach-common/irqpanic.c106
-rw-r--r--drivers/net/Kconfig8
-rw-r--r--drivers/net/bfin_mac.c145
-rw-r--r--drivers/net/bfin_mac.h2
-rw-r--r--include/linux/bfin_mac.h29
49 files changed, 513 insertions, 216 deletions
diff --git a/arch/blackfin/Kconfig.debug b/arch/blackfin/Kconfig.debug
index d1825cb2476..acb83799a21 100644
--- a/arch/blackfin/Kconfig.debug
+++ b/arch/blackfin/Kconfig.debug
@@ -102,17 +102,6 @@ config DEBUG_DOUBLEFAULT_RESET
102 102
103endchoice 103endchoice
104 104
105config DEBUG_ICACHE_CHECK
106 bool "Check Instruction cache coherency"
107 depends on DEBUG_KERNEL
108 depends on DEBUG_HWERR
109 help
110 Say Y here if you are getting weird unexplained errors. This will
111 ensure that icache is what SDRAM says it should be by doing a
112 byte wise comparison between SDRAM and instruction cache. This
113 also relocates the irq_panic() function to L1 memory, (which is
114 un-cached).
115
116config DEBUG_HUNT_FOR_ZERO 105config DEBUG_HUNT_FOR_ZERO
117 bool "Catch NULL pointer reads/writes" 106 bool "Catch NULL pointer reads/writes"
118 default y 107 default y
diff --git a/arch/blackfin/configs/BF518F-EZBRD_defconfig b/arch/blackfin/configs/BF518F-EZBRD_defconfig
index 46fac1bf060..c0b988ee30d 100644
--- a/arch/blackfin/configs/BF518F-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF518F-EZBRD_defconfig
@@ -35,6 +35,7 @@ CONFIG_C_CDPRIO=y
35CONFIG_BANK_3=0x99B2 35CONFIG_BANK_3=0x99B2
36CONFIG_BINFMT_FLAT=y 36CONFIG_BINFMT_FLAT=y
37CONFIG_BINFMT_ZFLAT=y 37CONFIG_BINFMT_ZFLAT=y
38CONFIG_PM=y
38CONFIG_NET=y 39CONFIG_NET=y
39CONFIG_PACKET=y 40CONFIG_PACKET=y
40CONFIG_UNIX=y 41CONFIG_UNIX=y
@@ -114,7 +115,6 @@ CONFIG_DEBUG_DOUBLEFAULT=y
114CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 115CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
115CONFIG_EARLY_PRINTK=y 116CONFIG_EARLY_PRINTK=y
116CONFIG_CPLB_INFO=y 117CONFIG_CPLB_INFO=y
117CONFIG_SECURITY=y
118CONFIG_CRYPTO=y 118CONFIG_CRYPTO=y
119# CONFIG_CRYPTO_ANSI_CPRNG is not set 119# CONFIG_CRYPTO_ANSI_CPRNG is not set
120CONFIG_CRC_CCITT=m 120CONFIG_CRC_CCITT=m
diff --git a/arch/blackfin/configs/BF526-EZBRD_defconfig b/arch/blackfin/configs/BF526-EZBRD_defconfig
index 80240806cf9..864af5b6887 100644
--- a/arch/blackfin/configs/BF526-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF526-EZBRD_defconfig
@@ -40,6 +40,7 @@ CONFIG_C_CDPRIO=y
40CONFIG_BANK_3=0x99B2 40CONFIG_BANK_3=0x99B2
41CONFIG_BINFMT_FLAT=y 41CONFIG_BINFMT_FLAT=y
42CONFIG_BINFMT_ZFLAT=y 42CONFIG_BINFMT_ZFLAT=y
43CONFIG_PM=y
43CONFIG_NET=y 44CONFIG_NET=y
44CONFIG_PACKET=y 45CONFIG_PACKET=y
45CONFIG_UNIX=y 46CONFIG_UNIX=y
@@ -152,7 +153,6 @@ CONFIG_DEBUG_DOUBLEFAULT=y
152CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 153CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
153CONFIG_EARLY_PRINTK=y 154CONFIG_EARLY_PRINTK=y
154CONFIG_CPLB_INFO=y 155CONFIG_CPLB_INFO=y
155CONFIG_SECURITY=y
156CONFIG_CRYPTO=y 156CONFIG_CRYPTO=y
157# CONFIG_CRYPTO_ANSI_CPRNG is not set 157# CONFIG_CRYPTO_ANSI_CPRNG is not set
158CONFIG_CRC_CCITT=m 158CONFIG_CRC_CCITT=m
diff --git a/arch/blackfin/configs/BF527-AD7160-EVAL_defconfig b/arch/blackfin/configs/BF527-AD7160-EVAL_defconfig
index 08c55f6b8b7..7b6a3370dbe 100644
--- a/arch/blackfin/configs/BF527-AD7160-EVAL_defconfig
+++ b/arch/blackfin/configs/BF527-AD7160-EVAL_defconfig
@@ -9,6 +9,7 @@ CONFIG_EMBEDDED=y
9# CONFIG_ELF_CORE is not set 9# CONFIG_ELF_CORE is not set
10# CONFIG_AIO is not set 10# CONFIG_AIO is not set
11CONFIG_SLAB=y 11CONFIG_SLAB=y
12CONFIG_MMAP_ALLOW_UNINITIALIZED=y
12CONFIG_MODULES=y 13CONFIG_MODULES=y
13CONFIG_MODULE_UNLOAD=y 14CONFIG_MODULE_UNLOAD=y
14# CONFIG_BLK_DEV_BSG is not set 15# CONFIG_BLK_DEV_BSG is not set
@@ -101,5 +102,4 @@ CONFIG_DETECT_HUNG_TASK=y
101# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 102# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
102CONFIG_EARLY_PRINTK=y 103CONFIG_EARLY_PRINTK=y
103CONFIG_CPLB_INFO=y 104CONFIG_CPLB_INFO=y
104CONFIG_SECURITY=y
105CONFIG_CRC_CCITT=m 105CONFIG_CRC_CCITT=m
diff --git a/arch/blackfin/configs/BF527-EZKIT-V2_defconfig b/arch/blackfin/configs/BF527-EZKIT-V2_defconfig
index 4a9125558fc..4faa6b46a35 100644
--- a/arch/blackfin/configs/BF527-EZKIT-V2_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT-V2_defconfig
@@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
20# CONFIG_LBDAF is not set 20# CONFIG_LBDAF is not set
21# CONFIG_BLK_DEV_BSG is not set 21# CONFIG_BLK_DEV_BSG is not set
22# CONFIG_IOSCHED_DEADLINE is not set 22# CONFIG_IOSCHED_DEADLINE is not set
23# CONFIG_IOSCHED_CFQ is not set
23CONFIG_PREEMPT_VOLUNTARY=y 24CONFIG_PREEMPT_VOLUNTARY=y
24CONFIG_BF527=y 25CONFIG_BF527=y
25CONFIG_BF_REV_0_2=y 26CONFIG_BF_REV_0_2=y
@@ -38,6 +39,7 @@ CONFIG_C_CDPRIO=y
38CONFIG_BANK_3=0x99B2 39CONFIG_BANK_3=0x99B2
39CONFIG_BINFMT_FLAT=y 40CONFIG_BINFMT_FLAT=y
40CONFIG_BINFMT_ZFLAT=y 41CONFIG_BINFMT_ZFLAT=y
42CONFIG_PM=y
41CONFIG_NET=y 43CONFIG_NET=y
42CONFIG_PACKET=y 44CONFIG_PACKET=y
43CONFIG_UNIX=y 45CONFIG_UNIX=y
@@ -181,6 +183,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
181CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 183CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
182CONFIG_EARLY_PRINTK=y 184CONFIG_EARLY_PRINTK=y
183CONFIG_CPLB_INFO=y 185CONFIG_CPLB_INFO=y
184CONFIG_SECURITY=y
185CONFIG_CRYPTO=y 186CONFIG_CRYPTO=y
186# CONFIG_CRYPTO_ANSI_CPRNG is not set 187# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index 8ccf3cec753..9d893eb6824 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
20# CONFIG_LBDAF is not set 20# CONFIG_LBDAF is not set
21# CONFIG_BLK_DEV_BSG is not set 21# CONFIG_BLK_DEV_BSG is not set
22# CONFIG_IOSCHED_DEADLINE is not set 22# CONFIG_IOSCHED_DEADLINE is not set
23# CONFIG_IOSCHED_CFQ is not set
23CONFIG_PREEMPT_VOLUNTARY=y 24CONFIG_PREEMPT_VOLUNTARY=y
24CONFIG_BF527=y 25CONFIG_BF527=y
25CONFIG_BF_REV_0_1=y 26CONFIG_BF_REV_0_1=y
@@ -37,6 +38,7 @@ CONFIG_C_CDPRIO=y
37CONFIG_BANK_3=0x99B2 38CONFIG_BANK_3=0x99B2
38CONFIG_BINFMT_FLAT=y 39CONFIG_BINFMT_FLAT=y
39CONFIG_BINFMT_ZFLAT=y 40CONFIG_BINFMT_ZFLAT=y
41CONFIG_PM=y
40CONFIG_NET=y 42CONFIG_NET=y
41CONFIG_PACKET=y 43CONFIG_PACKET=y
42CONFIG_UNIX=y 44CONFIG_UNIX=y
@@ -173,6 +175,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
173CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 175CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
174CONFIG_EARLY_PRINTK=y 176CONFIG_EARLY_PRINTK=y
175CONFIG_CPLB_INFO=y 177CONFIG_CPLB_INFO=y
176CONFIG_SECURITY=y
177CONFIG_CRYPTO=y 178CONFIG_CRYPTO=y
178# CONFIG_CRYPTO_ANSI_CPRNG is not set 179# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/blackfin/configs/BF527-TLL6527M_defconfig b/arch/blackfin/configs/BF527-TLL6527M_defconfig
index 92ded5edc86..97a2767c80f 100644
--- a/arch/blackfin/configs/BF527-TLL6527M_defconfig
+++ b/arch/blackfin/configs/BF527-TLL6527M_defconfig
@@ -174,7 +174,6 @@ CONFIG_DEBUG_DOUBLEFAULT=y
174CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 174CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
175CONFIG_EARLY_PRINTK=y 175CONFIG_EARLY_PRINTK=y
176CONFIG_CPLB_INFO=y 176CONFIG_CPLB_INFO=y
177CONFIG_SECURITY=y
178CONFIG_CRYPTO=y 177CONFIG_CRYPTO=y
179# CONFIG_CRYPTO_ANSI_CPRNG is not set 178# CONFIG_CRYPTO_ANSI_CPRNG is not set
180CONFIG_CRC7=m 179CONFIG_CRC7=m
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
index c40e0f1c7ea..f84774360c5 100644
--- a/arch/blackfin/configs/BF533-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
20# CONFIG_LBDAF is not set 20# CONFIG_LBDAF is not set
21# CONFIG_BLK_DEV_BSG is not set 21# CONFIG_BLK_DEV_BSG is not set
22# CONFIG_IOSCHED_DEADLINE is not set 22# CONFIG_IOSCHED_DEADLINE is not set
23# CONFIG_IOSCHED_CFQ is not set
23CONFIG_PREEMPT_VOLUNTARY=y 24CONFIG_PREEMPT_VOLUNTARY=y
24CONFIG_BFIN533_EZKIT=y 25CONFIG_BFIN533_EZKIT=y
25CONFIG_TIMER0=11 26CONFIG_TIMER0=11
@@ -107,6 +108,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
107CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 108CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
108CONFIG_EARLY_PRINTK=y 109CONFIG_EARLY_PRINTK=y
109CONFIG_CPLB_INFO=y 110CONFIG_CPLB_INFO=y
110CONFIG_SECURITY=y
111CONFIG_CRYPTO=y 111CONFIG_CRYPTO=y
112# CONFIG_CRYPTO_ANSI_CPRNG is not set 112# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
index aa8c1d7453b..0e7262c04cc 100644
--- a/arch/blackfin/configs/BF533-STAMP_defconfig
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
20# CONFIG_LBDAF is not set 20# CONFIG_LBDAF is not set
21# CONFIG_BLK_DEV_BSG is not set 21# CONFIG_BLK_DEV_BSG is not set
22# CONFIG_IOSCHED_DEADLINE is not set 22# CONFIG_IOSCHED_DEADLINE is not set
23# CONFIG_IOSCHED_CFQ is not set
23CONFIG_PREEMPT_VOLUNTARY=y 24CONFIG_PREEMPT_VOLUNTARY=y
24CONFIG_TIMER0=11 25CONFIG_TIMER0=11
25CONFIG_HIGH_RES_TIMERS=y 26CONFIG_HIGH_RES_TIMERS=y
@@ -121,6 +122,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
121CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 122CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
122CONFIG_EARLY_PRINTK=y 123CONFIG_EARLY_PRINTK=y
123CONFIG_CPLB_INFO=y 124CONFIG_CPLB_INFO=y
124CONFIG_SECURITY=y
125CONFIG_CRYPTO=y 125CONFIG_CRYPTO=y
126# CONFIG_CRYPTO_ANSI_CPRNG is not set 126# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
index f245c0b427e..4d14a002e7b 100644
--- a/arch/blackfin/configs/BF537-STAMP_defconfig
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -20,9 +20,9 @@ CONFIG_MODULE_UNLOAD=y
20# CONFIG_LBDAF is not set 20# CONFIG_LBDAF is not set
21# CONFIG_BLK_DEV_BSG is not set 21# CONFIG_BLK_DEV_BSG is not set
22# CONFIG_IOSCHED_DEADLINE is not set 22# CONFIG_IOSCHED_DEADLINE is not set
23# CONFIG_IOSCHED_CFQ is not set
23CONFIG_PREEMPT_VOLUNTARY=y 24CONFIG_PREEMPT_VOLUNTARY=y
24CONFIG_BF537=y 25CONFIG_BF537=y
25CONFIG_IRQ_ERROR=11
26CONFIG_HIGH_RES_TIMERS=y 26CONFIG_HIGH_RES_TIMERS=y
27CONFIG_NOMMU_INITIAL_TRIM_EXCESS=0 27CONFIG_NOMMU_INITIAL_TRIM_EXCESS=0
28CONFIG_BFIN_GPTIMERS=m 28CONFIG_BFIN_GPTIMERS=m
@@ -133,6 +133,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
133CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 133CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
134CONFIG_EARLY_PRINTK=y 134CONFIG_EARLY_PRINTK=y
135CONFIG_CPLB_INFO=y 135CONFIG_CPLB_INFO=y
136CONFIG_SECURITY=y
137CONFIG_CRYPTO=y 136CONFIG_CRYPTO=y
138# CONFIG_CRYPTO_ANSI_CPRNG is not set 137# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/blackfin/configs/BF538-EZKIT_defconfig b/arch/blackfin/configs/BF538-EZKIT_defconfig
index 74a330cca9b..fbee9d776f5 100644
--- a/arch/blackfin/configs/BF538-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF538-EZKIT_defconfig
@@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
20# CONFIG_LBDAF is not set 20# CONFIG_LBDAF is not set
21# CONFIG_BLK_DEV_BSG is not set 21# CONFIG_BLK_DEV_BSG is not set
22# CONFIG_IOSCHED_DEADLINE is not set 22# CONFIG_IOSCHED_DEADLINE is not set
23# CONFIG_IOSCHED_CFQ is not set
23CONFIG_PREEMPT_VOLUNTARY=y 24CONFIG_PREEMPT_VOLUNTARY=y
24CONFIG_BF538=y 25CONFIG_BF538=y
25CONFIG_IRQ_TIMER0=12 26CONFIG_IRQ_TIMER0=12
@@ -31,6 +32,7 @@ CONFIG_C_CDPRIO=y
31CONFIG_BANK_3=0x99B2 32CONFIG_BANK_3=0x99B2
32CONFIG_BINFMT_FLAT=y 33CONFIG_BINFMT_FLAT=y
33CONFIG_BINFMT_ZFLAT=y 34CONFIG_BINFMT_ZFLAT=y
35CONFIG_PM=y
34CONFIG_NET=y 36CONFIG_NET=y
35CONFIG_PACKET=y 37CONFIG_PACKET=y
36CONFIG_UNIX=y 38CONFIG_UNIX=y
@@ -129,6 +131,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
129CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 131CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
130CONFIG_EARLY_PRINTK=y 132CONFIG_EARLY_PRINTK=y
131CONFIG_CPLB_INFO=y 133CONFIG_CPLB_INFO=y
132CONFIG_SECURITY=y
133CONFIG_CRYPTO=y 134CONFIG_CRYPTO=y
134# CONFIG_CRYPTO_ANSI_CPRNG is not set 135# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index 29373cbba22..05dd11db2f7 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -40,6 +40,7 @@ CONFIG_EBIU_MODEVAL=0x1
40CONFIG_EBIU_FCTLVAL=0x6 40CONFIG_EBIU_FCTLVAL=0x6
41CONFIG_BINFMT_FLAT=y 41CONFIG_BINFMT_FLAT=y
42CONFIG_BINFMT_ZFLAT=y 42CONFIG_BINFMT_ZFLAT=y
43CONFIG_PM=y
43CONFIG_NET=y 44CONFIG_NET=y
44CONFIG_PACKET=y 45CONFIG_PACKET=y
45CONFIG_UNIX=y 46CONFIG_UNIX=y
@@ -62,7 +63,7 @@ CONFIG_IRCOMM=m
62CONFIG_IRTTY_SIR=m 63CONFIG_IRTTY_SIR=m
63CONFIG_BFIN_SIR=m 64CONFIG_BFIN_SIR=m
64CONFIG_BFIN_SIR3=y 65CONFIG_BFIN_SIR3=y
65CONFIG_LIB80211=m 66# CONFIG_WIRELESS is not set
66CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 67CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
67CONFIG_FW_LOADER=m 68CONFIG_FW_LOADER=m
68CONFIG_MTD=y 69CONFIG_MTD=y
@@ -92,6 +93,7 @@ CONFIG_NET_ETHERNET=y
92CONFIG_SMSC911X=y 93CONFIG_SMSC911X=y
93# CONFIG_NETDEV_1000 is not set 94# CONFIG_NETDEV_1000 is not set
94# CONFIG_NETDEV_10000 is not set 95# CONFIG_NETDEV_10000 is not set
96# CONFIG_WLAN is not set
95CONFIG_INPUT_FF_MEMLESS=m 97CONFIG_INPUT_FF_MEMLESS=m
96# CONFIG_INPUT_MOUSEDEV is not set 98# CONFIG_INPUT_MOUSEDEV is not set
97CONFIG_INPUT_EVDEV=m 99CONFIG_INPUT_EVDEV=m
diff --git a/arch/blackfin/configs/BF561-ACVILON_defconfig b/arch/blackfin/configs/BF561-ACVILON_defconfig
index 1f12034f561..bcb14d1c566 100644
--- a/arch/blackfin/configs/BF561-ACVILON_defconfig
+++ b/arch/blackfin/configs/BF561-ACVILON_defconfig
@@ -14,6 +14,7 @@ CONFIG_EMBEDDED=y
14# CONFIG_EVENTFD is not set 14# CONFIG_EVENTFD is not set
15# CONFIG_AIO is not set 15# CONFIG_AIO is not set
16CONFIG_SLAB=y 16CONFIG_SLAB=y
17CONFIG_MMAP_ALLOW_UNINITIALIZED=y
17CONFIG_MODULES=y 18CONFIG_MODULES=y
18CONFIG_MODULE_UNLOAD=y 19CONFIG_MODULE_UNLOAD=y
19# CONFIG_LBDAF is not set 20# CONFIG_LBDAF is not set
@@ -44,6 +45,7 @@ CONFIG_IP_PNP=y
44CONFIG_SYN_COOKIES=y 45CONFIG_SYN_COOKIES=y
45# CONFIG_INET_LRO is not set 46# CONFIG_INET_LRO is not set
46# CONFIG_IPV6 is not set 47# CONFIG_IPV6 is not set
48# CONFIG_WIRELESS is not set
47CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 49CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
48# CONFIG_FW_LOADER is not set 50# CONFIG_FW_LOADER is not set
49CONFIG_MTD=y 51CONFIG_MTD=y
@@ -71,6 +73,7 @@ CONFIG_NET_ETHERNET=y
71CONFIG_SMSC911X=y 73CONFIG_SMSC911X=y
72# CONFIG_NETDEV_1000 is not set 74# CONFIG_NETDEV_1000 is not set
73# CONFIG_NETDEV_10000 is not set 75# CONFIG_NETDEV_10000 is not set
76# CONFIG_WLAN is not set
74# CONFIG_INPUT is not set 77# CONFIG_INPUT is not set
75# CONFIG_SERIO is not set 78# CONFIG_SERIO is not set
76# CONFIG_VT is not set 79# CONFIG_VT is not set
@@ -147,5 +150,4 @@ CONFIG_DEBUG_INFO=y
147CONFIG_DEBUG_MMRS=y 150CONFIG_DEBUG_MMRS=y
148# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 151# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
149CONFIG_CPLB_INFO=y 152CONFIG_CPLB_INFO=y
150CONFIG_SECURITY=y
151# CONFIG_CRYPTO_ANSI_CPRNG is not set 153# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
index 8913d997fa4..843aaa54a9e 100644
--- a/arch/blackfin/configs/BF561-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -35,6 +35,7 @@ CONFIG_C_CDPRIO=y
35CONFIG_BANK_3=0xAAC2 35CONFIG_BANK_3=0xAAC2
36CONFIG_BINFMT_FLAT=y 36CONFIG_BINFMT_FLAT=y
37CONFIG_BINFMT_ZFLAT=y 37CONFIG_BINFMT_ZFLAT=y
38CONFIG_PM=y
38CONFIG_NET=y 39CONFIG_NET=y
39CONFIG_PACKET=y 40CONFIG_PACKET=y
40CONFIG_UNIX=y 41CONFIG_UNIX=y
diff --git a/arch/blackfin/configs/BlackStamp_defconfig b/arch/blackfin/configs/BlackStamp_defconfig
index 0242917b69c..dae7adf3b2a 100644
--- a/arch/blackfin/configs/BlackStamp_defconfig
+++ b/arch/blackfin/configs/BlackStamp_defconfig
@@ -40,6 +40,7 @@ CONFIG_INET=y
40CONFIG_IP_PNP=y 40CONFIG_IP_PNP=y
41# CONFIG_INET_LRO is not set 41# CONFIG_INET_LRO is not set
42# CONFIG_IPV6 is not set 42# CONFIG_IPV6 is not set
43# CONFIG_WIRELESS is not set
43CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 44CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
44# CONFIG_FW_LOADER is not set 45# CONFIG_FW_LOADER is not set
45CONFIG_MTD=y 46CONFIG_MTD=y
@@ -63,6 +64,7 @@ CONFIG_NET_ETHERNET=y
63CONFIG_SMC91X=y 64CONFIG_SMC91X=y
64# CONFIG_NETDEV_1000 is not set 65# CONFIG_NETDEV_1000 is not set
65# CONFIG_NETDEV_10000 is not set 66# CONFIG_NETDEV_10000 is not set
67# CONFIG_WLAN is not set
66# CONFIG_INPUT_MOUSEDEV is not set 68# CONFIG_INPUT_MOUSEDEV is not set
67CONFIG_INPUT_EVDEV=m 69CONFIG_INPUT_EVDEV=m
68# CONFIG_INPUT_KEYBOARD is not set 70# CONFIG_INPUT_KEYBOARD is not set
@@ -104,5 +106,4 @@ CONFIG_DEBUG_MMRS=y
104# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 106# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
105CONFIG_EARLY_PRINTK=y 107CONFIG_EARLY_PRINTK=y
106CONFIG_CPLB_INFO=y 108CONFIG_CPLB_INFO=y
107CONFIG_SECURITY=y
108CONFIG_CRC_CCITT=m 109CONFIG_CRC_CCITT=m
diff --git a/arch/blackfin/configs/CM-BF527_defconfig b/arch/blackfin/configs/CM-BF527_defconfig
index 0512fef3d55..f3414244bfe 100644
--- a/arch/blackfin/configs/CM-BF527_defconfig
+++ b/arch/blackfin/configs/CM-BF527_defconfig
@@ -50,6 +50,7 @@ CONFIG_IP_PNP=y
50# CONFIG_INET_LRO is not set 50# CONFIG_INET_LRO is not set
51# CONFIG_INET_DIAG is not set 51# CONFIG_INET_DIAG is not set
52# CONFIG_IPV6 is not set 52# CONFIG_IPV6 is not set
53# CONFIG_WIRELESS is not set
53CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 54CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
54# CONFIG_FW_LOADER is not set 55# CONFIG_FW_LOADER is not set
55CONFIG_MTD=y 56CONFIG_MTD=y
@@ -70,9 +71,9 @@ CONFIG_BLK_DEV_SD=y
70CONFIG_NETDEVICES=y 71CONFIG_NETDEVICES=y
71CONFIG_NET_ETHERNET=y 72CONFIG_NET_ETHERNET=y
72CONFIG_BFIN_MAC=y 73CONFIG_BFIN_MAC=y
73CONFIG_BFIN_MAC_RMII=y
74# CONFIG_NETDEV_1000 is not set 74# CONFIG_NETDEV_1000 is not set
75# CONFIG_NETDEV_10000 is not set 75# CONFIG_NETDEV_10000 is not set
76# CONFIG_WLAN is not set
76# CONFIG_INPUT is not set 77# CONFIG_INPUT is not set
77# CONFIG_SERIO is not set 78# CONFIG_SERIO is not set
78# CONFIG_VT is not set 79# CONFIG_VT is not set
@@ -124,7 +125,6 @@ CONFIG_DEBUG_FS=y
124# CONFIG_RCU_CPU_STALL_DETECTOR is not set 125# CONFIG_RCU_CPU_STALL_DETECTOR is not set
125# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 126# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
126CONFIG_EARLY_PRINTK=y 127CONFIG_EARLY_PRINTK=y
127CONFIG_SECURITY=y
128CONFIG_CRYPTO=y 128CONFIG_CRYPTO=y
129# CONFIG_CRYPTO_ANSI_CPRNG is not set 129# CONFIG_CRYPTO_ANSI_CPRNG is not set
130CONFIG_CRC_CCITT=m 130CONFIG_CRC_CCITT=m
diff --git a/arch/blackfin/configs/CM-BF533_defconfig b/arch/blackfin/configs/CM-BF533_defconfig
index 05e09be8b4c..8c7e08f173d 100644
--- a/arch/blackfin/configs/CM-BF533_defconfig
+++ b/arch/blackfin/configs/CM-BF533_defconfig
@@ -33,6 +33,7 @@ CONFIG_BINFMT_SHARED_FLAT=y
33CONFIG_NET=y 33CONFIG_NET=y
34CONFIG_PACKET=y 34CONFIG_PACKET=y
35CONFIG_UNIX=y 35CONFIG_UNIX=y
36# CONFIG_WIRELESS is not set
36CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 37CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
37CONFIG_MTD=y 38CONFIG_MTD=y
38CONFIG_MTD_PARTITIONS=y 39CONFIG_MTD_PARTITIONS=y
@@ -47,6 +48,7 @@ CONFIG_MTD_PHYSMAP=y
47CONFIG_NETDEVICES=y 48CONFIG_NETDEVICES=y
48# CONFIG_NETDEV_1000 is not set 49# CONFIG_NETDEV_1000 is not set
49# CONFIG_NETDEV_10000 is not set 50# CONFIG_NETDEV_10000 is not set
51# CONFIG_WLAN is not set
50# CONFIG_INPUT is not set 52# CONFIG_INPUT is not set
51# CONFIG_SERIO is not set 53# CONFIG_SERIO is not set
52# CONFIG_VT is not set 54# CONFIG_VT is not set
@@ -72,7 +74,6 @@ CONFIG_DEBUG_MMRS=y
72# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 74# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
73CONFIG_EARLY_PRINTK=y 75CONFIG_EARLY_PRINTK=y
74CONFIG_CPLB_INFO=y 76CONFIG_CPLB_INFO=y
75CONFIG_SECURITY=y
76CONFIG_CRC_CCITT=y 77CONFIG_CRC_CCITT=y
77CONFIG_CRC_ITU_T=y 78CONFIG_CRC_ITU_T=y
78CONFIG_CRC7=y 79CONFIG_CRC7=y
diff --git a/arch/blackfin/configs/CM-BF537E_defconfig b/arch/blackfin/configs/CM-BF537E_defconfig
index d2eb5325b9c..bd3cb766d07 100644
--- a/arch/blackfin/configs/CM-BF537E_defconfig
+++ b/arch/blackfin/configs/CM-BF537E_defconfig
@@ -48,6 +48,7 @@ CONFIG_IP_PNP=y
48# CONFIG_INET_LRO is not set 48# CONFIG_INET_LRO is not set
49# CONFIG_INET_DIAG is not set 49# CONFIG_INET_DIAG is not set
50# CONFIG_IPV6 is not set 50# CONFIG_IPV6 is not set
51# CONFIG_WIRELESS is not set
51CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 52CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
52CONFIG_MTD=y 53CONFIG_MTD=y
53CONFIG_MTD_CMDLINE_PARTS=y 54CONFIG_MTD_CMDLINE_PARTS=y
@@ -65,6 +66,7 @@ CONFIG_NET_ETHERNET=y
65CONFIG_BFIN_MAC=y 66CONFIG_BFIN_MAC=y
66# CONFIG_NETDEV_1000 is not set 67# CONFIG_NETDEV_1000 is not set
67# CONFIG_NETDEV_10000 is not set 68# CONFIG_NETDEV_10000 is not set
69# CONFIG_WLAN is not set
68# CONFIG_INPUT is not set 70# CONFIG_INPUT is not set
69# CONFIG_SERIO is not set 71# CONFIG_SERIO is not set
70# CONFIG_VT is not set 72# CONFIG_VT is not set
@@ -99,7 +101,6 @@ CONFIG_DEBUG_MMRS=y
99# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 101# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
100CONFIG_EARLY_PRINTK=y 102CONFIG_EARLY_PRINTK=y
101CONFIG_CPLB_INFO=y 103CONFIG_CPLB_INFO=y
102CONFIG_SECURITY=y
103CONFIG_CRYPTO=y 104CONFIG_CRYPTO=y
104# CONFIG_CRYPTO_ANSI_CPRNG is not set 105# CONFIG_CRYPTO_ANSI_CPRNG is not set
105CONFIG_CRC_CCITT=m 106CONFIG_CRC_CCITT=m
diff --git a/arch/blackfin/configs/CM-BF537U_defconfig b/arch/blackfin/configs/CM-BF537U_defconfig
index 9d52c443eb0..82224f37c04 100644
--- a/arch/blackfin/configs/CM-BF537U_defconfig
+++ b/arch/blackfin/configs/CM-BF537U_defconfig
@@ -44,6 +44,7 @@ CONFIG_INET=y
44# CONFIG_INET_XFRM_MODE_BEET is not set 44# CONFIG_INET_XFRM_MODE_BEET is not set
45# CONFIG_INET_DIAG is not set 45# CONFIG_INET_DIAG is not set
46# CONFIG_IPV6 is not set 46# CONFIG_IPV6 is not set
47# CONFIG_WIRELESS is not set
47CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 48CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
48CONFIG_MTD=y 49CONFIG_MTD=y
49CONFIG_MTD_CMDLINE_PARTS=y 50CONFIG_MTD_CMDLINE_PARTS=y
@@ -59,6 +60,7 @@ CONFIG_BLK_DEV_RAM=y
59CONFIG_NETDEVICES=y 60CONFIG_NETDEVICES=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
63# CONFIG_WLAN is not set
62# CONFIG_INPUT is not set 64# CONFIG_INPUT is not set
63# CONFIG_SERIO is not set 65# CONFIG_SERIO is not set
64# CONFIG_VT is not set 66# CONFIG_VT is not set
@@ -90,7 +92,6 @@ CONFIG_DEBUG_MMRS=y
90# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 92# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
91CONFIG_EARLY_PRINTK=y 93CONFIG_EARLY_PRINTK=y
92CONFIG_CPLB_INFO=y 94CONFIG_CPLB_INFO=y
93CONFIG_SECURITY=y
94CONFIG_CRC_CCITT=m 95CONFIG_CRC_CCITT=m
95CONFIG_CRC_ITU_T=y 96CONFIG_CRC_ITU_T=y
96CONFIG_CRC7=y 97CONFIG_CRC7=y
diff --git a/arch/blackfin/configs/CM-BF548_defconfig b/arch/blackfin/configs/CM-BF548_defconfig
index 9de13cf2cdd..433598c6e77 100644
--- a/arch/blackfin/configs/CM-BF548_defconfig
+++ b/arch/blackfin/configs/CM-BF548_defconfig
@@ -49,6 +49,7 @@ CONFIG_INET_XFRM_MODE_BEET=m
49# CONFIG_INET_LRO is not set 49# CONFIG_INET_LRO is not set
50# CONFIG_INET_DIAG is not set 50# CONFIG_INET_DIAG is not set
51# CONFIG_IPV6 is not set 51# CONFIG_IPV6 is not set
52# CONFIG_WIRELESS is not set
52CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 53CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
53# CONFIG_FW_LOADER is not set 54# CONFIG_FW_LOADER is not set
54CONFIG_MTD=y 55CONFIG_MTD=y
@@ -71,6 +72,7 @@ CONFIG_NET_ETHERNET=y
71CONFIG_SMSC911X=y 72CONFIG_SMSC911X=y
72# CONFIG_NETDEV_1000 is not set 73# CONFIG_NETDEV_1000 is not set
73# CONFIG_NETDEV_10000 is not set 74# CONFIG_NETDEV_10000 is not set
75# CONFIG_WLAN is not set
74# CONFIG_INPUT_MOUSEDEV is not set 76# CONFIG_INPUT_MOUSEDEV is not set
75CONFIG_INPUT_EVDEV=m 77CONFIG_INPUT_EVDEV=m
76CONFIG_INPUT_EVBUG=m 78CONFIG_INPUT_EVBUG=m
@@ -167,7 +169,6 @@ CONFIG_DEBUG_FS=y
167# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 169# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
168CONFIG_EARLY_PRINTK=y 170CONFIG_EARLY_PRINTK=y
169CONFIG_CPLB_INFO=y 171CONFIG_CPLB_INFO=y
170CONFIG_SECURITY=y
171# CONFIG_CRYPTO_ANSI_CPRNG is not set 172# CONFIG_CRYPTO_ANSI_CPRNG is not set
172# CONFIG_CRYPTO_HW is not set 173# CONFIG_CRYPTO_HW is not set
173CONFIG_CRC_CCITT=m 174CONFIG_CRC_CCITT=m
diff --git a/arch/blackfin/configs/CM-BF561_defconfig b/arch/blackfin/configs/CM-BF561_defconfig
index 238353a53bf..ded7d845cb3 100644
--- a/arch/blackfin/configs/CM-BF561_defconfig
+++ b/arch/blackfin/configs/CM-BF561_defconfig
@@ -48,6 +48,7 @@ CONFIG_INET=y
48# CONFIG_INET_LRO is not set 48# CONFIG_INET_LRO is not set
49# CONFIG_INET_DIAG is not set 49# CONFIG_INET_DIAG is not set
50# CONFIG_IPV6 is not set 50# CONFIG_IPV6 is not set
51# CONFIG_WIRELESS is not set
51CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 52CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
52CONFIG_MTD=y 53CONFIG_MTD=y
53CONFIG_MTD_PARTITIONS=y 54CONFIG_MTD_PARTITIONS=y
@@ -67,6 +68,7 @@ CONFIG_MII=y
67CONFIG_SMSC911X=m 68CONFIG_SMSC911X=m
68# CONFIG_NETDEV_1000 is not set 69# CONFIG_NETDEV_1000 is not set
69# CONFIG_NETDEV_10000 is not set 70# CONFIG_NETDEV_10000 is not set
71# CONFIG_WLAN is not set
70# CONFIG_INPUT is not set 72# CONFIG_INPUT is not set
71# CONFIG_SERIO is not set 73# CONFIG_SERIO is not set
72# CONFIG_VT is not set 74# CONFIG_VT is not set
@@ -99,7 +101,6 @@ CONFIG_DEBUG_MMRS=y
99# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 101# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
100CONFIG_EARLY_PRINTK=y 102CONFIG_EARLY_PRINTK=y
101CONFIG_CPLB_INFO=y 103CONFIG_CPLB_INFO=y
102CONFIG_SECURITY=y
103CONFIG_CRC_CCITT=m 104CONFIG_CRC_CCITT=m
104CONFIG_CRC_ITU_T=y 105CONFIG_CRC_ITU_T=y
105CONFIG_CRC7=y 106CONFIG_CRC7=y
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig
index 0cb524e8947..700fb701c12 100644
--- a/arch/blackfin/configs/H8606_defconfig
+++ b/arch/blackfin/configs/H8606_defconfig
@@ -33,6 +33,7 @@ CONFIG_IRLAN=m
33CONFIG_IRCOMM=m 33CONFIG_IRCOMM=m
34CONFIG_IRDA_CACHE_LAST_LSAP=y 34CONFIG_IRDA_CACHE_LAST_LSAP=y
35CONFIG_IRTTY_SIR=m 35CONFIG_IRTTY_SIR=m
36# CONFIG_WIRELESS is not set
36# CONFIG_FW_LOADER is not set 37# CONFIG_FW_LOADER is not set
37CONFIG_MTD=y 38CONFIG_MTD=y
38CONFIG_MTD_PARTITIONS=y 39CONFIG_MTD_PARTITIONS=y
@@ -50,6 +51,7 @@ CONFIG_NET_ETHERNET=y
50CONFIG_DM9000=y 51CONFIG_DM9000=y
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
54# CONFIG_WLAN is not set
53# CONFIG_INPUT_MOUSEDEV is not set 55# CONFIG_INPUT_MOUSEDEV is not set
54CONFIG_INPUT_EVDEV=y 56CONFIG_INPUT_EVDEV=y
55# CONFIG_KEYBOARD_ATKBD is not set 57# CONFIG_KEYBOARD_ATKBD is not set
@@ -84,4 +86,3 @@ CONFIG_NFS_V3=y
84CONFIG_NLS=m 86CONFIG_NLS=m
85# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 87# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
86CONFIG_CPLB_INFO=y 88CONFIG_CPLB_INFO=y
87CONFIG_SECURITY=y
diff --git a/arch/blackfin/configs/IP0X_defconfig b/arch/blackfin/configs/IP0X_defconfig
index 2a3411ef19f..b40156d217e 100644
--- a/arch/blackfin/configs/IP0X_defconfig
+++ b/arch/blackfin/configs/IP0X_defconfig
@@ -41,6 +41,7 @@ CONFIG_IP_NF_IPTABLES=y
41CONFIG_IP_NF_FILTER=y 41CONFIG_IP_NF_FILTER=y
42CONFIG_IP_NF_TARGET_REJECT=y 42CONFIG_IP_NF_TARGET_REJECT=y
43CONFIG_IP_NF_MANGLE=y 43CONFIG_IP_NF_MANGLE=y
44# CONFIG_WIRELESS is not set
44CONFIG_MTD=y 45CONFIG_MTD=y
45CONFIG_MTD_PARTITIONS=y 46CONFIG_MTD_PARTITIONS=y
46CONFIG_MTD_CHAR=y 47CONFIG_MTD_CHAR=y
@@ -60,6 +61,7 @@ CONFIG_NET_ETHERNET=y
60CONFIG_DM9000=y 61CONFIG_DM9000=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
64# CONFIG_WLAN is not set
63# CONFIG_INPUT is not set 65# CONFIG_INPUT is not set
64# CONFIG_SERIO is not set 66# CONFIG_SERIO is not set
65# CONFIG_VT is not set 67# CONFIG_VT is not set
@@ -89,5 +91,4 @@ CONFIG_NLS_CODEPAGE_437=y
89CONFIG_NLS_ISO8859_1=y 91CONFIG_NLS_ISO8859_1=y
90# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 92# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
91CONFIG_CPLB_INFO=y 93CONFIG_CPLB_INFO=y
92CONFIG_SECURITY=y
93CONFIG_CRC_CCITT=y 94CONFIG_CRC_CCITT=y
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig
index fea30338654..be866d95ed7 100644
--- a/arch/blackfin/configs/PNAV-10_defconfig
+++ b/arch/blackfin/configs/PNAV-10_defconfig
@@ -14,6 +14,7 @@ CONFIG_MODULE_UNLOAD=y
14# CONFIG_LBDAF is not set 14# CONFIG_LBDAF is not set
15# CONFIG_BLK_DEV_BSG is not set 15# CONFIG_BLK_DEV_BSG is not set
16# CONFIG_IOSCHED_DEADLINE is not set 16# CONFIG_IOSCHED_DEADLINE is not set
17# CONFIG_IOSCHED_CFQ is not set
17CONFIG_PREEMPT_VOLUNTARY=y 18CONFIG_PREEMPT_VOLUNTARY=y
18CONFIG_BF537=y 19CONFIG_BF537=y
19CONFIG_IRQ_TIMER0=12 20CONFIG_IRQ_TIMER0=12
@@ -107,7 +108,6 @@ CONFIG_SMB_FS=m
107# CONFIG_DEBUG_HUNT_FOR_ZERO is not set 108# CONFIG_DEBUG_HUNT_FOR_ZERO is not set
108# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 109# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
109# CONFIG_ACCESS_CHECK is not set 110# CONFIG_ACCESS_CHECK is not set
110CONFIG_SECURITY=y
111CONFIG_CRYPTO=y 111CONFIG_CRYPTO=y
112# CONFIG_CRYPTO_ANSI_CPRNG is not set 112# CONFIG_CRYPTO_ANSI_CPRNG is not set
113CONFIG_CRC_CCITT=m 113CONFIG_CRC_CCITT=m
diff --git a/arch/blackfin/configs/SRV1_defconfig b/arch/blackfin/configs/SRV1_defconfig
index 9811b318684..b64bdf759b8 100644
--- a/arch/blackfin/configs/SRV1_defconfig
+++ b/arch/blackfin/configs/SRV1_defconfig
@@ -35,6 +35,7 @@ CONFIG_IRLAN=m
35CONFIG_IRCOMM=m 35CONFIG_IRCOMM=m
36CONFIG_IRDA_CACHE_LAST_LSAP=y 36CONFIG_IRDA_CACHE_LAST_LSAP=y
37CONFIG_IRTTY_SIR=m 37CONFIG_IRTTY_SIR=m
38# CONFIG_WIRELESS is not set
38# CONFIG_FW_LOADER is not set 39# CONFIG_FW_LOADER is not set
39CONFIG_MTD=y 40CONFIG_MTD=y
40CONFIG_MTD_PARTITIONS=y 41CONFIG_MTD_PARTITIONS=y
@@ -51,6 +52,7 @@ CONFIG_EEPROM_AT25=m
51CONFIG_NETDEVICES=y 52CONFIG_NETDEVICES=y
52# CONFIG_NETDEV_1000 is not set 53# CONFIG_NETDEV_1000 is not set
53# CONFIG_NETDEV_10000 is not set 54# CONFIG_NETDEV_10000 is not set
55# CONFIG_WLAN is not set
54# CONFIG_INPUT_MOUSEDEV is not set 56# CONFIG_INPUT_MOUSEDEV is not set
55CONFIG_INPUT_EVDEV=m 57CONFIG_INPUT_EVDEV=m
56# CONFIG_INPUT_KEYBOARD is not set 58# CONFIG_INPUT_KEYBOARD is not set
@@ -85,4 +87,3 @@ CONFIG_DEBUG_KERNEL=y
85CONFIG_DEBUG_INFO=y 87CONFIG_DEBUG_INFO=y
86# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set 88# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
87CONFIG_CPLB_INFO=y 89CONFIG_CPLB_INFO=y
88CONFIG_SECURITY=y
diff --git a/arch/blackfin/configs/TCM-BF518_defconfig b/arch/blackfin/configs/TCM-BF518_defconfig
index 412bf79b972..1bccd9a5098 100644
--- a/arch/blackfin/configs/TCM-BF518_defconfig
+++ b/arch/blackfin/configs/TCM-BF518_defconfig
@@ -128,7 +128,6 @@ CONFIG_DEBUG_DOUBLEFAULT=y
128CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y 128CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
129CONFIG_EARLY_PRINTK=y 129CONFIG_EARLY_PRINTK=y
130CONFIG_CPLB_INFO=y 130CONFIG_CPLB_INFO=y
131CONFIG_SECURITY=y
132CONFIG_CRYPTO=y 131CONFIG_CRYPTO=y
133# CONFIG_CRYPTO_ANSI_CPRNG is not set 132# CONFIG_CRYPTO_ANSI_CPRNG is not set
134CONFIG_CRC_CCITT=m 133CONFIG_CRC_CCITT=m
diff --git a/arch/blackfin/configs/TCM-BF537_defconfig b/arch/blackfin/configs/TCM-BF537_defconfig
index 04bf52c4cf1..00ce899e9e5 100644
--- a/arch/blackfin/configs/TCM-BF537_defconfig
+++ b/arch/blackfin/configs/TCM-BF537_defconfig
@@ -40,6 +40,7 @@ CONFIG_UNIX=y
40CONFIG_INET=y 40CONFIG_INET=y
41# CONFIG_INET_DIAG is not set 41# CONFIG_INET_DIAG is not set
42# CONFIG_IPV6 is not set 42# CONFIG_IPV6 is not set
43# CONFIG_WIRELESS is not set
43CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 44CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
44CONFIG_MTD=y 45CONFIG_MTD=y
45CONFIG_MTD_CMDLINE_PARTS=y 46CONFIG_MTD_CMDLINE_PARTS=y
@@ -57,6 +58,7 @@ CONFIG_NET_ETHERNET=y
57CONFIG_BFIN_MAC=y 58CONFIG_BFIN_MAC=y
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
61# CONFIG_WLAN is not set
60# CONFIG_INPUT is not set 62# CONFIG_INPUT is not set
61# CONFIG_SERIO is not set 63# CONFIG_SERIO is not set
62# CONFIG_VT is not set 64# CONFIG_VT is not set
diff --git a/arch/blackfin/include/asm/bfin5xx_spi.h b/arch/blackfin/include/asm/bfin5xx_spi.h
index 0b5136e334b..5392583d025 100644
--- a/arch/blackfin/include/asm/bfin5xx_spi.h
+++ b/arch/blackfin/include/asm/bfin5xx_spi.h
@@ -60,6 +60,8 @@ struct bfin_spi_regs {
60 __BFP(shadow); 60 __BFP(shadow);
61}; 61};
62 62
63#undef __BFP
64
63#define MAX_CTRL_CS 8 /* cs in spi controller */ 65#define MAX_CTRL_CS 8 /* cs in spi controller */
64 66
65/* device.platform_data for SSP controller devices */ 67/* device.platform_data for SSP controller devices */
diff --git a/arch/blackfin/include/asm/bfin_ppi.h b/arch/blackfin/include/asm/bfin_ppi.h
index 003900886f9..3be05faa2c6 100644
--- a/arch/blackfin/include/asm/bfin_ppi.h
+++ b/arch/blackfin/include/asm/bfin_ppi.h
@@ -48,4 +48,6 @@ struct bfin_eppi_regs {
48 u32 clip; 48 u32 clip;
49}; 49};
50 50
51#undef __BFP
52
51#endif 53#endif
diff --git a/arch/blackfin/include/asm/bfin_twi.h b/arch/blackfin/include/asm/bfin_twi.h
new file mode 100644
index 00000000000..e767d649dfc
--- /dev/null
+++ b/arch/blackfin/include/asm/bfin_twi.h
@@ -0,0 +1,45 @@
1/*
2 * bfin_twi.h - interface to Blackfin TWIs
3 *
4 * Copyright 2005-2010 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
8
9#ifndef __ASM_BFIN_TWI_H__
10#define __ASM_BFIN_TWI_H__
11
12#include <linux/types.h>
13
14/*
15 * All Blackfin system MMRs are padded to 32bits even if the register
16 * itself is only 16bits. So use a helper macro to streamline this.
17 */
18#define __BFP(m) u16 m; u16 __pad_##m
19
20/*
21 * bfin twi registers layout
22 */
23struct bfin_twi_regs {
24 __BFP(clkdiv);
25 __BFP(control);
26 __BFP(slave_ctl);
27 __BFP(slave_stat);
28 __BFP(slave_addr);
29 __BFP(master_ctl);
30 __BFP(master_stat);
31 __BFP(master_addr);
32 __BFP(int_stat);
33 __BFP(int_mask);
34 __BFP(fifo_ctl);
35 __BFP(fifo_stat);
36 u32 __pad[20];
37 __BFP(xmt_data8);
38 __BFP(xmt_data16);
39 __BFP(rcv_data8);
40 __BFP(rcv_data16);
41};
42
43#undef __BFP
44
45#endif
diff --git a/arch/blackfin/include/asm/cdef_LPBlackfin.h b/arch/blackfin/include/asm/cdef_LPBlackfin.h
index a1f6817687e..59af63c0c2b 100644
--- a/arch/blackfin/include/asm/cdef_LPBlackfin.h
+++ b/arch/blackfin/include/asm/cdef_LPBlackfin.h
@@ -179,7 +179,7 @@
179#define bfin_write_ITEST_DATA0(val) bfin_write32(ITEST_DATA0,val) 179#define bfin_write_ITEST_DATA0(val) bfin_write32(ITEST_DATA0,val)
180#define bfin_write_ITEST_DATA1(val) bfin_write32(ITEST_DATA1,val) 180#define bfin_write_ITEST_DATA1(val) bfin_write32(ITEST_DATA1,val)
181 181
182#if ANOMALY_05000481 182#if !ANOMALY_05000481
183#define bfin_read_ITEST_COMMAND() bfin_read32(ITEST_COMMAND) 183#define bfin_read_ITEST_COMMAND() bfin_read32(ITEST_COMMAND)
184#define bfin_read_ITEST_DATA0() bfin_read32(ITEST_DATA0) 184#define bfin_read_ITEST_DATA0() bfin_read32(ITEST_DATA0)
185#define bfin_read_ITEST_DATA1() bfin_read32(ITEST_DATA1) 185#define bfin_read_ITEST_DATA1() bfin_read32(ITEST_DATA1)
diff --git a/arch/blackfin/mach-bf518/boards/ezbrd.c b/arch/blackfin/mach-bf518/boards/ezbrd.c
index f95e6096719..b894c8abe7e 100644
--- a/arch/blackfin/mach-bf518/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf518/boards/ezbrd.c
@@ -87,13 +87,55 @@ static struct platform_device rtc_device = {
87#endif 87#endif
88 88
89#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 89#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
90#include <linux/bfin_mac.h>
91static const unsigned short bfin_mac_peripherals[] = {
92 P_MII0_ETxD0,
93 P_MII0_ETxD1,
94 P_MII0_ETxEN,
95 P_MII0_ERxD0,
96 P_MII0_ERxD1,
97 P_MII0_TxCLK,
98 P_MII0_PHYINT,
99 P_MII0_CRS,
100 P_MII0_MDC,
101 P_MII0_MDIO,
102 0
103};
104
105static struct bfin_phydev_platform_data bfin_phydev_data[] = {
106 {
107 .addr = 1,
108 .irq = IRQ_MAC_PHYINT,
109 },
110 {
111 .addr = 2,
112 .irq = IRQ_MAC_PHYINT,
113 },
114 {
115 .addr = 3,
116 .irq = IRQ_MAC_PHYINT,
117 },
118};
119
120static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
121 .phydev_number = 3,
122 .phydev_data = bfin_phydev_data,
123 .phy_mode = PHY_INTERFACE_MODE_MII,
124 .mac_peripherals = bfin_mac_peripherals,
125};
126
90static struct platform_device bfin_mii_bus = { 127static struct platform_device bfin_mii_bus = {
91 .name = "bfin_mii_bus", 128 .name = "bfin_mii_bus",
129 .dev = {
130 .platform_data = &bfin_mii_bus_data,
131 }
92}; 132};
93 133
94static struct platform_device bfin_mac_device = { 134static struct platform_device bfin_mac_device = {
95 .name = "bfin_mac", 135 .name = "bfin_mac",
96 .dev.platform_data = &bfin_mii_bus, 136 .dev = {
137 .platform_data = &bfin_mii_bus,
138 }
97}; 139};
98 140
99#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) 141#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
diff --git a/arch/blackfin/mach-bf518/boards/tcm-bf518.c b/arch/blackfin/mach-bf518/boards/tcm-bf518.c
index bead810a654..e6ce1d7c523 100644
--- a/arch/blackfin/mach-bf518/boards/tcm-bf518.c
+++ b/arch/blackfin/mach-bf518/boards/tcm-bf518.c
@@ -81,13 +81,35 @@ static struct platform_device rtc_device = {
81#endif 81#endif
82 82
83#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 83#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
84#include <linux/bfin_mac.h>
85static const unsigned short bfin_mac_peripherals[] = P_MII0;
86
87static struct bfin_phydev_platform_data bfin_phydev_data[] = {
88 {
89 .addr = 1,
90 .irq = IRQ_MAC_PHYINT,
91 },
92};
93
94static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
95 .phydev_number = 1,
96 .phydev_data = bfin_phydev_data,
97 .phy_mode = PHY_INTERFACE_MODE_MII,
98 .mac_peripherals = bfin_mac_peripherals,
99};
100
84static struct platform_device bfin_mii_bus = { 101static struct platform_device bfin_mii_bus = {
85 .name = "bfin_mii_bus", 102 .name = "bfin_mii_bus",
103 .dev = {
104 .platform_data = &bfin_mii_bus_data,
105 }
86}; 106};
87 107
88static struct platform_device bfin_mac_device = { 108static struct platform_device bfin_mac_device = {
89 .name = "bfin_mac", 109 .name = "bfin_mac",
90 .dev.platform_data = &bfin_mii_bus, 110 .dev = {
111 .platform_data = &bfin_mii_bus,
112 }
91}; 113};
92#endif 114#endif
93 115
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c
index 38037c7e125..2c31af7a320 100644
--- a/arch/blackfin/mach-bf527/boards/cm_bf527.c
+++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c
@@ -273,13 +273,35 @@ static struct platform_device dm9000_device = {
273#endif 273#endif
274 274
275#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 275#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
276#include <linux/bfin_mac.h>
277static const unsigned short bfin_mac_peripherals[] = P_RMII0;
278
279static struct bfin_phydev_platform_data bfin_phydev_data[] = {
280 {
281 .addr = 1,
282 .irq = IRQ_MAC_PHYINT,
283 },
284};
285
286static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
287 .phydev_number = 1,
288 .phydev_data = bfin_phydev_data,
289 .phy_mode = PHY_INTERFACE_MODE_RMII,
290 .mac_peripherals = bfin_mac_peripherals,
291};
292
276static struct platform_device bfin_mii_bus = { 293static struct platform_device bfin_mii_bus = {
277 .name = "bfin_mii_bus", 294 .name = "bfin_mii_bus",
295 .dev = {
296 .platform_data = &bfin_mii_bus_data,
297 }
278}; 298};
279 299
280static struct platform_device bfin_mac_device = { 300static struct platform_device bfin_mac_device = {
281 .name = "bfin_mac", 301 .name = "bfin_mac",
282 .dev.platform_data = &bfin_mii_bus, 302 .dev = {
303 .platform_data = &bfin_mii_bus,
304 }
283}; 305};
284#endif 306#endif
285 307
diff --git a/arch/blackfin/mach-bf527/boards/ezbrd.c b/arch/blackfin/mach-bf527/boards/ezbrd.c
index 6cc64a1e78b..9a736a850c5 100644
--- a/arch/blackfin/mach-bf527/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf527/boards/ezbrd.c
@@ -193,13 +193,35 @@ static struct platform_device rtc_device = {
193 193
194 194
195#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 195#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
196#include <linux/bfin_mac.h>
197static const unsigned short bfin_mac_peripherals[] = P_RMII0;
198
199static struct bfin_phydev_platform_data bfin_phydev_data[] = {
200 {
201 .addr = 1,
202 .irq = IRQ_MAC_PHYINT,
203 },
204};
205
206static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
207 .phydev_number = 1,
208 .phydev_data = bfin_phydev_data,
209 .phy_mode = PHY_INTERFACE_MODE_RMII,
210 .mac_peripherals = bfin_mac_peripherals,
211};
212
196static struct platform_device bfin_mii_bus = { 213static struct platform_device bfin_mii_bus = {
197 .name = "bfin_mii_bus", 214 .name = "bfin_mii_bus",
215 .dev = {
216 .platform_data = &bfin_mii_bus_data,
217 }
198}; 218};
199 219
200static struct platform_device bfin_mac_device = { 220static struct platform_device bfin_mac_device = {
201 .name = "bfin_mac", 221 .name = "bfin_mac",
202 .dev.platform_data = &bfin_mii_bus, 222 .dev = {
223 .platform_data = &bfin_mii_bus,
224 }
203}; 225};
204#endif 226#endif
205 227
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c
index df82723fb50..9222bc00bbd 100644
--- a/arch/blackfin/mach-bf527/boards/ezkit.c
+++ b/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -366,13 +366,35 @@ static struct platform_device dm9000_device = {
366#endif 366#endif
367 367
368#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 368#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
369#include <linux/bfin_mac.h>
370static const unsigned short bfin_mac_peripherals[] = P_RMII0;
371
372static struct bfin_phydev_platform_data bfin_phydev_data[] = {
373 {
374 .addr = 1,
375 .irq = IRQ_MAC_PHYINT,
376 },
377};
378
379static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
380 .phydev_number = 1,
381 .phydev_data = bfin_phydev_data,
382 .phy_mode = PHY_INTERFACE_MODE_RMII,
383 .mac_peripherals = bfin_mac_peripherals,
384};
385
369static struct platform_device bfin_mii_bus = { 386static struct platform_device bfin_mii_bus = {
370 .name = "bfin_mii_bus", 387 .name = "bfin_mii_bus",
388 .dev = {
389 .platform_data = &bfin_mii_bus_data,
390 }
371}; 391};
372 392
373static struct platform_device bfin_mac_device = { 393static struct platform_device bfin_mac_device = {
374 .name = "bfin_mac", 394 .name = "bfin_mac",
375 .dev.platform_data = &bfin_mii_bus, 395 .dev = {
396 .platform_data = &bfin_mii_bus,
397 }
376}; 398};
377#endif 399#endif
378 400
diff --git a/arch/blackfin/mach-bf527/boards/tll6527m.c b/arch/blackfin/mach-bf527/boards/tll6527m.c
index ae4130e97c0..9ec575729e2 100644
--- a/arch/blackfin/mach-bf527/boards/tll6527m.c
+++ b/arch/blackfin/mach-bf527/boards/tll6527m.c
@@ -257,13 +257,35 @@ static struct platform_device rtc_device = {
257#endif 257#endif
258 258
259#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 259#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
260#include <linux/bfin_mac.h>
261static const unsigned short bfin_mac_peripherals[] = P_RMII0;
262
263static struct bfin_phydev_platform_data bfin_phydev_data[] = {
264 {
265 .addr = 1,
266 .irq = IRQ_MAC_PHYINT,
267 },
268};
269
270static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
271 .phydev_number = 1,
272 .phydev_data = bfin_phydev_data,
273 .phy_mode = PHY_INTERFACE_MODE_RMII,
274 .mac_peripherals = bfin_mac_peripherals,
275};
276
260static struct platform_device bfin_mii_bus = { 277static struct platform_device bfin_mii_bus = {
261 .name = "bfin_mii_bus", 278 .name = "bfin_mii_bus",
279 .dev = {
280 .platform_data = &bfin_mii_bus_data,
281 }
262}; 282};
263 283
264static struct platform_device bfin_mac_device = { 284static struct platform_device bfin_mac_device = {
265 .name = "bfin_mac", 285 .name = "bfin_mac",
266 .dev.platform_data = &bfin_mii_bus, 286 .dev = {
287 .platform_data = &bfin_mii_bus,
288 }
267}; 289};
268#endif 290#endif
269 291
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537e.c b/arch/blackfin/mach-bf537/boards/cm_bf537e.c
index e2e7be40ef4..836698c4ee5 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537e.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537e.c
@@ -597,13 +597,35 @@ static struct platform_device bfin_sport1_uart_device = {
597#endif 597#endif
598 598
599#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 599#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
600#include <linux/bfin_mac.h>
601static const unsigned short bfin_mac_peripherals[] = P_MII0;
602
603static struct bfin_phydev_platform_data bfin_phydev_data[] = {
604 {
605 .addr = 1,
606 .irq = IRQ_MAC_PHYINT,
607 },
608};
609
610static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
611 .phydev_number = 1,
612 .phydev_data = bfin_phydev_data,
613 .phy_mode = PHY_INTERFACE_MODE_MII,
614 .mac_peripherals = bfin_mac_peripherals,
615};
616
600static struct platform_device bfin_mii_bus = { 617static struct platform_device bfin_mii_bus = {
601 .name = "bfin_mii_bus", 618 .name = "bfin_mii_bus",
619 .dev = {
620 .platform_data = &bfin_mii_bus_data,
621 }
602}; 622};
603 623
604static struct platform_device bfin_mac_device = { 624static struct platform_device bfin_mac_device = {
605 .name = "bfin_mac", 625 .name = "bfin_mac",
606 .dev.platform_data = &bfin_mii_bus, 626 .dev = {
627 .platform_data = &bfin_mii_bus,
628 }
607}; 629};
608#endif 630#endif
609 631
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537u.c b/arch/blackfin/mach-bf537/boards/cm_bf537u.c
index 752c833f7ca..2a85670273c 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537u.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537u.c
@@ -562,13 +562,35 @@ static struct platform_device bfin_sport1_uart_device = {
562#endif 562#endif
563 563
564#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 564#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
565#include <linux/bfin_mac.h>
566static const unsigned short bfin_mac_peripherals[] = P_MII0;
567
568static struct bfin_phydev_platform_data bfin_phydev_data[] = {
569 {
570 .addr = 1,
571 .irq = IRQ_MAC_PHYINT,
572 },
573};
574
575static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
576 .phydev_number = 1,
577 .phydev_data = bfin_phydev_data,
578 .phy_mode = PHY_INTERFACE_MODE_MII,
579 .mac_peripherals = bfin_mac_peripherals,
580};
581
565static struct platform_device bfin_mii_bus = { 582static struct platform_device bfin_mii_bus = {
566 .name = "bfin_mii_bus", 583 .name = "bfin_mii_bus",
584 .dev = {
585 .platform_data = &bfin_mii_bus_data,
586 }
567}; 587};
568 588
569static struct platform_device bfin_mac_device = { 589static struct platform_device bfin_mac_device = {
570 .name = "bfin_mac", 590 .name = "bfin_mac",
571 .dev.platform_data = &bfin_mii_bus, 591 .dev = {
592 .platform_data = &bfin_mii_bus,
593 }
572}; 594};
573#endif 595#endif
574 596
diff --git a/arch/blackfin/mach-bf537/boards/minotaur.c b/arch/blackfin/mach-bf537/boards/minotaur.c
index 05d45994480..49800518412 100644
--- a/arch/blackfin/mach-bf537/boards/minotaur.c
+++ b/arch/blackfin/mach-bf537/boards/minotaur.c
@@ -68,13 +68,35 @@ static struct platform_device rtc_device = {
68#endif 68#endif
69 69
70#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 70#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
71#include <linux/bfin_mac.h>
72static const unsigned short bfin_mac_peripherals[] = P_MII0;
73
74static struct bfin_phydev_platform_data bfin_phydev_data[] = {
75 {
76 .addr = 1,
77 .irq = IRQ_MAC_PHYINT,
78 },
79};
80
81static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
82 .phydev_number = 1,
83 .phydev_data = bfin_phydev_data,
84 .phy_mode = PHY_INTERFACE_MODE_MII,
85 .mac_peripherals = bfin_mac_peripherals,
86};
87
71static struct platform_device bfin_mii_bus = { 88static struct platform_device bfin_mii_bus = {
72 .name = "bfin_mii_bus", 89 .name = "bfin_mii_bus",
90 .dev = {
91 .platform_data = &bfin_mii_bus_data,
92 }
73}; 93};
74 94
75static struct platform_device bfin_mac_device = { 95static struct platform_device bfin_mac_device = {
76 .name = "bfin_mac", 96 .name = "bfin_mac",
77 .dev.platform_data = &bfin_mii_bus, 97 .dev = {
98 .platform_data = &bfin_mii_bus,
99 }
78}; 100};
79#endif 101#endif
80 102
diff --git a/arch/blackfin/mach-bf537/boards/pnav10.c b/arch/blackfin/mach-bf537/boards/pnav10.c
index 6b03808800a..b95807894e2 100644
--- a/arch/blackfin/mach-bf537/boards/pnav10.c
+++ b/arch/blackfin/mach-bf537/boards/pnav10.c
@@ -99,13 +99,35 @@ static struct platform_device smc91x_device = {
99#endif 99#endif
100 100
101#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 101#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
102#include <linux/bfin_mac.h>
103static const unsigned short bfin_mac_peripherals[] = P_RMII0;
104
105static struct bfin_phydev_platform_data bfin_phydev_data[] = {
106 {
107 .addr = 1,
108 .irq = IRQ_MAC_PHYINT,
109 },
110};
111
112static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
113 .phydev_number = 1,
114 .phydev_data = bfin_phydev_data,
115 .phy_mode = PHY_INTERFACE_MODE_RMII,
116 .mac_peripherals = bfin_mac_peripherals,
117};
118
102static struct platform_device bfin_mii_bus = { 119static struct platform_device bfin_mii_bus = {
103 .name = "bfin_mii_bus", 120 .name = "bfin_mii_bus",
121 .dev = {
122 .platform_data = &bfin_mii_bus_data,
123 }
104}; 124};
105 125
106static struct platform_device bfin_mac_device = { 126static struct platform_device bfin_mac_device = {
107 .name = "bfin_mac", 127 .name = "bfin_mac",
108 .dev.platform_data = &bfin_mii_bus, 128 .dev = {
129 .platform_data = &bfin_mii_bus,
130 }
109}; 131};
110#endif 132#endif
111 133
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index cd2c797c8c9..3aa344ce8e5 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -327,13 +327,35 @@ static struct platform_device bfin_can_device = {
327#endif 327#endif
328 328
329#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 329#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
330#include <linux/bfin_mac.h>
331static const unsigned short bfin_mac_peripherals[] = P_MII0;
332
333static struct bfin_phydev_platform_data bfin_phydev_data[] = {
334 {
335 .addr = 1,
336 .irq = PHY_POLL, /* IRQ_MAC_PHYINT */
337 },
338};
339
340static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
341 .phydev_number = 1,
342 .phydev_data = bfin_phydev_data,
343 .phy_mode = PHY_INTERFACE_MODE_MII,
344 .mac_peripherals = bfin_mac_peripherals,
345};
346
330static struct platform_device bfin_mii_bus = { 347static struct platform_device bfin_mii_bus = {
331 .name = "bfin_mii_bus", 348 .name = "bfin_mii_bus",
349 .dev = {
350 .platform_data = &bfin_mii_bus_data,
351 }
332}; 352};
333 353
334static struct platform_device bfin_mac_device = { 354static struct platform_device bfin_mac_device = {
335 .name = "bfin_mac", 355 .name = "bfin_mac",
336 .dev.platform_data = &bfin_mii_bus, 356 .dev = {
357 .platform_data = &bfin_mii_bus,
358 }
337}; 359};
338#endif 360#endif
339 361
diff --git a/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/arch/blackfin/mach-bf537/boards/tcm_bf537.c
index a4d62b5fc7b..31498add1a4 100644
--- a/arch/blackfin/mach-bf537/boards/tcm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/tcm_bf537.c
@@ -564,13 +564,35 @@ static struct platform_device bfin_sport1_uart_device = {
564#endif 564#endif
565 565
566#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 566#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
567#include <linux/bfin_mac.h>
568static const unsigned short bfin_mac_peripherals[] = P_MII0;
569
570static struct bfin_phydev_platform_data bfin_phydev_data[] = {
571 {
572 .addr = 1,
573 .irq = IRQ_MAC_PHYINT,
574 },
575};
576
577static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
578 .phydev_number = 1,
579 .phydev_data = bfin_phydev_data,
580 .phy_mode = PHY_INTERFACE_MODE_MII,
581 .mac_peripherals = bfin_mac_peripherals,
582};
583
567static struct platform_device bfin_mii_bus = { 584static struct platform_device bfin_mii_bus = {
568 .name = "bfin_mii_bus", 585 .name = "bfin_mii_bus",
586 .dev = {
587 .platform_data = &bfin_mii_bus_data,
588 }
569}; 589};
570 590
571static struct platform_device bfin_mac_device = { 591static struct platform_device bfin_mac_device = {
572 .name = "bfin_mac", 592 .name = "bfin_mac",
573 .dev.platform_data = &bfin_mii_bus, 593 .dev = {
594 .platform_data = &bfin_mii_bus,
595 }
574}; 596};
575#endif 597#endif
576 598
diff --git a/arch/blackfin/mach-common/Makefile b/arch/blackfin/mach-common/Makefile
index 814cb483853..ff299f24aba 100644
--- a/arch/blackfin/mach-common/Makefile
+++ b/arch/blackfin/mach-common/Makefile
@@ -11,4 +11,3 @@ obj-$(CONFIG_CPU_FREQ) += cpufreq.o
11obj-$(CONFIG_CPU_VOLTAGE) += dpmc.o 11obj-$(CONFIG_CPU_VOLTAGE) += dpmc.o
12obj-$(CONFIG_SMP) += smp.o 12obj-$(CONFIG_SMP) += smp.o
13obj-$(CONFIG_BFIN_KERNEL_CLOCK) += clocks-init.o 13obj-$(CONFIG_BFIN_KERNEL_CLOCK) += clocks-init.o
14obj-$(CONFIG_DEBUG_ICACHE_CHECK) += irqpanic.o
diff --git a/arch/blackfin/mach-common/irqpanic.c b/arch/blackfin/mach-common/irqpanic.c
deleted file mode 100644
index c6496249e2b..00000000000
--- a/arch/blackfin/mach-common/irqpanic.c
+++ /dev/null
@@ -1,106 +0,0 @@
1/*
2 * panic kernel with dump information
3 *
4 * Copyright 2005-2009 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
8
9#include <linux/module.h>
10#include <linux/kernel_stat.h>
11#include <linux/sched.h>
12#include <asm/blackfin.h>
13
14#define L1_ICACHE_START 0xffa10000
15#define L1_ICACHE_END 0xffa13fff
16
17/*
18 * irq_panic - calls panic with string setup
19 */
20__attribute__ ((l1_text))
21asmlinkage void irq_panic(int reason, struct pt_regs *regs)
22{
23 unsigned int cmd, tag, ca, cache_hi, cache_lo, *pa;
24 unsigned short i, j, die;
25 unsigned int bad[10][6];
26
27 /* check entire cache for coherency
28 * Since printk is in cacheable memory,
29 * don't call it until you have checked everything
30 */
31
32 die = 0;
33 i = 0;
34
35 /* check icache */
36
37 for (ca = L1_ICACHE_START; ca <= L1_ICACHE_END && i < 10; ca += 32) {
38
39 /* Grab various address bits for the itest_cmd fields */
40 cmd = (((ca & 0x3000) << 4) | /* ca[13:12] for SBNK[1:0] */
41 ((ca & 0x0c00) << 16) | /* ca[11:10] for WAYSEL[1:0] */
42 ((ca & 0x3f8)) | /* ca[09:03] for SET[4:0] and DW[1:0] */
43 0); /* Access Tag, Read access */
44
45 SSYNC();
46 bfin_write_ITEST_COMMAND(cmd);
47 SSYNC();
48 tag = bfin_read_ITEST_DATA0();
49 SSYNC();
50
51 /* if tag is marked as valid, check it */
52 if (tag & 1) {
53 /* The icache is arranged in 4 groups of 64-bits */
54 for (j = 0; j < 32; j += 8) {
55 cmd = ((((ca + j) & 0x3000) << 4) | /* ca[13:12] for SBNK[1:0] */
56 (((ca + j) & 0x0c00) << 16) | /* ca[11:10] for WAYSEL[1:0] */
57 (((ca + j) & 0x3f8)) | /* ca[09:03] for SET[4:0] and DW[1:0] */
58 4); /* Access Data, Read access */
59
60 SSYNC();
61 bfin_write_ITEST_COMMAND(cmd);
62 SSYNC();
63
64 cache_hi = bfin_read_ITEST_DATA1();
65 cache_lo = bfin_read_ITEST_DATA0();
66
67 pa = ((unsigned int *)((tag & 0xffffcc00) |
68 ((ca + j) & ~(0xffffcc00))));
69
70 /*
71 * Debugging this, enable
72 *
73 * printk("addr: %08x %08x%08x | %08x%08x\n",
74 * ((unsigned int *)((tag & 0xffffcc00) | ((ca+j) & ~(0xffffcc00)))),
75 * cache_hi, cache_lo, *(pa+1), *pa);
76 */
77
78 if (cache_hi != *(pa + 1) || cache_lo != *pa) {
79 /* Since icache is not working, stay out of it, by not printing */
80 die = 1;
81 bad[i][0] = (ca + j);
82 bad[i][1] = cache_hi;
83 bad[i][2] = cache_lo;
84 bad[i][3] = ((tag & 0xffffcc00) |
85 ((ca + j) & ~(0xffffcc00)));
86 bad[i][4] = *(pa + 1);
87 bad[i][5] = *(pa);
88 i++;
89 }
90 }
91 }
92 }
93 if (die) {
94 printk(KERN_EMERG "icache coherency error\n");
95 for (j = 0; j <= i; j++) {
96 printk(KERN_EMERG
97 "cache address : %08x cache value : %08x%08x\n",
98 bad[j][0], bad[j][1], bad[j][2]);
99 printk(KERN_EMERG
100 "physical address: %08x SDRAM value : %08x%08x\n",
101 bad[j][3], bad[j][4], bad[j][5]);
102 }
103 panic("icache coherency error");
104 } else
105 printk(KERN_EMERG "icache checked, and OK\n");
106}
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 702f598f495..86fe67fd49b 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -883,14 +883,6 @@ config BFIN_RX_DESC_NUM
883 help 883 help
884 Set the number of buffer packets used in driver. 884 Set the number of buffer packets used in driver.
885 885
886config BFIN_MAC_RMII
887 bool "RMII PHY Interface"
888 depends on BFIN_MAC
889 default y if BFIN527_EZKIT
890 default n if BFIN537_STAMP
891 help
892 Use Reduced PHY MII Interface
893
894config BFIN_MAC_USE_HWSTAMP 886config BFIN_MAC_USE_HWSTAMP
895 bool "Use IEEE 1588 hwstamp" 887 bool "Use IEEE 1588 hwstamp"
896 depends on BFIN_MAC && BF518 888 depends on BFIN_MAC && BF518
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
index f7233191162..ce1e5e9d06f 100644
--- a/drivers/net/bfin_mac.c
+++ b/drivers/net/bfin_mac.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Blackfin On-Chip MAC Driver 2 * Blackfin On-Chip MAC Driver
3 * 3 *
4 * Copyright 2004-2007 Analog Devices Inc. 4 * Copyright 2004-2010 Analog Devices Inc.
5 * 5 *
6 * Enter bugs at http://blackfin.uclinux.org/ 6 * Enter bugs at http://blackfin.uclinux.org/
7 * 7 *
@@ -23,7 +23,6 @@
23#include <linux/device.h> 23#include <linux/device.h>
24#include <linux/spinlock.h> 24#include <linux/spinlock.h>
25#include <linux/mii.h> 25#include <linux/mii.h>
26#include <linux/phy.h>
27#include <linux/netdevice.h> 26#include <linux/netdevice.h>
28#include <linux/etherdevice.h> 27#include <linux/etherdevice.h>
29#include <linux/ethtool.h> 28#include <linux/ethtool.h>
@@ -76,12 +75,6 @@ static struct net_dma_desc_tx *current_tx_ptr;
76static struct net_dma_desc_tx *tx_desc; 75static struct net_dma_desc_tx *tx_desc;
77static struct net_dma_desc_rx *rx_desc; 76static struct net_dma_desc_rx *rx_desc;
78 77
79#if defined(CONFIG_BFIN_MAC_RMII)
80static u16 pin_req[] = P_RMII0;
81#else
82static u16 pin_req[] = P_MII0;
83#endif
84
85static void desc_list_free(void) 78static void desc_list_free(void)
86{ 79{
87 struct net_dma_desc_rx *r; 80 struct net_dma_desc_rx *r;
@@ -347,23 +340,23 @@ static void bfin_mac_adjust_link(struct net_device *dev)
347 } 340 }
348 341
349 if (phydev->speed != lp->old_speed) { 342 if (phydev->speed != lp->old_speed) {
350#if defined(CONFIG_BFIN_MAC_RMII) 343 if (phydev->interface == PHY_INTERFACE_MODE_RMII) {
351 u32 opmode = bfin_read_EMAC_OPMODE(); 344 u32 opmode = bfin_read_EMAC_OPMODE();
352 switch (phydev->speed) { 345 switch (phydev->speed) {
353 case 10: 346 case 10:
354 opmode |= RMII_10; 347 opmode |= RMII_10;
355 break; 348 break;
356 case 100: 349 case 100:
357 opmode &= ~(RMII_10); 350 opmode &= ~RMII_10;
358 break; 351 break;
359 default: 352 default:
360 printk(KERN_WARNING 353 printk(KERN_WARNING
361 "%s: Ack! Speed (%d) is not 10/100!\n", 354 "%s: Ack! Speed (%d) is not 10/100!\n",
362 DRV_NAME, phydev->speed); 355 DRV_NAME, phydev->speed);
363 break; 356 break;
357 }
358 bfin_write_EMAC_OPMODE(opmode);
364 } 359 }
365 bfin_write_EMAC_OPMODE(opmode);
366#endif
367 360
368 new_state = 1; 361 new_state = 1;
369 lp->old_speed = phydev->speed; 362 lp->old_speed = phydev->speed;
@@ -392,7 +385,7 @@ static void bfin_mac_adjust_link(struct net_device *dev)
392/* MDC = 2.5 MHz */ 385/* MDC = 2.5 MHz */
393#define MDC_CLK 2500000 386#define MDC_CLK 2500000
394 387
395static int mii_probe(struct net_device *dev) 388static int mii_probe(struct net_device *dev, int phy_mode)
396{ 389{
397 struct bfin_mac_local *lp = netdev_priv(dev); 390 struct bfin_mac_local *lp = netdev_priv(dev);
398 struct phy_device *phydev = NULL; 391 struct phy_device *phydev = NULL;
@@ -411,8 +404,8 @@ static int mii_probe(struct net_device *dev)
411 sysctl = (sysctl & ~MDCDIV) | SET_MDCDIV(mdc_div); 404 sysctl = (sysctl & ~MDCDIV) | SET_MDCDIV(mdc_div);
412 bfin_write_EMAC_SYSCTL(sysctl); 405 bfin_write_EMAC_SYSCTL(sysctl);
413 406
414 /* search for connect PHY device */ 407 /* search for connected PHY device */
415 for (i = 0; i < PHY_MAX_ADDR; i++) { 408 for (i = 0; i < PHY_MAX_ADDR; ++i) {
416 struct phy_device *const tmp_phydev = lp->mii_bus->phy_map[i]; 409 struct phy_device *const tmp_phydev = lp->mii_bus->phy_map[i];
417 410
418 if (!tmp_phydev) 411 if (!tmp_phydev)
@@ -429,13 +422,14 @@ static int mii_probe(struct net_device *dev)
429 return -ENODEV; 422 return -ENODEV;
430 } 423 }
431 424
432#if defined(CONFIG_BFIN_MAC_RMII) 425 if (phy_mode != PHY_INTERFACE_MODE_RMII &&
433 phydev = phy_connect(dev, dev_name(&phydev->dev), &bfin_mac_adjust_link, 426 phy_mode != PHY_INTERFACE_MODE_MII) {
434 0, PHY_INTERFACE_MODE_RMII); 427 printk(KERN_INFO "%s: Invalid phy interface mode\n", dev->name);
435#else 428 return -EINVAL;
429 }
430
436 phydev = phy_connect(dev, dev_name(&phydev->dev), &bfin_mac_adjust_link, 431 phydev = phy_connect(dev, dev_name(&phydev->dev), &bfin_mac_adjust_link,
437 0, PHY_INTERFACE_MODE_MII); 432 0, phy_mode);
438#endif
439 433
440 if (IS_ERR(phydev)) { 434 if (IS_ERR(phydev)) {
441 printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name); 435 printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name);
@@ -570,6 +564,8 @@ static const struct ethtool_ops bfin_mac_ethtool_ops = {
570/**************************************************************************/ 564/**************************************************************************/
571void setup_system_regs(struct net_device *dev) 565void setup_system_regs(struct net_device *dev)
572{ 566{
567 struct bfin_mac_local *lp = netdev_priv(dev);
568 int i;
573 unsigned short sysctl; 569 unsigned short sysctl;
574 570
575 /* 571 /*
@@ -577,6 +573,15 @@ void setup_system_regs(struct net_device *dev)
577 * Configure checksum support and rcve frame word alignment 573 * Configure checksum support and rcve frame word alignment
578 */ 574 */
579 sysctl = bfin_read_EMAC_SYSCTL(); 575 sysctl = bfin_read_EMAC_SYSCTL();
576 /*
577 * check if interrupt is requested for any PHY,
578 * enable PHY interrupt only if needed
579 */
580 for (i = 0; i < PHY_MAX_ADDR; ++i)
581 if (lp->mii_bus->irq[i] != PHY_POLL)
582 break;
583 if (i < PHY_MAX_ADDR)
584 sysctl |= PHYIE;
580 sysctl |= RXDWA; 585 sysctl |= RXDWA;
581#if defined(BFIN_MAC_CSUM_OFFLOAD) 586#if defined(BFIN_MAC_CSUM_OFFLOAD)
582 sysctl |= RXCKS; 587 sysctl |= RXCKS;
@@ -1203,7 +1208,7 @@ static void bfin_mac_disable(void)
1203/* 1208/*
1204 * Enable Interrupts, Receive, and Transmit 1209 * Enable Interrupts, Receive, and Transmit
1205 */ 1210 */
1206static int bfin_mac_enable(void) 1211static int bfin_mac_enable(struct phy_device *phydev)
1207{ 1212{
1208 int ret; 1213 int ret;
1209 u32 opmode; 1214 u32 opmode;
@@ -1233,12 +1238,13 @@ static int bfin_mac_enable(void)
1233 opmode |= DRO | DC | PSF; 1238 opmode |= DRO | DC | PSF;
1234 opmode |= RE; 1239 opmode |= RE;
1235 1240
1236#if defined(CONFIG_BFIN_MAC_RMII) 1241 if (phydev->interface == PHY_INTERFACE_MODE_RMII) {
1237 opmode |= RMII; /* For Now only 100MBit are supported */ 1242 opmode |= RMII; /* For Now only 100MBit are supported */
1238#if (defined(CONFIG_BF537) || defined(CONFIG_BF536)) && CONFIG_BF_REV_0_2 1243#if (defined(CONFIG_BF537) || defined(CONFIG_BF536)) && CONFIG_BF_REV_0_2
1239 opmode |= TE; 1244 opmode |= TE;
1240#endif
1241#endif 1245#endif
1246 }
1247
1242 /* Turn on the EMAC rx */ 1248 /* Turn on the EMAC rx */
1243 bfin_write_EMAC_OPMODE(opmode); 1249 bfin_write_EMAC_OPMODE(opmode);
1244 1250
@@ -1270,7 +1276,7 @@ static void bfin_mac_timeout(struct net_device *dev)
1270 if (netif_queue_stopped(lp->ndev)) 1276 if (netif_queue_stopped(lp->ndev))
1271 netif_wake_queue(lp->ndev); 1277 netif_wake_queue(lp->ndev);
1272 1278
1273 bfin_mac_enable(); 1279 bfin_mac_enable(lp->phydev);
1274 1280
1275 /* We can accept TX packets again */ 1281 /* We can accept TX packets again */
1276 dev->trans_start = jiffies; /* prevent tx timeout */ 1282 dev->trans_start = jiffies; /* prevent tx timeout */
@@ -1342,11 +1348,19 @@ static void bfin_mac_set_multicast_list(struct net_device *dev)
1342 1348
1343static int bfin_mac_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) 1349static int bfin_mac_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
1344{ 1350{
1351 struct bfin_mac_local *lp = netdev_priv(netdev);
1352
1353 if (!netif_running(netdev))
1354 return -EINVAL;
1355
1345 switch (cmd) { 1356 switch (cmd) {
1346 case SIOCSHWTSTAMP: 1357 case SIOCSHWTSTAMP:
1347 return bfin_mac_hwtstamp_ioctl(netdev, ifr, cmd); 1358 return bfin_mac_hwtstamp_ioctl(netdev, ifr, cmd);
1348 default: 1359 default:
1349 return -EOPNOTSUPP; 1360 if (lp->phydev)
1361 return phy_mii_ioctl(lp->phydev, ifr, cmd);
1362 else
1363 return -EOPNOTSUPP;
1350 } 1364 }
1351} 1365}
1352 1366
@@ -1394,7 +1408,7 @@ static int bfin_mac_open(struct net_device *dev)
1394 setup_mac_addr(dev->dev_addr); 1408 setup_mac_addr(dev->dev_addr);
1395 1409
1396 bfin_mac_disable(); 1410 bfin_mac_disable();
1397 ret = bfin_mac_enable(); 1411 ret = bfin_mac_enable(lp->phydev);
1398 if (ret) 1412 if (ret)
1399 return ret; 1413 return ret;
1400 pr_debug("hardware init finished\n"); 1414 pr_debug("hardware init finished\n");
@@ -1450,6 +1464,7 @@ static int __devinit bfin_mac_probe(struct platform_device *pdev)
1450 struct net_device *ndev; 1464 struct net_device *ndev;
1451 struct bfin_mac_local *lp; 1465 struct bfin_mac_local *lp;
1452 struct platform_device *pd; 1466 struct platform_device *pd;
1467 struct bfin_mii_bus_platform_data *mii_bus_data;
1453 int rc; 1468 int rc;
1454 1469
1455 ndev = alloc_etherdev(sizeof(struct bfin_mac_local)); 1470 ndev = alloc_etherdev(sizeof(struct bfin_mac_local));
@@ -1501,11 +1516,12 @@ static int __devinit bfin_mac_probe(struct platform_device *pdev)
1501 if (!lp->mii_bus) { 1516 if (!lp->mii_bus) {
1502 dev_err(&pdev->dev, "Cannot get mii_bus!\n"); 1517 dev_err(&pdev->dev, "Cannot get mii_bus!\n");
1503 rc = -ENODEV; 1518 rc = -ENODEV;
1504 goto out_err_mii_bus_probe; 1519 goto out_err_probe_mac;
1505 } 1520 }
1506 lp->mii_bus->priv = ndev; 1521 lp->mii_bus->priv = ndev;
1522 mii_bus_data = pd->dev.platform_data;
1507 1523
1508 rc = mii_probe(ndev); 1524 rc = mii_probe(ndev, mii_bus_data->phy_mode);
1509 if (rc) { 1525 if (rc) {
1510 dev_err(&pdev->dev, "MII Probe failed!\n"); 1526 dev_err(&pdev->dev, "MII Probe failed!\n");
1511 goto out_err_mii_probe; 1527 goto out_err_mii_probe;
@@ -1552,8 +1568,6 @@ out_err_request_irq:
1552out_err_mii_probe: 1568out_err_mii_probe:
1553 mdiobus_unregister(lp->mii_bus); 1569 mdiobus_unregister(lp->mii_bus);
1554 mdiobus_free(lp->mii_bus); 1570 mdiobus_free(lp->mii_bus);
1555out_err_mii_bus_probe:
1556 peripheral_free_list(pin_req);
1557out_err_probe_mac: 1571out_err_probe_mac:
1558 platform_set_drvdata(pdev, NULL); 1572 platform_set_drvdata(pdev, NULL);
1559 free_netdev(ndev); 1573 free_netdev(ndev);
@@ -1576,8 +1590,6 @@ static int __devexit bfin_mac_remove(struct platform_device *pdev)
1576 1590
1577 free_netdev(ndev); 1591 free_netdev(ndev);
1578 1592
1579 peripheral_free_list(pin_req);
1580
1581 return 0; 1593 return 0;
1582} 1594}
1583 1595
@@ -1623,12 +1635,21 @@ static int bfin_mac_resume(struct platform_device *pdev)
1623static int __devinit bfin_mii_bus_probe(struct platform_device *pdev) 1635static int __devinit bfin_mii_bus_probe(struct platform_device *pdev)
1624{ 1636{
1625 struct mii_bus *miibus; 1637 struct mii_bus *miibus;
1638 struct bfin_mii_bus_platform_data *mii_bus_pd;
1639 const unsigned short *pin_req;
1626 int rc, i; 1640 int rc, i;
1627 1641
1642 mii_bus_pd = dev_get_platdata(&pdev->dev);
1643 if (!mii_bus_pd) {
1644 dev_err(&pdev->dev, "No peripherals in platform data!\n");
1645 return -EINVAL;
1646 }
1647
1628 /* 1648 /*
1629 * We are setting up a network card, 1649 * We are setting up a network card,
1630 * so set the GPIO pins to Ethernet mode 1650 * so set the GPIO pins to Ethernet mode
1631 */ 1651 */
1652 pin_req = mii_bus_pd->mac_peripherals;
1632 rc = peripheral_request_list(pin_req, DRV_NAME); 1653 rc = peripheral_request_list(pin_req, DRV_NAME);
1633 if (rc) { 1654 if (rc) {
1634 dev_err(&pdev->dev, "Requesting peripherals failed!\n"); 1655 dev_err(&pdev->dev, "Requesting peripherals failed!\n");
@@ -1645,13 +1666,30 @@ static int __devinit bfin_mii_bus_probe(struct platform_device *pdev)
1645 1666
1646 miibus->parent = &pdev->dev; 1667 miibus->parent = &pdev->dev;
1647 miibus->name = "bfin_mii_bus"; 1668 miibus->name = "bfin_mii_bus";
1669 miibus->phy_mask = mii_bus_pd->phy_mask;
1670
1648 snprintf(miibus->id, MII_BUS_ID_SIZE, "0"); 1671 snprintf(miibus->id, MII_BUS_ID_SIZE, "0");
1649 miibus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL); 1672 miibus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL);
1650 if (miibus->irq == NULL) 1673 if (!miibus->irq)
1651 goto out_err_alloc; 1674 goto out_err_irq_alloc;
1652 for (i = 0; i < PHY_MAX_ADDR; ++i) 1675
1676 for (i = rc; i < PHY_MAX_ADDR; ++i)
1653 miibus->irq[i] = PHY_POLL; 1677 miibus->irq[i] = PHY_POLL;
1654 1678
1679 rc = clamp(mii_bus_pd->phydev_number, 0, PHY_MAX_ADDR);
1680 if (rc != mii_bus_pd->phydev_number)
1681 dev_err(&pdev->dev, "Invalid number (%i) of phydevs\n",
1682 mii_bus_pd->phydev_number);
1683 for (i = 0; i < rc; ++i) {
1684 unsigned short phyaddr = mii_bus_pd->phydev_data[i].addr;
1685 if (phyaddr < PHY_MAX_ADDR)
1686 miibus->irq[phyaddr] = mii_bus_pd->phydev_data[i].irq;
1687 else
1688 dev_err(&pdev->dev,
1689 "Invalid PHY address %i for phydev %i\n",
1690 phyaddr, i);
1691 }
1692
1655 rc = mdiobus_register(miibus); 1693 rc = mdiobus_register(miibus);
1656 if (rc) { 1694 if (rc) {
1657 dev_err(&pdev->dev, "Cannot register MDIO bus!\n"); 1695 dev_err(&pdev->dev, "Cannot register MDIO bus!\n");
@@ -1663,6 +1701,7 @@ static int __devinit bfin_mii_bus_probe(struct platform_device *pdev)
1663 1701
1664out_err_mdiobus_register: 1702out_err_mdiobus_register:
1665 kfree(miibus->irq); 1703 kfree(miibus->irq);
1704out_err_irq_alloc:
1666 mdiobus_free(miibus); 1705 mdiobus_free(miibus);
1667out_err_alloc: 1706out_err_alloc:
1668 peripheral_free_list(pin_req); 1707 peripheral_free_list(pin_req);
@@ -1673,11 +1712,15 @@ out_err_alloc:
1673static int __devexit bfin_mii_bus_remove(struct platform_device *pdev) 1712static int __devexit bfin_mii_bus_remove(struct platform_device *pdev)
1674{ 1713{
1675 struct mii_bus *miibus = platform_get_drvdata(pdev); 1714 struct mii_bus *miibus = platform_get_drvdata(pdev);
1715 struct bfin_mii_bus_platform_data *mii_bus_pd =
1716 dev_get_platdata(&pdev->dev);
1717
1676 platform_set_drvdata(pdev, NULL); 1718 platform_set_drvdata(pdev, NULL);
1677 mdiobus_unregister(miibus); 1719 mdiobus_unregister(miibus);
1678 kfree(miibus->irq); 1720 kfree(miibus->irq);
1679 mdiobus_free(miibus); 1721 mdiobus_free(miibus);
1680 peripheral_free_list(pin_req); 1722 peripheral_free_list(mii_bus_pd->mac_peripherals);
1723
1681 return 0; 1724 return 0;
1682} 1725}
1683 1726
diff --git a/drivers/net/bfin_mac.h b/drivers/net/bfin_mac.h
index 04e4050df18..aed68bed236 100644
--- a/drivers/net/bfin_mac.h
+++ b/drivers/net/bfin_mac.h
@@ -14,6 +14,8 @@
14#include <linux/clocksource.h> 14#include <linux/clocksource.h>
15#include <linux/timecompare.h> 15#include <linux/timecompare.h>
16#include <linux/timer.h> 16#include <linux/timer.h>
17#include <linux/etherdevice.h>
18#include <linux/bfin_mac.h>
17 19
18#define BFIN_MAC_CSUM_OFFLOAD 20#define BFIN_MAC_CSUM_OFFLOAD
19 21
diff --git a/include/linux/bfin_mac.h b/include/linux/bfin_mac.h
new file mode 100644
index 00000000000..904dec7d03a
--- /dev/null
+++ b/include/linux/bfin_mac.h
@@ -0,0 +1,29 @@
1/*
2 * Blackfin On-Chip MAC Driver
3 *
4 * Copyright 2004-2010 Analog Devices Inc.
5 *
6 * Enter bugs at http://blackfin.uclinux.org/
7 *
8 * Licensed under the GPL-2 or later.
9 */
10
11#ifndef _LINUX_BFIN_MAC_H_
12#define _LINUX_BFIN_MAC_H_
13
14#include <linux/phy.h>
15
16struct bfin_phydev_platform_data {
17 unsigned short addr;
18 int irq;
19};
20
21struct bfin_mii_bus_platform_data {
22 int phydev_number;
23 struct bfin_phydev_platform_data *phydev_data;
24 const unsigned short *mac_peripherals;
25 int phy_mode;
26 unsigned int phy_mask;
27};
28
29#endif