aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/common/locomo.c3
-rw-r--r--arch/arm/common/sharpsl_pm.c4
-rw-r--r--arch/arm/configs/ep93xx_defconfig68
-rw-r--r--arch/arm/configs/ixp2000_defconfig55
-rw-r--r--arch/arm/configs/ixp23xx_defconfig59
-rw-r--r--arch/arm/configs/lpd270_defconfig34
-rw-r--r--arch/arm/configs/onearm_defconfig36
-rw-r--r--arch/arm/kernel/bios32.c11
-rw-r--r--arch/arm/kernel/irq.c10
-rw-r--r--arch/arm/mach-sa1100/collie.c4
-rw-r--r--arch/arm/mach-sa1100/collie_pm.c69
-rw-r--r--arch/arm/mach-versatile/core.c11
-rw-r--r--arch/arm/nwfpe/softfloat.h2
-rw-r--r--arch/sparc/kernel/of_device.c173
-rw-r--r--arch/sparc64/defconfig39
-rw-r--r--arch/sparc64/kernel/of_device.c314
-rw-r--r--arch/sparc64/kernel/prom.c51
-rw-r--r--drivers/mfd/ucb1x00-core.c2
-rw-r--r--drivers/mfd/ucb1x00.h1
-rw-r--r--drivers/serial/8250.c25
-rw-r--r--drivers/serial/dz.c2
-rw-r--r--drivers/serial/ip22zilog.c3
-rw-r--r--drivers/serial/serial_core.c1
-rw-r--r--drivers/serial/sunsu.c35
-rw-r--r--include/asm-arm/arch-versatile/platform.h2
-rw-r--r--include/asm-i386/system.h21
-rw-r--r--include/asm-m68knommu/uaccess.h12
-rw-r--r--include/asm-sparc64/Kbuild2
-rw-r--r--include/linux/root_dev.h2
-rw-r--r--include/linux/serial_core.h1
-rw-r--r--mm/slab.c74
31 files changed, 737 insertions, 389 deletions
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index fbc3ab0e1011..04de83f4f008 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -506,7 +506,7 @@ locomo_init_one_child(struct locomo *lchip, struct locomo_dev_info *info)
506 goto out; 506 goto out;
507 } 507 }
508 508
509 strncpy(dev->dev.bus_id,info->name,sizeof(dev->dev.bus_id)); 509 strncpy(dev->dev.bus_id, info->name, sizeof(dev->dev.bus_id));
510 /* 510 /*
511 * If the parent device has a DMA mask associated with it, 511 * If the parent device has a DMA mask associated with it,
512 * propagate it down to the children. 512 * propagate it down to the children.
@@ -729,7 +729,6 @@ __locomo_probe(struct device *me, struct resource *mem, int irq)
729 729
730 for (i = 0; i < ARRAY_SIZE(locomo_devices); i++) 730 for (i = 0; i < ARRAY_SIZE(locomo_devices); i++)
731 locomo_init_one_child(lchip, &locomo_devices[i]); 731 locomo_init_one_child(lchip, &locomo_devices[i]);
732
733 return 0; 732 return 0;
734 733
735 out: 734 out:
diff --git a/arch/arm/common/sharpsl_pm.c b/arch/arm/common/sharpsl_pm.c
index 045e37e07330..59b5ddec480f 100644
--- a/arch/arm/common/sharpsl_pm.c
+++ b/arch/arm/common/sharpsl_pm.c
@@ -412,8 +412,10 @@ static int sharpsl_check_battery_temp(void)
412 val = get_select_val(buff); 412 val = get_select_val(buff);
413 413
414 dev_dbg(sharpsl_pm.dev, "Temperature: %d\n", val); 414 dev_dbg(sharpsl_pm.dev, "Temperature: %d\n", val);
415 if (val > sharpsl_pm.machinfo->charge_on_temp) 415 if (val > sharpsl_pm.machinfo->charge_on_temp) {
416 printk(KERN_WARNING "Not charging: temperature out of limits.\n");
416 return -1; 417 return -1;
418 }
417 419
418 return 0; 420 return 0;
419} 421}
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
index b69e88bbc909..c0de6fcd488a 100644
--- a/arch/arm/configs/ep93xx_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Wed Apr 19 21:21:01 2006 4# Sun Jul 9 15:21:30 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000 14CONFIG_VECTORS_BASE=0xffff0000
15CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
12 16
13# 17#
14# Code maturity level options 18# Code maturity level options
@@ -43,14 +47,15 @@ CONFIG_PRINTK=y
43CONFIG_BUG=y 47CONFIG_BUG=y
44CONFIG_ELF_CORE=y 48CONFIG_ELF_CORE=y
45CONFIG_BASE_FULL=y 49CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
46CONFIG_FUTEX=y 51CONFIG_FUTEX=y
47CONFIG_EPOLL=y 52CONFIG_EPOLL=y
48CONFIG_SHMEM=y 53CONFIG_SHMEM=y
49CONFIG_SLAB=y 54CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y
50# CONFIG_TINY_SHMEM is not set 56# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 57CONFIG_BASE_SMALL=0
52# CONFIG_SLOB is not set 58# CONFIG_SLOB is not set
53CONFIG_OBSOLETE_INTERMODULE=y
54 59
55# 60#
56# Loadable module support 61# Loadable module support
@@ -83,18 +88,26 @@ CONFIG_DEFAULT_IOSCHED="deadline"
83# 88#
84# System Type 89# System Type
85# 90#
91# CONFIG_ARCH_AAEC2000 is not set
92# CONFIG_ARCH_INTEGRATOR is not set
93# CONFIG_ARCH_REALVIEW is not set
94# CONFIG_ARCH_VERSATILE is not set
95# CONFIG_ARCH_AT91 is not set
86# CONFIG_ARCH_CLPS7500 is not set 96# CONFIG_ARCH_CLPS7500 is not set
87# CONFIG_ARCH_CLPS711X is not set 97# CONFIG_ARCH_CLPS711X is not set
88# CONFIG_ARCH_CO285 is not set 98# CONFIG_ARCH_CO285 is not set
89# CONFIG_ARCH_EBSA110 is not set 99# CONFIG_ARCH_EBSA110 is not set
90CONFIG_ARCH_EP93XX=y 100CONFIG_ARCH_EP93XX=y
91# CONFIG_ARCH_FOOTBRIDGE is not set 101# CONFIG_ARCH_FOOTBRIDGE is not set
92# CONFIG_ARCH_INTEGRATOR is not set 102# CONFIG_ARCH_NETX is not set
103# CONFIG_ARCH_H720X is not set
104# CONFIG_ARCH_IMX is not set
93# CONFIG_ARCH_IOP3XX is not set 105# CONFIG_ARCH_IOP3XX is not set
94# CONFIG_ARCH_IXP4XX is not set 106# CONFIG_ARCH_IXP4XX is not set
95# CONFIG_ARCH_IXP2000 is not set 107# CONFIG_ARCH_IXP2000 is not set
96# CONFIG_ARCH_IXP23XX is not set 108# CONFIG_ARCH_IXP23XX is not set
97# CONFIG_ARCH_L7200 is not set 109# CONFIG_ARCH_L7200 is not set
110# CONFIG_ARCH_PNX4008 is not set
98# CONFIG_ARCH_PXA is not set 111# CONFIG_ARCH_PXA is not set
99# CONFIG_ARCH_RPC is not set 112# CONFIG_ARCH_RPC is not set
100# CONFIG_ARCH_SA1100 is not set 113# CONFIG_ARCH_SA1100 is not set
@@ -102,20 +115,18 @@ CONFIG_ARCH_EP93XX=y
102# CONFIG_ARCH_SHARK is not set 115# CONFIG_ARCH_SHARK is not set
103# CONFIG_ARCH_LH7A40X is not set 116# CONFIG_ARCH_LH7A40X is not set
104# CONFIG_ARCH_OMAP is not set 117# CONFIG_ARCH_OMAP is not set
105# CONFIG_ARCH_VERSATILE is not set
106# CONFIG_ARCH_REALVIEW is not set
107# CONFIG_ARCH_IMX is not set
108# CONFIG_ARCH_H720X is not set
109# CONFIG_ARCH_AAEC2000 is not set
110# CONFIG_ARCH_AT91RM9200 is not set
111 118
112# 119#
113# Cirrus EP93xx Implementation Options 120# Cirrus EP93xx Implementation Options
114# 121#
122CONFIG_CRUNCH=y
115 123
116# 124#
117# EP93xx Platforms 125# EP93xx Platforms
118# 126#
127CONFIG_MACH_EDB9302=y
128CONFIG_MACH_EDB9315=y
129CONFIG_MACH_EDB9315A=y
119CONFIG_MACH_GESBC9312=y 130CONFIG_MACH_GESBC9312=y
120CONFIG_MACH_TS72XX=y 131CONFIG_MACH_TS72XX=y
121 132
@@ -166,6 +177,7 @@ CONFIG_FLATMEM=y
166CONFIG_FLAT_NODE_MEM_MAP=y 177CONFIG_FLAT_NODE_MEM_MAP=y
167# CONFIG_SPARSEMEM_STATIC is not set 178# CONFIG_SPARSEMEM_STATIC is not set
168CONFIG_SPLIT_PTLOCK_CPUS=4096 179CONFIG_SPLIT_PTLOCK_CPUS=4096
180# CONFIG_RESOURCES_64BIT is not set
169CONFIG_ALIGNMENT_TRAP=y 181CONFIG_ALIGNMENT_TRAP=y
170 182
171# 183#
@@ -233,6 +245,8 @@ CONFIG_SYN_COOKIES=y
233# CONFIG_INET_IPCOMP is not set 245# CONFIG_INET_IPCOMP is not set
234# CONFIG_INET_XFRM_TUNNEL is not set 246# CONFIG_INET_XFRM_TUNNEL is not set
235# CONFIG_INET_TUNNEL is not set 247# CONFIG_INET_TUNNEL is not set
248CONFIG_INET_XFRM_MODE_TRANSPORT=y
249CONFIG_INET_XFRM_MODE_TUNNEL=y
236CONFIG_INET_DIAG=y 250CONFIG_INET_DIAG=y
237CONFIG_INET_TCP_DIAG=y 251CONFIG_INET_TCP_DIAG=y
238# CONFIG_TCP_CONG_ADVANCED is not set 252# CONFIG_TCP_CONG_ADVANCED is not set
@@ -240,6 +254,7 @@ CONFIG_TCP_CONG_BIC=y
240# CONFIG_IPV6 is not set 254# CONFIG_IPV6 is not set
241# CONFIG_INET6_XFRM_TUNNEL is not set 255# CONFIG_INET6_XFRM_TUNNEL is not set
242# CONFIG_INET6_TUNNEL is not set 256# CONFIG_INET6_TUNNEL is not set
257# CONFIG_NETWORK_SECMARK is not set
243# CONFIG_NETFILTER is not set 258# CONFIG_NETFILTER is not set
244 259
245# 260#
@@ -294,6 +309,7 @@ CONFIG_STANDALONE=y
294CONFIG_PREVENT_FIRMWARE_BUILD=y 309CONFIG_PREVENT_FIRMWARE_BUILD=y
295# CONFIG_FW_LOADER is not set 310# CONFIG_FW_LOADER is not set
296# CONFIG_DEBUG_DRIVER is not set 311# CONFIG_DEBUG_DRIVER is not set
312# CONFIG_SYS_HYPERVISOR is not set
297 313
298# 314#
299# Connector - unified userspace <-> kernelspace linker 315# Connector - unified userspace <-> kernelspace linker
@@ -386,6 +402,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
386# 402#
387CONFIG_MTD_NAND=y 403CONFIG_MTD_NAND=y
388CONFIG_MTD_NAND_VERIFY_WRITE=y 404CONFIG_MTD_NAND_VERIFY_WRITE=y
405# CONFIG_MTD_NAND_ECC_SMC is not set
406CONFIG_MTD_NAND_TS7250=y
389CONFIG_MTD_NAND_IDS=y 407CONFIG_MTD_NAND_IDS=y
390# CONFIG_MTD_NAND_DISKONCHIP is not set 408# CONFIG_MTD_NAND_DISKONCHIP is not set
391# CONFIG_MTD_NAND_NANDSIM is not set 409# CONFIG_MTD_NAND_NANDSIM is not set
@@ -582,6 +600,7 @@ CONFIG_EP93XX_WATCHDOG=y
582# USB-based Watchdog Cards 600# USB-based Watchdog Cards
583# 601#
584# CONFIG_USBPCWATCHDOG is not set 602# CONFIG_USBPCWATCHDOG is not set
603# CONFIG_HW_RANDOM is not set
585# CONFIG_NVRAM is not set 604# CONFIG_NVRAM is not set
586# CONFIG_DTLK is not set 605# CONFIG_DTLK is not set
587# CONFIG_R3964 is not set 606# CONFIG_R3964 is not set
@@ -613,6 +632,7 @@ CONFIG_I2C_ALGOBIT=y
613# 632#
614# I2C Hardware Bus support 633# I2C Hardware Bus support
615# 634#
635# CONFIG_I2C_OCORES is not set
616# CONFIG_I2C_PARPORT_LIGHT is not set 636# CONFIG_I2C_PARPORT_LIGHT is not set
617# CONFIG_I2C_STUB is not set 637# CONFIG_I2C_STUB is not set
618# CONFIG_I2C_PCA_ISA is not set 638# CONFIG_I2C_PCA_ISA is not set
@@ -641,13 +661,13 @@ CONFIG_I2C_DEBUG_CHIP=y
641# 661#
642# Dallas's 1-wire bus 662# Dallas's 1-wire bus
643# 663#
644# CONFIG_W1 is not set
645 664
646# 665#
647# Hardware Monitoring support 666# Hardware Monitoring support
648# 667#
649CONFIG_HWMON=y 668CONFIG_HWMON=y
650# CONFIG_HWMON_VID is not set 669# CONFIG_HWMON_VID is not set
670# CONFIG_SENSORS_ABITUGURU is not set
651# CONFIG_SENSORS_ADM1021 is not set 671# CONFIG_SENSORS_ADM1021 is not set
652# CONFIG_SENSORS_ADM1025 is not set 672# CONFIG_SENSORS_ADM1025 is not set
653# CONFIG_SENSORS_ADM1026 is not set 673# CONFIG_SENSORS_ADM1026 is not set
@@ -675,8 +695,10 @@ CONFIG_HWMON=y
675# CONFIG_SENSORS_MAX1619 is not set 695# CONFIG_SENSORS_MAX1619 is not set
676# CONFIG_SENSORS_PC87360 is not set 696# CONFIG_SENSORS_PC87360 is not set
677# CONFIG_SENSORS_SMSC47M1 is not set 697# CONFIG_SENSORS_SMSC47M1 is not set
698# CONFIG_SENSORS_SMSC47M192 is not set
678# CONFIG_SENSORS_SMSC47B397 is not set 699# CONFIG_SENSORS_SMSC47B397 is not set
679# CONFIG_SENSORS_W83781D is not set 700# CONFIG_SENSORS_W83781D is not set
701# CONFIG_SENSORS_W83791D is not set
680# CONFIG_SENSORS_W83792D is not set 702# CONFIG_SENSORS_W83792D is not set
681# CONFIG_SENSORS_W83L785TS is not set 703# CONFIG_SENSORS_W83L785TS is not set
682# CONFIG_SENSORS_W83627HF is not set 704# CONFIG_SENSORS_W83627HF is not set
@@ -704,6 +726,7 @@ CONFIG_HWMON=y
704# Multimedia devices 726# Multimedia devices
705# 727#
706# CONFIG_VIDEO_DEV is not set 728# CONFIG_VIDEO_DEV is not set
729CONFIG_VIDEO_V4L2=y
707 730
708# 731#
709# Digital Video Broadcasting Devices 732# Digital Video Broadcasting Devices
@@ -714,6 +737,7 @@ CONFIG_HWMON=y
714# 737#
715# Graphics support 738# Graphics support
716# 739#
740# CONFIG_FIRMWARE_EDID is not set
717# CONFIG_FB is not set 741# CONFIG_FB is not set
718 742
719# 743#
@@ -806,6 +830,7 @@ CONFIG_USB_SERIAL_CONSOLE=y
806# CONFIG_USB_SERIAL_GENERIC is not set 830# CONFIG_USB_SERIAL_GENERIC is not set
807# CONFIG_USB_SERIAL_AIRPRIME is not set 831# CONFIG_USB_SERIAL_AIRPRIME is not set
808# CONFIG_USB_SERIAL_ANYDATA is not set 832# CONFIG_USB_SERIAL_ANYDATA is not set
833# CONFIG_USB_SERIAL_ARK3116 is not set
809# CONFIG_USB_SERIAL_BELKIN is not set 834# CONFIG_USB_SERIAL_BELKIN is not set
810# CONFIG_USB_SERIAL_WHITEHEAT is not set 835# CONFIG_USB_SERIAL_WHITEHEAT is not set
811# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 836# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
@@ -833,6 +858,7 @@ CONFIG_USB_SERIAL_PL2303=y
833# CONFIG_USB_SERIAL_TI is not set 858# CONFIG_USB_SERIAL_TI is not set
834# CONFIG_USB_SERIAL_CYBERJACK is not set 859# CONFIG_USB_SERIAL_CYBERJACK is not set
835# CONFIG_USB_SERIAL_XIRCOM is not set 860# CONFIG_USB_SERIAL_XIRCOM is not set
861# CONFIG_USB_SERIAL_OPTION is not set
836# CONFIG_USB_SERIAL_OMNINET is not set 862# CONFIG_USB_SERIAL_OMNINET is not set
837 863
838# 864#
@@ -845,10 +871,12 @@ CONFIG_USB_SERIAL_PL2303=y
845# CONFIG_USB_LEGOTOWER is not set 871# CONFIG_USB_LEGOTOWER is not set
846# CONFIG_USB_LCD is not set 872# CONFIG_USB_LCD is not set
847# CONFIG_USB_LED is not set 873# CONFIG_USB_LED is not set
874# CONFIG_USB_CY7C63 is not set
848# CONFIG_USB_CYTHERM is not set 875# CONFIG_USB_CYTHERM is not set
849# CONFIG_USB_PHIDGETKIT is not set 876# CONFIG_USB_PHIDGETKIT is not set
850# CONFIG_USB_PHIDGETSERVO is not set 877# CONFIG_USB_PHIDGETSERVO is not set
851# CONFIG_USB_IDMOUSE is not set 878# CONFIG_USB_IDMOUSE is not set
879# CONFIG_USB_APPLEDISPLAY is not set
852# CONFIG_USB_LD is not set 880# CONFIG_USB_LD is not set
853# CONFIG_USB_TEST is not set 881# CONFIG_USB_TEST is not set
854 882
@@ -880,17 +908,24 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
880CONFIG_RTC_INTF_SYSFS=y 908CONFIG_RTC_INTF_SYSFS=y
881CONFIG_RTC_INTF_PROC=y 909CONFIG_RTC_INTF_PROC=y
882CONFIG_RTC_INTF_DEV=y 910CONFIG_RTC_INTF_DEV=y
911# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
883 912
884# 913#
885# RTC drivers 914# RTC drivers
886# 915#
887# CONFIG_RTC_DRV_X1205 is not set 916# CONFIG_RTC_DRV_X1205 is not set
917# CONFIG_RTC_DRV_DS1307 is not set
918# CONFIG_RTC_DRV_DS1553 is not set
888# CONFIG_RTC_DRV_DS1672 is not set 919# CONFIG_RTC_DRV_DS1672 is not set
920# CONFIG_RTC_DRV_DS1742 is not set
889# CONFIG_RTC_DRV_PCF8563 is not set 921# CONFIG_RTC_DRV_PCF8563 is not set
922# CONFIG_RTC_DRV_PCF8583 is not set
890# CONFIG_RTC_DRV_RS5C372 is not set 923# CONFIG_RTC_DRV_RS5C372 is not set
891CONFIG_RTC_DRV_M48T86=y 924CONFIG_RTC_DRV_M48T86=y
892CONFIG_RTC_DRV_EP93XX=y 925CONFIG_RTC_DRV_EP93XX=y
926# CONFIG_RTC_DRV_PL031 is not set
893# CONFIG_RTC_DRV_TEST is not set 927# CONFIG_RTC_DRV_TEST is not set
928# CONFIG_RTC_DRV_V3020 is not set
894 929
895# 930#
896# File systems 931# File systems
@@ -910,6 +945,7 @@ CONFIG_JBD=y
910# CONFIG_MINIX_FS is not set 945# CONFIG_MINIX_FS is not set
911# CONFIG_ROMFS_FS is not set 946# CONFIG_ROMFS_FS is not set
912CONFIG_INOTIFY=y 947CONFIG_INOTIFY=y
948CONFIG_INOTIFY_USER=y
913# CONFIG_QUOTA is not set 949# CONFIG_QUOTA is not set
914CONFIG_DNOTIFY=y 950CONFIG_DNOTIFY=y
915# CONFIG_AUTOFS_FS is not set 951# CONFIG_AUTOFS_FS is not set
@@ -957,6 +993,7 @@ CONFIG_JFFS2_FS=y
957CONFIG_JFFS2_FS_DEBUG=0 993CONFIG_JFFS2_FS_DEBUG=0
958CONFIG_JFFS2_FS_WRITEBUFFER=y 994CONFIG_JFFS2_FS_WRITEBUFFER=y
959# CONFIG_JFFS2_SUMMARY is not set 995# CONFIG_JFFS2_SUMMARY is not set
996# CONFIG_JFFS2_FS_XATTR is not set
960# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 997# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
961CONFIG_JFFS2_ZLIB=y 998CONFIG_JFFS2_ZLIB=y
962CONFIG_JFFS2_RTIME=y 999CONFIG_JFFS2_RTIME=y
@@ -986,6 +1023,7 @@ CONFIG_SUNRPC=y
986# CONFIG_RPCSEC_GSS_SPKM3 is not set 1023# CONFIG_RPCSEC_GSS_SPKM3 is not set
987# CONFIG_SMB_FS is not set 1024# CONFIG_SMB_FS is not set
988# CONFIG_CIFS is not set 1025# CONFIG_CIFS is not set
1026# CONFIG_CIFS_DEBUG2 is not set
989# CONFIG_NCP_FS is not set 1027# CONFIG_NCP_FS is not set
990# CONFIG_CODA_FS is not set 1028# CONFIG_CODA_FS is not set
991# CONFIG_AFS_FS is not set 1029# CONFIG_AFS_FS is not set
@@ -1066,15 +1104,20 @@ CONFIG_NLS_ISO8859_1=y
1066# 1104#
1067# CONFIG_PRINTK_TIME is not set 1105# CONFIG_PRINTK_TIME is not set
1068CONFIG_MAGIC_SYSRQ=y 1106CONFIG_MAGIC_SYSRQ=y
1107# CONFIG_UNUSED_SYMBOLS is not set
1069CONFIG_DEBUG_KERNEL=y 1108CONFIG_DEBUG_KERNEL=y
1070CONFIG_LOG_BUF_SHIFT=14 1109CONFIG_LOG_BUF_SHIFT=14
1071CONFIG_DETECT_SOFTLOCKUP=y 1110CONFIG_DETECT_SOFTLOCKUP=y
1072# CONFIG_SCHEDSTATS is not set 1111# CONFIG_SCHEDSTATS is not set
1073CONFIG_DEBUG_SLAB=y 1112CONFIG_DEBUG_SLAB=y
1074# CONFIG_DEBUG_SLAB_LEAK is not set 1113# CONFIG_DEBUG_SLAB_LEAK is not set
1075CONFIG_DEBUG_MUTEXES=y 1114# CONFIG_DEBUG_RT_MUTEXES is not set
1115# CONFIG_RT_MUTEX_TESTER is not set
1076CONFIG_DEBUG_SPINLOCK=y 1116CONFIG_DEBUG_SPINLOCK=y
1117CONFIG_DEBUG_MUTEXES=y
1118# CONFIG_DEBUG_RWSEMS is not set
1077# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1119# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1120# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1078# CONFIG_DEBUG_KOBJECT is not set 1121# CONFIG_DEBUG_KOBJECT is not set
1079CONFIG_DEBUG_BUGVERBOSE=y 1122CONFIG_DEBUG_BUGVERBOSE=y
1080# CONFIG_DEBUG_INFO is not set 1123# CONFIG_DEBUG_INFO is not set
@@ -1114,3 +1157,4 @@ CONFIG_CRC32=y
1114CONFIG_LIBCRC32C=y 1157CONFIG_LIBCRC32C=y
1115CONFIG_ZLIB_INFLATE=y 1158CONFIG_ZLIB_INFLATE=y
1116CONFIG_ZLIB_DEFLATE=y 1159CONFIG_ZLIB_DEFLATE=y
1160CONFIG_PLIST=y
diff --git a/arch/arm/configs/ixp2000_defconfig b/arch/arm/configs/ixp2000_defconfig
index e6f3e4873d6c..27b3e31a8ad8 100644
--- a/arch/arm/configs/ixp2000_defconfig
+++ b/arch/arm/configs/ixp2000_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Wed Apr 19 21:12:49 2006 4# Sun Jul 9 15:28:50 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000 14CONFIG_VECTORS_BASE=0xffff0000
15CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
12 16
13# 17#
14# Code maturity level options 18# Code maturity level options
@@ -43,14 +47,15 @@ CONFIG_PRINTK=y
43CONFIG_BUG=y 47CONFIG_BUG=y
44CONFIG_ELF_CORE=y 48CONFIG_ELF_CORE=y
45CONFIG_BASE_FULL=y 49CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
46CONFIG_FUTEX=y 51CONFIG_FUTEX=y
47CONFIG_EPOLL=y 52CONFIG_EPOLL=y
48CONFIG_SHMEM=y 53CONFIG_SHMEM=y
49CONFIG_SLAB=y 54CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y
50# CONFIG_TINY_SHMEM is not set 56# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 57CONFIG_BASE_SMALL=0
52# CONFIG_SLOB is not set 58# CONFIG_SLOB is not set
53CONFIG_OBSOLETE_INTERMODULE=y
54 59
55# 60#
56# Loadable module support 61# Loadable module support
@@ -83,18 +88,26 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
83# 88#
84# System Type 89# System Type
85# 90#
91# CONFIG_ARCH_AAEC2000 is not set
92# CONFIG_ARCH_INTEGRATOR is not set
93# CONFIG_ARCH_REALVIEW is not set
94# CONFIG_ARCH_VERSATILE is not set
95# CONFIG_ARCH_AT91 is not set
86# CONFIG_ARCH_CLPS7500 is not set 96# CONFIG_ARCH_CLPS7500 is not set
87# CONFIG_ARCH_CLPS711X is not set 97# CONFIG_ARCH_CLPS711X is not set
88# CONFIG_ARCH_CO285 is not set 98# CONFIG_ARCH_CO285 is not set
89# CONFIG_ARCH_EBSA110 is not set 99# CONFIG_ARCH_EBSA110 is not set
90# CONFIG_ARCH_EP93XX is not set 100# CONFIG_ARCH_EP93XX is not set
91# CONFIG_ARCH_FOOTBRIDGE is not set 101# CONFIG_ARCH_FOOTBRIDGE is not set
92# CONFIG_ARCH_INTEGRATOR is not set 102# CONFIG_ARCH_NETX is not set
103# CONFIG_ARCH_H720X is not set
104# CONFIG_ARCH_IMX is not set
93# CONFIG_ARCH_IOP3XX is not set 105# CONFIG_ARCH_IOP3XX is not set
94# CONFIG_ARCH_IXP4XX is not set 106# CONFIG_ARCH_IXP4XX is not set
95CONFIG_ARCH_IXP2000=y 107CONFIG_ARCH_IXP2000=y
96# CONFIG_ARCH_IXP23XX is not set 108# CONFIG_ARCH_IXP23XX is not set
97# CONFIG_ARCH_L7200 is not set 109# CONFIG_ARCH_L7200 is not set
110# CONFIG_ARCH_PNX4008 is not set
98# CONFIG_ARCH_PXA is not set 111# CONFIG_ARCH_PXA is not set
99# CONFIG_ARCH_RPC is not set 112# CONFIG_ARCH_RPC is not set
100# CONFIG_ARCH_SA1100 is not set 113# CONFIG_ARCH_SA1100 is not set
@@ -102,12 +115,6 @@ CONFIG_ARCH_IXP2000=y
102# CONFIG_ARCH_SHARK is not set 115# CONFIG_ARCH_SHARK is not set
103# CONFIG_ARCH_LH7A40X is not set 116# CONFIG_ARCH_LH7A40X is not set
104# CONFIG_ARCH_OMAP is not set 117# CONFIG_ARCH_OMAP is not set
105# CONFIG_ARCH_VERSATILE is not set
106# CONFIG_ARCH_REALVIEW is not set
107# CONFIG_ARCH_IMX is not set
108# CONFIG_ARCH_H720X is not set
109# CONFIG_ARCH_AAEC2000 is not set
110# CONFIG_ARCH_AT91RM9200 is not set
111CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y 118CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
112 119
113# 120#
@@ -171,6 +178,7 @@ CONFIG_FLATMEM=y
171CONFIG_FLAT_NODE_MEM_MAP=y 178CONFIG_FLAT_NODE_MEM_MAP=y
172# CONFIG_SPARSEMEM_STATIC is not set 179# CONFIG_SPARSEMEM_STATIC is not set
173CONFIG_SPLIT_PTLOCK_CPUS=4096 180CONFIG_SPLIT_PTLOCK_CPUS=4096
181# CONFIG_RESOURCES_64BIT is not set
174CONFIG_ALIGNMENT_TRAP=y 182CONFIG_ALIGNMENT_TRAP=y
175 183
176# 184#
@@ -218,6 +226,8 @@ CONFIG_NET=y
218CONFIG_PACKET=y 226CONFIG_PACKET=y
219CONFIG_PACKET_MMAP=y 227CONFIG_PACKET_MMAP=y
220CONFIG_UNIX=y 228CONFIG_UNIX=y
229CONFIG_XFRM=y
230# CONFIG_XFRM_USER is not set
221# CONFIG_NET_KEY is not set 231# CONFIG_NET_KEY is not set
222CONFIG_INET=y 232CONFIG_INET=y
223# CONFIG_IP_MULTICAST is not set 233# CONFIG_IP_MULTICAST is not set
@@ -236,6 +246,8 @@ CONFIG_SYN_COOKIES=y
236# CONFIG_INET_IPCOMP is not set 246# CONFIG_INET_IPCOMP is not set
237# CONFIG_INET_XFRM_TUNNEL is not set 247# CONFIG_INET_XFRM_TUNNEL is not set
238# CONFIG_INET_TUNNEL is not set 248# CONFIG_INET_TUNNEL is not set
249CONFIG_INET_XFRM_MODE_TRANSPORT=y
250CONFIG_INET_XFRM_MODE_TUNNEL=y
239CONFIG_INET_DIAG=y 251CONFIG_INET_DIAG=y
240CONFIG_INET_TCP_DIAG=y 252CONFIG_INET_TCP_DIAG=y
241# CONFIG_TCP_CONG_ADVANCED is not set 253# CONFIG_TCP_CONG_ADVANCED is not set
@@ -243,6 +255,7 @@ CONFIG_TCP_CONG_BIC=y
243# CONFIG_IPV6 is not set 255# CONFIG_IPV6 is not set
244# CONFIG_INET6_XFRM_TUNNEL is not set 256# CONFIG_INET6_XFRM_TUNNEL is not set
245# CONFIG_INET6_TUNNEL is not set 257# CONFIG_INET6_TUNNEL is not set
258# CONFIG_NETWORK_SECMARK is not set
246# CONFIG_NETFILTER is not set 259# CONFIG_NETFILTER is not set
247 260
248# 261#
@@ -297,6 +310,7 @@ CONFIG_STANDALONE=y
297# CONFIG_PREVENT_FIRMWARE_BUILD is not set 310# CONFIG_PREVENT_FIRMWARE_BUILD is not set
298# CONFIG_FW_LOADER is not set 311# CONFIG_FW_LOADER is not set
299# CONFIG_DEBUG_DRIVER is not set 312# CONFIG_DEBUG_DRIVER is not set
313# CONFIG_SYS_HYPERVISOR is not set
300 314
301# 315#
302# Connector - unified userspace <-> kernelspace linker 316# Connector - unified userspace <-> kernelspace linker
@@ -525,6 +539,7 @@ CONFIG_ENP2611_MSF_NET=y
525# CONFIG_CHELSIO_T1 is not set 539# CONFIG_CHELSIO_T1 is not set
526# CONFIG_IXGB is not set 540# CONFIG_IXGB is not set
527# CONFIG_S2IO is not set 541# CONFIG_S2IO is not set
542# CONFIG_MYRI10GE is not set
528 543
529# 544#
530# Token Ring devices 545# Token Ring devices
@@ -542,7 +557,6 @@ CONFIG_ENP2611_MSF_NET=y
542CONFIG_WAN=y 557CONFIG_WAN=y
543# CONFIG_DSCC4 is not set 558# CONFIG_DSCC4 is not set
544# CONFIG_LANMEDIA is not set 559# CONFIG_LANMEDIA is not set
545# CONFIG_SYNCLINK_SYNCPPP is not set
546CONFIG_HDLC=y 560CONFIG_HDLC=y
547CONFIG_HDLC_RAW=y 561CONFIG_HDLC_RAW=y
548# CONFIG_HDLC_RAW_ETH is not set 562# CONFIG_HDLC_RAW_ETH is not set
@@ -654,6 +668,7 @@ CONFIG_IXP2000_WATCHDOG=y
654# 668#
655# CONFIG_PCIPCWATCHDOG is not set 669# CONFIG_PCIPCWATCHDOG is not set
656# CONFIG_WDTPCI is not set 670# CONFIG_WDTPCI is not set
671# CONFIG_HW_RANDOM is not set
657# CONFIG_NVRAM is not set 672# CONFIG_NVRAM is not set
658# CONFIG_DTLK is not set 673# CONFIG_DTLK is not set
659# CONFIG_R3964 is not set 674# CONFIG_R3964 is not set
@@ -697,6 +712,7 @@ CONFIG_I2C_ALGOBIT=y
697# CONFIG_I2C_PIIX4 is not set 712# CONFIG_I2C_PIIX4 is not set
698CONFIG_I2C_IXP2000=y 713CONFIG_I2C_IXP2000=y
699# CONFIG_I2C_NFORCE2 is not set 714# CONFIG_I2C_NFORCE2 is not set
715# CONFIG_I2C_OCORES is not set
700# CONFIG_I2C_PARPORT_LIGHT is not set 716# CONFIG_I2C_PARPORT_LIGHT is not set
701# CONFIG_I2C_PROSAVAGE is not set 717# CONFIG_I2C_PROSAVAGE is not set
702# CONFIG_I2C_SAVAGE4 is not set 718# CONFIG_I2C_SAVAGE4 is not set
@@ -733,13 +749,13 @@ CONFIG_SENSORS_EEPROM=y
733# 749#
734# Dallas's 1-wire bus 750# Dallas's 1-wire bus
735# 751#
736# CONFIG_W1 is not set
737 752
738# 753#
739# Hardware Monitoring support 754# Hardware Monitoring support
740# 755#
741CONFIG_HWMON=y 756CONFIG_HWMON=y
742# CONFIG_HWMON_VID is not set 757# CONFIG_HWMON_VID is not set
758# CONFIG_SENSORS_ABITUGURU is not set
743# CONFIG_SENSORS_ADM1021 is not set 759# CONFIG_SENSORS_ADM1021 is not set
744# CONFIG_SENSORS_ADM1025 is not set 760# CONFIG_SENSORS_ADM1025 is not set
745# CONFIG_SENSORS_ADM1026 is not set 761# CONFIG_SENSORS_ADM1026 is not set
@@ -768,10 +784,12 @@ CONFIG_HWMON=y
768# CONFIG_SENSORS_PC87360 is not set 784# CONFIG_SENSORS_PC87360 is not set
769# CONFIG_SENSORS_SIS5595 is not set 785# CONFIG_SENSORS_SIS5595 is not set
770# CONFIG_SENSORS_SMSC47M1 is not set 786# CONFIG_SENSORS_SMSC47M1 is not set
787# CONFIG_SENSORS_SMSC47M192 is not set
771# CONFIG_SENSORS_SMSC47B397 is not set 788# CONFIG_SENSORS_SMSC47B397 is not set
772# CONFIG_SENSORS_VIA686A is not set 789# CONFIG_SENSORS_VIA686A is not set
773# CONFIG_SENSORS_VT8231 is not set 790# CONFIG_SENSORS_VT8231 is not set
774# CONFIG_SENSORS_W83781D is not set 791# CONFIG_SENSORS_W83781D is not set
792# CONFIG_SENSORS_W83791D is not set
775# CONFIG_SENSORS_W83792D is not set 793# CONFIG_SENSORS_W83792D is not set
776# CONFIG_SENSORS_W83L785TS is not set 794# CONFIG_SENSORS_W83L785TS is not set
777# CONFIG_SENSORS_W83627HF is not set 795# CONFIG_SENSORS_W83627HF is not set
@@ -799,6 +817,7 @@ CONFIG_HWMON=y
799# Multimedia devices 817# Multimedia devices
800# 818#
801# CONFIG_VIDEO_DEV is not set 819# CONFIG_VIDEO_DEV is not set
820CONFIG_VIDEO_V4L2=y
802 821
803# 822#
804# Digital Video Broadcasting Devices 823# Digital Video Broadcasting Devices
@@ -808,6 +827,7 @@ CONFIG_HWMON=y
808# 827#
809# Graphics support 828# Graphics support
810# 829#
830# CONFIG_FIRMWARE_EDID is not set
811# CONFIG_FB is not set 831# CONFIG_FB is not set
812 832
813# 833#
@@ -866,6 +886,7 @@ CONFIG_FS_POSIX_ACL=y
866# CONFIG_MINIX_FS is not set 886# CONFIG_MINIX_FS is not set
867# CONFIG_ROMFS_FS is not set 887# CONFIG_ROMFS_FS is not set
868CONFIG_INOTIFY=y 888CONFIG_INOTIFY=y
889CONFIG_INOTIFY_USER=y
869# CONFIG_QUOTA is not set 890# CONFIG_QUOTA is not set
870CONFIG_DNOTIFY=y 891CONFIG_DNOTIFY=y
871# CONFIG_AUTOFS_FS is not set 892# CONFIG_AUTOFS_FS is not set
@@ -910,6 +931,7 @@ CONFIG_JFFS2_FS=y
910CONFIG_JFFS2_FS_DEBUG=0 931CONFIG_JFFS2_FS_DEBUG=0
911CONFIG_JFFS2_FS_WRITEBUFFER=y 932CONFIG_JFFS2_FS_WRITEBUFFER=y
912# CONFIG_JFFS2_SUMMARY is not set 933# CONFIG_JFFS2_SUMMARY is not set
934# CONFIG_JFFS2_FS_XATTR is not set
913# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 935# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
914CONFIG_JFFS2_ZLIB=y 936CONFIG_JFFS2_ZLIB=y
915CONFIG_JFFS2_RTIME=y 937CONFIG_JFFS2_RTIME=y
@@ -939,6 +961,7 @@ CONFIG_SUNRPC=y
939# CONFIG_RPCSEC_GSS_SPKM3 is not set 961# CONFIG_RPCSEC_GSS_SPKM3 is not set
940# CONFIG_SMB_FS is not set 962# CONFIG_SMB_FS is not set
941# CONFIG_CIFS is not set 963# CONFIG_CIFS is not set
964# CONFIG_CIFS_DEBUG2 is not set
942# CONFIG_NCP_FS is not set 965# CONFIG_NCP_FS is not set
943# CONFIG_CODA_FS is not set 966# CONFIG_CODA_FS is not set
944# CONFIG_AFS_FS is not set 967# CONFIG_AFS_FS is not set
@@ -980,14 +1003,19 @@ CONFIG_MSDOS_PARTITION=y
980# 1003#
981# CONFIG_PRINTK_TIME is not set 1004# CONFIG_PRINTK_TIME is not set
982CONFIG_MAGIC_SYSRQ=y 1005CONFIG_MAGIC_SYSRQ=y
1006# CONFIG_UNUSED_SYMBOLS is not set
983CONFIG_DEBUG_KERNEL=y 1007CONFIG_DEBUG_KERNEL=y
984CONFIG_LOG_BUF_SHIFT=14 1008CONFIG_LOG_BUF_SHIFT=14
985CONFIG_DETECT_SOFTLOCKUP=y 1009CONFIG_DETECT_SOFTLOCKUP=y
986# CONFIG_SCHEDSTATS is not set 1010# CONFIG_SCHEDSTATS is not set
987# CONFIG_DEBUG_SLAB is not set 1011# CONFIG_DEBUG_SLAB is not set
988CONFIG_DEBUG_MUTEXES=y 1012# CONFIG_DEBUG_RT_MUTEXES is not set
1013# CONFIG_RT_MUTEX_TESTER is not set
989# CONFIG_DEBUG_SPINLOCK is not set 1014# CONFIG_DEBUG_SPINLOCK is not set
1015CONFIG_DEBUG_MUTEXES=y
1016# CONFIG_DEBUG_RWSEMS is not set
990# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1017# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1018# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
991# CONFIG_DEBUG_KOBJECT is not set 1019# CONFIG_DEBUG_KOBJECT is not set
992CONFIG_DEBUG_BUGVERBOSE=y 1020CONFIG_DEBUG_BUGVERBOSE=y
993# CONFIG_DEBUG_INFO is not set 1021# CONFIG_DEBUG_INFO is not set
@@ -1027,3 +1055,4 @@ CONFIG_CRC32=y
1027# CONFIG_LIBCRC32C is not set 1055# CONFIG_LIBCRC32C is not set
1028CONFIG_ZLIB_INFLATE=y 1056CONFIG_ZLIB_INFLATE=y
1029CONFIG_ZLIB_DEFLATE=y 1057CONFIG_ZLIB_DEFLATE=y
1058CONFIG_PLIST=y
diff --git a/arch/arm/configs/ixp23xx_defconfig b/arch/arm/configs/ixp23xx_defconfig
index 9ce898a6cf87..7b18997083ce 100644
--- a/arch/arm/configs/ixp23xx_defconfig
+++ b/arch/arm/configs/ixp23xx_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Wed Apr 19 21:13:50 2006 4# Sun Jul 9 14:13:35 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000 14CONFIG_VECTORS_BASE=0xffff0000
15CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
12 16
13# 17#
14# Code maturity level options 18# Code maturity level options
@@ -43,14 +47,15 @@ CONFIG_PRINTK=y
43CONFIG_BUG=y 47CONFIG_BUG=y
44CONFIG_ELF_CORE=y 48CONFIG_ELF_CORE=y
45CONFIG_BASE_FULL=y 49CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
46CONFIG_FUTEX=y 51CONFIG_FUTEX=y
47CONFIG_EPOLL=y 52CONFIG_EPOLL=y
48CONFIG_SHMEM=y 53CONFIG_SHMEM=y
49CONFIG_SLAB=y 54CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y
50# CONFIG_TINY_SHMEM is not set 56# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 57CONFIG_BASE_SMALL=0
52# CONFIG_SLOB is not set 58# CONFIG_SLOB is not set
53CONFIG_OBSOLETE_INTERMODULE=y
54 59
55# 60#
56# Loadable module support 61# Loadable module support
@@ -83,18 +88,26 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
83# 88#
84# System Type 89# System Type
85# 90#
91# CONFIG_ARCH_AAEC2000 is not set
92# CONFIG_ARCH_INTEGRATOR is not set
93# CONFIG_ARCH_REALVIEW is not set
94# CONFIG_ARCH_VERSATILE is not set
95# CONFIG_ARCH_AT91 is not set
86# CONFIG_ARCH_CLPS7500 is not set 96# CONFIG_ARCH_CLPS7500 is not set
87# CONFIG_ARCH_CLPS711X is not set 97# CONFIG_ARCH_CLPS711X is not set
88# CONFIG_ARCH_CO285 is not set 98# CONFIG_ARCH_CO285 is not set
89# CONFIG_ARCH_EBSA110 is not set 99# CONFIG_ARCH_EBSA110 is not set
90# CONFIG_ARCH_EP93XX is not set 100# CONFIG_ARCH_EP93XX is not set
91# CONFIG_ARCH_FOOTBRIDGE is not set 101# CONFIG_ARCH_FOOTBRIDGE is not set
92# CONFIG_ARCH_INTEGRATOR is not set 102# CONFIG_ARCH_NETX is not set
103# CONFIG_ARCH_H720X is not set
104# CONFIG_ARCH_IMX is not set
93# CONFIG_ARCH_IOP3XX is not set 105# CONFIG_ARCH_IOP3XX is not set
94# CONFIG_ARCH_IXP4XX is not set 106# CONFIG_ARCH_IXP4XX is not set
95# CONFIG_ARCH_IXP2000 is not set 107# CONFIG_ARCH_IXP2000 is not set
96CONFIG_ARCH_IXP23XX=y 108CONFIG_ARCH_IXP23XX=y
97# CONFIG_ARCH_L7200 is not set 109# CONFIG_ARCH_L7200 is not set
110# CONFIG_ARCH_PNX4008 is not set
98# CONFIG_ARCH_PXA is not set 111# CONFIG_ARCH_PXA is not set
99# CONFIG_ARCH_RPC is not set 112# CONFIG_ARCH_RPC is not set
100# CONFIG_ARCH_SA1100 is not set 113# CONFIG_ARCH_SA1100 is not set
@@ -102,12 +115,6 @@ CONFIG_ARCH_IXP23XX=y
102# CONFIG_ARCH_SHARK is not set 115# CONFIG_ARCH_SHARK is not set
103# CONFIG_ARCH_LH7A40X is not set 116# CONFIG_ARCH_LH7A40X is not set
104# CONFIG_ARCH_OMAP is not set 117# CONFIG_ARCH_OMAP is not set
105# CONFIG_ARCH_VERSATILE is not set
106# CONFIG_ARCH_REALVIEW is not set
107# CONFIG_ARCH_IMX is not set
108# CONFIG_ARCH_H720X is not set
109# CONFIG_ARCH_AAEC2000 is not set
110# CONFIG_ARCH_AT91RM9200 is not set
111CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y 118CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
112 119
113# 120#
@@ -165,6 +172,7 @@ CONFIG_FLATMEM=y
165CONFIG_FLAT_NODE_MEM_MAP=y 172CONFIG_FLAT_NODE_MEM_MAP=y
166# CONFIG_SPARSEMEM_STATIC is not set 173# CONFIG_SPARSEMEM_STATIC is not set
167CONFIG_SPLIT_PTLOCK_CPUS=4096 174CONFIG_SPLIT_PTLOCK_CPUS=4096
175CONFIG_RESOURCES_64BIT=y
168CONFIG_ALIGNMENT_TRAP=y 176CONFIG_ALIGNMENT_TRAP=y
169 177
170# 178#
@@ -212,6 +220,8 @@ CONFIG_NET=y
212CONFIG_PACKET=y 220CONFIG_PACKET=y
213CONFIG_PACKET_MMAP=y 221CONFIG_PACKET_MMAP=y
214CONFIG_UNIX=y 222CONFIG_UNIX=y
223CONFIG_XFRM=y
224# CONFIG_XFRM_USER is not set
215# CONFIG_NET_KEY is not set 225# CONFIG_NET_KEY is not set
216CONFIG_INET=y 226CONFIG_INET=y
217# CONFIG_IP_MULTICAST is not set 227# CONFIG_IP_MULTICAST is not set
@@ -230,6 +240,8 @@ CONFIG_SYN_COOKIES=y
230# CONFIG_INET_IPCOMP is not set 240# CONFIG_INET_IPCOMP is not set
231# CONFIG_INET_XFRM_TUNNEL is not set 241# CONFIG_INET_XFRM_TUNNEL is not set
232# CONFIG_INET_TUNNEL is not set 242# CONFIG_INET_TUNNEL is not set
243CONFIG_INET_XFRM_MODE_TRANSPORT=y
244CONFIG_INET_XFRM_MODE_TUNNEL=y
233CONFIG_INET_DIAG=y 245CONFIG_INET_DIAG=y
234CONFIG_INET_TCP_DIAG=y 246CONFIG_INET_TCP_DIAG=y
235# CONFIG_TCP_CONG_ADVANCED is not set 247# CONFIG_TCP_CONG_ADVANCED is not set
@@ -237,6 +249,7 @@ CONFIG_TCP_CONG_BIC=y
237# CONFIG_IPV6 is not set 249# CONFIG_IPV6 is not set
238# CONFIG_INET6_XFRM_TUNNEL is not set 250# CONFIG_INET6_XFRM_TUNNEL is not set
239# CONFIG_INET6_TUNNEL is not set 251# CONFIG_INET6_TUNNEL is not set
252# CONFIG_NETWORK_SECMARK is not set
240# CONFIG_NETFILTER is not set 253# CONFIG_NETFILTER is not set
241 254
242# 255#
@@ -291,6 +304,7 @@ CONFIG_STANDALONE=y
291# CONFIG_PREVENT_FIRMWARE_BUILD is not set 304# CONFIG_PREVENT_FIRMWARE_BUILD is not set
292# CONFIG_FW_LOADER is not set 305# CONFIG_FW_LOADER is not set
293# CONFIG_DEBUG_DRIVER is not set 306# CONFIG_DEBUG_DRIVER is not set
307# CONFIG_SYS_HYPERVISOR is not set
294 308
295# 309#
296# Connector - unified userspace <-> kernelspace linker 310# Connector - unified userspace <-> kernelspace linker
@@ -520,6 +534,7 @@ CONFIG_BLK_DEV_SD=y
520# CONFIG_MEGARAID_LEGACY is not set 534# CONFIG_MEGARAID_LEGACY is not set
521# CONFIG_MEGARAID_SAS is not set 535# CONFIG_MEGARAID_SAS is not set
522# CONFIG_SCSI_SATA is not set 536# CONFIG_SCSI_SATA is not set
537# CONFIG_SCSI_HPTIOP is not set
523# CONFIG_SCSI_DMX3191D is not set 538# CONFIG_SCSI_DMX3191D is not set
524# CONFIG_SCSI_FUTURE_DOMAIN is not set 539# CONFIG_SCSI_FUTURE_DOMAIN is not set
525# CONFIG_SCSI_IPS is not set 540# CONFIG_SCSI_IPS is not set
@@ -641,6 +656,7 @@ CONFIG_E1000_NAPI=y
641# CONFIG_CHELSIO_T1 is not set 656# CONFIG_CHELSIO_T1 is not set
642# CONFIG_IXGB is not set 657# CONFIG_IXGB is not set
643# CONFIG_S2IO is not set 658# CONFIG_S2IO is not set
659# CONFIG_MYRI10GE is not set
644 660
645# 661#
646# Token Ring devices 662# Token Ring devices
@@ -658,7 +674,6 @@ CONFIG_E1000_NAPI=y
658CONFIG_WAN=y 674CONFIG_WAN=y
659# CONFIG_DSCC4 is not set 675# CONFIG_DSCC4 is not set
660# CONFIG_LANMEDIA is not set 676# CONFIG_LANMEDIA is not set
661# CONFIG_SYNCLINK_SYNCPPP is not set
662CONFIG_HDLC=y 677CONFIG_HDLC=y
663CONFIG_HDLC_RAW=y 678CONFIG_HDLC_RAW=y
664# CONFIG_HDLC_RAW_ETH is not set 679# CONFIG_HDLC_RAW_ETH is not set
@@ -775,6 +790,7 @@ CONFIG_WATCHDOG=y
775# USB-based Watchdog Cards 790# USB-based Watchdog Cards
776# 791#
777# CONFIG_USBPCWATCHDOG is not set 792# CONFIG_USBPCWATCHDOG is not set
793# CONFIG_HW_RANDOM is not set
778# CONFIG_NVRAM is not set 794# CONFIG_NVRAM is not set
779# CONFIG_DTLK is not set 795# CONFIG_DTLK is not set
780# CONFIG_R3964 is not set 796# CONFIG_R3964 is not set
@@ -817,6 +833,7 @@ CONFIG_I2C_ALGOBIT=y
817# CONFIG_I2C_I810 is not set 833# CONFIG_I2C_I810 is not set
818# CONFIG_I2C_PIIX4 is not set 834# CONFIG_I2C_PIIX4 is not set
819# CONFIG_I2C_NFORCE2 is not set 835# CONFIG_I2C_NFORCE2 is not set
836# CONFIG_I2C_OCORES is not set
820# CONFIG_I2C_PARPORT_LIGHT is not set 837# CONFIG_I2C_PARPORT_LIGHT is not set
821# CONFIG_I2C_PROSAVAGE is not set 838# CONFIG_I2C_PROSAVAGE is not set
822# CONFIG_I2C_SAVAGE4 is not set 839# CONFIG_I2C_SAVAGE4 is not set
@@ -853,13 +870,13 @@ CONFIG_SENSORS_EEPROM=y
853# 870#
854# Dallas's 1-wire bus 871# Dallas's 1-wire bus
855# 872#
856# CONFIG_W1 is not set
857 873
858# 874#
859# Hardware Monitoring support 875# Hardware Monitoring support
860# 876#
861CONFIG_HWMON=y 877CONFIG_HWMON=y
862# CONFIG_HWMON_VID is not set 878# CONFIG_HWMON_VID is not set
879# CONFIG_SENSORS_ABITUGURU is not set
863# CONFIG_SENSORS_ADM1021 is not set 880# CONFIG_SENSORS_ADM1021 is not set
864# CONFIG_SENSORS_ADM1025 is not set 881# CONFIG_SENSORS_ADM1025 is not set
865# CONFIG_SENSORS_ADM1026 is not set 882# CONFIG_SENSORS_ADM1026 is not set
@@ -888,10 +905,12 @@ CONFIG_HWMON=y
888# CONFIG_SENSORS_PC87360 is not set 905# CONFIG_SENSORS_PC87360 is not set
889# CONFIG_SENSORS_SIS5595 is not set 906# CONFIG_SENSORS_SIS5595 is not set
890# CONFIG_SENSORS_SMSC47M1 is not set 907# CONFIG_SENSORS_SMSC47M1 is not set
908# CONFIG_SENSORS_SMSC47M192 is not set
891# CONFIG_SENSORS_SMSC47B397 is not set 909# CONFIG_SENSORS_SMSC47B397 is not set
892# CONFIG_SENSORS_VIA686A is not set 910# CONFIG_SENSORS_VIA686A is not set
893# CONFIG_SENSORS_VT8231 is not set 911# CONFIG_SENSORS_VT8231 is not set
894# CONFIG_SENSORS_W83781D is not set 912# CONFIG_SENSORS_W83781D is not set
913# CONFIG_SENSORS_W83791D is not set
895# CONFIG_SENSORS_W83792D is not set 914# CONFIG_SENSORS_W83792D is not set
896# CONFIG_SENSORS_W83L785TS is not set 915# CONFIG_SENSORS_W83L785TS is not set
897# CONFIG_SENSORS_W83627HF is not set 916# CONFIG_SENSORS_W83627HF is not set
@@ -919,6 +938,7 @@ CONFIG_HWMON=y
919# Multimedia devices 938# Multimedia devices
920# 939#
921# CONFIG_VIDEO_DEV is not set 940# CONFIG_VIDEO_DEV is not set
941CONFIG_VIDEO_V4L2=y
922 942
923# 943#
924# Digital Video Broadcasting Devices 944# Digital Video Broadcasting Devices
@@ -929,6 +949,7 @@ CONFIG_HWMON=y
929# 949#
930# Graphics support 950# Graphics support
931# 951#
952# CONFIG_FIRMWARE_EDID is not set
932# CONFIG_FB is not set 953# CONFIG_FB is not set
933 954
934# 955#
@@ -959,6 +980,7 @@ CONFIG_USB=y
959CONFIG_USB_EHCI_HCD=y 980CONFIG_USB_EHCI_HCD=y
960# CONFIG_USB_EHCI_SPLIT_ISO is not set 981# CONFIG_USB_EHCI_SPLIT_ISO is not set
961# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 982# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
983# CONFIG_USB_EHCI_TT_NEWSCHED is not set
962# CONFIG_USB_ISP116X_HCD is not set 984# CONFIG_USB_ISP116X_HCD is not set
963CONFIG_USB_OHCI_HCD=y 985CONFIG_USB_OHCI_HCD=y
964# CONFIG_USB_OHCI_BIG_ENDIAN is not set 986# CONFIG_USB_OHCI_BIG_ENDIAN is not set
@@ -1050,10 +1072,12 @@ CONFIG_USB_MON=y
1050# CONFIG_USB_LEGOTOWER is not set 1072# CONFIG_USB_LEGOTOWER is not set
1051# CONFIG_USB_LCD is not set 1073# CONFIG_USB_LCD is not set
1052# CONFIG_USB_LED is not set 1074# CONFIG_USB_LED is not set
1075# CONFIG_USB_CY7C63 is not set
1053# CONFIG_USB_CYTHERM is not set 1076# CONFIG_USB_CYTHERM is not set
1054# CONFIG_USB_PHIDGETKIT is not set 1077# CONFIG_USB_PHIDGETKIT is not set
1055# CONFIG_USB_PHIDGETSERVO is not set 1078# CONFIG_USB_PHIDGETSERVO is not set
1056# CONFIG_USB_IDMOUSE is not set 1079# CONFIG_USB_IDMOUSE is not set
1080# CONFIG_USB_APPLEDISPLAY is not set
1057# CONFIG_USB_SISUSBVGA is not set 1081# CONFIG_USB_SISUSBVGA is not set
1058# CONFIG_USB_LD is not set 1082# CONFIG_USB_LD is not set
1059 1083
@@ -1100,6 +1124,7 @@ CONFIG_FS_POSIX_ACL=y
1100# CONFIG_MINIX_FS is not set 1124# CONFIG_MINIX_FS is not set
1101# CONFIG_ROMFS_FS is not set 1125# CONFIG_ROMFS_FS is not set
1102CONFIG_INOTIFY=y 1126CONFIG_INOTIFY=y
1127CONFIG_INOTIFY_USER=y
1103# CONFIG_QUOTA is not set 1128# CONFIG_QUOTA is not set
1104CONFIG_DNOTIFY=y 1129CONFIG_DNOTIFY=y
1105# CONFIG_AUTOFS_FS is not set 1130# CONFIG_AUTOFS_FS is not set
@@ -1146,6 +1171,7 @@ CONFIG_JFFS2_FS=y
1146CONFIG_JFFS2_FS_DEBUG=0 1171CONFIG_JFFS2_FS_DEBUG=0
1147CONFIG_JFFS2_FS_WRITEBUFFER=y 1172CONFIG_JFFS2_FS_WRITEBUFFER=y
1148# CONFIG_JFFS2_SUMMARY is not set 1173# CONFIG_JFFS2_SUMMARY is not set
1174# CONFIG_JFFS2_FS_XATTR is not set
1149# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1175# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1150CONFIG_JFFS2_ZLIB=y 1176CONFIG_JFFS2_ZLIB=y
1151CONFIG_JFFS2_RTIME=y 1177CONFIG_JFFS2_RTIME=y
@@ -1175,6 +1201,7 @@ CONFIG_SUNRPC=y
1175# CONFIG_RPCSEC_GSS_SPKM3 is not set 1201# CONFIG_RPCSEC_GSS_SPKM3 is not set
1176# CONFIG_SMB_FS is not set 1202# CONFIG_SMB_FS is not set
1177# CONFIG_CIFS is not set 1203# CONFIG_CIFS is not set
1204# CONFIG_CIFS_DEBUG2 is not set
1178# CONFIG_NCP_FS is not set 1205# CONFIG_NCP_FS is not set
1179# CONFIG_CODA_FS is not set 1206# CONFIG_CODA_FS is not set
1180# CONFIG_AFS_FS is not set 1207# CONFIG_AFS_FS is not set
@@ -1255,14 +1282,19 @@ CONFIG_NLS_CODEPAGE_437=y
1255# 1282#
1256# CONFIG_PRINTK_TIME is not set 1283# CONFIG_PRINTK_TIME is not set
1257CONFIG_MAGIC_SYSRQ=y 1284CONFIG_MAGIC_SYSRQ=y
1285# CONFIG_UNUSED_SYMBOLS is not set
1258CONFIG_DEBUG_KERNEL=y 1286CONFIG_DEBUG_KERNEL=y
1259CONFIG_LOG_BUF_SHIFT=14 1287CONFIG_LOG_BUF_SHIFT=14
1260CONFIG_DETECT_SOFTLOCKUP=y 1288CONFIG_DETECT_SOFTLOCKUP=y
1261# CONFIG_SCHEDSTATS is not set 1289# CONFIG_SCHEDSTATS is not set
1262# CONFIG_DEBUG_SLAB is not set 1290# CONFIG_DEBUG_SLAB is not set
1263CONFIG_DEBUG_MUTEXES=y 1291# CONFIG_DEBUG_RT_MUTEXES is not set
1292# CONFIG_RT_MUTEX_TESTER is not set
1264# CONFIG_DEBUG_SPINLOCK is not set 1293# CONFIG_DEBUG_SPINLOCK is not set
1294CONFIG_DEBUG_MUTEXES=y
1295# CONFIG_DEBUG_RWSEMS is not set
1265# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1296# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1297# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1266# CONFIG_DEBUG_KOBJECT is not set 1298# CONFIG_DEBUG_KOBJECT is not set
1267CONFIG_DEBUG_BUGVERBOSE=y 1299CONFIG_DEBUG_BUGVERBOSE=y
1268# CONFIG_DEBUG_INFO is not set 1300# CONFIG_DEBUG_INFO is not set
@@ -1302,3 +1334,4 @@ CONFIG_CRC32=y
1302# CONFIG_LIBCRC32C is not set 1334# CONFIG_LIBCRC32C is not set
1303CONFIG_ZLIB_INFLATE=y 1335CONFIG_ZLIB_INFLATE=y
1304CONFIG_ZLIB_DEFLATE=y 1336CONFIG_ZLIB_DEFLATE=y
1337CONFIG_PLIST=y
diff --git a/arch/arm/configs/lpd270_defconfig b/arch/arm/configs/lpd270_defconfig
index d08bbe59483a..4b29e099640d 100644
--- a/arch/arm/configs/lpd270_defconfig
+++ b/arch/arm/configs/lpd270_defconfig
@@ -1,15 +1,19 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-git2 3# Linux kernel version: 2.6.18-rc1
4# Wed Jun 21 22:20:18 2006 4# Sun Jul 9 14:15:23 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_ARCH_MTD_XIP=y 14CONFIG_ARCH_MTD_XIP=y
12CONFIG_VECTORS_BASE=0xffff0000 15CONFIG_VECTORS_BASE=0xffff0000
16CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
13 17
14# 18#
15# Code maturity level options 19# Code maturity level options
@@ -43,10 +47,12 @@ CONFIG_PRINTK=y
43CONFIG_BUG=y 47CONFIG_BUG=y
44CONFIG_ELF_CORE=y 48CONFIG_ELF_CORE=y
45CONFIG_BASE_FULL=y 49CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
46CONFIG_FUTEX=y 51CONFIG_FUTEX=y
47CONFIG_EPOLL=y 52CONFIG_EPOLL=y
48CONFIG_SHMEM=y 53CONFIG_SHMEM=y
49CONFIG_SLAB=y 54CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y
50# CONFIG_TINY_SHMEM is not set 56# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 57CONFIG_BASE_SMALL=0
52# CONFIG_SLOB is not set 58# CONFIG_SLOB is not set
@@ -85,7 +91,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
85# CONFIG_ARCH_INTEGRATOR is not set 91# CONFIG_ARCH_INTEGRATOR is not set
86# CONFIG_ARCH_REALVIEW is not set 92# CONFIG_ARCH_REALVIEW is not set
87# CONFIG_ARCH_VERSATILE is not set 93# CONFIG_ARCH_VERSATILE is not set
88# CONFIG_ARCH_AT91RM9200 is not set 94# CONFIG_ARCH_AT91 is not set
89# CONFIG_ARCH_CLPS7500 is not set 95# CONFIG_ARCH_CLPS7500 is not set
90# CONFIG_ARCH_CLPS711X is not set 96# CONFIG_ARCH_CLPS711X is not set
91# CONFIG_ARCH_CO285 is not set 97# CONFIG_ARCH_CO285 is not set
@@ -117,6 +123,7 @@ CONFIG_MACH_LOGICPD_PXA270=y
117# CONFIG_MACH_MAINSTONE is not set 123# CONFIG_MACH_MAINSTONE is not set
118# CONFIG_ARCH_PXA_IDP is not set 124# CONFIG_ARCH_PXA_IDP is not set
119# CONFIG_PXA_SHARPSL is not set 125# CONFIG_PXA_SHARPSL is not set
126# CONFIG_MACH_TRIZEPS4 is not set
120CONFIG_PXA27x=y 127CONFIG_PXA27x=y
121CONFIG_IWMMXT=y 128CONFIG_IWMMXT=y
122 129
@@ -161,6 +168,7 @@ CONFIG_FLATMEM=y
161CONFIG_FLAT_NODE_MEM_MAP=y 168CONFIG_FLAT_NODE_MEM_MAP=y
162# CONFIG_SPARSEMEM_STATIC is not set 169# CONFIG_SPARSEMEM_STATIC is not set
163CONFIG_SPLIT_PTLOCK_CPUS=4096 170CONFIG_SPLIT_PTLOCK_CPUS=4096
171# CONFIG_RESOURCES_64BIT is not set
164CONFIG_ALIGNMENT_TRAP=y 172CONFIG_ALIGNMENT_TRAP=y
165 173
166# 174#
@@ -194,8 +202,6 @@ CONFIG_BINFMT_ELF=y
194# Power management options 202# Power management options
195# 203#
196# CONFIG_PM is not set 204# CONFIG_PM is not set
197# CONFIG_PM_LEGACY is not set
198# CONFIG_PM_DEBUG is not set
199# CONFIG_APM is not set 205# CONFIG_APM is not set
200 206
201# 207#
@@ -293,6 +299,7 @@ CONFIG_STANDALONE=y
293CONFIG_PREVENT_FIRMWARE_BUILD=y 299CONFIG_PREVENT_FIRMWARE_BUILD=y
294# CONFIG_FW_LOADER is not set 300# CONFIG_FW_LOADER is not set
295# CONFIG_DEBUG_DRIVER is not set 301# CONFIG_DEBUG_DRIVER is not set
302# CONFIG_SYS_HYPERVISOR is not set
296 303
297# 304#
298# Connector - unified userspace <-> kernelspace linker 305# Connector - unified userspace <-> kernelspace linker
@@ -561,6 +568,7 @@ CONFIG_SERIO_LIBPS2=y
561CONFIG_VT=y 568CONFIG_VT=y
562CONFIG_VT_CONSOLE=y 569CONFIG_VT_CONSOLE=y
563CONFIG_HW_CONSOLE=y 570CONFIG_HW_CONSOLE=y
571# CONFIG_VT_HW_CONSOLE_BINDING is not set
564# CONFIG_SERIAL_NONSTANDARD is not set 572# CONFIG_SERIAL_NONSTANDARD is not set
565 573
566# 574#
@@ -588,6 +596,7 @@ CONFIG_LEGACY_PTY_COUNT=256
588# Watchdog Cards 596# Watchdog Cards
589# 597#
590# CONFIG_WATCHDOG is not set 598# CONFIG_WATCHDOG is not set
599# CONFIG_HW_RANDOM is not set
591# CONFIG_NVRAM is not set 600# CONFIG_NVRAM is not set
592# CONFIG_DTLK is not set 601# CONFIG_DTLK is not set
593# CONFIG_R3964 is not set 602# CONFIG_R3964 is not set
@@ -617,13 +626,13 @@ CONFIG_LEGACY_PTY_COUNT=256
617# 626#
618# Dallas's 1-wire bus 627# Dallas's 1-wire bus
619# 628#
620# CONFIG_W1 is not set
621 629
622# 630#
623# Hardware Monitoring support 631# Hardware Monitoring support
624# 632#
625CONFIG_HWMON=y 633CONFIG_HWMON=y
626# CONFIG_HWMON_VID is not set 634# CONFIG_HWMON_VID is not set
635# CONFIG_SENSORS_ABITUGURU is not set
627# CONFIG_SENSORS_F71805F is not set 636# CONFIG_SENSORS_F71805F is not set
628# CONFIG_HWMON_DEBUG_CHIP is not set 637# CONFIG_HWMON_DEBUG_CHIP is not set
629 638
@@ -658,12 +667,13 @@ CONFIG_VIDEO_V4L2=y
658# 667#
659# Graphics support 668# Graphics support
660# 669#
670# CONFIG_FIRMWARE_EDID is not set
661CONFIG_FB=y 671CONFIG_FB=y
662CONFIG_FB_CFB_FILLRECT=y 672CONFIG_FB_CFB_FILLRECT=y
663CONFIG_FB_CFB_COPYAREA=y 673CONFIG_FB_CFB_COPYAREA=y
664CONFIG_FB_CFB_IMAGEBLIT=y 674CONFIG_FB_CFB_IMAGEBLIT=y
665# CONFIG_FB_MACMODES is not set 675# CONFIG_FB_MACMODES is not set
666CONFIG_FB_FIRMWARE_EDID=y 676# CONFIG_FB_BACKLIGHT is not set
667# CONFIG_FB_MODE_HELPERS is not set 677# CONFIG_FB_MODE_HELPERS is not set
668# CONFIG_FB_TILEBLITTING is not set 678# CONFIG_FB_TILEBLITTING is not set
669# CONFIG_FB_S1D13XXX is not set 679# CONFIG_FB_S1D13XXX is not set
@@ -822,6 +832,7 @@ CONFIG_JFFS2_FS=y
822CONFIG_JFFS2_FS_DEBUG=0 832CONFIG_JFFS2_FS_DEBUG=0
823CONFIG_JFFS2_FS_WRITEBUFFER=y 833CONFIG_JFFS2_FS_WRITEBUFFER=y
824# CONFIG_JFFS2_SUMMARY is not set 834# CONFIG_JFFS2_SUMMARY is not set
835# CONFIG_JFFS2_FS_XATTR is not set
825# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 836# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
826CONFIG_JFFS2_ZLIB=y 837CONFIG_JFFS2_ZLIB=y
827CONFIG_JFFS2_RTIME=y 838CONFIG_JFFS2_RTIME=y
@@ -849,6 +860,7 @@ CONFIG_SUNRPC=y
849# CONFIG_RPCSEC_GSS_SPKM3 is not set 860# CONFIG_RPCSEC_GSS_SPKM3 is not set
850# CONFIG_SMB_FS is not set 861# CONFIG_SMB_FS is not set
851# CONFIG_CIFS is not set 862# CONFIG_CIFS is not set
863# CONFIG_CIFS_DEBUG2 is not set
852# CONFIG_NCP_FS is not set 864# CONFIG_NCP_FS is not set
853# CONFIG_CODA_FS is not set 865# CONFIG_CODA_FS is not set
854# CONFIG_AFS_FS is not set 866# CONFIG_AFS_FS is not set
@@ -914,14 +926,19 @@ CONFIG_NLS_ISO8859_1=y
914# 926#
915# CONFIG_PRINTK_TIME is not set 927# CONFIG_PRINTK_TIME is not set
916CONFIG_MAGIC_SYSRQ=y 928CONFIG_MAGIC_SYSRQ=y
929# CONFIG_UNUSED_SYMBOLS is not set
917CONFIG_DEBUG_KERNEL=y 930CONFIG_DEBUG_KERNEL=y
918CONFIG_LOG_BUF_SHIFT=14 931CONFIG_LOG_BUF_SHIFT=14
919CONFIG_DETECT_SOFTLOCKUP=y 932CONFIG_DETECT_SOFTLOCKUP=y
920# CONFIG_SCHEDSTATS is not set 933# CONFIG_SCHEDSTATS is not set
921# CONFIG_DEBUG_SLAB is not set 934# CONFIG_DEBUG_SLAB is not set
922# CONFIG_DEBUG_MUTEXES is not set 935# CONFIG_DEBUG_RT_MUTEXES is not set
936# CONFIG_RT_MUTEX_TESTER is not set
923# CONFIG_DEBUG_SPINLOCK is not set 937# CONFIG_DEBUG_SPINLOCK is not set
938# CONFIG_DEBUG_MUTEXES is not set
939# CONFIG_DEBUG_RWSEMS is not set
924# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 940# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
941# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
925# CONFIG_DEBUG_KOBJECT is not set 942# CONFIG_DEBUG_KOBJECT is not set
926CONFIG_DEBUG_BUGVERBOSE=y 943CONFIG_DEBUG_BUGVERBOSE=y
927CONFIG_DEBUG_INFO=y 944CONFIG_DEBUG_INFO=y
@@ -961,3 +978,4 @@ CONFIG_CRC32=y
961# CONFIG_LIBCRC32C is not set 978# CONFIG_LIBCRC32C is not set
962CONFIG_ZLIB_INFLATE=y 979CONFIG_ZLIB_INFLATE=y
963CONFIG_ZLIB_DEFLATE=y 980CONFIG_ZLIB_DEFLATE=y
981CONFIG_PLIST=y
diff --git a/arch/arm/configs/onearm_defconfig b/arch/arm/configs/onearm_defconfig
index 2b4a63be03f7..6a93e3aae106 100644
--- a/arch/arm/configs/onearm_defconfig
+++ b/arch/arm/configs/onearm_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-git10 3# Linux kernel version: 2.6.18-rc1
4# Mon Jun 26 13:45:44 2006 4# Sun Jul 9 14:16:20 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000 14CONFIG_VECTORS_BASE=0xffff0000
15CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
12 16
13# 17#
14# Code maturity level options 18# Code maturity level options
@@ -42,10 +46,12 @@ CONFIG_PRINTK=y
42CONFIG_BUG=y 46CONFIG_BUG=y
43CONFIG_ELF_CORE=y 47CONFIG_ELF_CORE=y
44CONFIG_BASE_FULL=y 48CONFIG_BASE_FULL=y
49CONFIG_RT_MUTEXES=y
45CONFIG_FUTEX=y 50CONFIG_FUTEX=y
46CONFIG_EPOLL=y 51CONFIG_EPOLL=y
47CONFIG_SHMEM=y 52CONFIG_SHMEM=y
48CONFIG_SLAB=y 53CONFIG_SLAB=y
54CONFIG_VM_EVENT_COUNTERS=y
49# CONFIG_TINY_SHMEM is not set 55# CONFIG_TINY_SHMEM is not set
50CONFIG_BASE_SMALL=0 56CONFIG_BASE_SMALL=0
51# CONFIG_SLOB is not set 57# CONFIG_SLOB is not set
@@ -86,7 +92,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
86# CONFIG_ARCH_REALVIEW is not set 92# CONFIG_ARCH_REALVIEW is not set
87# CONFIG_ARCH_VERSATILE is not set 93# CONFIG_ARCH_VERSATILE is not set
88CONFIG_ARCH_AT91=y 94CONFIG_ARCH_AT91=y
89CONFIG_ARCH_AT91RM9200=y
90# CONFIG_ARCH_CLPS7500 is not set 95# CONFIG_ARCH_CLPS7500 is not set
91# CONFIG_ARCH_CLPS711X is not set 96# CONFIG_ARCH_CLPS711X is not set
92# CONFIG_ARCH_CO285 is not set 97# CONFIG_ARCH_CO285 is not set
@@ -111,8 +116,15 @@ CONFIG_ARCH_AT91RM9200=y
111# CONFIG_ARCH_OMAP is not set 116# CONFIG_ARCH_OMAP is not set
112 117
113# 118#
114# AT91RM9200 Implementations 119# Atmel AT91 System-on-Chip
120#
121
115# 122#
123# Atmel AT91 Processors
124#
125CONFIG_ARCH_AT91RM9200=y
126# CONFIG_ARCH_AT91SAM9260 is not set
127# CONFIG_ARCH_AT91SAM9261 is not set
116 128
117# 129#
118# AT91RM9200 Board Type 130# AT91RM9200 Board Type
@@ -123,12 +135,12 @@ CONFIG_MACH_ONEARM=y
123# CONFIG_MACH_CSB337 is not set 135# CONFIG_MACH_CSB337 is not set
124# CONFIG_MACH_CSB637 is not set 136# CONFIG_MACH_CSB637 is not set
125# CONFIG_MACH_CARMEVA is not set 137# CONFIG_MACH_CARMEVA is not set
126# CONFIG_MACH_KB9200 is not set
127# CONFIG_MACH_ATEB9200 is not set 138# CONFIG_MACH_ATEB9200 is not set
139# CONFIG_MACH_KB9200 is not set
128# CONFIG_MACH_KAFA is not set 140# CONFIG_MACH_KAFA is not set
129 141
130# 142#
131# AT91RM9200 Feature Selections 143# AT91 Feature Selections
132# 144#
133CONFIG_AT91_PROGRAMMABLE_CLOCKS=y 145CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
134 146
@@ -186,6 +198,7 @@ CONFIG_FLATMEM=y
186CONFIG_FLAT_NODE_MEM_MAP=y 198CONFIG_FLAT_NODE_MEM_MAP=y
187# CONFIG_SPARSEMEM_STATIC is not set 199# CONFIG_SPARSEMEM_STATIC is not set
188CONFIG_SPLIT_PTLOCK_CPUS=4096 200CONFIG_SPLIT_PTLOCK_CPUS=4096
201# CONFIG_RESOURCES_64BIT is not set
189CONFIG_LEDS=y 202CONFIG_LEDS=y
190CONFIG_LEDS_TIMER=y 203CONFIG_LEDS_TIMER=y
191# CONFIG_LEDS_CPU is not set 204# CONFIG_LEDS_CPU is not set
@@ -600,6 +613,7 @@ CONFIG_AT91_WATCHDOG=y
600# USB-based Watchdog Cards 613# USB-based Watchdog Cards
601# 614#
602# CONFIG_USBPCWATCHDOG is not set 615# CONFIG_USBPCWATCHDOG is not set
616# CONFIG_HW_RANDOM is not set
603# CONFIG_NVRAM is not set 617# CONFIG_NVRAM is not set
604# CONFIG_DTLK is not set 618# CONFIG_DTLK is not set
605# CONFIG_R3964 is not set 619# CONFIG_R3964 is not set
@@ -743,6 +757,7 @@ CONFIG_VIDEO_V4L2=y
743# 757#
744# Graphics support 758# Graphics support
745# 759#
760# CONFIG_FIRMWARE_EDID is not set
746# CONFIG_FB is not set 761# CONFIG_FB is not set
747 762
748# 763#
@@ -980,6 +995,7 @@ CONFIG_SUNRPC=y
980# CONFIG_RPCSEC_GSS_SPKM3 is not set 995# CONFIG_RPCSEC_GSS_SPKM3 is not set
981# CONFIG_SMB_FS is not set 996# CONFIG_SMB_FS is not set
982# CONFIG_CIFS is not set 997# CONFIG_CIFS is not set
998# CONFIG_CIFS_DEBUG2 is not set
983# CONFIG_NCP_FS is not set 999# CONFIG_NCP_FS is not set
984# CONFIG_CODA_FS is not set 1000# CONFIG_CODA_FS is not set
985# CONFIG_AFS_FS is not set 1001# CONFIG_AFS_FS is not set
@@ -1006,14 +1022,19 @@ CONFIG_MSDOS_PARTITION=y
1006# 1022#
1007# CONFIG_PRINTK_TIME is not set 1023# CONFIG_PRINTK_TIME is not set
1008# CONFIG_MAGIC_SYSRQ is not set 1024# CONFIG_MAGIC_SYSRQ is not set
1025# CONFIG_UNUSED_SYMBOLS is not set
1009CONFIG_DEBUG_KERNEL=y 1026CONFIG_DEBUG_KERNEL=y
1010CONFIG_LOG_BUF_SHIFT=14 1027CONFIG_LOG_BUF_SHIFT=14
1011CONFIG_DETECT_SOFTLOCKUP=y 1028CONFIG_DETECT_SOFTLOCKUP=y
1012# CONFIG_SCHEDSTATS is not set 1029# CONFIG_SCHEDSTATS is not set
1013# CONFIG_DEBUG_SLAB is not set 1030# CONFIG_DEBUG_SLAB is not set
1014# CONFIG_DEBUG_MUTEXES is not set 1031# CONFIG_DEBUG_RT_MUTEXES is not set
1032# CONFIG_RT_MUTEX_TESTER is not set
1015# CONFIG_DEBUG_SPINLOCK is not set 1033# CONFIG_DEBUG_SPINLOCK is not set
1034# CONFIG_DEBUG_MUTEXES is not set
1035# CONFIG_DEBUG_RWSEMS is not set
1016# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1036# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1037# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1017# CONFIG_DEBUG_KOBJECT is not set 1038# CONFIG_DEBUG_KOBJECT is not set
1018CONFIG_DEBUG_BUGVERBOSE=y 1039CONFIG_DEBUG_BUGVERBOSE=y
1019# CONFIG_DEBUG_INFO is not set 1040# CONFIG_DEBUG_INFO is not set
@@ -1052,3 +1073,4 @@ CONFIG_DEBUG_LL=y
1052CONFIG_CRC32=y 1073CONFIG_CRC32=y
1053# CONFIG_LIBCRC32C is not set 1074# CONFIG_LIBCRC32C is not set
1054CONFIG_ZLIB_INFLATE=y 1075CONFIG_ZLIB_INFLATE=y
1076CONFIG_PLIST=y
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index 964faac104fb..240c448ec31c 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -370,17 +370,6 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus)
370 features &= ~(PCI_COMMAND_SERR | PCI_COMMAND_PARITY); 370 features &= ~(PCI_COMMAND_SERR | PCI_COMMAND_PARITY);
371 371
372 switch (dev->class >> 8) { 372 switch (dev->class >> 8) {
373#if defined(CONFIG_ISA) || defined(CONFIG_EISA)
374 case PCI_CLASS_BRIDGE_ISA:
375 case PCI_CLASS_BRIDGE_EISA:
376 /*
377 * If this device is an ISA bridge, set isa_bridge
378 * to point at this device. We will then go looking
379 * for things like keyboard, etc.
380 */
381 isa_bridge = dev;
382 break;
383#endif
384 case PCI_CLASS_BRIDGE_PCI: 373 case PCI_CLASS_BRIDGE_PCI:
385 pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &status); 374 pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &status);
386 status |= PCI_BRIDGE_CTL_PARITY|PCI_BRIDGE_CTL_MASTER_ABORT; 375 status |= PCI_BRIDGE_CTL_PARITY|PCI_BRIDGE_CTL_MASTER_ABORT;
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index c3d4e94ef5bf..626feeec0ade 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -167,6 +167,16 @@ void __init init_IRQ(void)
167} 167}
168 168
169#ifdef CONFIG_HOTPLUG_CPU 169#ifdef CONFIG_HOTPLUG_CPU
170
171static void route_irq(struct irqdesc *desc, unsigned int irq, unsigned int cpu)
172{
173 pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->cpu, cpu);
174
175 spin_lock_irq(&desc->lock);
176 desc->chip->set_affinity(irq, cpumask_of_cpu(cpu));
177 spin_unlock_irq(&desc->lock);
178}
179
170/* 180/*
171 * The CPU has been marked offline. Migrate IRQs off this CPU. If 181 * The CPU has been marked offline. Migrate IRQs off this CPU. If
172 * the affinity settings do not allow other CPUs, force them onto any 182 * the affinity settings do not allow other CPUs, force them onto any
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c
index a6bab50dab61..a0dfa390e34b 100644
--- a/arch/arm/mach-sa1100/collie.c
+++ b/arch/arm/mach-sa1100/collie.c
@@ -83,8 +83,8 @@ static struct scoop_pcmcia_config collie_pcmcia_config = {
83 83
84 84
85static struct mcp_plat_data collie_mcp_data = { 85static struct mcp_plat_data collie_mcp_data = {
86 .mccr0 = MCCR0_ADM, 86 .mccr0 = MCCR0_ADM | MCCR0_ExtClk,
87 .sclk_rate = 11981000, 87 .sclk_rate = 9216000,
88}; 88};
89 89
90#ifdef CONFIG_SHARP_LOCOMO 90#ifdef CONFIG_SHARP_LOCOMO
diff --git a/arch/arm/mach-sa1100/collie_pm.c b/arch/arm/mach-sa1100/collie_pm.c
index 45b1e71f111d..1e25b1d19fce 100644
--- a/arch/arm/mach-sa1100/collie_pm.c
+++ b/arch/arm/mach-sa1100/collie_pm.c
@@ -9,6 +9,9 @@
9 * Li-ion batteries are angry beasts, and they like to explode. This driver is not finished, 9 * Li-ion batteries are angry beasts, and they like to explode. This driver is not finished,
10 * and sometimes charges them when it should not. If it makes angry lithium to come your way... 10 * and sometimes charges them when it should not. If it makes angry lithium to come your way...
11 * ...well, you have been warned. 11 * ...well, you have been warned.
12 *
13 * Actually, this should be quite safe, it seems sharp leaves charger enabled by default,
14 * and my collie did not explode (yet).
12 */ 15 */
13 16
14#include <linux/module.h> 17#include <linux/module.h>
@@ -40,9 +43,8 @@ static void collie_charger_init(void)
40{ 43{
41 int err; 44 int err;
42 45
43 if (sharpsl_param.adadj != -1) { 46 if (sharpsl_param.adadj != -1)
44 ad_revise = sharpsl_param.adadj; 47 ad_revise = sharpsl_param.adadj;
45 }
46 48
47 /* Register interrupt handler. */ 49 /* Register interrupt handler. */
48 if ((err = request_irq(COLLIE_IRQ_GPIO_AC_IN, sharpsl_ac_isr, IRQF_DISABLED, 50 if ((err = request_irq(COLLIE_IRQ_GPIO_AC_IN, sharpsl_ac_isr, IRQF_DISABLED,
@@ -72,27 +74,17 @@ static void collie_measure_temp(int on)
72 74
73static void collie_charge(int on) 75static void collie_charge(int on)
74{ 76{
75 if (on) { 77 extern struct platform_device colliescoop_device;
76 printk("Should start charger\n");
77 } else {
78 printk("Should stop charger\n");
79 }
80#ifdef I_AM_SURE
81 78
82 /* Zaurus seems to contain LTC1731 ; it should know when to 79 /* Zaurus seems to contain LTC1731; it should know when to
83 * stop charging itself, so setting charge on should be 80 * stop charging itself, so setting charge on should be
84 * relatively harmless (as long as it is not done too often). 81 * relatively harmless (as long as it is not done too often).
85 */ 82 */
86#define CF_BUF_CTRL_BASE 0xF0800000
87#define SCOOP_REG(adr) (*(volatile unsigned short*)(CF_BUF_CTRL_BASE+(adr)))
88#define SCOOP_REG_GPWR SCOOP_REG(SCOOP_GPWR)
89
90 if (on) { 83 if (on) {
91 set_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON); 84 set_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON);
92 } else { 85 } else {
93 reset_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON); 86 reset_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON);
94 } 87 }
95#endif
96} 88}
97 89
98static void collie_discharge(int on) 90static void collie_discharge(int on)
@@ -127,7 +119,6 @@ int collie_read_backup_battery(void)
127 119
128 ucb1x00_adc_enable(ucb); 120 ucb1x00_adc_enable(ucb);
129 121
130 /* Gives 75..130 */
131 ucb1x00_io_write(ucb, COLLIE_TC35143_GPIO_BBAT_ON, 0); 122 ucb1x00_io_write(ucb, COLLIE_TC35143_GPIO_BBAT_ON, 0);
132 voltage = ucb1x00_adc_read(ucb, UCB_ADC_INP_AD1, UCB_SYNC); 123 voltage = ucb1x00_adc_read(ucb, UCB_ADC_INP_AD1, UCB_SYNC);
133 124
@@ -146,9 +137,8 @@ int collie_read_main_battery(void)
146 ucb1x00_adc_enable(ucb); 137 ucb1x00_adc_enable(ucb);
147 ucb1x00_io_write(ucb, 0, COLLIE_TC35143_GPIO_BBAT_ON); 138 ucb1x00_io_write(ucb, 0, COLLIE_TC35143_GPIO_BBAT_ON);
148 ucb1x00_io_write(ucb, COLLIE_TC35143_GPIO_MBAT_ON, 0); 139 ucb1x00_io_write(ucb, COLLIE_TC35143_GPIO_MBAT_ON, 0);
149 /* gives values 160..255 with battery removed... and 140
150 145..255 with battery inserted. (on AC), goes as low as 141 mdelay(1);
151 80 on DC. */
152 voltage = ucb1x00_adc_read(ucb, UCB_ADC_INP_AD1, UCB_SYNC); 142 voltage = ucb1x00_adc_read(ucb, UCB_ADC_INP_AD1, UCB_SYNC);
153 143
154 ucb1x00_io_write(ucb, 0, COLLIE_TC35143_GPIO_MBAT_ON); 144 ucb1x00_io_write(ucb, 0, COLLIE_TC35143_GPIO_MBAT_ON);
@@ -192,7 +182,7 @@ static unsigned long read_devdata(int which)
192 case SHARPSL_BATT_TEMP: 182 case SHARPSL_BATT_TEMP:
193 return collie_read_temp(); 183 return collie_read_temp();
194 case SHARPSL_ACIN_VOLT: 184 case SHARPSL_ACIN_VOLT:
195 return 0x1; 185 return 500;
196 case SHARPSL_STATUS_ACIN: { 186 case SHARPSL_STATUS_ACIN: {
197 int ret = GPLR & COLLIE_GPIO_AC_IN; 187 int ret = GPLR & COLLIE_GPIO_AC_IN;
198 printk("AC status = %d\n", ret); 188 printk("AC status = %d\n", ret);
@@ -208,10 +198,33 @@ static unsigned long read_devdata(int which)
208 } 198 }
209} 199}
210 200
201struct battery_thresh collie_battery_levels_acin[] = {
202 { 420, 100},
203 { 417, 95},
204 { 415, 90},
205 { 413, 80},
206 { 411, 75},
207 { 408, 70},
208 { 406, 60},
209 { 403, 50},
210 { 398, 40},
211 { 391, 25},
212 { 10, 5},
213 { 0, 0},
214};
215
211struct battery_thresh collie_battery_levels[] = { 216struct battery_thresh collie_battery_levels[] = {
212 { 368, 100}, 217 { 394, 100},
213 { 358, 25}, 218 { 390, 95},
214 { 356, 5}, 219 { 380, 90},
220 { 370, 80},
221 { 368, 75}, /* From sharp code: battery high with frontlight */
222 { 366, 70}, /* 60..90 -- fake values invented by me for testing */
223 { 364, 60},
224 { 362, 50},
225 { 360, 40},
226 { 358, 25}, /* From sharp code: battery low with frontlight */
227 { 356, 5}, /* From sharp code: battery verylow with frontlight */
215 { 0, 0}, 228 { 0, 0},
216}; 229};
217 230
@@ -226,13 +239,21 @@ struct sharpsl_charger_machinfo collie_pm_machinfo = {
226 .postsuspend = collie_postsuspend, 239 .postsuspend = collie_postsuspend,
227 .charger_wakeup = collie_charger_wakeup, 240 .charger_wakeup = collie_charger_wakeup,
228 .should_wakeup = collie_should_wakeup, 241 .should_wakeup = collie_should_wakeup,
229 .bat_levels = 3, 242 .bat_levels = 12,
230 .bat_levels_noac = collie_battery_levels, 243 .bat_levels_noac = collie_battery_levels,
231 .bat_levels_acin = collie_battery_levels, 244 .bat_levels_acin = collie_battery_levels_acin,
232 .status_high_acin = 368, 245 .status_high_acin = 368,
233 .status_low_acin = 358, 246 .status_low_acin = 358,
234 .status_high_noac = 368, 247 .status_high_noac = 368,
235 .status_low_noac = 358, 248 .status_low_noac = 358,
249 .charge_on_volt = 350, /* spitz uses 2.90V, but lets play it safe. */
250 .charge_on_temp = 550,
251 .charge_acin_high = 550, /* collie does not seem to have sensor for this, anyway */
252 .charge_acin_low = 450, /* ignored, too */
253 .fatal_acin_volt = 356,
254 .fatal_noacin_volt = 356,
255
256 .batfull_irq = 1, /* We do not want periodical charge restarts */
236}; 257};
237 258
238static int __init collie_pm_ucb_add(struct ucb1x00_dev *pdev) 259static int __init collie_pm_ucb_add(struct ucb1x00_dev *pdev)
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index a432539cc1bd..864377176015 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -35,6 +35,7 @@
35#include <asm/hardware/arm_timer.h> 35#include <asm/hardware/arm_timer.h>
36#include <asm/hardware/icst307.h> 36#include <asm/hardware/icst307.h>
37#include <asm/hardware/vic.h> 37#include <asm/hardware/vic.h>
38#include <asm/mach-types.h>
38 39
39#include <asm/mach/arch.h> 40#include <asm/mach/arch.h>
40#include <asm/mach/flash.h> 41#include <asm/mach/flash.h>
@@ -352,11 +353,7 @@ static const struct icst307_params versatile_oscvco_params = {
352static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco) 353static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco)
353{ 354{
354 void __iomem *sys_lock = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET; 355 void __iomem *sys_lock = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET;
355#if defined(CONFIG_ARCH_VERSATILE_PB) 356 void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSCCLCD_OFFSET;
356 void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC4_OFFSET;
357#elif defined(CONFIG_MACH_VERSATILE_AB)
358 void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC1_OFFSET;
359#endif
360 u32 val; 357 u32 val;
361 358
362 val = readl(sys_osc) & ~0x7ffff; 359 val = readl(sys_osc) & ~0x7ffff;
@@ -529,7 +526,7 @@ static void versatile_clcd_disable(struct clcd_fb *fb)
529 /* 526 /*
530 * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off 527 * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off
531 */ 528 */
532 if (fb->panel == &sanyo_2_5_in) { 529 if (machine_is_versatile_ab() && fb->panel == &sanyo_2_5_in) {
533 void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL); 530 void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL);
534 unsigned long ctrl; 531 unsigned long ctrl;
535 532
@@ -578,7 +575,7 @@ static void versatile_clcd_enable(struct clcd_fb *fb)
578 /* 575 /*
579 * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on 576 * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on
580 */ 577 */
581 if (fb->panel == &sanyo_2_5_in) { 578 if (machine_is_versatile_ab() && fb->panel == &sanyo_2_5_in) {
582 void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL); 579 void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL);
583 unsigned long ctrl; 580 unsigned long ctrl;
584 581
diff --git a/arch/arm/nwfpe/softfloat.h b/arch/arm/nwfpe/softfloat.h
index e1125bc39ee4..0a3067452cd2 100644
--- a/arch/arm/nwfpe/softfloat.h
+++ b/arch/arm/nwfpe/softfloat.h
@@ -61,7 +61,7 @@ typedef struct {
61 u16 __padding; 61 u16 __padding;
62#endif 62#endif
63 u64 low; 63 u64 low;
64} floatx80; 64} __attribute__ ((packed,aligned(4))) floatx80;
65 65
66/* 66/*
67------------------------------------------------------------------------------- 67-------------------------------------------------------------------------------
diff --git a/arch/sparc/kernel/of_device.c b/arch/sparc/kernel/of_device.c
index bc956c530376..5a2faad5d043 100644
--- a/arch/sparc/kernel/of_device.c
+++ b/arch/sparc/kernel/of_device.c
@@ -183,7 +183,7 @@ struct bus_type of_bus_type = {
183}; 183};
184EXPORT_SYMBOL(of_bus_type); 184EXPORT_SYMBOL(of_bus_type);
185 185
186static inline u64 of_read_addr(u32 *cell, int size) 186static inline u64 of_read_addr(const u32 *cell, int size)
187{ 187{
188 u64 r = 0; 188 u64 r = 0;
189 while (size--) 189 while (size--)
@@ -209,8 +209,8 @@ struct of_bus {
209 int (*match)(struct device_node *parent); 209 int (*match)(struct device_node *parent);
210 void (*count_cells)(struct device_node *child, 210 void (*count_cells)(struct device_node *child,
211 int *addrc, int *sizec); 211 int *addrc, int *sizec);
212 u64 (*map)(u32 *addr, u32 *range, int na, int ns, int pna); 212 int (*map)(u32 *addr, const u32 *range,
213 int (*translate)(u32 *addr, u64 offset, int na); 213 int na, int ns, int pna);
214 unsigned int (*get_flags)(u32 *addr); 214 unsigned int (*get_flags)(u32 *addr);
215}; 215};
216 216
@@ -224,27 +224,49 @@ static void of_bus_default_count_cells(struct device_node *dev,
224 get_cells(dev, addrc, sizec); 224 get_cells(dev, addrc, sizec);
225} 225}
226 226
227static u64 of_bus_default_map(u32 *addr, u32 *range, int na, int ns, int pna) 227/* Make sure the least significant 64-bits are in-range. Even
228 * for 3 or 4 cell values it is a good enough approximation.
229 */
230static int of_out_of_range(const u32 *addr, const u32 *base,
231 const u32 *size, int na, int ns)
228{ 232{
229 u64 cp, s, da; 233 u64 a = of_read_addr(addr, na);
234 u64 b = of_read_addr(base, na);
235
236 if (a < b)
237 return 1;
230 238
231 cp = of_read_addr(range, na); 239 b += of_read_addr(size, ns);
232 s = of_read_addr(range + na + pna, ns); 240 if (a >= b)
233 da = of_read_addr(addr, na); 241 return 1;
234 242
235 if (da < cp || da >= (cp + s)) 243 return 0;
236 return OF_BAD_ADDR;
237 return da - cp;
238} 244}
239 245
240static int of_bus_default_translate(u32 *addr, u64 offset, int na) 246static int of_bus_default_map(u32 *addr, const u32 *range,
247 int na, int ns, int pna)
241{ 248{
242 u64 a = of_read_addr(addr, na); 249 u32 result[OF_MAX_ADDR_CELLS];
243 memset(addr, 0, na * 4); 250 int i;
244 a += offset; 251
245 if (na > 1) 252 if (ns > 2) {
246 addr[na - 2] = a >> 32; 253 printk("of_device: Cannot handle size cells (%d) > 2.", ns);
247 addr[na - 1] = a & 0xffffffffu; 254 return -EINVAL;
255 }
256
257 if (of_out_of_range(addr, range, range + na + pna, na, ns))
258 return -EINVAL;
259
260 /* Start with the parent range base. */
261 memcpy(result, range + na, pna * 4);
262
263 /* Add in the child address offset. */
264 for (i = 0; i < na; i++)
265 result[pna - 1 - i] +=
266 (addr[na - 1 - i] -
267 range[na - 1 - i]);
268
269 memcpy(addr, result, pna * 4);
248 270
249 return 0; 271 return 0;
250} 272}
@@ -254,14 +276,26 @@ static unsigned int of_bus_default_get_flags(u32 *addr)
254 return IORESOURCE_MEM; 276 return IORESOURCE_MEM;
255} 277}
256 278
257
258/* 279/*
259 * PCI bus specific translator 280 * PCI bus specific translator
260 */ 281 */
261 282
262static int of_bus_pci_match(struct device_node *np) 283static int of_bus_pci_match(struct device_node *np)
263{ 284{
264 return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex"); 285 if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) {
286 /* Do not do PCI specific frobbing if the
287 * PCI bridge lacks a ranges property. We
288 * want to pass it through up to the next
289 * parent as-is, not with the PCI translate
290 * method which chops off the top address cell.
291 */
292 if (!of_find_property(np, "ranges", NULL))
293 return 0;
294
295 return 1;
296 }
297
298 return 0;
265} 299}
266 300
267static void of_bus_pci_count_cells(struct device_node *np, 301static void of_bus_pci_count_cells(struct device_node *np,
@@ -273,27 +307,32 @@ static void of_bus_pci_count_cells(struct device_node *np,
273 *sizec = 2; 307 *sizec = 2;
274} 308}
275 309
276static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna) 310static int of_bus_pci_map(u32 *addr, const u32 *range,
311 int na, int ns, int pna)
277{ 312{
278 u64 cp, s, da; 313 u32 result[OF_MAX_ADDR_CELLS];
314 int i;
279 315
280 /* Check address type match */ 316 /* Check address type match */
281 if ((addr[0] ^ range[0]) & 0x03000000) 317 if ((addr[0] ^ range[0]) & 0x03000000)
282 return OF_BAD_ADDR; 318 return -EINVAL;
283 319
284 /* Read address values, skipping high cell */ 320 if (of_out_of_range(addr + 1, range + 1, range + na + pna,
285 cp = of_read_addr(range + 1, na - 1); 321 na - 1, ns))
286 s = of_read_addr(range + na + pna, ns); 322 return -EINVAL;
287 da = of_read_addr(addr + 1, na - 1);
288 323
289 if (da < cp || da >= (cp + s)) 324 /* Start with the parent range base. */
290 return OF_BAD_ADDR; 325 memcpy(result, range + na, pna * 4);
291 return da - cp;
292}
293 326
294static int of_bus_pci_translate(u32 *addr, u64 offset, int na) 327 /* Add in the child address offset, skipping high cell. */
295{ 328 for (i = 0; i < na - 1; i++)
296 return of_bus_default_translate(addr + 1, offset, na - 1); 329 result[pna - 1 - i] +=
330 (addr[na - 1 - i] -
331 range[na - 1 - i]);
332
333 memcpy(addr, result, pna * 4);
334
335 return 0;
297} 336}
298 337
299static unsigned int of_bus_pci_get_flags(u32 *addr) 338static unsigned int of_bus_pci_get_flags(u32 *addr)
@@ -332,16 +371,11 @@ static void of_bus_sbus_count_cells(struct device_node *child,
332 *sizec = 1; 371 *sizec = 1;
333} 372}
334 373
335static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna) 374static int of_bus_sbus_map(u32 *addr, const u32 *range, int na, int ns, int pna)
336{ 375{
337 return of_bus_default_map(addr, range, na, ns, pna); 376 return of_bus_default_map(addr, range, na, ns, pna);
338} 377}
339 378
340static int of_bus_sbus_translate(u32 *addr, u64 offset, int na)
341{
342 return of_bus_default_translate(addr, offset, na);
343}
344
345static unsigned int of_bus_sbus_get_flags(u32 *addr) 379static unsigned int of_bus_sbus_get_flags(u32 *addr)
346{ 380{
347 return IORESOURCE_MEM; 381 return IORESOURCE_MEM;
@@ -360,7 +394,6 @@ static struct of_bus of_busses[] = {
360 .match = of_bus_pci_match, 394 .match = of_bus_pci_match,
361 .count_cells = of_bus_pci_count_cells, 395 .count_cells = of_bus_pci_count_cells,
362 .map = of_bus_pci_map, 396 .map = of_bus_pci_map,
363 .translate = of_bus_pci_translate,
364 .get_flags = of_bus_pci_get_flags, 397 .get_flags = of_bus_pci_get_flags,
365 }, 398 },
366 /* SBUS */ 399 /* SBUS */
@@ -370,7 +403,6 @@ static struct of_bus of_busses[] = {
370 .match = of_bus_sbus_match, 403 .match = of_bus_sbus_match,
371 .count_cells = of_bus_sbus_count_cells, 404 .count_cells = of_bus_sbus_count_cells,
372 .map = of_bus_sbus_map, 405 .map = of_bus_sbus_map,
373 .translate = of_bus_sbus_translate,
374 .get_flags = of_bus_sbus_get_flags, 406 .get_flags = of_bus_sbus_get_flags,
375 }, 407 },
376 /* Default */ 408 /* Default */
@@ -380,7 +412,6 @@ static struct of_bus of_busses[] = {
380 .match = NULL, 412 .match = NULL,
381 .count_cells = of_bus_default_count_cells, 413 .count_cells = of_bus_default_count_cells,
382 .map = of_bus_default_map, 414 .map = of_bus_default_map,
383 .translate = of_bus_default_translate,
384 .get_flags = of_bus_default_get_flags, 415 .get_flags = of_bus_default_get_flags,
385 }, 416 },
386}; 417};
@@ -405,33 +436,34 @@ static int __init build_one_resource(struct device_node *parent,
405 u32 *ranges; 436 u32 *ranges;
406 unsigned int rlen; 437 unsigned int rlen;
407 int rone; 438 int rone;
408 u64 offset = OF_BAD_ADDR;
409 439
410 ranges = of_get_property(parent, "ranges", &rlen); 440 ranges = of_get_property(parent, "ranges", &rlen);
411 if (ranges == NULL || rlen == 0) { 441 if (ranges == NULL || rlen == 0) {
412 offset = of_read_addr(addr, na); 442 u32 result[OF_MAX_ADDR_CELLS];
413 memset(addr, 0, pna * 4); 443 int i;
414 goto finish; 444
445 memset(result, 0, pna * 4);
446 for (i = 0; i < na; i++)
447 result[pna - 1 - i] =
448 addr[na - 1 - i];
449
450 memcpy(addr, result, pna * 4);
451 return 0;
415 } 452 }
416 453
417 /* Now walk through the ranges */ 454 /* Now walk through the ranges */
418 rlen /= 4; 455 rlen /= 4;
419 rone = na + pna + ns; 456 rone = na + pna + ns;
420 for (; rlen >= rone; rlen -= rone, ranges += rone) { 457 for (; rlen >= rone; rlen -= rone, ranges += rone) {
421 offset = bus->map(addr, ranges, na, ns, pna); 458 if (!bus->map(addr, ranges, na, ns, pna))
422 if (offset != OF_BAD_ADDR) 459 return 0;
423 break;
424 } 460 }
425 if (offset == OF_BAD_ADDR)
426 return 1;
427 461
428 memcpy(addr, ranges + na, 4 * pna); 462 return 1;
429
430finish:
431 /* Translate it into parent bus space */
432 return pbus->translate(addr, offset, pna);
433} 463}
434 464
465static int of_resource_verbose;
466
435static void __init build_device_resources(struct of_device *op, 467static void __init build_device_resources(struct of_device *op,
436 struct device *parent) 468 struct device *parent)
437{ 469{
@@ -497,7 +529,8 @@ static void __init build_device_resources(struct of_device *op,
497 pbus = of_match_bus(pp); 529 pbus = of_match_bus(pp);
498 pbus->count_cells(dp, &pna, &pns); 530 pbus->count_cells(dp, &pna, &pns);
499 531
500 if (build_one_resource(dp, bus, pbus, addr, dna, dns, pna)) 532 if (build_one_resource(dp, bus, pbus, addr,
533 dna, dns, pna))
501 break; 534 break;
502 535
503 dna = pna; 536 dna = pna;
@@ -507,6 +540,12 @@ static void __init build_device_resources(struct of_device *op,
507 540
508 build_res: 541 build_res:
509 memset(r, 0, sizeof(*r)); 542 memset(r, 0, sizeof(*r));
543
544 if (of_resource_verbose)
545 printk("%s reg[%d] -> %llx\n",
546 op->node->full_name, index,
547 result);
548
510 if (result != OF_BAD_ADDR) { 549 if (result != OF_BAD_ADDR) {
511 r->start = result & 0xffffffff; 550 r->start = result & 0xffffffff;
512 r->end = result + size - 1; 551 r->end = result + size - 1;
@@ -643,6 +682,18 @@ static int __init of_bus_driver_init(void)
643 682
644postcore_initcall(of_bus_driver_init); 683postcore_initcall(of_bus_driver_init);
645 684
685static int __init of_debug(char *str)
686{
687 int val = 0;
688
689 get_option(&str, &val);
690 if (val & 1)
691 of_resource_verbose = 1;
692 return 1;
693}
694
695__setup("of_debug=", of_debug);
696
646int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) 697int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus)
647{ 698{
648 /* initialize common driver fields */ 699 /* initialize common driver fields */
@@ -695,9 +746,11 @@ int of_device_register(struct of_device *ofdev)
695 if (rc) 746 if (rc)
696 return rc; 747 return rc;
697 748
698 device_create_file(&ofdev->dev, &dev_attr_devspec); 749 rc = device_create_file(&ofdev->dev, &dev_attr_devspec);
750 if (rc)
751 device_unregister(&ofdev->dev);
699 752
700 return 0; 753 return rc;
701} 754}
702 755
703void of_device_unregister(struct of_device *ofdev) 756void of_device_unregister(struct of_device *ofdev)
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index b2f41147d0e4..38353621069e 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17 3# Linux kernel version: 2.6.18-rc1
4# Fri Jun 23 23:17:09 2006 4# Wed Jul 12 14:00:58 2006
5# 5#
6CONFIG_SPARC=y 6CONFIG_SPARC=y
7CONFIG_SPARC64=y 7CONFIG_SPARC64=y
@@ -18,6 +18,7 @@ CONFIG_SECCOMP=y
18CONFIG_HZ_250=y 18CONFIG_HZ_250=y
19# CONFIG_HZ_1000 is not set 19# CONFIG_HZ_1000 is not set
20CONFIG_HZ=250 20CONFIG_HZ=250
21CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21 22
22# 23#
23# Code maturity level options 24# Code maturity level options
@@ -51,10 +52,12 @@ CONFIG_PRINTK=y
51CONFIG_BUG=y 52CONFIG_BUG=y
52CONFIG_ELF_CORE=y 53CONFIG_ELF_CORE=y
53CONFIG_BASE_FULL=y 54CONFIG_BASE_FULL=y
55CONFIG_RT_MUTEXES=y
54CONFIG_FUTEX=y 56CONFIG_FUTEX=y
55CONFIG_EPOLL=y 57CONFIG_EPOLL=y
56CONFIG_SHMEM=y 58CONFIG_SHMEM=y
57CONFIG_SLAB=y 59CONFIG_SLAB=y
60CONFIG_VM_EVENT_COUNTERS=y
58# CONFIG_TINY_SHMEM is not set 61# CONFIG_TINY_SHMEM is not set
59CONFIG_BASE_SMALL=0 62CONFIG_BASE_SMALL=0
60# CONFIG_SLOB is not set 63# CONFIG_SLOB is not set
@@ -127,8 +130,8 @@ CONFIG_SPARSEMEM=y
127CONFIG_HAVE_MEMORY_PRESENT=y 130CONFIG_HAVE_MEMORY_PRESENT=y
128# CONFIG_SPARSEMEM_STATIC is not set 131# CONFIG_SPARSEMEM_STATIC is not set
129CONFIG_SPARSEMEM_EXTREME=y 132CONFIG_SPARSEMEM_EXTREME=y
130CONFIG_MEMORY_HOTPLUG=y
131CONFIG_SPLIT_PTLOCK_CPUS=4 133CONFIG_SPLIT_PTLOCK_CPUS=4
134CONFIG_RESOURCES_64BIT=y
132CONFIG_GENERIC_ISA_DMA=y 135CONFIG_GENERIC_ISA_DMA=y
133CONFIG_SBUS=y 136CONFIG_SBUS=y
134CONFIG_SBUSCHAR=y 137CONFIG_SBUSCHAR=y
@@ -203,7 +206,6 @@ CONFIG_TCP_CONG_VEGAS=m
203CONFIG_TCP_CONG_SCALABLE=m 206CONFIG_TCP_CONG_SCALABLE=m
204CONFIG_TCP_CONG_LP=m 207CONFIG_TCP_CONG_LP=m
205CONFIG_TCP_CONG_VENO=m 208CONFIG_TCP_CONG_VENO=m
206CONFIG_TCP_CONG_COMPOUND=m
207CONFIG_IPV6=m 209CONFIG_IPV6=m
208CONFIG_IPV6_PRIVACY=y 210CONFIG_IPV6_PRIVACY=y
209CONFIG_IPV6_ROUTER_PREF=y 211CONFIG_IPV6_ROUTER_PREF=y
@@ -461,9 +463,8 @@ CONFIG_MD_LINEAR=m
461CONFIG_MD_RAID0=m 463CONFIG_MD_RAID0=m
462CONFIG_MD_RAID1=m 464CONFIG_MD_RAID1=m
463CONFIG_MD_RAID10=m 465CONFIG_MD_RAID10=m
464CONFIG_MD_RAID5=m 466CONFIG_MD_RAID456=m
465# CONFIG_MD_RAID5_RESHAPE is not set 467# CONFIG_MD_RAID5_RESHAPE is not set
466CONFIG_MD_RAID6=m
467CONFIG_MD_MULTIPATH=m 468CONFIG_MD_MULTIPATH=m
468# CONFIG_MD_FAULTY is not set 469# CONFIG_MD_FAULTY is not set
469CONFIG_BLK_DEV_DM=m 470CONFIG_BLK_DEV_DM=m
@@ -663,6 +664,7 @@ CONFIG_SERIO_RAW=m
663CONFIG_VT=y 664CONFIG_VT=y
664CONFIG_VT_CONSOLE=y 665CONFIG_VT_CONSOLE=y
665CONFIG_HW_CONSOLE=y 666CONFIG_HW_CONSOLE=y
667# CONFIG_VT_HW_CONSOLE_BINDING is not set
666# CONFIG_SERIAL_NONSTANDARD is not set 668# CONFIG_SERIAL_NONSTANDARD is not set
667 669
668# 670#
@@ -693,6 +695,7 @@ CONFIG_UNIX98_PTYS=y
693# Watchdog Cards 695# Watchdog Cards
694# 696#
695# CONFIG_WATCHDOG is not set 697# CONFIG_WATCHDOG is not set
698# CONFIG_HW_RANDOM is not set
696CONFIG_RTC=y 699CONFIG_RTC=y
697# CONFIG_DTLK is not set 700# CONFIG_DTLK is not set
698# CONFIG_R3964 is not set 701# CONFIG_R3964 is not set
@@ -839,12 +842,13 @@ CONFIG_VIDEO_V4L2=y
839# 842#
840# Graphics support 843# Graphics support
841# 844#
845# CONFIG_FIRMWARE_EDID is not set
842CONFIG_FB=y 846CONFIG_FB=y
843CONFIG_FB_CFB_FILLRECT=y 847CONFIG_FB_CFB_FILLRECT=y
844CONFIG_FB_CFB_COPYAREA=y 848CONFIG_FB_CFB_COPYAREA=y
845CONFIG_FB_CFB_IMAGEBLIT=y 849CONFIG_FB_CFB_IMAGEBLIT=y
846# CONFIG_FB_MACMODES is not set 850# CONFIG_FB_MACMODES is not set
847# CONFIG_FB_FIRMWARE_EDID is not set 851# CONFIG_FB_BACKLIGHT is not set
848CONFIG_FB_MODE_HELPERS=y 852CONFIG_FB_MODE_HELPERS=y
849CONFIG_FB_TILEBLITTING=y 853CONFIG_FB_TILEBLITTING=y
850# CONFIG_FB_CIRRUS is not set 854# CONFIG_FB_CIRRUS is not set
@@ -954,6 +958,18 @@ CONFIG_SND_ALI5451=m
954# CONFIG_SND_CMIPCI is not set 958# CONFIG_SND_CMIPCI is not set
955# CONFIG_SND_CS4281 is not set 959# CONFIG_SND_CS4281 is not set
956# CONFIG_SND_CS46XX is not set 960# CONFIG_SND_CS46XX is not set
961# CONFIG_SND_DARLA20 is not set
962# CONFIG_SND_GINA20 is not set
963# CONFIG_SND_LAYLA20 is not set
964# CONFIG_SND_DARLA24 is not set
965# CONFIG_SND_GINA24 is not set
966# CONFIG_SND_LAYLA24 is not set
967# CONFIG_SND_MONA is not set
968# CONFIG_SND_MIA is not set
969# CONFIG_SND_ECHO3G is not set
970# CONFIG_SND_INDIGO is not set
971# CONFIG_SND_INDIGOIO is not set
972# CONFIG_SND_INDIGODJ is not set
957# CONFIG_SND_EMU10K1 is not set 973# CONFIG_SND_EMU10K1 is not set
958# CONFIG_SND_EMU10K1X is not set 974# CONFIG_SND_EMU10K1X is not set
959# CONFIG_SND_ENS1370 is not set 975# CONFIG_SND_ENS1370 is not set
@@ -1263,6 +1279,7 @@ CONFIG_RAMFS=y
1263# CONFIG_NFSD is not set 1279# CONFIG_NFSD is not set
1264# CONFIG_SMB_FS is not set 1280# CONFIG_SMB_FS is not set
1265# CONFIG_CIFS is not set 1281# CONFIG_CIFS is not set
1282# CONFIG_CIFS_DEBUG2 is not set
1266# CONFIG_NCP_FS is not set 1283# CONFIG_NCP_FS is not set
1267# CONFIG_CODA_FS is not set 1284# CONFIG_CODA_FS is not set
1268# CONFIG_AFS_FS is not set 1285# CONFIG_AFS_FS is not set
@@ -1331,14 +1348,19 @@ CONFIG_KPROBES=y
1331# 1348#
1332CONFIG_PRINTK_TIME=y 1349CONFIG_PRINTK_TIME=y
1333CONFIG_MAGIC_SYSRQ=y 1350CONFIG_MAGIC_SYSRQ=y
1351# CONFIG_UNUSED_SYMBOLS is not set
1334CONFIG_DEBUG_KERNEL=y 1352CONFIG_DEBUG_KERNEL=y
1335CONFIG_LOG_BUF_SHIFT=18 1353CONFIG_LOG_BUF_SHIFT=18
1336CONFIG_DETECT_SOFTLOCKUP=y 1354CONFIG_DETECT_SOFTLOCKUP=y
1337CONFIG_SCHEDSTATS=y 1355CONFIG_SCHEDSTATS=y
1338# CONFIG_DEBUG_SLAB is not set 1356# CONFIG_DEBUG_SLAB is not set
1339# CONFIG_DEBUG_MUTEXES is not set 1357# CONFIG_DEBUG_RT_MUTEXES is not set
1358# CONFIG_RT_MUTEX_TESTER is not set
1340# CONFIG_DEBUG_SPINLOCK is not set 1359# CONFIG_DEBUG_SPINLOCK is not set
1360# CONFIG_DEBUG_MUTEXES is not set
1361# CONFIG_DEBUG_RWSEMS is not set
1341# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1362# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1363# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1342# CONFIG_DEBUG_KOBJECT is not set 1364# CONFIG_DEBUG_KOBJECT is not set
1343CONFIG_DEBUG_BUGVERBOSE=y 1365CONFIG_DEBUG_BUGVERBOSE=y
1344# CONFIG_DEBUG_INFO is not set 1366# CONFIG_DEBUG_INFO is not set
@@ -1402,3 +1424,4 @@ CONFIG_CRC32=y
1402CONFIG_LIBCRC32C=m 1424CONFIG_LIBCRC32C=m
1403CONFIG_ZLIB_INFLATE=y 1425CONFIG_ZLIB_INFLATE=y
1404CONFIG_ZLIB_DEFLATE=y 1426CONFIG_ZLIB_DEFLATE=y
1427CONFIG_PLIST=y
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c
index 169b017eec0b..7064cee290ae 100644
--- a/arch/sparc64/kernel/of_device.c
+++ b/arch/sparc64/kernel/of_device.c
@@ -210,7 +210,7 @@ struct bus_type of_bus_type = {
210}; 210};
211EXPORT_SYMBOL(of_bus_type); 211EXPORT_SYMBOL(of_bus_type);
212 212
213static inline u64 of_read_addr(u32 *cell, int size) 213static inline u64 of_read_addr(const u32 *cell, int size)
214{ 214{
215 u64 r = 0; 215 u64 r = 0;
216 while (size--) 216 while (size--)
@@ -236,8 +236,8 @@ struct of_bus {
236 int (*match)(struct device_node *parent); 236 int (*match)(struct device_node *parent);
237 void (*count_cells)(struct device_node *child, 237 void (*count_cells)(struct device_node *child,
238 int *addrc, int *sizec); 238 int *addrc, int *sizec);
239 u64 (*map)(u32 *addr, u32 *range, int na, int ns, int pna); 239 int (*map)(u32 *addr, const u32 *range,
240 int (*translate)(u32 *addr, u64 offset, int na); 240 int na, int ns, int pna);
241 unsigned int (*get_flags)(u32 *addr); 241 unsigned int (*get_flags)(u32 *addr);
242}; 242};
243 243
@@ -251,27 +251,49 @@ static void of_bus_default_count_cells(struct device_node *dev,
251 get_cells(dev, addrc, sizec); 251 get_cells(dev, addrc, sizec);
252} 252}
253 253
254static u64 of_bus_default_map(u32 *addr, u32 *range, int na, int ns, int pna) 254/* Make sure the least significant 64-bits are in-range. Even
255 * for 3 or 4 cell values it is a good enough approximation.
256 */
257static int of_out_of_range(const u32 *addr, const u32 *base,
258 const u32 *size, int na, int ns)
255{ 259{
256 u64 cp, s, da; 260 u64 a = of_read_addr(addr, na);
261 u64 b = of_read_addr(base, na);
257 262
258 cp = of_read_addr(range, na); 263 if (a < b)
259 s = of_read_addr(range + na + pna, ns); 264 return 1;
260 da = of_read_addr(addr, na);
261 265
262 if (da < cp || da >= (cp + s)) 266 b += of_read_addr(size, ns);
263 return OF_BAD_ADDR; 267 if (a >= b)
264 return da - cp; 268 return 1;
269
270 return 0;
265} 271}
266 272
267static int of_bus_default_translate(u32 *addr, u64 offset, int na) 273static int of_bus_default_map(u32 *addr, const u32 *range,
274 int na, int ns, int pna)
268{ 275{
269 u64 a = of_read_addr(addr, na); 276 u32 result[OF_MAX_ADDR_CELLS];
270 memset(addr, 0, na * 4); 277 int i;
271 a += offset; 278
272 if (na > 1) 279 if (ns > 2) {
273 addr[na - 2] = a >> 32; 280 printk("of_device: Cannot handle size cells (%d) > 2.", ns);
274 addr[na - 1] = a & 0xffffffffu; 281 return -EINVAL;
282 }
283
284 if (of_out_of_range(addr, range, range + na + pna, na, ns))
285 return -EINVAL;
286
287 /* Start with the parent range base. */
288 memcpy(result, range + na, pna * 4);
289
290 /* Add in the child address offset. */
291 for (i = 0; i < na; i++)
292 result[pna - 1 - i] +=
293 (addr[na - 1 - i] -
294 range[na - 1 - i]);
295
296 memcpy(addr, result, pna * 4);
275 297
276 return 0; 298 return 0;
277} 299}
@@ -287,7 +309,20 @@ static unsigned int of_bus_default_get_flags(u32 *addr)
287 309
288static int of_bus_pci_match(struct device_node *np) 310static int of_bus_pci_match(struct device_node *np)
289{ 311{
290 return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex"); 312 if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) {
313 /* Do not do PCI specific frobbing if the
314 * PCI bridge lacks a ranges property. We
315 * want to pass it through up to the next
316 * parent as-is, not with the PCI translate
317 * method which chops off the top address cell.
318 */
319 if (!of_find_property(np, "ranges", NULL))
320 return 0;
321
322 return 1;
323 }
324
325 return 0;
291} 326}
292 327
293static void of_bus_pci_count_cells(struct device_node *np, 328static void of_bus_pci_count_cells(struct device_node *np,
@@ -299,27 +334,32 @@ static void of_bus_pci_count_cells(struct device_node *np,
299 *sizec = 2; 334 *sizec = 2;
300} 335}
301 336
302static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna) 337static int of_bus_pci_map(u32 *addr, const u32 *range,
338 int na, int ns, int pna)
303{ 339{
304 u64 cp, s, da; 340 u32 result[OF_MAX_ADDR_CELLS];
341 int i;
305 342
306 /* Check address type match */ 343 /* Check address type match */
307 if ((addr[0] ^ range[0]) & 0x03000000) 344 if ((addr[0] ^ range[0]) & 0x03000000)
308 return OF_BAD_ADDR; 345 return -EINVAL;
309 346
310 /* Read address values, skipping high cell */ 347 if (of_out_of_range(addr + 1, range + 1, range + na + pna,
311 cp = of_read_addr(range + 1, na - 1); 348 na - 1, ns))
312 s = of_read_addr(range + na + pna, ns); 349 return -EINVAL;
313 da = of_read_addr(addr + 1, na - 1);
314 350
315 if (da < cp || da >= (cp + s)) 351 /* Start with the parent range base. */
316 return OF_BAD_ADDR; 352 memcpy(result, range + na, pna * 4);
317 return da - cp;
318}
319 353
320static int of_bus_pci_translate(u32 *addr, u64 offset, int na) 354 /* Add in the child address offset, skipping high cell. */
321{ 355 for (i = 0; i < na - 1; i++)
322 return of_bus_default_translate(addr + 1, offset, na - 1); 356 result[pna - 1 - i] +=
357 (addr[na - 1 - i] -
358 range[na - 1 - i]);
359
360 memcpy(addr, result, pna * 4);
361
362 return 0;
323} 363}
324 364
325static unsigned int of_bus_pci_get_flags(u32 *addr) 365static unsigned int of_bus_pci_get_flags(u32 *addr)
@@ -340,59 +380,6 @@ static unsigned int of_bus_pci_get_flags(u32 *addr)
340} 380}
341 381
342/* 382/*
343 * ISA bus specific translator
344 */
345
346static int of_bus_isa_match(struct device_node *np)
347{
348 return !strcmp(np->name, "isa");
349}
350
351static void of_bus_isa_count_cells(struct device_node *child,
352 int *addrc, int *sizec)
353{
354 if (addrc)
355 *addrc = 2;
356 if (sizec)
357 *sizec = 1;
358}
359
360static u64 of_bus_isa_map(u32 *addr, u32 *range, int na, int ns, int pna)
361{
362 u64 cp, s, da;
363
364 /* Check address type match */
365 if ((addr[0] ^ range[0]) & 0x00000001)
366 return OF_BAD_ADDR;
367
368 /* Read address values, skipping high cell */
369 cp = of_read_addr(range + 1, na - 1);
370 s = of_read_addr(range + na + pna, ns);
371 da = of_read_addr(addr + 1, na - 1);
372
373 if (da < cp || da >= (cp + s))
374 return OF_BAD_ADDR;
375 return da - cp;
376}
377
378static int of_bus_isa_translate(u32 *addr, u64 offset, int na)
379{
380 return of_bus_default_translate(addr + 1, offset, na - 1);
381}
382
383static unsigned int of_bus_isa_get_flags(u32 *addr)
384{
385 unsigned int flags = 0;
386 u32 w = addr[0];
387
388 if (w & 1)
389 flags |= IORESOURCE_IO;
390 else
391 flags |= IORESOURCE_MEM;
392 return flags;
393}
394
395/*
396 * SBUS bus specific translator 383 * SBUS bus specific translator
397 */ 384 */
398 385
@@ -411,16 +398,11 @@ static void of_bus_sbus_count_cells(struct device_node *child,
411 *sizec = 1; 398 *sizec = 1;
412} 399}
413 400
414static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna) 401static int of_bus_sbus_map(u32 *addr, const u32 *range, int na, int ns, int pna)
415{ 402{
416 return of_bus_default_map(addr, range, na, ns, pna); 403 return of_bus_default_map(addr, range, na, ns, pna);
417} 404}
418 405
419static int of_bus_sbus_translate(u32 *addr, u64 offset, int na)
420{
421 return of_bus_default_translate(addr, offset, na);
422}
423
424static unsigned int of_bus_sbus_get_flags(u32 *addr) 406static unsigned int of_bus_sbus_get_flags(u32 *addr)
425{ 407{
426 return IORESOURCE_MEM; 408 return IORESOURCE_MEM;
@@ -439,19 +421,8 @@ static struct of_bus of_busses[] = {
439 .match = of_bus_pci_match, 421 .match = of_bus_pci_match,
440 .count_cells = of_bus_pci_count_cells, 422 .count_cells = of_bus_pci_count_cells,
441 .map = of_bus_pci_map, 423 .map = of_bus_pci_map,
442 .translate = of_bus_pci_translate,
443 .get_flags = of_bus_pci_get_flags, 424 .get_flags = of_bus_pci_get_flags,
444 }, 425 },
445 /* ISA */
446 {
447 .name = "isa",
448 .addr_prop_name = "reg",
449 .match = of_bus_isa_match,
450 .count_cells = of_bus_isa_count_cells,
451 .map = of_bus_isa_map,
452 .translate = of_bus_isa_translate,
453 .get_flags = of_bus_isa_get_flags,
454 },
455 /* SBUS */ 426 /* SBUS */
456 { 427 {
457 .name = "sbus", 428 .name = "sbus",
@@ -459,7 +430,6 @@ static struct of_bus of_busses[] = {
459 .match = of_bus_sbus_match, 430 .match = of_bus_sbus_match,
460 .count_cells = of_bus_sbus_count_cells, 431 .count_cells = of_bus_sbus_count_cells,
461 .map = of_bus_sbus_map, 432 .map = of_bus_sbus_map,
462 .translate = of_bus_sbus_translate,
463 .get_flags = of_bus_sbus_get_flags, 433 .get_flags = of_bus_sbus_get_flags,
464 }, 434 },
465 /* Default */ 435 /* Default */
@@ -469,7 +439,6 @@ static struct of_bus of_busses[] = {
469 .match = NULL, 439 .match = NULL,
470 .count_cells = of_bus_default_count_cells, 440 .count_cells = of_bus_default_count_cells,
471 .map = of_bus_default_map, 441 .map = of_bus_default_map,
472 .translate = of_bus_default_translate,
473 .get_flags = of_bus_default_get_flags, 442 .get_flags = of_bus_default_get_flags,
474 }, 443 },
475}; 444};
@@ -494,33 +463,62 @@ static int __init build_one_resource(struct device_node *parent,
494 u32 *ranges; 463 u32 *ranges;
495 unsigned int rlen; 464 unsigned int rlen;
496 int rone; 465 int rone;
497 u64 offset = OF_BAD_ADDR;
498 466
499 ranges = of_get_property(parent, "ranges", &rlen); 467 ranges = of_get_property(parent, "ranges", &rlen);
500 if (ranges == NULL || rlen == 0) { 468 if (ranges == NULL || rlen == 0) {
501 offset = of_read_addr(addr, na); 469 u32 result[OF_MAX_ADDR_CELLS];
502 memset(addr, 0, pna * 4); 470 int i;
503 goto finish; 471
472 memset(result, 0, pna * 4);
473 for (i = 0; i < na; i++)
474 result[pna - 1 - i] =
475 addr[na - 1 - i];
476
477 memcpy(addr, result, pna * 4);
478 return 0;
504 } 479 }
505 480
506 /* Now walk through the ranges */ 481 /* Now walk through the ranges */
507 rlen /= 4; 482 rlen /= 4;
508 rone = na + pna + ns; 483 rone = na + pna + ns;
509 for (; rlen >= rone; rlen -= rone, ranges += rone) { 484 for (; rlen >= rone; rlen -= rone, ranges += rone) {
510 offset = bus->map(addr, ranges, na, ns, pna); 485 if (!bus->map(addr, ranges, na, ns, pna))
511 if (offset != OF_BAD_ADDR) 486 return 0;
512 break;
513 } 487 }
514 if (offset == OF_BAD_ADDR) 488
489 return 1;
490}
491
492static int __init use_1to1_mapping(struct device_node *pp)
493{
494 char *model;
495
496 /* If this is on the PMU bus, don't try to translate it even
497 * if a ranges property exists.
498 */
499 if (!strcmp(pp->name, "pmu"))
515 return 1; 500 return 1;
516 501
517 memcpy(addr, ranges + na, 4 * pna); 502 /* If we have a ranges property in the parent, use it. */
503 if (of_find_property(pp, "ranges", NULL) != NULL)
504 return 0;
505
506 /* If the parent is the dma node of an ISA bus, pass
507 * the translation up to the root.
508 */
509 if (!strcmp(pp->name, "dma"))
510 return 0;
511
512 /* Similarly for Simba PCI bridges. */
513 model = of_get_property(pp, "model", NULL);
514 if (model && !strcmp(model, "SUNW,simba"))
515 return 0;
518 516
519finish: 517 return 1;
520 /* Translate it into parent bus space */
521 return pbus->translate(addr, offset, pna);
522} 518}
523 519
520static int of_resource_verbose;
521
524static void __init build_device_resources(struct of_device *op, 522static void __init build_device_resources(struct of_device *op,
525 struct device *parent) 523 struct device *parent)
526{ 524{
@@ -564,15 +562,7 @@ static void __init build_device_resources(struct of_device *op,
564 562
565 memcpy(addr, reg, na * 4); 563 memcpy(addr, reg, na * 4);
566 564
567 /* If the immediate parent has no ranges property to apply, 565 if (use_1to1_mapping(pp)) {
568 * just use a 1<->1 mapping. Unless it is the 'dma' child
569 * of an isa bus, which must be passed up towards the root.
570 *
571 * Also, don't try to translate PMU bus device registers.
572 */
573 if ((of_find_property(pp, "ranges", NULL) == NULL &&
574 strcmp(pp->name, "dma") != 0) ||
575 !strcmp(pp->name, "pmu")) {
576 result = of_read_addr(addr, na); 566 result = of_read_addr(addr, na);
577 goto build_res; 567 goto build_res;
578 } 568 }
@@ -591,7 +581,8 @@ static void __init build_device_resources(struct of_device *op,
591 pbus = of_match_bus(pp); 581 pbus = of_match_bus(pp);
592 pbus->count_cells(dp, &pna, &pns); 582 pbus->count_cells(dp, &pna, &pns);
593 583
594 if (build_one_resource(dp, bus, pbus, addr, dna, dns, pna)) 584 if (build_one_resource(dp, bus, pbus, addr,
585 dna, dns, pna))
595 break; 586 break;
596 587
597 dna = pna; 588 dna = pna;
@@ -601,6 +592,12 @@ static void __init build_device_resources(struct of_device *op,
601 592
602 build_res: 593 build_res:
603 memset(r, 0, sizeof(*r)); 594 memset(r, 0, sizeof(*r));
595
596 if (of_resource_verbose)
597 printk("%s reg[%d] -> %lx\n",
598 op->node->full_name, index,
599 result);
600
604 if (result != OF_BAD_ADDR) { 601 if (result != OF_BAD_ADDR) {
605 if (tlb_type == hypervisor) 602 if (tlb_type == hypervisor)
606 result &= 0x0fffffffffffffffUL; 603 result &= 0x0fffffffffffffffUL;
@@ -684,6 +681,8 @@ static unsigned int __init pci_irq_swizzle(struct device_node *dp,
684 return ret; 681 return ret;
685} 682}
686 683
684static int of_irq_verbose;
685
687static unsigned int __init build_one_device_irq(struct of_device *op, 686static unsigned int __init build_one_device_irq(struct of_device *op,
688 struct device *parent, 687 struct device *parent,
689 unsigned int irq) 688 unsigned int irq)
@@ -698,10 +697,11 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
698 if (dp->irq_trans) { 697 if (dp->irq_trans) {
699 irq = dp->irq_trans->irq_build(dp, irq, 698 irq = dp->irq_trans->irq_build(dp, irq,
700 dp->irq_trans->data); 699 dp->irq_trans->data);
701#if 1 700
702 printk("%s: direct translate %x --> %x\n", 701 if (of_irq_verbose)
703 dp->full_name, orig_irq, irq); 702 printk("%s: direct translate %x --> %x\n",
704#endif 703 dp->full_name, orig_irq, irq);
704
705 return irq; 705 return irq;
706 } 706 }
707 707
@@ -728,12 +728,13 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
728 iret = apply_interrupt_map(dp, pp, 728 iret = apply_interrupt_map(dp, pp,
729 imap, imlen, imsk, 729 imap, imlen, imsk,
730 &irq); 730 &irq);
731#if 1 731
732 printk("%s: Apply [%s:%x] imap --> [%s:%x]\n", 732 if (of_irq_verbose)
733 op->node->full_name, 733 printk("%s: Apply [%s:%x] imap --> [%s:%x]\n",
734 pp->full_name, this_orig_irq, 734 op->node->full_name,
735 (iret ? iret->full_name : "NULL"), irq); 735 pp->full_name, this_orig_irq,
736#endif 736 (iret ? iret->full_name : "NULL"), irq);
737
737 if (!iret) 738 if (!iret)
738 break; 739 break;
739 740
@@ -747,11 +748,13 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
747 unsigned int this_orig_irq = irq; 748 unsigned int this_orig_irq = irq;
748 749
749 irq = pci_irq_swizzle(dp, pp, irq); 750 irq = pci_irq_swizzle(dp, pp, irq);
750#if 1 751 if (of_irq_verbose)
751 printk("%s: PCI swizzle [%s] %x --> %x\n", 752 printk("%s: PCI swizzle [%s] "
752 op->node->full_name, 753 "%x --> %x\n",
753 pp->full_name, this_orig_irq, irq); 754 op->node->full_name,
754#endif 755 pp->full_name, this_orig_irq,
756 irq);
757
755 } 758 }
756 759
757 if (pp->irq_trans) { 760 if (pp->irq_trans) {
@@ -767,10 +770,9 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
767 770
768 irq = ip->irq_trans->irq_build(op->node, irq, 771 irq = ip->irq_trans->irq_build(op->node, irq,
769 ip->irq_trans->data); 772 ip->irq_trans->data);
770#if 1 773 if (of_irq_verbose)
771 printk("%s: Apply IRQ trans [%s] %x --> %x\n", 774 printk("%s: Apply IRQ trans [%s] %x --> %x\n",
772 op->node->full_name, ip->full_name, orig_irq, irq); 775 op->node->full_name, ip->full_name, orig_irq, irq);
773#endif
774 776
775 return irq; 777 return irq;
776} 778}
@@ -870,6 +872,20 @@ static int __init of_bus_driver_init(void)
870 872
871postcore_initcall(of_bus_driver_init); 873postcore_initcall(of_bus_driver_init);
872 874
875static int __init of_debug(char *str)
876{
877 int val = 0;
878
879 get_option(&str, &val);
880 if (val & 1)
881 of_resource_verbose = 1;
882 if (val & 2)
883 of_irq_verbose = 1;
884 return 1;
885}
886
887__setup("of_debug=", of_debug);
888
873int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) 889int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus)
874{ 890{
875 /* initialize common driver fields */ 891 /* initialize common driver fields */
@@ -922,9 +938,11 @@ int of_device_register(struct of_device *ofdev)
922 if (rc) 938 if (rc)
923 return rc; 939 return rc;
924 940
925 device_create_file(&ofdev->dev, &dev_attr_devspec); 941 rc = device_create_file(&ofdev->dev, &dev_attr_devspec);
942 if (rc)
943 device_unregister(&ofdev->dev);
926 944
927 return 0; 945 return rc;
928} 946}
929 947
930void of_device_unregister(struct of_device *ofdev) 948void of_device_unregister(struct of_device *ofdev)
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index 99daeee4209d..c86007a2aa3f 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -539,6 +539,45 @@ static unsigned long __sabre_onboard_imap_off[] = {
539 ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \ 539 ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \
540 (SABRE_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3))) 540 (SABRE_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3)))
541 541
542static int sabre_device_needs_wsync(struct device_node *dp)
543{
544 struct device_node *parent = dp->parent;
545 char *parent_model, *parent_compat;
546
547 /* This traversal up towards the root is meant to
548 * handle two cases:
549 *
550 * 1) non-PCI bus sitting under PCI, such as 'ebus'
551 * 2) the PCI controller interrupts themselves, which
552 * will use the sabre_irq_build but do not need
553 * the DMA synchronization handling
554 */
555 while (parent) {
556 if (!strcmp(parent->type, "pci"))
557 break;
558 parent = parent->parent;
559 }
560
561 if (!parent)
562 return 0;
563
564 parent_model = of_get_property(parent,
565 "model", NULL);
566 if (parent_model &&
567 (!strcmp(parent_model, "SUNW,sabre") ||
568 !strcmp(parent_model, "SUNW,simba")))
569 return 0;
570
571 parent_compat = of_get_property(parent,
572 "compatible", NULL);
573 if (parent_compat &&
574 (!strcmp(parent_compat, "pci108e,a000") ||
575 !strcmp(parent_compat, "pci108e,a001")))
576 return 0;
577
578 return 1;
579}
580
542static unsigned int sabre_irq_build(struct device_node *dp, 581static unsigned int sabre_irq_build(struct device_node *dp,
543 unsigned int ino, 582 unsigned int ino,
544 void *_data) 583 void *_data)
@@ -577,15 +616,17 @@ static unsigned int sabre_irq_build(struct device_node *dp,
577 616
578 virt_irq = build_irq(inofixup, iclr, imap); 617 virt_irq = build_irq(inofixup, iclr, imap);
579 618
619 /* If the parent device is a PCI<->PCI bridge other than
620 * APB, we have to install a pre-handler to ensure that
621 * all pending DMA is drained before the interrupt handler
622 * is run.
623 */
580 regs = of_get_property(dp, "reg", NULL); 624 regs = of_get_property(dp, "reg", NULL);
581 if (regs && 625 if (regs && sabre_device_needs_wsync(dp)) {
582 ((regs->phys_hi >> 16) & 0xff) != irq_data->pci_first_busno) {
583 irq_install_pre_handler(virt_irq, 626 irq_install_pre_handler(virt_irq,
584 sabre_wsync_handler, 627 sabre_wsync_handler,
585 (void *) (long) regs->phys_hi, 628 (void *) (long) regs->phys_hi,
586 (void *) 629 (void *) irq_data);
587 controller_regs +
588 SABRE_WRSYNC);
589 } 630 }
590 631
591 return virt_irq; 632 return virt_irq;
diff --git a/drivers/mfd/ucb1x00-core.c b/drivers/mfd/ucb1x00-core.c
index 632bc218c86a..2bf32721eb53 100644
--- a/drivers/mfd/ucb1x00-core.c
+++ b/drivers/mfd/ucb1x00-core.c
@@ -479,7 +479,7 @@ static int ucb1x00_probe(struct mcp *mcp)
479 mcp_enable(mcp); 479 mcp_enable(mcp);
480 id = mcp_reg_read(mcp, UCB_ID); 480 id = mcp_reg_read(mcp, UCB_ID);
481 481
482 if (id != UCB_ID_1200 && id != UCB_ID_1300) { 482 if (id != UCB_ID_1200 && id != UCB_ID_1300 && id != UCB_ID_TC35143) {
483 printk(KERN_WARNING "UCB1x00 ID not found: %04x\n", id); 483 printk(KERN_WARNING "UCB1x00 ID not found: %04x\n", id);
484 goto err_disable; 484 goto err_disable;
485 } 485 }
diff --git a/drivers/mfd/ucb1x00.h b/drivers/mfd/ucb1x00.h
index 9c9a647d8b7b..ca8df8072d43 100644
--- a/drivers/mfd/ucb1x00.h
+++ b/drivers/mfd/ucb1x00.h
@@ -94,6 +94,7 @@
94#define UCB_ID 0x0c 94#define UCB_ID 0x0c
95#define UCB_ID_1200 0x1004 95#define UCB_ID_1200 0x1004
96#define UCB_ID_1300 0x1005 96#define UCB_ID_1300 0x1005
97#define UCB_ID_TC35143 0x9712
97 98
98#define UCB_MODE 0x0d 99#define UCB_MODE 0x0d
99#define UCB_MODE_DYN_VFLAG_ENA (1 << 12) 100#define UCB_MODE_DYN_VFLAG_ENA (1 << 12)
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 0995430e4cf1..0ae9ced00ed4 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -299,6 +299,7 @@ static inline int map_8250_out_reg(struct uart_8250_port *up, int offset)
299 299
300static unsigned int serial_in(struct uart_8250_port *up, int offset) 300static unsigned int serial_in(struct uart_8250_port *up, int offset)
301{ 301{
302 unsigned int tmp;
302 offset = map_8250_in_reg(up, offset) << up->port.regshift; 303 offset = map_8250_in_reg(up, offset) << up->port.regshift;
303 304
304 switch (up->port.iotype) { 305 switch (up->port.iotype) {
@@ -317,6 +318,13 @@ static unsigned int serial_in(struct uart_8250_port *up, int offset)
317 return __raw_readl(up->port.membase + offset); 318 return __raw_readl(up->port.membase + offset);
318#endif 319#endif
319 320
321 case UPIO_TSI:
322 if (offset == UART_IIR) {
323 tmp = readl((u32 *)(up->port.membase + UART_RX));
324 return (cpu_to_le32(tmp) >> 8) & 0xff;
325 } else
326 return readb(up->port.membase + offset);
327
320 default: 328 default:
321 return inb(up->port.iobase + offset); 329 return inb(up->port.iobase + offset);
322 } 330 }
@@ -346,6 +354,10 @@ serial_out(struct uart_8250_port *up, int offset, int value)
346 __raw_writel(value, up->port.membase + offset); 354 __raw_writel(value, up->port.membase + offset);
347 break; 355 break;
348#endif 356#endif
357 case UPIO_TSI:
358 if (!((offset == UART_IER) && (value & UART_IER_UUE)))
359 writeb(value, up->port.membase + offset);
360 break;
349 361
350 default: 362 default:
351 outb(value, up->port.iobase + offset); 363 outb(value, up->port.iobase + offset);
@@ -2240,10 +2252,14 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
2240 2252
2241 touch_nmi_watchdog(); 2253 touch_nmi_watchdog();
2242 2254
2243 if (oops_in_progress) { 2255 local_irq_save(flags);
2244 locked = spin_trylock_irqsave(&up->port.lock, flags); 2256 if (up->port.sysrq) {
2257 /* serial8250_handle_port() already took the lock */
2258 locked = 0;
2259 } else if (oops_in_progress) {
2260 locked = spin_trylock(&up->port.lock);
2245 } else 2261 } else
2246 spin_lock_irqsave(&up->port.lock, flags); 2262 spin_lock(&up->port.lock);
2247 2263
2248 /* 2264 /*
2249 * First save the IER then disable the interrupts 2265 * First save the IER then disable the interrupts
@@ -2265,7 +2281,8 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
2265 serial_out(up, UART_IER, ier); 2281 serial_out(up, UART_IER, ier);
2266 2282
2267 if (locked) 2283 if (locked)
2268 spin_unlock_irqrestore(&up->port.lock, flags); 2284 spin_unlock(&up->port.lock);
2285 local_irq_restore(flags);
2269} 2286}
2270 2287
2271static int serial8250_console_setup(struct console *co, char *options) 2288static int serial8250_console_setup(struct console *co, char *options)
diff --git a/drivers/serial/dz.c b/drivers/serial/dz.c
index d119c8296a78..8a98aae80e22 100644
--- a/drivers/serial/dz.c
+++ b/drivers/serial/dz.c
@@ -673,7 +673,7 @@ static void dz_reset(struct dz_port *dport)
673} 673}
674 674
675#ifdef CONFIG_SERIAL_DZ_CONSOLE 675#ifdef CONFIG_SERIAL_DZ_CONSOLE
676static void dz_console_putchar(struct uart_port *port, int ch) 676static void dz_console_putchar(struct uart_port *uport, int ch)
677{ 677{
678 struct dz_port *dport = (struct dz_port *)uport; 678 struct dz_port *dport = (struct dz_port *)uport;
679 unsigned long flags; 679 unsigned long flags;
diff --git a/drivers/serial/ip22zilog.c b/drivers/serial/ip22zilog.c
index 342042889f6e..5ff269fb604c 100644
--- a/drivers/serial/ip22zilog.c
+++ b/drivers/serial/ip22zilog.c
@@ -1143,9 +1143,8 @@ static void __init ip22zilog_prepare(void)
1143 up[(chip * 2) + 1].port.fifosize = 1; 1143 up[(chip * 2) + 1].port.fifosize = 1;
1144 up[(chip * 2) + 1].port.ops = &ip22zilog_pops; 1144 up[(chip * 2) + 1].port.ops = &ip22zilog_pops;
1145 up[(chip * 2) + 1].port.type = PORT_IP22ZILOG; 1145 up[(chip * 2) + 1].port.type = PORT_IP22ZILOG;
1146 up[(chip * 2) + 1].port.flags |= IP22ZILOG_FLAG_IS_CHANNEL_A;
1147 up[(chip * 2) + 1].port.line = (chip * 2) + 1; 1146 up[(chip * 2) + 1].port.line = (chip * 2) + 1;
1148 up[(chip * 2) + 1].flags = 0; 1147 up[(chip * 2) + 1].flags |= IP22ZILOG_FLAG_IS_CHANNEL_A;
1149 } 1148 }
1150} 1149}
1151 1150
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c
index d5f636fbf29a..80ef7d482756 100644
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
@@ -2036,6 +2036,7 @@ uart_report_port(struct uart_driver *drv, struct uart_port *port)
2036 case UPIO_MEM: 2036 case UPIO_MEM:
2037 case UPIO_MEM32: 2037 case UPIO_MEM32:
2038 case UPIO_AU: 2038 case UPIO_AU:
2039 case UPIO_TSI:
2039 snprintf(address, sizeof(address), 2040 snprintf(address, sizeof(address),
2040 "MMIO 0x%lx", port->mapbase); 2041 "MMIO 0x%lx", port->mapbase);
2041 break; 2042 break;
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index f9013baba05b..93bdaa3169fc 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -1406,25 +1406,35 @@ static int __devinit su_probe(struct of_device *op, const struct of_device_id *m
1406 struct device_node *dp = op->node; 1406 struct device_node *dp = op->node;
1407 struct uart_sunsu_port *up; 1407 struct uart_sunsu_port *up;
1408 struct resource *rp; 1408 struct resource *rp;
1409 enum su_type type;
1409 int err; 1410 int err;
1410 1411
1411 if (inst >= UART_NR) 1412 type = su_get_type(dp);
1412 return -EINVAL; 1413 if (type == SU_PORT_PORT) {
1414 if (inst >= UART_NR)
1415 return -EINVAL;
1416 up = &sunsu_ports[inst];
1417 } else {
1418 up = kzalloc(sizeof(*up), GFP_KERNEL);
1419 if (!up)
1420 return -ENOMEM;
1421 }
1413 1422
1414 up = &sunsu_ports[inst];
1415 up->port.line = inst; 1423 up->port.line = inst;
1416 1424
1417 spin_lock_init(&up->port.lock); 1425 spin_lock_init(&up->port.lock);
1418 1426
1419 up->su_type = su_get_type(dp); 1427 up->su_type = type;
1420 1428
1421 rp = &op->resource[0]; 1429 rp = &op->resource[0];
1422 up->port.mapbase = op->resource[0].start; 1430 up->port.mapbase = rp->start;
1423
1424 up->reg_size = (rp->end - rp->start) + 1; 1431 up->reg_size = (rp->end - rp->start) + 1;
1425 up->port.membase = of_ioremap(rp, 0, up->reg_size, "su"); 1432 up->port.membase = of_ioremap(rp, 0, up->reg_size, "su");
1426 if (!up->port.membase) 1433 if (!up->port.membase) {
1434 if (type != SU_PORT_PORT)
1435 kfree(up);
1427 return -ENOMEM; 1436 return -ENOMEM;
1437 }
1428 1438
1429 up->port.irq = op->irqs[0]; 1439 up->port.irq = op->irqs[0];
1430 1440
@@ -1436,8 +1446,11 @@ static int __devinit su_probe(struct of_device *op, const struct of_device_id *m
1436 err = 0; 1446 err = 0;
1437 if (up->su_type == SU_PORT_KBD || up->su_type == SU_PORT_MS) { 1447 if (up->su_type == SU_PORT_KBD || up->su_type == SU_PORT_MS) {
1438 err = sunsu_kbd_ms_init(up); 1448 err = sunsu_kbd_ms_init(up);
1439 if (err) 1449 if (err) {
1450 kfree(up);
1440 goto out_unmap; 1451 goto out_unmap;
1452 }
1453 dev_set_drvdata(&op->dev, up);
1441 1454
1442 return 0; 1455 return 0;
1443 } 1456 }
@@ -1476,8 +1489,12 @@ static int __devexit su_remove(struct of_device *dev)
1476#ifdef CONFIG_SERIO 1489#ifdef CONFIG_SERIO
1477 serio_unregister_port(&up->serio); 1490 serio_unregister_port(&up->serio);
1478#endif 1491#endif
1479 } else if (up->port.type != PORT_UNKNOWN) 1492 kfree(up);
1493 } else if (up->port.type != PORT_UNKNOWN) {
1480 uart_remove_one_port(&sunsu_reg, &up->port); 1494 uart_remove_one_port(&sunsu_reg, &up->port);
1495 }
1496
1497 dev_set_drvdata(&dev->dev, NULL);
1481 1498
1482 return 0; 1499 return 0;
1483} 1500}
diff --git a/include/asm-arm/arch-versatile/platform.h b/include/asm-arm/arch-versatile/platform.h
index 72ef874567d5..2af9d7c9c63c 100644
--- a/include/asm-arm/arch-versatile/platform.h
+++ b/include/asm-arm/arch-versatile/platform.h
@@ -65,6 +65,8 @@
65#define VERSATILE_SYS_OSC1_OFFSET 0x1C 65#define VERSATILE_SYS_OSC1_OFFSET 0x1C
66#endif 66#endif
67 67
68#define VERSATILE_SYS_OSCCLCD_OFFSET 0x1c
69
68#define VERSATILE_SYS_LOCK_OFFSET 0x20 70#define VERSATILE_SYS_LOCK_OFFSET 0x20
69#define VERSATILE_SYS_100HZ_OFFSET 0x24 71#define VERSATILE_SYS_100HZ_OFFSET 0x24
70#define VERSATILE_SYS_CFGDATA1_OFFSET 0x28 72#define VERSATILE_SYS_CFGDATA1_OFFSET 0x28
diff --git a/include/asm-i386/system.h b/include/asm-i386/system.h
index db398d88b1d9..2db168ef949f 100644
--- a/include/asm-i386/system.h
+++ b/include/asm-i386/system.h
@@ -82,10 +82,6 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
82#define savesegment(seg, value) \ 82#define savesegment(seg, value) \
83 asm volatile("mov %%" #seg ",%0":"=rm" (value)) 83 asm volatile("mov %%" #seg ",%0":"=rm" (value))
84 84
85/*
86 * Clear and set 'TS' bit respectively
87 */
88#define clts() __asm__ __volatile__ ("clts")
89#define read_cr0() ({ \ 85#define read_cr0() ({ \
90 unsigned int __dummy; \ 86 unsigned int __dummy; \
91 __asm__ __volatile__( \ 87 __asm__ __volatile__( \
@@ -94,7 +90,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
94 __dummy; \ 90 __dummy; \
95}) 91})
96#define write_cr0(x) \ 92#define write_cr0(x) \
97 __asm__ __volatile__("movl %0,%%cr0": :"r" (x)); 93 __asm__ __volatile__("movl %0,%%cr0": :"r" (x))
98 94
99#define read_cr2() ({ \ 95#define read_cr2() ({ \
100 unsigned int __dummy; \ 96 unsigned int __dummy; \
@@ -104,7 +100,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
104 __dummy; \ 100 __dummy; \
105}) 101})
106#define write_cr2(x) \ 102#define write_cr2(x) \
107 __asm__ __volatile__("movl %0,%%cr2": :"r" (x)); 103 __asm__ __volatile__("movl %0,%%cr2": :"r" (x))
108 104
109#define read_cr3() ({ \ 105#define read_cr3() ({ \
110 unsigned int __dummy; \ 106 unsigned int __dummy; \
@@ -114,7 +110,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
114 __dummy; \ 110 __dummy; \
115}) 111})
116#define write_cr3(x) \ 112#define write_cr3(x) \
117 __asm__ __volatile__("movl %0,%%cr3": :"r" (x)); 113 __asm__ __volatile__("movl %0,%%cr3": :"r" (x))
118 114
119#define read_cr4() ({ \ 115#define read_cr4() ({ \
120 unsigned int __dummy; \ 116 unsigned int __dummy; \
@@ -123,7 +119,6 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
123 :"=r" (__dummy)); \ 119 :"=r" (__dummy)); \
124 __dummy; \ 120 __dummy; \
125}) 121})
126
127#define read_cr4_safe() ({ \ 122#define read_cr4_safe() ({ \
128 unsigned int __dummy; \ 123 unsigned int __dummy; \
129 /* This could fault if %cr4 does not exist */ \ 124 /* This could fault if %cr4 does not exist */ \
@@ -135,15 +130,19 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
135 : "=r" (__dummy): "0" (0)); \ 130 : "=r" (__dummy): "0" (0)); \
136 __dummy; \ 131 __dummy; \
137}) 132})
138
139#define write_cr4(x) \ 133#define write_cr4(x) \
140 __asm__ __volatile__("movl %0,%%cr4": :"r" (x)); 134 __asm__ __volatile__("movl %0,%%cr4": :"r" (x))
135
136/*
137 * Clear and set 'TS' bit respectively
138 */
139#define clts() __asm__ __volatile__ ("clts")
141#define stts() write_cr0(8 | read_cr0()) 140#define stts() write_cr0(8 | read_cr0())
142 141
143#endif /* __KERNEL__ */ 142#endif /* __KERNEL__ */
144 143
145#define wbinvd() \ 144#define wbinvd() \
146 __asm__ __volatile__ ("wbinvd": : :"memory"); 145 __asm__ __volatile__ ("wbinvd": : :"memory")
147 146
148static inline unsigned long get_limit(unsigned long segment) 147static inline unsigned long get_limit(unsigned long segment)
149{ 148{
diff --git a/include/asm-m68knommu/uaccess.h b/include/asm-m68knommu/uaccess.h
index 05be9515a2d2..62b29b10bc6d 100644
--- a/include/asm-m68knommu/uaccess.h
+++ b/include/asm-m68knommu/uaccess.h
@@ -93,7 +93,7 @@ extern int __put_user_bad(void);
93#define get_user(x, ptr) \ 93#define get_user(x, ptr) \
94({ \ 94({ \
95 int __gu_err = 0; \ 95 int __gu_err = 0; \
96 typeof(*(ptr)) __gu_val = 0; \ 96 typeof(x) __gu_val = 0; \
97 switch (sizeof(*(ptr))) { \ 97 switch (sizeof(*(ptr))) { \
98 case 1: \ 98 case 1: \
99 __get_user_asm(__gu_err, __gu_val, ptr, b, "=d"); \ 99 __get_user_asm(__gu_err, __gu_val, ptr, b, "=d"); \
@@ -105,23 +105,23 @@ extern int __put_user_bad(void);
105 __get_user_asm(__gu_err, __gu_val, ptr, l, "=r"); \ 105 __get_user_asm(__gu_err, __gu_val, ptr, l, "=r"); \
106 break; \ 106 break; \
107 case 8: \ 107 case 8: \
108 memcpy(&__gu_val, ptr, sizeof (*(ptr))); \ 108 memcpy((void *) &__gu_val, ptr, sizeof (*(ptr))); \
109 break; \ 109 break; \
110 default: \ 110 default: \
111 __gu_val = 0; \ 111 __gu_val = 0; \
112 __gu_err = __get_user_bad(); \ 112 __gu_err = __get_user_bad(); \
113 break; \ 113 break; \
114 } \ 114 } \
115 (x) = __gu_val; \ 115 (x) = (typeof(*(ptr))) __gu_val; \
116 __gu_err; \ 116 __gu_err; \
117}) 117})
118#define __get_user(x, ptr) get_user(x, ptr) 118#define __get_user(x, ptr) get_user(x, ptr)
119 119
120extern int __get_user_bad(void); 120extern int __get_user_bad(void);
121 121
122#define __get_user_asm(err,x,ptr,bwl,reg) \ 122#define __get_user_asm(err,x,ptr,bwl,reg) \
123 __asm__ ("move" #bwl " %1,%0" \ 123 __asm__ ("move" #bwl " %1,%0" \
124 : "=d" (x) \ 124 : "=d" (x) \
125 : "m" (*__ptr(ptr))) 125 : "m" (*__ptr(ptr)))
126 126
127#define copy_from_user(to, from, n) (memcpy(to, from, n), 0) 127#define copy_from_user(to, from, n) (memcpy(to, from, n), 0)
diff --git a/include/asm-sparc64/Kbuild b/include/asm-sparc64/Kbuild
index c78d44bb195f..9284c3cb27ec 100644
--- a/include/asm-sparc64/Kbuild
+++ b/include/asm-sparc64/Kbuild
@@ -4,7 +4,7 @@ ALTARCH := sparc
4ARCHDEF := defined __sparc__ && defined __arch64__ 4ARCHDEF := defined __sparc__ && defined __arch64__
5ALTARCHDEF := defined __sparc__ && !defined __arch64__ 5ALTARCHDEF := defined __sparc__ && !defined __arch64__
6 6
7unifdef-y := fbio.h perfctr.h 7unifdef-y += fbio.h perfctr.h
8header-y += apb.h asi.h bbc.h bpp.h display7seg.h envctrl.h floppy.h \ 8header-y += apb.h asi.h bbc.h bpp.h display7seg.h envctrl.h floppy.h \
9 ipc.h kdebug.h mostek.h openprom.h openpromio.h parport.h \ 9 ipc.h kdebug.h mostek.h openprom.h openpromio.h parport.h \
10 pconf.h psrcompat.h pstate.h reg.h uctx.h utrap.h watchdog.h 10 pconf.h psrcompat.h pstate.h reg.h uctx.h utrap.h watchdog.h
diff --git a/include/linux/root_dev.h b/include/linux/root_dev.h
index ea4bc9d13735..ed241aad7c17 100644
--- a/include/linux/root_dev.h
+++ b/include/linux/root_dev.h
@@ -2,6 +2,8 @@
2#define _ROOT_DEV_H_ 2#define _ROOT_DEV_H_
3 3
4#include <linux/major.h> 4#include <linux/major.h>
5#include <linux/types.h>
6#include <linux/kdev_t.h>
5 7
6enum { 8enum {
7 Root_NFS = MKDEV(UNNAMED_MAJOR, 255), 9 Root_NFS = MKDEV(UNNAMED_MAJOR, 255),
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index 058cba70818a..86501a3de2ac 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -227,6 +227,7 @@ struct uart_port {
227#define UPIO_MEM (2) 227#define UPIO_MEM (2)
228#define UPIO_MEM32 (3) 228#define UPIO_MEM32 (3)
229#define UPIO_AU (4) /* Au1x00 type IO */ 229#define UPIO_AU (4) /* Au1x00 type IO */
230#define UPIO_TSI (5) /* Tsi108/109 type IO */
230 231
231 unsigned int read_status_mask; /* driver specific */ 232 unsigned int read_status_mask; /* driver specific */
232 unsigned int ignore_status_mask; /* driver specific */ 233 unsigned int ignore_status_mask; /* driver specific */
diff --git a/mm/slab.c b/mm/slab.c
index 85c2e03098a7..0f20843beffd 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -674,6 +674,37 @@ static struct kmem_cache cache_cache = {
674#endif 674#endif
675}; 675};
676 676
677#ifdef CONFIG_LOCKDEP
678
679/*
680 * Slab sometimes uses the kmalloc slabs to store the slab headers
681 * for other slabs "off slab".
682 * The locking for this is tricky in that it nests within the locks
683 * of all other slabs in a few places; to deal with this special
684 * locking we put on-slab caches into a separate lock-class.
685 */
686static struct lock_class_key on_slab_key;
687
688static inline void init_lock_keys(struct cache_sizes *s)
689{
690 int q;
691
692 for (q = 0; q < MAX_NUMNODES; q++) {
693 if (!s->cs_cachep->nodelists[q] || OFF_SLAB(s->cs_cachep))
694 continue;
695 lockdep_set_class(&s->cs_cachep->nodelists[q]->list_lock,
696 &on_slab_key);
697 }
698}
699
700#else
701static inline void init_lock_keys(struct cache_sizes *s)
702{
703}
704#endif
705
706
707
677/* Guard access to the cache-chain. */ 708/* Guard access to the cache-chain. */
678static DEFINE_MUTEX(cache_chain_mutex); 709static DEFINE_MUTEX(cache_chain_mutex);
679static struct list_head cache_chain; 710static struct list_head cache_chain;
@@ -1021,8 +1052,7 @@ static void drain_alien_cache(struct kmem_cache *cachep,
1021 } 1052 }
1022} 1053}
1023 1054
1024static inline int cache_free_alien(struct kmem_cache *cachep, void *objp, 1055static inline int cache_free_alien(struct kmem_cache *cachep, void *objp)
1025 int nesting)
1026{ 1056{
1027 struct slab *slabp = virt_to_slab(objp); 1057 struct slab *slabp = virt_to_slab(objp);
1028 int nodeid = slabp->nodeid; 1058 int nodeid = slabp->nodeid;
@@ -1040,7 +1070,7 @@ static inline int cache_free_alien(struct kmem_cache *cachep, void *objp,
1040 STATS_INC_NODEFREES(cachep); 1070 STATS_INC_NODEFREES(cachep);
1041 if (l3->alien && l3->alien[nodeid]) { 1071 if (l3->alien && l3->alien[nodeid]) {
1042 alien = l3->alien[nodeid]; 1072 alien = l3->alien[nodeid];
1043 spin_lock_nested(&alien->lock, nesting); 1073 spin_lock(&alien->lock);
1044 if (unlikely(alien->avail == alien->limit)) { 1074 if (unlikely(alien->avail == alien->limit)) {
1045 STATS_INC_ACOVERFLOW(cachep); 1075 STATS_INC_ACOVERFLOW(cachep);
1046 __drain_alien_cache(cachep, alien, nodeid); 1076 __drain_alien_cache(cachep, alien, nodeid);
@@ -1069,8 +1099,7 @@ static inline void free_alien_cache(struct array_cache **ac_ptr)
1069{ 1099{
1070} 1100}
1071 1101
1072static inline int cache_free_alien(struct kmem_cache *cachep, void *objp, 1102static inline int cache_free_alien(struct kmem_cache *cachep, void *objp)
1073 int nesting)
1074{ 1103{
1075 return 0; 1104 return 0;
1076} 1105}
@@ -1393,6 +1422,7 @@ void __init kmem_cache_init(void)
1393 ARCH_KMALLOC_FLAGS|SLAB_PANIC, 1422 ARCH_KMALLOC_FLAGS|SLAB_PANIC,
1394 NULL, NULL); 1423 NULL, NULL);
1395 } 1424 }
1425 init_lock_keys(sizes);
1396 1426
1397 sizes->cs_dmacachep = kmem_cache_create(names->name_dma, 1427 sizes->cs_dmacachep = kmem_cache_create(names->name_dma,
1398 sizes->cs_size, 1428 sizes->cs_size,
@@ -1760,8 +1790,6 @@ static void slab_destroy_objs(struct kmem_cache *cachep, struct slab *slabp)
1760} 1790}
1761#endif 1791#endif
1762 1792
1763static void __cache_free(struct kmem_cache *cachep, void *objp, int nesting);
1764
1765/** 1793/**
1766 * slab_destroy - destroy and release all objects in a slab 1794 * slab_destroy - destroy and release all objects in a slab
1767 * @cachep: cache pointer being destroyed 1795 * @cachep: cache pointer being destroyed
@@ -1785,17 +1813,8 @@ static void slab_destroy(struct kmem_cache *cachep, struct slab *slabp)
1785 call_rcu(&slab_rcu->head, kmem_rcu_free); 1813 call_rcu(&slab_rcu->head, kmem_rcu_free);
1786 } else { 1814 } else {
1787 kmem_freepages(cachep, addr); 1815 kmem_freepages(cachep, addr);
1788 if (OFF_SLAB(cachep)) { 1816 if (OFF_SLAB(cachep))
1789 unsigned long flags; 1817 kmem_cache_free(cachep->slabp_cache, slabp);
1790
1791 /*
1792 * lockdep: we may nest inside an already held
1793 * ac->lock, so pass in a nesting flag:
1794 */
1795 local_irq_save(flags);
1796 __cache_free(cachep->slabp_cache, slabp, 1);
1797 local_irq_restore(flags);
1798 }
1799 } 1818 }
1800} 1819}
1801 1820
@@ -3100,16 +3119,7 @@ static void free_block(struct kmem_cache *cachep, void **objpp, int nr_objects,
3100 if (slabp->inuse == 0) { 3119 if (slabp->inuse == 0) {
3101 if (l3->free_objects > l3->free_limit) { 3120 if (l3->free_objects > l3->free_limit) {
3102 l3->free_objects -= cachep->num; 3121 l3->free_objects -= cachep->num;
3103 /*
3104 * It is safe to drop the lock. The slab is
3105 * no longer linked to the cache. cachep
3106 * cannot disappear - we are using it and
3107 * all destruction of caches must be
3108 * serialized properly by the user.
3109 */
3110 spin_unlock(&l3->list_lock);
3111 slab_destroy(cachep, slabp); 3122 slab_destroy(cachep, slabp);
3112 spin_lock(&l3->list_lock);
3113 } else { 3123 } else {
3114 list_add(&slabp->list, &l3->slabs_free); 3124 list_add(&slabp->list, &l3->slabs_free);
3115 } 3125 }
@@ -3135,7 +3145,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
3135#endif 3145#endif
3136 check_irq_off(); 3146 check_irq_off();
3137 l3 = cachep->nodelists[node]; 3147 l3 = cachep->nodelists[node];
3138 spin_lock_nested(&l3->list_lock, SINGLE_DEPTH_NESTING); 3148 spin_lock(&l3->list_lock);
3139 if (l3->shared) { 3149 if (l3->shared) {
3140 struct array_cache *shared_array = l3->shared; 3150 struct array_cache *shared_array = l3->shared;
3141 int max = shared_array->limit - shared_array->avail; 3151 int max = shared_array->limit - shared_array->avail;
@@ -3178,14 +3188,14 @@ free_done:
3178 * Release an obj back to its cache. If the obj has a constructed state, it must 3188 * Release an obj back to its cache. If the obj has a constructed state, it must
3179 * be in this state _before_ it is released. Called with disabled ints. 3189 * be in this state _before_ it is released. Called with disabled ints.
3180 */ 3190 */
3181static void __cache_free(struct kmem_cache *cachep, void *objp, int nesting) 3191static inline void __cache_free(struct kmem_cache *cachep, void *objp)
3182{ 3192{
3183 struct array_cache *ac = cpu_cache_get(cachep); 3193 struct array_cache *ac = cpu_cache_get(cachep);
3184 3194
3185 check_irq_off(); 3195 check_irq_off();
3186 objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0)); 3196 objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0));
3187 3197
3188 if (cache_free_alien(cachep, objp, nesting)) 3198 if (cache_free_alien(cachep, objp))
3189 return; 3199 return;
3190 3200
3191 if (likely(ac->avail < ac->limit)) { 3201 if (likely(ac->avail < ac->limit)) {
@@ -3424,7 +3434,7 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
3424 BUG_ON(virt_to_cache(objp) != cachep); 3434 BUG_ON(virt_to_cache(objp) != cachep);
3425 3435
3426 local_irq_save(flags); 3436 local_irq_save(flags);
3427 __cache_free(cachep, objp, 0); 3437 __cache_free(cachep, objp);
3428 local_irq_restore(flags); 3438 local_irq_restore(flags);
3429} 3439}
3430EXPORT_SYMBOL(kmem_cache_free); 3440EXPORT_SYMBOL(kmem_cache_free);
@@ -3449,7 +3459,7 @@ void kfree(const void *objp)
3449 kfree_debugcheck(objp); 3459 kfree_debugcheck(objp);
3450 c = virt_to_cache(objp); 3460 c = virt_to_cache(objp);
3451 debug_check_no_locks_freed(objp, obj_size(c)); 3461 debug_check_no_locks_freed(objp, obj_size(c));
3452 __cache_free(c, (void *)objp, 0); 3462 __cache_free(c, (void *)objp);
3453 local_irq_restore(flags); 3463 local_irq_restore(flags);
3454} 3464}
3455EXPORT_SYMBOL(kfree); 3465EXPORT_SYMBOL(kfree);