diff options
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 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_GENERIC_HARDIRQS=y | ||
| 9 | CONFIG_HARDIRQS_SW_RESEND=y | ||
| 10 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 11 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 13 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 11 | CONFIG_VECTORS_BASE=0xffff0000 | 14 | CONFIG_VECTORS_BASE=0xffff0000 |
| 15 | CONFIG_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 | |||
| 43 | CONFIG_BUG=y | 47 | CONFIG_BUG=y |
| 44 | CONFIG_ELF_CORE=y | 48 | CONFIG_ELF_CORE=y |
| 45 | CONFIG_BASE_FULL=y | 49 | CONFIG_BASE_FULL=y |
| 50 | CONFIG_RT_MUTEXES=y | ||
| 46 | CONFIG_FUTEX=y | 51 | CONFIG_FUTEX=y |
| 47 | CONFIG_EPOLL=y | 52 | CONFIG_EPOLL=y |
| 48 | CONFIG_SHMEM=y | 53 | CONFIG_SHMEM=y |
| 49 | CONFIG_SLAB=y | 54 | CONFIG_SLAB=y |
| 55 | CONFIG_VM_EVENT_COUNTERS=y | ||
| 50 | # CONFIG_TINY_SHMEM is not set | 56 | # CONFIG_TINY_SHMEM is not set |
| 51 | CONFIG_BASE_SMALL=0 | 57 | CONFIG_BASE_SMALL=0 |
| 52 | # CONFIG_SLOB is not set | 58 | # CONFIG_SLOB is not set |
| 53 | CONFIG_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 |
| 90 | CONFIG_ARCH_EP93XX=y | 100 | CONFIG_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 | # |
| 122 | CONFIG_CRUNCH=y | ||
| 115 | 123 | ||
| 116 | # | 124 | # |
| 117 | # EP93xx Platforms | 125 | # EP93xx Platforms |
| 118 | # | 126 | # |
| 127 | CONFIG_MACH_EDB9302=y | ||
| 128 | CONFIG_MACH_EDB9315=y | ||
| 129 | CONFIG_MACH_EDB9315A=y | ||
| 119 | CONFIG_MACH_GESBC9312=y | 130 | CONFIG_MACH_GESBC9312=y |
| 120 | CONFIG_MACH_TS72XX=y | 131 | CONFIG_MACH_TS72XX=y |
| 121 | 132 | ||
| @@ -166,6 +177,7 @@ CONFIG_FLATMEM=y | |||
| 166 | CONFIG_FLAT_NODE_MEM_MAP=y | 177 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 167 | # CONFIG_SPARSEMEM_STATIC is not set | 178 | # CONFIG_SPARSEMEM_STATIC is not set |
| 168 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 179 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
| 180 | # CONFIG_RESOURCES_64BIT is not set | ||
| 169 | CONFIG_ALIGNMENT_TRAP=y | 181 | CONFIG_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 |
| 248 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
| 249 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
| 236 | CONFIG_INET_DIAG=y | 250 | CONFIG_INET_DIAG=y |
| 237 | CONFIG_INET_TCP_DIAG=y | 251 | CONFIG_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 | |||
| 294 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 309 | CONFIG_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 | # |
| 387 | CONFIG_MTD_NAND=y | 403 | CONFIG_MTD_NAND=y |
| 388 | CONFIG_MTD_NAND_VERIFY_WRITE=y | 404 | CONFIG_MTD_NAND_VERIFY_WRITE=y |
| 405 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
| 406 | CONFIG_MTD_NAND_TS7250=y | ||
| 389 | CONFIG_MTD_NAND_IDS=y | 407 | CONFIG_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 | # |
| 649 | CONFIG_HWMON=y | 668 | CONFIG_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 |
| 729 | CONFIG_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" | |||
| 880 | CONFIG_RTC_INTF_SYSFS=y | 908 | CONFIG_RTC_INTF_SYSFS=y |
| 881 | CONFIG_RTC_INTF_PROC=y | 909 | CONFIG_RTC_INTF_PROC=y |
| 882 | CONFIG_RTC_INTF_DEV=y | 910 | CONFIG_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 |
| 891 | CONFIG_RTC_DRV_M48T86=y | 924 | CONFIG_RTC_DRV_M48T86=y |
| 892 | CONFIG_RTC_DRV_EP93XX=y | 925 | CONFIG_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 |
| 912 | CONFIG_INOTIFY=y | 947 | CONFIG_INOTIFY=y |
| 948 | CONFIG_INOTIFY_USER=y | ||
| 913 | # CONFIG_QUOTA is not set | 949 | # CONFIG_QUOTA is not set |
| 914 | CONFIG_DNOTIFY=y | 950 | CONFIG_DNOTIFY=y |
| 915 | # CONFIG_AUTOFS_FS is not set | 951 | # CONFIG_AUTOFS_FS is not set |
| @@ -957,6 +993,7 @@ CONFIG_JFFS2_FS=y | |||
| 957 | CONFIG_JFFS2_FS_DEBUG=0 | 993 | CONFIG_JFFS2_FS_DEBUG=0 |
| 958 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 994 | CONFIG_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 |
| 961 | CONFIG_JFFS2_ZLIB=y | 998 | CONFIG_JFFS2_ZLIB=y |
| 962 | CONFIG_JFFS2_RTIME=y | 999 | CONFIG_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 |
| 1068 | CONFIG_MAGIC_SYSRQ=y | 1106 | CONFIG_MAGIC_SYSRQ=y |
| 1107 | # CONFIG_UNUSED_SYMBOLS is not set | ||
| 1069 | CONFIG_DEBUG_KERNEL=y | 1108 | CONFIG_DEBUG_KERNEL=y |
| 1070 | CONFIG_LOG_BUF_SHIFT=14 | 1109 | CONFIG_LOG_BUF_SHIFT=14 |
| 1071 | CONFIG_DETECT_SOFTLOCKUP=y | 1110 | CONFIG_DETECT_SOFTLOCKUP=y |
| 1072 | # CONFIG_SCHEDSTATS is not set | 1111 | # CONFIG_SCHEDSTATS is not set |
| 1073 | CONFIG_DEBUG_SLAB=y | 1112 | CONFIG_DEBUG_SLAB=y |
| 1074 | # CONFIG_DEBUG_SLAB_LEAK is not set | 1113 | # CONFIG_DEBUG_SLAB_LEAK is not set |
| 1075 | CONFIG_DEBUG_MUTEXES=y | 1114 | # CONFIG_DEBUG_RT_MUTEXES is not set |
| 1115 | # CONFIG_RT_MUTEX_TESTER is not set | ||
| 1076 | CONFIG_DEBUG_SPINLOCK=y | 1116 | CONFIG_DEBUG_SPINLOCK=y |
| 1117 | CONFIG_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 |
| 1079 | CONFIG_DEBUG_BUGVERBOSE=y | 1122 | CONFIG_DEBUG_BUGVERBOSE=y |
| 1080 | # CONFIG_DEBUG_INFO is not set | 1123 | # CONFIG_DEBUG_INFO is not set |
| @@ -1114,3 +1157,4 @@ CONFIG_CRC32=y | |||
| 1114 | CONFIG_LIBCRC32C=y | 1157 | CONFIG_LIBCRC32C=y |
| 1115 | CONFIG_ZLIB_INFLATE=y | 1158 | CONFIG_ZLIB_INFLATE=y |
| 1116 | CONFIG_ZLIB_DEFLATE=y | 1159 | CONFIG_ZLIB_DEFLATE=y |
| 1160 | CONFIG_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 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_GENERIC_HARDIRQS=y | ||
| 9 | CONFIG_HARDIRQS_SW_RESEND=y | ||
| 10 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 11 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 13 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 11 | CONFIG_VECTORS_BASE=0xffff0000 | 14 | CONFIG_VECTORS_BASE=0xffff0000 |
| 15 | CONFIG_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 | |||
| 43 | CONFIG_BUG=y | 47 | CONFIG_BUG=y |
| 44 | CONFIG_ELF_CORE=y | 48 | CONFIG_ELF_CORE=y |
| 45 | CONFIG_BASE_FULL=y | 49 | CONFIG_BASE_FULL=y |
| 50 | CONFIG_RT_MUTEXES=y | ||
| 46 | CONFIG_FUTEX=y | 51 | CONFIG_FUTEX=y |
| 47 | CONFIG_EPOLL=y | 52 | CONFIG_EPOLL=y |
| 48 | CONFIG_SHMEM=y | 53 | CONFIG_SHMEM=y |
| 49 | CONFIG_SLAB=y | 54 | CONFIG_SLAB=y |
| 55 | CONFIG_VM_EVENT_COUNTERS=y | ||
| 50 | # CONFIG_TINY_SHMEM is not set | 56 | # CONFIG_TINY_SHMEM is not set |
| 51 | CONFIG_BASE_SMALL=0 | 57 | CONFIG_BASE_SMALL=0 |
| 52 | # CONFIG_SLOB is not set | 58 | # CONFIG_SLOB is not set |
| 53 | CONFIG_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=y | 107 | CONFIG_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 | ||
| 111 | CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y | 118 | CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y |
| 112 | 119 | ||
| 113 | # | 120 | # |
| @@ -171,6 +178,7 @@ CONFIG_FLATMEM=y | |||
| 171 | CONFIG_FLAT_NODE_MEM_MAP=y | 178 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 172 | # CONFIG_SPARSEMEM_STATIC is not set | 179 | # CONFIG_SPARSEMEM_STATIC is not set |
| 173 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 180 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
| 181 | # CONFIG_RESOURCES_64BIT is not set | ||
| 174 | CONFIG_ALIGNMENT_TRAP=y | 182 | CONFIG_ALIGNMENT_TRAP=y |
| 175 | 183 | ||
| 176 | # | 184 | # |
| @@ -218,6 +226,8 @@ CONFIG_NET=y | |||
| 218 | CONFIG_PACKET=y | 226 | CONFIG_PACKET=y |
| 219 | CONFIG_PACKET_MMAP=y | 227 | CONFIG_PACKET_MMAP=y |
| 220 | CONFIG_UNIX=y | 228 | CONFIG_UNIX=y |
| 229 | CONFIG_XFRM=y | ||
| 230 | # CONFIG_XFRM_USER is not set | ||
| 221 | # CONFIG_NET_KEY is not set | 231 | # CONFIG_NET_KEY is not set |
| 222 | CONFIG_INET=y | 232 | CONFIG_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 |
| 249 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
| 250 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
| 239 | CONFIG_INET_DIAG=y | 251 | CONFIG_INET_DIAG=y |
| 240 | CONFIG_INET_TCP_DIAG=y | 252 | CONFIG_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 | |||
| 542 | CONFIG_WAN=y | 557 | CONFIG_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 | ||
| 546 | CONFIG_HDLC=y | 560 | CONFIG_HDLC=y |
| 547 | CONFIG_HDLC_RAW=y | 561 | CONFIG_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 |
| 698 | CONFIG_I2C_IXP2000=y | 713 | CONFIG_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 | # |
| 741 | CONFIG_HWMON=y | 756 | CONFIG_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 |
| 820 | CONFIG_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 |
| 868 | CONFIG_INOTIFY=y | 888 | CONFIG_INOTIFY=y |
| 889 | CONFIG_INOTIFY_USER=y | ||
| 869 | # CONFIG_QUOTA is not set | 890 | # CONFIG_QUOTA is not set |
| 870 | CONFIG_DNOTIFY=y | 891 | CONFIG_DNOTIFY=y |
| 871 | # CONFIG_AUTOFS_FS is not set | 892 | # CONFIG_AUTOFS_FS is not set |
| @@ -910,6 +931,7 @@ CONFIG_JFFS2_FS=y | |||
| 910 | CONFIG_JFFS2_FS_DEBUG=0 | 931 | CONFIG_JFFS2_FS_DEBUG=0 |
| 911 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 932 | CONFIG_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 |
| 914 | CONFIG_JFFS2_ZLIB=y | 936 | CONFIG_JFFS2_ZLIB=y |
| 915 | CONFIG_JFFS2_RTIME=y | 937 | CONFIG_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 |
| 982 | CONFIG_MAGIC_SYSRQ=y | 1005 | CONFIG_MAGIC_SYSRQ=y |
| 1006 | # CONFIG_UNUSED_SYMBOLS is not set | ||
| 983 | CONFIG_DEBUG_KERNEL=y | 1007 | CONFIG_DEBUG_KERNEL=y |
| 984 | CONFIG_LOG_BUF_SHIFT=14 | 1008 | CONFIG_LOG_BUF_SHIFT=14 |
| 985 | CONFIG_DETECT_SOFTLOCKUP=y | 1009 | CONFIG_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 |
| 988 | CONFIG_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 |
| 1015 | CONFIG_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 |
| 992 | CONFIG_DEBUG_BUGVERBOSE=y | 1020 | CONFIG_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 |
| 1028 | CONFIG_ZLIB_INFLATE=y | 1056 | CONFIG_ZLIB_INFLATE=y |
| 1029 | CONFIG_ZLIB_DEFLATE=y | 1057 | CONFIG_ZLIB_DEFLATE=y |
| 1058 | CONFIG_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 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_GENERIC_HARDIRQS=y | ||
| 9 | CONFIG_HARDIRQS_SW_RESEND=y | ||
| 10 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 11 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 13 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 11 | CONFIG_VECTORS_BASE=0xffff0000 | 14 | CONFIG_VECTORS_BASE=0xffff0000 |
| 15 | CONFIG_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 | |||
| 43 | CONFIG_BUG=y | 47 | CONFIG_BUG=y |
| 44 | CONFIG_ELF_CORE=y | 48 | CONFIG_ELF_CORE=y |
| 45 | CONFIG_BASE_FULL=y | 49 | CONFIG_BASE_FULL=y |
| 50 | CONFIG_RT_MUTEXES=y | ||
| 46 | CONFIG_FUTEX=y | 51 | CONFIG_FUTEX=y |
| 47 | CONFIG_EPOLL=y | 52 | CONFIG_EPOLL=y |
| 48 | CONFIG_SHMEM=y | 53 | CONFIG_SHMEM=y |
| 49 | CONFIG_SLAB=y | 54 | CONFIG_SLAB=y |
| 55 | CONFIG_VM_EVENT_COUNTERS=y | ||
| 50 | # CONFIG_TINY_SHMEM is not set | 56 | # CONFIG_TINY_SHMEM is not set |
| 51 | CONFIG_BASE_SMALL=0 | 57 | CONFIG_BASE_SMALL=0 |
| 52 | # CONFIG_SLOB is not set | 58 | # CONFIG_SLOB is not set |
| 53 | CONFIG_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 |
| 96 | CONFIG_ARCH_IXP23XX=y | 108 | CONFIG_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 | ||
| 111 | CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y | 118 | CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y |
| 112 | 119 | ||
| 113 | # | 120 | # |
| @@ -165,6 +172,7 @@ CONFIG_FLATMEM=y | |||
| 165 | CONFIG_FLAT_NODE_MEM_MAP=y | 172 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 166 | # CONFIG_SPARSEMEM_STATIC is not set | 173 | # CONFIG_SPARSEMEM_STATIC is not set |
| 167 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 174 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
| 175 | CONFIG_RESOURCES_64BIT=y | ||
| 168 | CONFIG_ALIGNMENT_TRAP=y | 176 | CONFIG_ALIGNMENT_TRAP=y |
| 169 | 177 | ||
| 170 | # | 178 | # |
| @@ -212,6 +220,8 @@ CONFIG_NET=y | |||
| 212 | CONFIG_PACKET=y | 220 | CONFIG_PACKET=y |
| 213 | CONFIG_PACKET_MMAP=y | 221 | CONFIG_PACKET_MMAP=y |
| 214 | CONFIG_UNIX=y | 222 | CONFIG_UNIX=y |
| 223 | CONFIG_XFRM=y | ||
| 224 | # CONFIG_XFRM_USER is not set | ||
| 215 | # CONFIG_NET_KEY is not set | 225 | # CONFIG_NET_KEY is not set |
| 216 | CONFIG_INET=y | 226 | CONFIG_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 |
| 243 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
| 244 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
| 233 | CONFIG_INET_DIAG=y | 245 | CONFIG_INET_DIAG=y |
| 234 | CONFIG_INET_TCP_DIAG=y | 246 | CONFIG_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 | |||
| 658 | CONFIG_WAN=y | 674 | CONFIG_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 | ||
| 662 | CONFIG_HDLC=y | 677 | CONFIG_HDLC=y |
| 663 | CONFIG_HDLC_RAW=y | 678 | CONFIG_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 | # |
| 861 | CONFIG_HWMON=y | 877 | CONFIG_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 |
| 941 | CONFIG_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 | |||
| 959 | CONFIG_USB_EHCI_HCD=y | 980 | CONFIG_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 |
| 963 | CONFIG_USB_OHCI_HCD=y | 985 | CONFIG_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 |
| 1102 | CONFIG_INOTIFY=y | 1126 | CONFIG_INOTIFY=y |
| 1127 | CONFIG_INOTIFY_USER=y | ||
| 1103 | # CONFIG_QUOTA is not set | 1128 | # CONFIG_QUOTA is not set |
| 1104 | CONFIG_DNOTIFY=y | 1129 | CONFIG_DNOTIFY=y |
| 1105 | # CONFIG_AUTOFS_FS is not set | 1130 | # CONFIG_AUTOFS_FS is not set |
| @@ -1146,6 +1171,7 @@ CONFIG_JFFS2_FS=y | |||
| 1146 | CONFIG_JFFS2_FS_DEBUG=0 | 1171 | CONFIG_JFFS2_FS_DEBUG=0 |
| 1147 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 1172 | CONFIG_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 |
| 1150 | CONFIG_JFFS2_ZLIB=y | 1176 | CONFIG_JFFS2_ZLIB=y |
| 1151 | CONFIG_JFFS2_RTIME=y | 1177 | CONFIG_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 |
| 1257 | CONFIG_MAGIC_SYSRQ=y | 1284 | CONFIG_MAGIC_SYSRQ=y |
| 1285 | # CONFIG_UNUSED_SYMBOLS is not set | ||
| 1258 | CONFIG_DEBUG_KERNEL=y | 1286 | CONFIG_DEBUG_KERNEL=y |
| 1259 | CONFIG_LOG_BUF_SHIFT=14 | 1287 | CONFIG_LOG_BUF_SHIFT=14 |
| 1260 | CONFIG_DETECT_SOFTLOCKUP=y | 1288 | CONFIG_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 |
| 1263 | CONFIG_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 |
| 1294 | CONFIG_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 |
| 1267 | CONFIG_DEBUG_BUGVERBOSE=y | 1299 | CONFIG_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 |
| 1303 | CONFIG_ZLIB_INFLATE=y | 1335 | CONFIG_ZLIB_INFLATE=y |
| 1304 | CONFIG_ZLIB_DEFLATE=y | 1336 | CONFIG_ZLIB_DEFLATE=y |
| 1337 | CONFIG_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 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_GENERIC_HARDIRQS=y | ||
| 9 | CONFIG_HARDIRQS_SW_RESEND=y | ||
| 10 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 11 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 13 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 11 | CONFIG_ARCH_MTD_XIP=y | 14 | CONFIG_ARCH_MTD_XIP=y |
| 12 | CONFIG_VECTORS_BASE=0xffff0000 | 15 | CONFIG_VECTORS_BASE=0xffff0000 |
| 16 | CONFIG_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 | |||
| 43 | CONFIG_BUG=y | 47 | CONFIG_BUG=y |
| 44 | CONFIG_ELF_CORE=y | 48 | CONFIG_ELF_CORE=y |
| 45 | CONFIG_BASE_FULL=y | 49 | CONFIG_BASE_FULL=y |
| 50 | CONFIG_RT_MUTEXES=y | ||
| 46 | CONFIG_FUTEX=y | 51 | CONFIG_FUTEX=y |
| 47 | CONFIG_EPOLL=y | 52 | CONFIG_EPOLL=y |
| 48 | CONFIG_SHMEM=y | 53 | CONFIG_SHMEM=y |
| 49 | CONFIG_SLAB=y | 54 | CONFIG_SLAB=y |
| 55 | CONFIG_VM_EVENT_COUNTERS=y | ||
| 50 | # CONFIG_TINY_SHMEM is not set | 56 | # CONFIG_TINY_SHMEM is not set |
| 51 | CONFIG_BASE_SMALL=0 | 57 | CONFIG_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 | ||
| 120 | CONFIG_PXA27x=y | 127 | CONFIG_PXA27x=y |
| 121 | CONFIG_IWMMXT=y | 128 | CONFIG_IWMMXT=y |
| 122 | 129 | ||
| @@ -161,6 +168,7 @@ CONFIG_FLATMEM=y | |||
| 161 | CONFIG_FLAT_NODE_MEM_MAP=y | 168 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 162 | # CONFIG_SPARSEMEM_STATIC is not set | 169 | # CONFIG_SPARSEMEM_STATIC is not set |
| 163 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 170 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
| 171 | # CONFIG_RESOURCES_64BIT is not set | ||
| 164 | CONFIG_ALIGNMENT_TRAP=y | 172 | CONFIG_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 | |||
| 293 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 299 | CONFIG_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 | |||
| 561 | CONFIG_VT=y | 568 | CONFIG_VT=y |
| 562 | CONFIG_VT_CONSOLE=y | 569 | CONFIG_VT_CONSOLE=y |
| 563 | CONFIG_HW_CONSOLE=y | 570 | CONFIG_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 | # |
| 625 | CONFIG_HWMON=y | 633 | CONFIG_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 | ||
| 661 | CONFIG_FB=y | 671 | CONFIG_FB=y |
| 662 | CONFIG_FB_CFB_FILLRECT=y | 672 | CONFIG_FB_CFB_FILLRECT=y |
| 663 | CONFIG_FB_CFB_COPYAREA=y | 673 | CONFIG_FB_CFB_COPYAREA=y |
| 664 | CONFIG_FB_CFB_IMAGEBLIT=y | 674 | CONFIG_FB_CFB_IMAGEBLIT=y |
| 665 | # CONFIG_FB_MACMODES is not set | 675 | # CONFIG_FB_MACMODES is not set |
| 666 | CONFIG_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 | |||
| 822 | CONFIG_JFFS2_FS_DEBUG=0 | 832 | CONFIG_JFFS2_FS_DEBUG=0 |
| 823 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 833 | CONFIG_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 |
| 826 | CONFIG_JFFS2_ZLIB=y | 837 | CONFIG_JFFS2_ZLIB=y |
| 827 | CONFIG_JFFS2_RTIME=y | 838 | CONFIG_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 |
| 916 | CONFIG_MAGIC_SYSRQ=y | 928 | CONFIG_MAGIC_SYSRQ=y |
| 929 | # CONFIG_UNUSED_SYMBOLS is not set | ||
| 917 | CONFIG_DEBUG_KERNEL=y | 930 | CONFIG_DEBUG_KERNEL=y |
| 918 | CONFIG_LOG_BUF_SHIFT=14 | 931 | CONFIG_LOG_BUF_SHIFT=14 |
| 919 | CONFIG_DETECT_SOFTLOCKUP=y | 932 | CONFIG_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 |
| 926 | CONFIG_DEBUG_BUGVERBOSE=y | 943 | CONFIG_DEBUG_BUGVERBOSE=y |
| 927 | CONFIG_DEBUG_INFO=y | 944 | CONFIG_DEBUG_INFO=y |
| @@ -961,3 +978,4 @@ CONFIG_CRC32=y | |||
| 961 | # CONFIG_LIBCRC32C is not set | 978 | # CONFIG_LIBCRC32C is not set |
| 962 | CONFIG_ZLIB_INFLATE=y | 979 | CONFIG_ZLIB_INFLATE=y |
| 963 | CONFIG_ZLIB_DEFLATE=y | 980 | CONFIG_ZLIB_DEFLATE=y |
| 981 | CONFIG_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 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
| 8 | CONFIG_GENERIC_HARDIRQS=y | ||
| 9 | CONFIG_HARDIRQS_SW_RESEND=y | ||
| 10 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 11 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 13 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 11 | CONFIG_VECTORS_BASE=0xffff0000 | 14 | CONFIG_VECTORS_BASE=0xffff0000 |
| 15 | CONFIG_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 | |||
| 42 | CONFIG_BUG=y | 46 | CONFIG_BUG=y |
| 43 | CONFIG_ELF_CORE=y | 47 | CONFIG_ELF_CORE=y |
| 44 | CONFIG_BASE_FULL=y | 48 | CONFIG_BASE_FULL=y |
| 49 | CONFIG_RT_MUTEXES=y | ||
| 45 | CONFIG_FUTEX=y | 50 | CONFIG_FUTEX=y |
| 46 | CONFIG_EPOLL=y | 51 | CONFIG_EPOLL=y |
| 47 | CONFIG_SHMEM=y | 52 | CONFIG_SHMEM=y |
| 48 | CONFIG_SLAB=y | 53 | CONFIG_SLAB=y |
| 54 | CONFIG_VM_EVENT_COUNTERS=y | ||
| 49 | # CONFIG_TINY_SHMEM is not set | 55 | # CONFIG_TINY_SHMEM is not set |
| 50 | CONFIG_BASE_SMALL=0 | 56 | CONFIG_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 |
| 88 | CONFIG_ARCH_AT91=y | 94 | CONFIG_ARCH_AT91=y |
| 89 | CONFIG_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 | # | ||
| 125 | CONFIG_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 | # |
| 133 | CONFIG_AT91_PROGRAMMABLE_CLOCKS=y | 145 | CONFIG_AT91_PROGRAMMABLE_CLOCKS=y |
| 134 | 146 | ||
| @@ -186,6 +198,7 @@ CONFIG_FLATMEM=y | |||
| 186 | CONFIG_FLAT_NODE_MEM_MAP=y | 198 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 187 | # CONFIG_SPARSEMEM_STATIC is not set | 199 | # CONFIG_SPARSEMEM_STATIC is not set |
| 188 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 200 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
| 201 | # CONFIG_RESOURCES_64BIT is not set | ||
| 189 | CONFIG_LEDS=y | 202 | CONFIG_LEDS=y |
| 190 | CONFIG_LEDS_TIMER=y | 203 | CONFIG_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 | ||
| 1009 | CONFIG_DEBUG_KERNEL=y | 1026 | CONFIG_DEBUG_KERNEL=y |
| 1010 | CONFIG_LOG_BUF_SHIFT=14 | 1027 | CONFIG_LOG_BUF_SHIFT=14 |
| 1011 | CONFIG_DETECT_SOFTLOCKUP=y | 1028 | CONFIG_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 |
| 1018 | CONFIG_DEBUG_BUGVERBOSE=y | 1039 | CONFIG_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 | |||
| 1052 | CONFIG_CRC32=y | 1073 | CONFIG_CRC32=y |
| 1053 | # CONFIG_LIBCRC32C is not set | 1074 | # CONFIG_LIBCRC32C is not set |
| 1054 | CONFIG_ZLIB_INFLATE=y | 1075 | CONFIG_ZLIB_INFLATE=y |
| 1076 | CONFIG_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 | |||
| 171 | static 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 | ||
| 85 | static struct mcp_plat_data collie_mcp_data = { | 85 | static 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 | ||
| 73 | static void collie_charge(int on) | 75 | static 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 | ||
| 98 | static void collie_discharge(int on) | 90 | static 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 | ||
| 201 | struct 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 | |||
| 211 | struct battery_thresh collie_battery_levels[] = { | 216 | struct 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 | ||
| 238 | static int __init collie_pm_ucb_add(struct ucb1x00_dev *pdev) | 259 | static 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 = { | |||
| 352 | static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco) | 353 | static 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 | }; |
| 184 | EXPORT_SYMBOL(of_bus_type); | 184 | EXPORT_SYMBOL(of_bus_type); |
| 185 | 185 | ||
| 186 | static inline u64 of_read_addr(u32 *cell, int size) | 186 | static 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 | ||
| 227 | static 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 | */ | ||
| 230 | static 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 | ||
| 240 | static int of_bus_default_translate(u32 *addr, u64 offset, int na) | 246 | static 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 | ||
| 262 | static int of_bus_pci_match(struct device_node *np) | 283 | static 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 | ||
| 267 | static void of_bus_pci_count_cells(struct device_node *np, | 301 | static 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 | ||
| 276 | static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna) | 310 | static 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 | ||
| 294 | static 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 | ||
| 299 | static unsigned int of_bus_pci_get_flags(u32 *addr) | 338 | static 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 | ||
| 335 | static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna) | 374 | static 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 | ||
| 340 | static int of_bus_sbus_translate(u32 *addr, u64 offset, int na) | ||
| 341 | { | ||
| 342 | return of_bus_default_translate(addr, offset, na); | ||
| 343 | } | ||
| 344 | |||
| 345 | static unsigned int of_bus_sbus_get_flags(u32 *addr) | 379 | static 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 | |||
| 430 | finish: | ||
| 431 | /* Translate it into parent bus space */ | ||
| 432 | return pbus->translate(addr, offset, pna); | ||
| 433 | } | 463 | } |
| 434 | 464 | ||
| 465 | static int of_resource_verbose; | ||
| 466 | |||
| 435 | static void __init build_device_resources(struct of_device *op, | 467 | static 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 | ||
| 644 | postcore_initcall(of_bus_driver_init); | 683 | postcore_initcall(of_bus_driver_init); |
| 645 | 684 | ||
| 685 | static 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 | |||
| 646 | int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) | 697 | int 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 | ||
| 703 | void of_device_unregister(struct of_device *ofdev) | 756 | void 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 | # |
| 6 | CONFIG_SPARC=y | 6 | CONFIG_SPARC=y |
| 7 | CONFIG_SPARC64=y | 7 | CONFIG_SPARC64=y |
| @@ -18,6 +18,7 @@ CONFIG_SECCOMP=y | |||
| 18 | CONFIG_HZ_250=y | 18 | CONFIG_HZ_250=y |
| 19 | # CONFIG_HZ_1000 is not set | 19 | # CONFIG_HZ_1000 is not set |
| 20 | CONFIG_HZ=250 | 20 | CONFIG_HZ=250 |
| 21 | CONFIG_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 | |||
| 51 | CONFIG_BUG=y | 52 | CONFIG_BUG=y |
| 52 | CONFIG_ELF_CORE=y | 53 | CONFIG_ELF_CORE=y |
| 53 | CONFIG_BASE_FULL=y | 54 | CONFIG_BASE_FULL=y |
| 55 | CONFIG_RT_MUTEXES=y | ||
| 54 | CONFIG_FUTEX=y | 56 | CONFIG_FUTEX=y |
| 55 | CONFIG_EPOLL=y | 57 | CONFIG_EPOLL=y |
| 56 | CONFIG_SHMEM=y | 58 | CONFIG_SHMEM=y |
| 57 | CONFIG_SLAB=y | 59 | CONFIG_SLAB=y |
| 60 | CONFIG_VM_EVENT_COUNTERS=y | ||
| 58 | # CONFIG_TINY_SHMEM is not set | 61 | # CONFIG_TINY_SHMEM is not set |
| 59 | CONFIG_BASE_SMALL=0 | 62 | CONFIG_BASE_SMALL=0 |
| 60 | # CONFIG_SLOB is not set | 63 | # CONFIG_SLOB is not set |
| @@ -127,8 +130,8 @@ CONFIG_SPARSEMEM=y | |||
| 127 | CONFIG_HAVE_MEMORY_PRESENT=y | 130 | CONFIG_HAVE_MEMORY_PRESENT=y |
| 128 | # CONFIG_SPARSEMEM_STATIC is not set | 131 | # CONFIG_SPARSEMEM_STATIC is not set |
| 129 | CONFIG_SPARSEMEM_EXTREME=y | 132 | CONFIG_SPARSEMEM_EXTREME=y |
| 130 | CONFIG_MEMORY_HOTPLUG=y | ||
| 131 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 133 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 134 | CONFIG_RESOURCES_64BIT=y | ||
| 132 | CONFIG_GENERIC_ISA_DMA=y | 135 | CONFIG_GENERIC_ISA_DMA=y |
| 133 | CONFIG_SBUS=y | 136 | CONFIG_SBUS=y |
| 134 | CONFIG_SBUSCHAR=y | 137 | CONFIG_SBUSCHAR=y |
| @@ -203,7 +206,6 @@ CONFIG_TCP_CONG_VEGAS=m | |||
| 203 | CONFIG_TCP_CONG_SCALABLE=m | 206 | CONFIG_TCP_CONG_SCALABLE=m |
| 204 | CONFIG_TCP_CONG_LP=m | 207 | CONFIG_TCP_CONG_LP=m |
| 205 | CONFIG_TCP_CONG_VENO=m | 208 | CONFIG_TCP_CONG_VENO=m |
| 206 | CONFIG_TCP_CONG_COMPOUND=m | ||
| 207 | CONFIG_IPV6=m | 209 | CONFIG_IPV6=m |
| 208 | CONFIG_IPV6_PRIVACY=y | 210 | CONFIG_IPV6_PRIVACY=y |
| 209 | CONFIG_IPV6_ROUTER_PREF=y | 211 | CONFIG_IPV6_ROUTER_PREF=y |
| @@ -461,9 +463,8 @@ CONFIG_MD_LINEAR=m | |||
| 461 | CONFIG_MD_RAID0=m | 463 | CONFIG_MD_RAID0=m |
| 462 | CONFIG_MD_RAID1=m | 464 | CONFIG_MD_RAID1=m |
| 463 | CONFIG_MD_RAID10=m | 465 | CONFIG_MD_RAID10=m |
| 464 | CONFIG_MD_RAID5=m | 466 | CONFIG_MD_RAID456=m |
| 465 | # CONFIG_MD_RAID5_RESHAPE is not set | 467 | # CONFIG_MD_RAID5_RESHAPE is not set |
| 466 | CONFIG_MD_RAID6=m | ||
| 467 | CONFIG_MD_MULTIPATH=m | 468 | CONFIG_MD_MULTIPATH=m |
| 468 | # CONFIG_MD_FAULTY is not set | 469 | # CONFIG_MD_FAULTY is not set |
| 469 | CONFIG_BLK_DEV_DM=m | 470 | CONFIG_BLK_DEV_DM=m |
| @@ -663,6 +664,7 @@ CONFIG_SERIO_RAW=m | |||
| 663 | CONFIG_VT=y | 664 | CONFIG_VT=y |
| 664 | CONFIG_VT_CONSOLE=y | 665 | CONFIG_VT_CONSOLE=y |
| 665 | CONFIG_HW_CONSOLE=y | 666 | CONFIG_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 | ||
| 696 | CONFIG_RTC=y | 699 | CONFIG_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 | ||
| 842 | CONFIG_FB=y | 846 | CONFIG_FB=y |
| 843 | CONFIG_FB_CFB_FILLRECT=y | 847 | CONFIG_FB_CFB_FILLRECT=y |
| 844 | CONFIG_FB_CFB_COPYAREA=y | 848 | CONFIG_FB_CFB_COPYAREA=y |
| 845 | CONFIG_FB_CFB_IMAGEBLIT=y | 849 | CONFIG_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 |
| 848 | CONFIG_FB_MODE_HELPERS=y | 852 | CONFIG_FB_MODE_HELPERS=y |
| 849 | CONFIG_FB_TILEBLITTING=y | 853 | CONFIG_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 | # |
| 1332 | CONFIG_PRINTK_TIME=y | 1349 | CONFIG_PRINTK_TIME=y |
| 1333 | CONFIG_MAGIC_SYSRQ=y | 1350 | CONFIG_MAGIC_SYSRQ=y |
| 1351 | # CONFIG_UNUSED_SYMBOLS is not set | ||
| 1334 | CONFIG_DEBUG_KERNEL=y | 1352 | CONFIG_DEBUG_KERNEL=y |
| 1335 | CONFIG_LOG_BUF_SHIFT=18 | 1353 | CONFIG_LOG_BUF_SHIFT=18 |
| 1336 | CONFIG_DETECT_SOFTLOCKUP=y | 1354 | CONFIG_DETECT_SOFTLOCKUP=y |
| 1337 | CONFIG_SCHEDSTATS=y | 1355 | CONFIG_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 |
| 1343 | CONFIG_DEBUG_BUGVERBOSE=y | 1365 | CONFIG_DEBUG_BUGVERBOSE=y |
| 1344 | # CONFIG_DEBUG_INFO is not set | 1366 | # CONFIG_DEBUG_INFO is not set |
| @@ -1402,3 +1424,4 @@ CONFIG_CRC32=y | |||
| 1402 | CONFIG_LIBCRC32C=m | 1424 | CONFIG_LIBCRC32C=m |
| 1403 | CONFIG_ZLIB_INFLATE=y | 1425 | CONFIG_ZLIB_INFLATE=y |
| 1404 | CONFIG_ZLIB_DEFLATE=y | 1426 | CONFIG_ZLIB_DEFLATE=y |
| 1427 | CONFIG_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 | }; |
| 211 | EXPORT_SYMBOL(of_bus_type); | 211 | EXPORT_SYMBOL(of_bus_type); |
| 212 | 212 | ||
| 213 | static inline u64 of_read_addr(u32 *cell, int size) | 213 | static 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 | ||
| 254 | static 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 | */ | ||
| 257 | static 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 | ||
| 267 | static int of_bus_default_translate(u32 *addr, u64 offset, int na) | 273 | static 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 | ||
| 288 | static int of_bus_pci_match(struct device_node *np) | 310 | static 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 | ||
| 293 | static void of_bus_pci_count_cells(struct device_node *np, | 328 | static 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 | ||
| 302 | static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna) | 337 | static 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 | ||
| 320 | static 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 | ||
| 325 | static unsigned int of_bus_pci_get_flags(u32 *addr) | 365 | static 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 | |||
| 346 | static int of_bus_isa_match(struct device_node *np) | ||
| 347 | { | ||
| 348 | return !strcmp(np->name, "isa"); | ||
| 349 | } | ||
| 350 | |||
| 351 | static 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 | |||
| 360 | static 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 | |||
| 378 | static 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 | |||
| 383 | static 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 | ||
| 414 | static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna) | 401 | static 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 | ||
| 419 | static int of_bus_sbus_translate(u32 *addr, u64 offset, int na) | ||
| 420 | { | ||
| 421 | return of_bus_default_translate(addr, offset, na); | ||
| 422 | } | ||
| 423 | |||
| 424 | static unsigned int of_bus_sbus_get_flags(u32 *addr) | 406 | static 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 | |||
| 492 | static 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 | ||
| 519 | finish: | 517 | return 1; |
| 520 | /* Translate it into parent bus space */ | ||
| 521 | return pbus->translate(addr, offset, pna); | ||
| 522 | } | 518 | } |
| 523 | 519 | ||
| 520 | static int of_resource_verbose; | ||
| 521 | |||
| 524 | static void __init build_device_resources(struct of_device *op, | 522 | static 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 | ||
| 684 | static int of_irq_verbose; | ||
| 685 | |||
| 687 | static unsigned int __init build_one_device_irq(struct of_device *op, | 686 | static 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 | ||
| 871 | postcore_initcall(of_bus_driver_init); | 873 | postcore_initcall(of_bus_driver_init); |
| 872 | 874 | ||
| 875 | static 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 | |||
| 873 | int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) | 889 | int 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 | ||
| 930 | void of_device_unregister(struct of_device *ofdev) | 948 | void 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 | ||
| 542 | static 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 | |||
| 542 | static unsigned int sabre_irq_build(struct device_node *dp, | 581 | static 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 | ||
| 300 | static unsigned int serial_in(struct uart_8250_port *up, int offset) | 300 | static 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 | ||
| 2271 | static int serial8250_console_setup(struct console *co, char *options) | 2288 | static 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 |
| 676 | static void dz_console_putchar(struct uart_port *port, int ch) | 676 | static 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 | ||
| 148 | static inline unsigned long get_limit(unsigned long segment) | 147 | static 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 | ||
| 120 | extern int __get_user_bad(void); | 120 | extern 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 | |||
| 4 | ARCHDEF := defined __sparc__ && defined __arch64__ | 4 | ARCHDEF := defined __sparc__ && defined __arch64__ |
| 5 | ALTARCHDEF := defined __sparc__ && !defined __arch64__ | 5 | ALTARCHDEF := defined __sparc__ && !defined __arch64__ |
| 6 | 6 | ||
| 7 | unifdef-y := fbio.h perfctr.h | 7 | unifdef-y += fbio.h perfctr.h |
| 8 | header-y += apb.h asi.h bbc.h bpp.h display7seg.h envctrl.h floppy.h \ | 8 | header-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 | ||
| 6 | enum { | 8 | enum { |
| 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 */ |
| @@ -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 | */ | ||
| 686 | static struct lock_class_key on_slab_key; | ||
| 687 | |||
| 688 | static 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 | ||
| 701 | static 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. */ |
| 678 | static DEFINE_MUTEX(cache_chain_mutex); | 709 | static DEFINE_MUTEX(cache_chain_mutex); |
| 679 | static struct list_head cache_chain; | 710 | static struct list_head cache_chain; |
| @@ -1021,8 +1052,7 @@ static void drain_alien_cache(struct kmem_cache *cachep, | |||
| 1021 | } | 1052 | } |
| 1022 | } | 1053 | } |
| 1023 | 1054 | ||
| 1024 | static inline int cache_free_alien(struct kmem_cache *cachep, void *objp, | 1055 | static 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 | ||
| 1072 | static inline int cache_free_alien(struct kmem_cache *cachep, void *objp, | 1102 | static 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 | ||
| 1763 | static 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 | */ |
| 3181 | static void __cache_free(struct kmem_cache *cachep, void *objp, int nesting) | 3191 | static 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 | } |
| 3430 | EXPORT_SYMBOL(kmem_cache_free); | 3440 | EXPORT_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 | } |
| 3455 | EXPORT_SYMBOL(kfree); | 3465 | EXPORT_SYMBOL(kfree); |
