aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/alpha/lib/strncpy.S8
-rw-r--r--arch/arm/Makefile2
-rw-r--r--arch/arm/common/scoop.c12
-rw-r--r--arch/arm/configs/ep93xx_defconfig79
-rw-r--r--arch/arm/configs/ixp2000_defconfig59
-rw-r--r--arch/arm/configs/ixp23xx_defconfig58
-rw-r--r--arch/arm/kernel/Makefile2
-rw-r--r--arch/arm/kernel/head-nommu.S4
-rw-r--r--arch/arm/kernel/setup.c8
-rw-r--r--arch/arm/mach-ixp4xx/common.c2
-rw-r--r--arch/arm/mach-pxa/corgi_ssp.c9
-rw-r--r--arch/arm/vfp/vfpdouble.c2
-rw-r--r--arch/arm/vfp/vfpmodule.c2
-rw-r--r--arch/arm/vfp/vfpsingle.c2
-rw-r--r--arch/i386/Kconfig4
-rw-r--r--arch/i386/Kconfig.debug9
-rw-r--r--arch/i386/kernel/acpi/boot.c10
-rw-r--r--arch/i386/kernel/apic.c4
-rw-r--r--arch/i386/kernel/apm.c2
-rw-r--r--arch/i386/kernel/cpu/amd.c2
-rw-r--r--arch/i386/kernel/cpu/cpufreq/powernow-k8.c10
-rw-r--r--arch/i386/kernel/cpu/intel_cacheinfo.c2
-rw-r--r--arch/i386/kernel/cpuid.c2
-rw-r--r--arch/i386/kernel/kprobes.c39
-rw-r--r--arch/i386/kernel/msr.c2
-rw-r--r--arch/i386/kernel/ptrace.c7
-rw-r--r--arch/i386/kernel/setup.c4
-rw-r--r--arch/i386/kernel/smpboot.c4
-rw-r--r--arch/i386/kernel/timers/timer_tsc.c4
-rw-r--r--arch/i386/kernel/vm86.c2
-rw-r--r--arch/i386/mach-voyager/voyager_cat.c1
-rw-r--r--arch/i386/pci/irq.c1
-rw-r--r--arch/ia64/Kconfig2
-rw-r--r--arch/ia64/configs/sn2_defconfig76
-rw-r--r--arch/ia64/ia32/binfmt_elf32.c3
-rw-r--r--arch/ia64/ia32/ia32_entry.S2
-rw-r--r--arch/ia64/kernel/entry.S1
-rw-r--r--arch/ia64/kernel/kprobes.c10
-rw-r--r--arch/ia64/kernel/mca_drv.c54
-rw-r--r--arch/ia64/kernel/palinfo.c2
-rw-r--r--arch/ia64/kernel/ptrace.c4
-rw-r--r--arch/ia64/kernel/salinfo.c2
-rw-r--r--arch/ia64/kernel/topology.c9
-rw-r--r--arch/ia64/pci/pci.c3
-rw-r--r--arch/ia64/sn/kernel/sn2/sn_hwperf.c8
-rw-r--r--arch/ia64/sn/kernel/xpc_partition.c8
-rw-r--r--arch/ia64/sn/pci/tioce_provider.c6
-rw-r--r--arch/m32r/kernel/entry.S55
-rw-r--r--arch/m32r/kernel/process.c4
-rw-r--r--arch/m32r/kernel/signal.c4
-rw-r--r--arch/mips/Kconfig75
-rw-r--r--arch/mips/Kconfig.debug8
-rw-r--r--arch/mips/Makefile17
-rw-r--r--arch/mips/au1000/common/Makefile2
-rw-r--r--arch/mips/au1000/common/int-handler.S68
-rw-r--r--arch/mips/au1000/common/irq.c20
-rw-r--r--arch/mips/cobalt/Makefile2
-rw-r--r--arch/mips/cobalt/int-handler.S25
-rw-r--r--arch/mips/cobalt/irq.c6
-rw-r--r--arch/mips/configs/atlas_defconfig83
-rw-r--r--arch/mips/configs/bigsur_defconfig64
-rw-r--r--arch/mips/configs/capcella_defconfig143
-rw-r--r--arch/mips/configs/cobalt_defconfig68
-rw-r--r--arch/mips/configs/db1000_defconfig70
-rw-r--r--arch/mips/configs/db1100_defconfig71
-rw-r--r--arch/mips/configs/db1200_defconfig68
-rw-r--r--arch/mips/configs/db1500_defconfig105
-rw-r--r--arch/mips/configs/db1550_defconfig73
-rw-r--r--arch/mips/configs/ddb5476_defconfig69
-rw-r--r--arch/mips/configs/ddb5477_defconfig67
-rw-r--r--arch/mips/configs/decstation_defconfig69
-rw-r--r--arch/mips/configs/e55_defconfig288
-rw-r--r--arch/mips/configs/ev64120_defconfig67
-rw-r--r--arch/mips/configs/ev96100_defconfig64
-rw-r--r--arch/mips/configs/ip22_defconfig77
-rw-r--r--arch/mips/configs/ip27_defconfig54
-rw-r--r--arch/mips/configs/ip32_defconfig67
-rw-r--r--arch/mips/configs/it8172_defconfig66
-rw-r--r--arch/mips/configs/ivr_defconfig67
-rw-r--r--arch/mips/configs/jaguar-atx_defconfig56
-rw-r--r--arch/mips/configs/jmr3927_defconfig72
-rw-r--r--arch/mips/configs/lasat200_defconfig69
-rw-r--r--arch/mips/configs/malta_defconfig86
-rw-r--r--arch/mips/configs/mipssim_defconfig64
-rw-r--r--arch/mips/configs/mpc30x_defconfig95
-rw-r--r--arch/mips/configs/ocelot_3_defconfig72
-rw-r--r--arch/mips/configs/ocelot_c_defconfig66
-rw-r--r--arch/mips/configs/ocelot_defconfig64
-rw-r--r--arch/mips/configs/ocelot_g_defconfig66
-rw-r--r--arch/mips/configs/pb1100_defconfig70
-rw-r--r--arch/mips/configs/pb1500_defconfig73
-rw-r--r--arch/mips/configs/pb1550_defconfig73
-rw-r--r--arch/mips/configs/pnx8550-jbs_defconfig76
-rw-r--r--arch/mips/configs/pnx8550-v2pci_defconfig85
-rw-r--r--arch/mips/configs/qemu_defconfig48
-rw-r--r--arch/mips/configs/rbhma4500_defconfig95
-rw-r--r--arch/mips/configs/rm200_defconfig121
-rw-r--r--arch/mips/configs/sb1250-swarm_defconfig63
-rw-r--r--arch/mips/configs/sead_defconfig50
-rw-r--r--arch/mips/configs/tb0226_defconfig218
-rw-r--r--arch/mips/configs/tb0229_defconfig282
-rw-r--r--arch/mips/configs/tb0287_defconfig1132
-rw-r--r--arch/mips/configs/workpad_defconfig185
-rw-r--r--arch/mips/configs/yosemite_defconfig54
-rw-r--r--arch/mips/ddb5xxx/ddb5074/Makefile2
-rw-r--r--arch/mips/ddb5xxx/ddb5074/int-handler.S120
-rw-r--r--arch/mips/ddb5xxx/ddb5074/irq.c26
-rw-r--r--arch/mips/ddb5xxx/ddb5476/Makefile2
-rw-r--r--arch/mips/ddb5xxx/ddb5476/int-handler.S112
-rw-r--r--arch/mips/ddb5xxx/ddb5476/irq.c30
-rw-r--r--arch/mips/ddb5xxx/ddb5476/vrc5476_irq.c6
-rw-r--r--arch/mips/ddb5xxx/ddb5477/Makefile2
-rw-r--r--arch/mips/ddb5xxx/ddb5477/int-handler.S75
-rw-r--r--arch/mips/ddb5xxx/ddb5477/irq.c24
-rw-r--r--arch/mips/dec/boot/decstation.c3
-rw-r--r--arch/mips/dec/int-handler.S14
-rw-r--r--arch/mips/dec/setup.c3
-rw-r--r--arch/mips/defconfig77
-rw-r--r--arch/mips/galileo-boards/ev96100/Makefile2
-rw-r--r--arch/mips/galileo-boards/ev96100/int-handler.S33
-rw-r--r--arch/mips/galileo-boards/ev96100/irq.c19
-rw-r--r--arch/mips/gt64120/ev64120/Makefile2
-rw-r--r--arch/mips/gt64120/ev64120/int-handler.S113
-rw-r--r--arch/mips/gt64120/ev64120/irq.c27
-rw-r--r--arch/mips/gt64120/momenco_ocelot/Makefile2
-rw-r--r--arch/mips/gt64120/momenco_ocelot/int-handler.S131
-rw-r--r--arch/mips/gt64120/momenco_ocelot/irq.c36
-rw-r--r--arch/mips/ite-boards/generic/Makefile2
-rw-r--r--arch/mips/ite-boards/generic/int-handler.S63
-rw-r--r--arch/mips/ite-boards/generic/irq.c18
-rw-r--r--arch/mips/ite-boards/generic/time.c1
-rw-r--r--arch/mips/ite-boards/ivr/init.c2
-rw-r--r--arch/mips/ite-boards/qed-4n-s01b/init.c2
-rw-r--r--arch/mips/jazz/Makefile2
-rw-r--r--arch/mips/jazz/int-handler.S282
-rw-r--r--arch/mips/jazz/irq.c78
-rw-r--r--arch/mips/jmr3927/common/rtc_ds1742.c60
-rw-r--r--arch/mips/jmr3927/rbhma3100/Makefile2
-rw-r--r--arch/mips/jmr3927/rbhma3100/int-handler.S74
-rw-r--r--arch/mips/jmr3927/rbhma3100/irq.c6
-rw-r--r--arch/mips/kernel/Makefile5
-rw-r--r--arch/mips/kernel/asm-offsets.c3
-rw-r--r--arch/mips/kernel/branch.c2
-rw-r--r--arch/mips/kernel/entry.S69
-rw-r--r--arch/mips/kernel/gdb-low.S24
-rw-r--r--arch/mips/kernel/gdb-stub.c61
-rw-r--r--arch/mips/kernel/genex.S43
-rw-r--r--arch/mips/kernel/head.S57
-rw-r--r--arch/mips/kernel/i8259.c4
-rw-r--r--arch/mips/kernel/irq-msc01.c9
-rw-r--r--arch/mips/kernel/irq.c18
-rw-r--r--arch/mips/kernel/kspd.c398
-rw-r--r--arch/mips/kernel/linux32.c74
-rw-r--r--arch/mips/kernel/mips-mt.c449
-rw-r--r--arch/mips/kernel/mips_ksyms.c15
-rw-r--r--arch/mips/kernel/process.c21
-rw-r--r--arch/mips/kernel/ptrace.c18
-rw-r--r--arch/mips/kernel/ptrace32.c14
-rw-r--r--arch/mips/kernel/r4k_switch.S34
-rw-r--r--arch/mips/kernel/rtlx.c518
-rw-r--r--arch/mips/kernel/scall32-o32.S13
-rw-r--r--arch/mips/kernel/scall64-64.S2
-rw-r--r--arch/mips/kernel/scall64-n32.S2
-rw-r--r--arch/mips/kernel/scall64-o32.S2
-rw-r--r--arch/mips/kernel/setup.c5
-rw-r--r--arch/mips/kernel/smp-mt.c (renamed from arch/mips/kernel/smp_mt.c)44
-rw-r--r--arch/mips/kernel/smp.c12
-rw-r--r--arch/mips/kernel/smtc-asm.S130
-rw-r--r--arch/mips/kernel/smtc-proc.c93
-rw-r--r--arch/mips/kernel/smtc.c1322
-rw-r--r--arch/mips/kernel/time.c3
-rw-r--r--arch/mips/kernel/traps.c212
-rw-r--r--arch/mips/kernel/vmlinux.lds.S2
-rw-r--r--arch/mips/kernel/vpe.c665
-rw-r--r--arch/mips/lasat/Makefile2
-rw-r--r--arch/mips/lasat/interrupt.c14
-rw-r--r--arch/mips/lasat/lasatIRQ.S69
-rw-r--r--arch/mips/mips-boards/atlas/atlas_int.c92
-rw-r--r--arch/mips/mips-boards/generic/Makefile4
-rw-r--r--arch/mips/mips-boards/generic/gdb_hook.c2
-rw-r--r--arch/mips/mips-boards/generic/init.c2
-rw-r--r--arch/mips/mips-boards/generic/memory.c9
-rw-r--r--arch/mips/mips-boards/generic/mipsIRQ.S155
-rw-r--r--arch/mips/mips-boards/generic/pci.c1
-rw-r--r--arch/mips/mips-boards/generic/time.c68
-rw-r--r--arch/mips/mips-boards/malta/Makefile1
-rw-r--r--arch/mips/mips-boards/malta/malta_int.c105
-rw-r--r--arch/mips/mips-boards/malta/malta_smp.c128
-rw-r--r--arch/mips/mips-boards/sead/sead_int.c86
-rw-r--r--arch/mips/mips-boards/sim/cmdline.c59
-rw-r--r--arch/mips/mips-boards/sim/sim_cmdline.c6
-rw-r--r--arch/mips/mips-boards/sim/sim_int.c64
-rw-r--r--arch/mips/mips-boards/sim/sim_irq.S4
-rw-r--r--arch/mips/mips-boards/sim/sim_mem.c9
-rw-r--r--arch/mips/mips-boards/sim/sim_smp.c14
-rw-r--r--arch/mips/mm/c-r3k.c5
-rw-r--r--arch/mips/mm/c-r4k.c20
-rw-r--r--arch/mips/mm/c-sb1.c1
-rw-r--r--arch/mips/mm/c-tx39.c7
-rw-r--r--arch/mips/mm/cache.c1
-rw-r--r--arch/mips/mm/fault.c13
-rw-r--r--arch/mips/mm/highmem.c2
-rw-r--r--arch/mips/mm/init.c48
-rw-r--r--arch/mips/mm/sc-rm7k.c2
-rw-r--r--arch/mips/mm/tlb-r4k.c85
-rw-r--r--arch/mips/mm/tlbex.c87
-rw-r--r--arch/mips/momentum/jaguar_atx/Makefile2
-rw-r--r--arch/mips/momentum/jaguar_atx/int-handler.S128
-rw-r--r--arch/mips/momentum/jaguar_atx/irq.c35
-rw-r--r--arch/mips/momentum/jaguar_atx/setup.c36
-rw-r--r--arch/mips/momentum/ocelot_3/Makefile2
-rw-r--r--arch/mips/momentum/ocelot_3/int-handler.S137
-rw-r--r--arch/mips/momentum/ocelot_3/irq.c38
-rw-r--r--arch/mips/momentum/ocelot_3/setup.c24
-rw-r--r--arch/mips/momentum/ocelot_c/Makefile2
-rw-r--r--arch/mips/momentum/ocelot_c/int-handler.S102
-rw-r--r--arch/mips/momentum/ocelot_c/irq.c30
-rw-r--r--arch/mips/momentum/ocelot_g/Makefile2
-rw-r--r--arch/mips/momentum/ocelot_g/int-handler.S131
-rw-r--r--arch/mips/momentum/ocelot_g/irq.c38
-rw-r--r--arch/mips/oprofile/common.c5
-rw-r--r--arch/mips/philips/pnx8550/common/Makefile2
-rw-r--r--arch/mips/philips/pnx8550/common/int.c23
-rw-r--r--arch/mips/philips/pnx8550/common/mipsIRQ.S76
-rw-r--r--arch/mips/philips/pnx8550/common/platform.c1
-rw-r--r--arch/mips/pmc-sierra/yosemite/Makefile2
-rw-r--r--arch/mips/pmc-sierra/yosemite/irq-handler.S93
-rw-r--r--arch/mips/pmc-sierra/yosemite/irq.c33
-rw-r--r--arch/mips/qemu/Makefile2
-rw-r--r--arch/mips/qemu/q-int.S17
-rw-r--r--arch/mips/qemu/q-irq.c3
-rw-r--r--arch/mips/sgi-ip22/Makefile2
-rw-r--r--arch/mips/sgi-ip22/ip22-int.c59
-rw-r--r--arch/mips/sgi-ip22/ip22-irq.S118
-rw-r--r--arch/mips/sgi-ip27/Makefile2
-rw-r--r--arch/mips/sgi-ip27/TODO4
-rw-r--r--arch/mips/sgi-ip27/ip27-irq-glue.S45
-rw-r--r--arch/mips/sgi-ip27/ip27-irq.c27
-rw-r--r--arch/mips/sgi-ip27/ip27-timer.c2
-rw-r--r--arch/mips/sgi-ip32/Makefile2
-rw-r--r--arch/mips/sgi-ip32/ip32-irq-glue.S86
-rw-r--r--arch/mips/sgi-ip32/ip32-irq.c40
-rw-r--r--arch/mips/sibyte/bcm1480/Makefile2
-rw-r--r--arch/mips/sibyte/bcm1480/irq.c77
-rw-r--r--arch/mips/sibyte/bcm1480/irq_handler.S165
-rw-r--r--arch/mips/sibyte/sb1250/Makefile2
-rw-r--r--arch/mips/sibyte/sb1250/irq.c78
-rw-r--r--arch/mips/sibyte/sb1250/irq_handler.S147
-rw-r--r--arch/mips/sni/Makefile2
-rw-r--r--arch/mips/sni/int-handler.S106
-rw-r--r--arch/mips/sni/irq.c37
-rw-r--r--arch/mips/tx4927/common/Makefile2
-rw-r--r--arch/mips/tx4927/common/tx4927_irq.c30
-rw-r--r--arch/mips/tx4927/common/tx4927_irq_handler.S103
-rw-r--r--arch/mips/tx4938/common/Makefile2
-rw-r--r--arch/mips/tx4938/common/irq.c21
-rw-r--r--arch/mips/tx4938/common/irq_handler.S84
-rw-r--r--arch/mips/vr41xx/Kconfig13
-rw-r--r--arch/mips/vr41xx/common/Makefile2
-rw-r--r--arch/mips/vr41xx/common/int-handler.S114
-rw-r--r--arch/mips/vr41xx/common/irq.c29
-rw-r--r--arch/parisc/Kconfig31
-rw-r--r--arch/parisc/defconfig494
-rw-r--r--arch/parisc/kernel/asm-offsets.c3
-rw-r--r--arch/parisc/kernel/cache.c4
-rw-r--r--arch/parisc/kernel/entry.S36
-rw-r--r--arch/parisc/kernel/head.S15
-rw-r--r--arch/parisc/kernel/init_task.c10
-rw-r--r--arch/parisc/kernel/pacache.S25
-rw-r--r--arch/parisc/kernel/sys_parisc.c8
-rw-r--r--arch/parisc/kernel/syscall.S10
-rw-r--r--arch/parisc/kernel/syscall_table.S8
-rw-r--r--arch/parisc/kernel/vmlinux.lds.S54
-rw-r--r--arch/parisc/mm/fault.c2
-rw-r--r--arch/parisc/mm/init.c28
-rw-r--r--arch/parisc/mm/ioremap.c3
-rw-r--r--arch/powerpc/Kconfig6
-rw-r--r--arch/powerpc/Makefile4
-rw-r--r--arch/powerpc/configs/cell_defconfig40
-rw-r--r--arch/powerpc/configs/g5_defconfig58
-rw-r--r--arch/powerpc/configs/iseries_defconfig43
-rw-r--r--arch/powerpc/configs/pseries_defconfig54
-rw-r--r--arch/powerpc/kernel/Makefile2
-rw-r--r--arch/powerpc/kernel/asm-offsets.c1
-rw-r--r--arch/powerpc/kernel/cputable.c16
-rw-r--r--arch/powerpc/kernel/entry_32.S35
-rw-r--r--arch/powerpc/kernel/head_64.S49
-rw-r--r--arch/powerpc/kernel/idle.c4
-rw-r--r--arch/powerpc/kernel/idle_6xx.S63
-rw-r--r--arch/powerpc/kernel/idle_power4.S10
-rw-r--r--arch/powerpc/kernel/iommu.c36
-rw-r--r--arch/powerpc/kernel/irq.c36
-rw-r--r--arch/powerpc/kernel/kprobes.c14
-rw-r--r--arch/powerpc/kernel/module_64.c16
-rw-r--r--arch/powerpc/kernel/pci_iommu.c40
-rw-r--r--arch/powerpc/kernel/ppc_ksyms.c1
-rw-r--r--arch/powerpc/kernel/prom.c2
-rw-r--r--arch/powerpc/kernel/prom_init.c117
-rw-r--r--arch/powerpc/kernel/ptrace.c5
-rw-r--r--arch/powerpc/kernel/rtas-proc.c4
-rw-r--r--arch/powerpc/kernel/setup-common.c8
-rw-r--r--arch/powerpc/kernel/setup_64.c8
-rw-r--r--arch/powerpc/kernel/sysfs.c22
-rw-r--r--arch/powerpc/kernel/systbl.S19
-rw-r--r--arch/powerpc/kernel/vio.c6
-rw-r--r--arch/powerpc/mm/hugetlbpage.c295
-rw-r--r--arch/powerpc/mm/init_64.c7
-rw-r--r--arch/powerpc/mm/numa.c32
-rw-r--r--arch/powerpc/platforms/cell/Kconfig3
-rw-r--r--arch/powerpc/platforms/cell/setup.c78
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c101
-rw-r--r--arch/powerpc/platforms/cell/spu_callbacks.c19
-rw-r--r--arch/powerpc/platforms/cell/spufs/switch.c2
-rw-r--r--arch/powerpc/platforms/chrp/chrp.h1
-rw-r--r--arch/powerpc/platforms/chrp/pci.c6
-rw-r--r--arch/powerpc/platforms/chrp/setup.c44
-rw-r--r--arch/powerpc/platforms/iseries/setup.c7
-rw-r--r--arch/powerpc/platforms/powermac/low_i2c.c78
-rw-r--r--arch/powerpc/platforms/powermac/pci.c2
-rw-r--r--arch/powerpc/platforms/pseries/eeh.c6
-rw-r--r--arch/powerpc/platforms/pseries/rtasd.c2
-rw-r--r--arch/powerpc/sysdev/dart_iommu.c12
-rw-r--r--arch/ppc/kernel/asm-offsets.c1
-rw-r--r--arch/ppc/kernel/entry.S33
-rw-r--r--arch/ppc/kernel/ppc_ksyms.c1
-rw-r--r--arch/ppc/platforms/4xx/ocotea.c2
-rw-r--r--arch/ppc/platforms/mpc8272ads_setup.c114
-rw-r--r--arch/ppc/platforms/mpc866ads_setup.c140
-rw-r--r--arch/ppc/platforms/mpc885ads_setup.c131
-rw-r--r--arch/ppc/platforms/pq2ads.c31
-rw-r--r--arch/ppc/syslib/ibm440gx_common.c13
-rw-r--r--arch/ppc/syslib/ibm440gx_common.h4
-rw-r--r--arch/ppc/syslib/mpc8xx_devices.c25
-rw-r--r--arch/ppc/syslib/ppc_sys.c13
-rw-r--r--arch/ppc/syslib/pq2_sys.c8
-rw-r--r--arch/s390/appldata/appldata_base.c2
-rw-r--r--arch/s390/kernel/compat_signal.c2
-rw-r--r--arch/s390/kernel/compat_wrapper.S42
-rw-r--r--arch/s390/kernel/ptrace.c5
-rw-r--r--arch/s390/kernel/signal.c5
-rw-r--r--arch/s390/kernel/syscalls.S5
-rw-r--r--arch/s390/kernel/vmlinux.lds.S4
-rw-r--r--arch/s390/mm/extmem.c19
-rw-r--r--arch/sparc64/Kconfig2
-rw-r--r--arch/sparc64/kernel/kprobes.c12
-rw-r--r--arch/sparc64/kernel/pci.c1
-rw-r--r--arch/sparc64/kernel/ptrace.c5
-rw-r--r--arch/sparc64/mm/tlb.c5
-rw-r--r--arch/um/Kconfig14
-rw-r--r--arch/um/Kconfig.i38619
-rw-r--r--arch/um/Makefile19
-rw-r--r--arch/um/defconfig240
-rw-r--r--arch/um/include/longjmp.h4
-rw-r--r--arch/um/include/sysdep-i386/kernel-offsets.h2
-rw-r--r--arch/um/include/sysdep-x86_64/kernel-offsets.h2
-rw-r--r--arch/um/kernel/irq.c93
-rw-r--r--arch/um/kernel/physmem.c2
-rw-r--r--arch/um/kernel/ptrace.c6
-rw-r--r--arch/um/kernel/skas/Makefile10
-rw-r--r--arch/um/os-Linux/file.c2
-rw-r--r--arch/um/os-Linux/irq.c47
-rw-r--r--arch/um/os-Linux/main.c30
-rw-r--r--arch/um/os-Linux/mem.c118
-rw-r--r--arch/um/os-Linux/process.c25
-rw-r--r--arch/um/os-Linux/skas/process.c42
-rw-r--r--arch/um/os-Linux/start_up.c24
-rw-r--r--arch/um/os-Linux/sys-i386/registers.c4
-rw-r--r--arch/um/os-Linux/sys-x86_64/registers.c4
-rw-r--r--arch/um/os-Linux/trap.c4
-rw-r--r--arch/um/os-Linux/uaccess.c4
-rw-r--r--arch/um/os-Linux/umid.c4
-rw-r--r--arch/um/os-Linux/user_syms.c7
-rw-r--r--arch/um/os-Linux/util.c2
-rw-r--r--arch/um/scripts/Makefile.rules12
-rw-r--r--arch/um/sys-i386/Makefile13
-rw-r--r--arch/um/sys-i386/signal.c6
-rw-r--r--arch/um/sys-i386/stub_segv.c4
-rw-r--r--arch/um/sys-x86_64/Makefile13
-rw-r--r--arch/um/sys-x86_64/stub_segv.c10
-rw-r--r--arch/x86_64/defconfig19
-rw-r--r--arch/x86_64/ia32/Makefile4
-rw-r--r--arch/x86_64/ia32/ia32entry.S2
-rw-r--r--arch/x86_64/kernel/kprobes.c10
-rw-r--r--arch/x86_64/kernel/mce.c2
-rw-r--r--arch/x86_64/kernel/mce_amd.c2
-rw-r--r--arch/x86_64/kernel/pci-gart.c4
-rw-r--r--arch/x86_64/kernel/process.c4
-rw-r--r--arch/x86_64/kernel/ptrace.c6
-rw-r--r--arch/x86_64/kernel/setup.c23
-rw-r--r--arch/x86_64/kernel/traps.c5
-rw-r--r--arch/x86_64/mm/numa.c2
391 files changed, 11770 insertions, 7066 deletions
diff --git a/arch/alpha/lib/strncpy.S b/arch/alpha/lib/strncpy.S
index 338551c7113c..bbdef1be5f95 100644
--- a/arch/alpha/lib/strncpy.S
+++ b/arch/alpha/lib/strncpy.S
@@ -43,8 +43,8 @@ strncpy:
43 43
44 .align 4 44 .align 4
45$multiword: 45$multiword:
46 subq $24, 1, $2 # clear the final bits in the prev word 46 subq $27, 1, $2 # clear the final bits in the prev word
47 or $2, $24, $2 47 or $2, $27, $2
48 zapnot $1, $2, $1 48 zapnot $1, $2, $1
49 subq $18, 1, $18 49 subq $18, 1, $18
50 50
@@ -70,8 +70,8 @@ $multiword:
70 bne $18, 0b 70 bne $18, 0b
71 71
721: ldq_u $1, 0($16) # clear the leading bits in the final word 721: ldq_u $1, 0($16) # clear the leading bits in the final word
73 subq $27, 1, $2 73 subq $24, 1, $2
74 or $2, $27, $2 74 or $2, $24, $2
75 75
76 zap $1, $2, $1 76 zap $1, $2, $1
77 stq_u $1, 0($16) 77 stq_u $1, 0($16)
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 95a96275f88a..6f8e84c1c1f2 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -66,7 +66,7 @@ tune-$(CONFIG_CPU_XSC3) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -
66tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) 66tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
67 67
68ifeq ($(CONFIG_AEABI),y) 68ifeq ($(CONFIG_AEABI),y)
69CFLAGS_ABI :=-mabi=aapcs -mno-thumb-interwork 69CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork
70else 70else
71CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,) 71CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
72endif 72endif
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c
index 5e830f444c6c..314ebd3a1d71 100644
--- a/arch/arm/common/scoop.c
+++ b/arch/arm/common/scoop.c
@@ -18,6 +18,18 @@
18#include <asm/io.h> 18#include <asm/io.h>
19#include <asm/hardware/scoop.h> 19#include <asm/hardware/scoop.h>
20 20
21/* PCMCIA to Scoop linkage
22
23 There is no easy way to link multiple scoop devices into one
24 single entity for the pxa2xx_pcmcia device so this structure
25 is used which is setup by the platform code.
26
27 This file is never modular so this symbol is always
28 accessile to the board support files.
29*/
30struct scoop_pcmcia_config *platform_scoop_config;
31EXPORT_SYMBOL(platform_scoop_config);
32
21#define SCOOP_REG(d,adr) (*(volatile unsigned short*)(d +(adr))) 33#define SCOOP_REG(d,adr) (*(volatile unsigned short*)(d +(adr)))
22 34
23struct scoop_dev { 35struct scoop_dev {
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
index 8dcc8e8ec813..b69e88bbc909 100644
--- a/arch/arm/configs/ep93xx_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -1,12 +1,14 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.16 3# Linux kernel version: 2.6.17-rc2
4# Mon Mar 20 14:54:51 2006 4# Wed Apr 19 21:21:01 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 8CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y
9CONFIG_GENERIC_CALIBRATE_DELAY=y 10CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000
10 12
11# 13#
12# Code maturity level options 14# Code maturity level options
@@ -28,6 +30,7 @@ CONFIG_SYSCTL=y
28# CONFIG_AUDIT is not set 30# CONFIG_AUDIT is not set
29CONFIG_IKCONFIG=y 31CONFIG_IKCONFIG=y
30CONFIG_IKCONFIG_PROC=y 32CONFIG_IKCONFIG_PROC=y
33# CONFIG_RELAY is not set
31CONFIG_INITRAMFS_SOURCE="" 34CONFIG_INITRAMFS_SOURCE=""
32CONFIG_UID16=y 35CONFIG_UID16=y
33CONFIG_CC_OPTIMIZE_FOR_SIZE=y 36CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -43,10 +46,6 @@ CONFIG_BASE_FULL=y
43CONFIG_FUTEX=y 46CONFIG_FUTEX=y
44CONFIG_EPOLL=y 47CONFIG_EPOLL=y
45CONFIG_SHMEM=y 48CONFIG_SHMEM=y
46CONFIG_CC_ALIGN_FUNCTIONS=0
47CONFIG_CC_ALIGN_LABELS=0
48CONFIG_CC_ALIGN_LOOPS=0
49CONFIG_CC_ALIGN_JUMPS=0
50CONFIG_SLAB=y 49CONFIG_SLAB=y
51# CONFIG_TINY_SHMEM is not set 50# CONFIG_TINY_SHMEM is not set
52CONFIG_BASE_SMALL=0 51CONFIG_BASE_SMALL=0
@@ -59,7 +58,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
59CONFIG_MODULES=y 58CONFIG_MODULES=y
60CONFIG_MODULE_UNLOAD=y 59CONFIG_MODULE_UNLOAD=y
61CONFIG_MODULE_FORCE_UNLOAD=y 60CONFIG_MODULE_FORCE_UNLOAD=y
62CONFIG_OBSOLETE_MODPARM=y
63# CONFIG_MODVERSIONS is not set 61# CONFIG_MODVERSIONS is not set
64# CONFIG_MODULE_SRCVERSION_ALL is not set 62# CONFIG_MODULE_SRCVERSION_ALL is not set
65CONFIG_KMOD=y 63CONFIG_KMOD=y
@@ -67,6 +65,7 @@ CONFIG_KMOD=y
67# 65#
68# Block layer 66# Block layer
69# 67#
68# CONFIG_BLK_DEV_IO_TRACE is not set
70 69
71# 70#
72# IO Schedulers 71# IO Schedulers
@@ -94,6 +93,7 @@ CONFIG_ARCH_EP93XX=y
94# CONFIG_ARCH_IOP3XX is not set 93# CONFIG_ARCH_IOP3XX is not set
95# CONFIG_ARCH_IXP4XX is not set 94# CONFIG_ARCH_IXP4XX is not set
96# CONFIG_ARCH_IXP2000 is not set 95# CONFIG_ARCH_IXP2000 is not set
96# CONFIG_ARCH_IXP23XX is not set
97# CONFIG_ARCH_L7200 is not set 97# CONFIG_ARCH_L7200 is not set
98# CONFIG_ARCH_PXA is not set 98# CONFIG_ARCH_PXA is not set
99# CONFIG_ARCH_RPC is not set 99# CONFIG_ARCH_RPC is not set
@@ -112,7 +112,6 @@ CONFIG_ARCH_EP93XX=y
112# 112#
113# Cirrus EP93xx Implementation Options 113# Cirrus EP93xx Implementation Options
114# 114#
115CONFIG_CRUNCH=y
116 115
117# 116#
118# EP93xx Platforms 117# EP93xx Platforms
@@ -232,12 +231,15 @@ CONFIG_SYN_COOKIES=y
232# CONFIG_INET_AH is not set 231# CONFIG_INET_AH is not set
233# CONFIG_INET_ESP is not set 232# CONFIG_INET_ESP is not set
234# CONFIG_INET_IPCOMP is not set 233# CONFIG_INET_IPCOMP is not set
234# CONFIG_INET_XFRM_TUNNEL is not set
235# CONFIG_INET_TUNNEL is not set 235# CONFIG_INET_TUNNEL is not set
236CONFIG_INET_DIAG=y 236CONFIG_INET_DIAG=y
237CONFIG_INET_TCP_DIAG=y 237CONFIG_INET_TCP_DIAG=y
238# CONFIG_TCP_CONG_ADVANCED is not set 238# CONFIG_TCP_CONG_ADVANCED is not set
239CONFIG_TCP_CONG_BIC=y 239CONFIG_TCP_CONG_BIC=y
240# CONFIG_IPV6 is not set 240# CONFIG_IPV6 is not set
241# CONFIG_INET6_XFRM_TUNNEL is not set
242# CONFIG_INET6_TUNNEL is not set
241# CONFIG_NETFILTER is not set 243# CONFIG_NETFILTER is not set
242 244
243# 245#
@@ -346,7 +348,6 @@ CONFIG_MTD_CFI_I2=y
346# CONFIG_MTD_OTP is not set 348# CONFIG_MTD_OTP is not set
347CONFIG_MTD_CFI_INTELEXT=y 349CONFIG_MTD_CFI_INTELEXT=y
348CONFIG_MTD_CFI_AMDSTD=y 350CONFIG_MTD_CFI_AMDSTD=y
349CONFIG_MTD_CFI_AMDSTD_RETRY=0
350CONFIG_MTD_CFI_STAA=y 351CONFIG_MTD_CFI_STAA=y
351CONFIG_MTD_CFI_UTIL=y 352CONFIG_MTD_CFI_UTIL=y
352# CONFIG_MTD_RAM is not set 353# CONFIG_MTD_RAM is not set
@@ -371,7 +372,6 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
371# CONFIG_MTD_SLRAM is not set 372# CONFIG_MTD_SLRAM is not set
372# CONFIG_MTD_PHRAM is not set 373# CONFIG_MTD_PHRAM is not set
373# CONFIG_MTD_MTDRAM is not set 374# CONFIG_MTD_MTDRAM is not set
374# CONFIG_MTD_BLKMTD is not set
375# CONFIG_MTD_BLOCK2MTD is not set 375# CONFIG_MTD_BLOCK2MTD is not set
376 376
377# 377#
@@ -412,7 +412,7 @@ CONFIG_MTD_NAND_IDS=y
412# CONFIG_BLK_DEV_NBD is not set 412# CONFIG_BLK_DEV_NBD is not set
413# CONFIG_BLK_DEV_UB is not set 413# CONFIG_BLK_DEV_UB is not set
414# CONFIG_BLK_DEV_RAM is not set 414# CONFIG_BLK_DEV_RAM is not set
415CONFIG_BLK_DEV_RAM_COUNT=16 415# CONFIG_BLK_DEV_INITRD is not set
416# CONFIG_CDROM_PKTCDVD is not set 416# CONFIG_CDROM_PKTCDVD is not set
417# CONFIG_ATA_OVER_ETH is not set 417# CONFIG_ATA_OVER_ETH is not set
418 418
@@ -576,13 +576,13 @@ CONFIG_WATCHDOG=y
576# Watchdog Device Drivers 576# Watchdog Device Drivers
577# 577#
578# CONFIG_SOFT_WATCHDOG is not set 578# CONFIG_SOFT_WATCHDOG is not set
579CONFIG_EP93XX_WATCHDOG=y
579 580
580# 581#
581# USB-based Watchdog Cards 582# USB-based Watchdog Cards
582# 583#
583# CONFIG_USBPCWATCHDOG is not set 584# CONFIG_USBPCWATCHDOG is not set
584# CONFIG_NVRAM is not set 585# CONFIG_NVRAM is not set
585# CONFIG_RTC is not set
586# CONFIG_DTLK is not set 586# CONFIG_DTLK is not set
587# CONFIG_R3964 is not set 587# CONFIG_R3964 is not set
588 588
@@ -626,9 +626,7 @@ CONFIG_I2C_ALGOBIT=y
626# CONFIG_SENSORS_PCF8574 is not set 626# CONFIG_SENSORS_PCF8574 is not set
627# CONFIG_SENSORS_PCA9539 is not set 627# CONFIG_SENSORS_PCA9539 is not set
628# CONFIG_SENSORS_PCF8591 is not set 628# CONFIG_SENSORS_PCF8591 is not set
629# CONFIG_SENSORS_RTC8564 is not set
630# CONFIG_SENSORS_MAX6875 is not set 629# CONFIG_SENSORS_MAX6875 is not set
631# CONFIG_RTC_X1205_I2C is not set
632CONFIG_I2C_DEBUG_CORE=y 630CONFIG_I2C_DEBUG_CORE=y
633CONFIG_I2C_DEBUG_ALGO=y 631CONFIG_I2C_DEBUG_ALGO=y
634CONFIG_I2C_DEBUG_BUS=y 632CONFIG_I2C_DEBUG_BUS=y
@@ -690,7 +688,16 @@ CONFIG_HWMON=y
690# 688#
691 689
692# 690#
693# Multimedia Capabilities Port drivers 691# LED devices
692#
693# CONFIG_NEW_LEDS is not set
694
695#
696# LED drivers
697#
698
699#
700# LED Triggers
694# 701#
695 702
696# 703#
@@ -702,6 +709,7 @@ CONFIG_HWMON=y
702# Digital Video Broadcasting Devices 709# Digital Video Broadcasting Devices
703# 710#
704# CONFIG_DVB is not set 711# CONFIG_DVB is not set
712# CONFIG_USB_DABUSB is not set
705 713
706# 714#
707# Graphics support 715# Graphics support
@@ -718,6 +726,7 @@ CONFIG_HWMON=y
718# 726#
719CONFIG_USB_ARCH_HAS_HCD=y 727CONFIG_USB_ARCH_HAS_HCD=y
720# CONFIG_USB_ARCH_HAS_OHCI is not set 728# CONFIG_USB_ARCH_HAS_OHCI is not set
729# CONFIG_USB_ARCH_HAS_EHCI is not set
721CONFIG_USB=y 730CONFIG_USB=y
722CONFIG_USB_DEBUG=y 731CONFIG_USB_DEBUG=y
723 732
@@ -776,15 +785,6 @@ CONFIG_USB_STORAGE=y
776# CONFIG_USB_MICROTEK is not set 785# CONFIG_USB_MICROTEK is not set
777 786
778# 787#
779# USB Multimedia devices
780#
781# CONFIG_USB_DABUSB is not set
782
783#
784# Video4Linux support is needed for USB Multimedia device support
785#
786
787#
788# USB Network Adapters 788# USB Network Adapters
789# 789#
790# CONFIG_USB_CATC is not set 790# CONFIG_USB_CATC is not set
@@ -813,6 +813,7 @@ CONFIG_USB_SERIAL_CONSOLE=y
813# CONFIG_USB_SERIAL_CYPRESS_M8 is not set 813# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
814# CONFIG_USB_SERIAL_EMPEG is not set 814# CONFIG_USB_SERIAL_EMPEG is not set
815# CONFIG_USB_SERIAL_FTDI_SIO is not set 815# CONFIG_USB_SERIAL_FTDI_SIO is not set
816# CONFIG_USB_SERIAL_FUNSOFT is not set
816# CONFIG_USB_SERIAL_VISOR is not set 817# CONFIG_USB_SERIAL_VISOR is not set
817# CONFIG_USB_SERIAL_IPAQ is not set 818# CONFIG_USB_SERIAL_IPAQ is not set
818# CONFIG_USB_SERIAL_IR is not set 819# CONFIG_USB_SERIAL_IR is not set
@@ -825,6 +826,7 @@ CONFIG_USB_SERIAL_CONSOLE=y
825# CONFIG_USB_SERIAL_KLSI is not set 826# CONFIG_USB_SERIAL_KLSI is not set
826# CONFIG_USB_SERIAL_KOBIL_SCT is not set 827# CONFIG_USB_SERIAL_KOBIL_SCT is not set
827# CONFIG_USB_SERIAL_MCT_U232 is not set 828# CONFIG_USB_SERIAL_MCT_U232 is not set
829# CONFIG_USB_SERIAL_NAVMAN is not set
828CONFIG_USB_SERIAL_PL2303=y 830CONFIG_USB_SERIAL_PL2303=y
829# CONFIG_USB_SERIAL_HP4X is not set 831# CONFIG_USB_SERIAL_HP4X is not set
830# CONFIG_USB_SERIAL_SAFE is not set 832# CONFIG_USB_SERIAL_SAFE is not set
@@ -865,6 +867,32 @@ CONFIG_USB_SERIAL_PL2303=y
865# CONFIG_MMC is not set 867# CONFIG_MMC is not set
866 868
867# 869#
870# Real Time Clock
871#
872CONFIG_RTC_LIB=y
873CONFIG_RTC_CLASS=y
874CONFIG_RTC_HCTOSYS=y
875CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
876
877#
878# RTC interfaces
879#
880CONFIG_RTC_INTF_SYSFS=y
881CONFIG_RTC_INTF_PROC=y
882CONFIG_RTC_INTF_DEV=y
883
884#
885# RTC drivers
886#
887# CONFIG_RTC_DRV_X1205 is not set
888# CONFIG_RTC_DRV_DS1672 is not set
889# CONFIG_RTC_DRV_PCF8563 is not set
890# CONFIG_RTC_DRV_RS5C372 is not set
891CONFIG_RTC_DRV_M48T86=y
892CONFIG_RTC_DRV_EP93XX=y
893# CONFIG_RTC_DRV_TEST is not set
894
895#
868# File systems 896# File systems
869# 897#
870CONFIG_EXT2_FS=y 898CONFIG_EXT2_FS=y
@@ -912,7 +940,6 @@ CONFIG_SYSFS=y
912CONFIG_TMPFS=y 940CONFIG_TMPFS=y
913# CONFIG_HUGETLB_PAGE is not set 941# CONFIG_HUGETLB_PAGE is not set
914CONFIG_RAMFS=y 942CONFIG_RAMFS=y
915# CONFIG_RELAYFS_FS is not set
916# CONFIG_CONFIGFS_FS is not set 943# CONFIG_CONFIGFS_FS is not set
917 944
918# 945#
@@ -1044,6 +1071,7 @@ CONFIG_LOG_BUF_SHIFT=14
1044CONFIG_DETECT_SOFTLOCKUP=y 1071CONFIG_DETECT_SOFTLOCKUP=y
1045# CONFIG_SCHEDSTATS is not set 1072# CONFIG_SCHEDSTATS is not set
1046CONFIG_DEBUG_SLAB=y 1073CONFIG_DEBUG_SLAB=y
1074# CONFIG_DEBUG_SLAB_LEAK is not set
1047CONFIG_DEBUG_MUTEXES=y 1075CONFIG_DEBUG_MUTEXES=y
1048CONFIG_DEBUG_SPINLOCK=y 1076CONFIG_DEBUG_SPINLOCK=y
1049# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1077# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
@@ -1053,6 +1081,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1053# CONFIG_DEBUG_FS is not set 1081# CONFIG_DEBUG_FS is not set
1054# CONFIG_DEBUG_VM is not set 1082# CONFIG_DEBUG_VM is not set
1055CONFIG_FRAME_POINTER=y 1083CONFIG_FRAME_POINTER=y
1084# CONFIG_UNWIND_INFO is not set
1056CONFIG_FORCED_INLINING=y 1085CONFIG_FORCED_INLINING=y
1057# CONFIG_RCU_TORTURE_TEST is not set 1086# CONFIG_RCU_TORTURE_TEST is not set
1058CONFIG_DEBUG_USER=y 1087CONFIG_DEBUG_USER=y
diff --git a/arch/arm/configs/ixp2000_defconfig b/arch/arm/configs/ixp2000_defconfig
index 7b02ca04c3ee..e6f3e4873d6c 100644
--- a/arch/arm/configs/ixp2000_defconfig
+++ b/arch/arm/configs/ixp2000_defconfig
@@ -1,18 +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.16-rc2 3# Linux kernel version: 2.6.17-rc2
4# Wed Feb 8 04:49:11 2006 4# Wed Apr 19 21:12:49 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 8CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y
9CONFIG_GENERIC_CALIBRATE_DELAY=y 10CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000
10 12
11# 13#
12# Code maturity level options 14# Code maturity level options
13# 15#
14CONFIG_EXPERIMENTAL=y 16CONFIG_EXPERIMENTAL=y
15CONFIG_CLEAN_COMPILE=y
16CONFIG_BROKEN_ON_SMP=y 17CONFIG_BROKEN_ON_SMP=y
17CONFIG_INIT_ENV_ARG_LIMIT=32 18CONFIG_INIT_ENV_ARG_LIMIT=32
18 19
@@ -29,6 +30,7 @@ CONFIG_BSD_PROCESS_ACCT=y
29CONFIG_SYSCTL=y 30CONFIG_SYSCTL=y
30# CONFIG_AUDIT is not set 31# CONFIG_AUDIT is not set
31# CONFIG_IKCONFIG is not set 32# CONFIG_IKCONFIG is not set
33# CONFIG_RELAY is not set
32CONFIG_INITRAMFS_SOURCE="" 34CONFIG_INITRAMFS_SOURCE=""
33CONFIG_UID16=y 35CONFIG_UID16=y
34CONFIG_CC_OPTIMIZE_FOR_SIZE=y 36CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -44,10 +46,6 @@ CONFIG_BASE_FULL=y
44CONFIG_FUTEX=y 46CONFIG_FUTEX=y
45CONFIG_EPOLL=y 47CONFIG_EPOLL=y
46CONFIG_SHMEM=y 48CONFIG_SHMEM=y
47CONFIG_CC_ALIGN_FUNCTIONS=0
48CONFIG_CC_ALIGN_LABELS=0
49CONFIG_CC_ALIGN_LOOPS=0
50CONFIG_CC_ALIGN_JUMPS=0
51CONFIG_SLAB=y 49CONFIG_SLAB=y
52# CONFIG_TINY_SHMEM is not set 50# CONFIG_TINY_SHMEM is not set
53CONFIG_BASE_SMALL=0 51CONFIG_BASE_SMALL=0
@@ -60,7 +58,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
60CONFIG_MODULES=y 58CONFIG_MODULES=y
61CONFIG_MODULE_UNLOAD=y 59CONFIG_MODULE_UNLOAD=y
62# CONFIG_MODULE_FORCE_UNLOAD is not set 60# CONFIG_MODULE_FORCE_UNLOAD is not set
63CONFIG_OBSOLETE_MODPARM=y
64# CONFIG_MODVERSIONS is not set 61# CONFIG_MODVERSIONS is not set
65# CONFIG_MODULE_SRCVERSION_ALL is not set 62# CONFIG_MODULE_SRCVERSION_ALL is not set
66CONFIG_KMOD=y 63CONFIG_KMOD=y
@@ -68,6 +65,7 @@ CONFIG_KMOD=y
68# 65#
69# Block layer 66# Block layer
70# 67#
68# CONFIG_BLK_DEV_IO_TRACE is not set
71 69
72# 70#
73# IO Schedulers 71# IO Schedulers
@@ -89,11 +87,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
89# CONFIG_ARCH_CLPS711X is not set 87# CONFIG_ARCH_CLPS711X is not set
90# CONFIG_ARCH_CO285 is not set 88# CONFIG_ARCH_CO285 is not set
91# CONFIG_ARCH_EBSA110 is not set 89# CONFIG_ARCH_EBSA110 is not set
90# CONFIG_ARCH_EP93XX is not set
92# CONFIG_ARCH_FOOTBRIDGE is not set 91# CONFIG_ARCH_FOOTBRIDGE is not set
93# CONFIG_ARCH_INTEGRATOR is not set 92# CONFIG_ARCH_INTEGRATOR is not set
94# CONFIG_ARCH_IOP3XX is not set 93# CONFIG_ARCH_IOP3XX is not set
95# CONFIG_ARCH_IXP4XX is not set 94# CONFIG_ARCH_IXP4XX is not set
96CONFIG_ARCH_IXP2000=y 95CONFIG_ARCH_IXP2000=y
96# CONFIG_ARCH_IXP23XX is not set
97# CONFIG_ARCH_L7200 is not set 97# CONFIG_ARCH_L7200 is not set
98# CONFIG_ARCH_PXA is not set 98# CONFIG_ARCH_PXA is not set
99# CONFIG_ARCH_RPC is not set 99# CONFIG_ARCH_RPC is not set
@@ -123,6 +123,7 @@ CONFIG_ARCH_IXDP2800=y
123CONFIG_ARCH_IXDP2X00=y 123CONFIG_ARCH_IXDP2X00=y
124CONFIG_ARCH_IXDP2401=y 124CONFIG_ARCH_IXDP2401=y
125CONFIG_ARCH_IXDP2801=y 125CONFIG_ARCH_IXDP2801=y
126CONFIG_MACH_IXDP28X5=y
126CONFIG_ARCH_IXDP2X01=y 127CONFIG_ARCH_IXDP2X01=y
127# CONFIG_IXP2000_SUPPORT_BROKEN_PCI_IO is not set 128# CONFIG_IXP2000_SUPPORT_BROKEN_PCI_IO is not set
128 129
@@ -147,7 +148,6 @@ CONFIG_XSCALE_PMU=y
147# Bus support 148# Bus support
148# 149#
149CONFIG_PCI=y 150CONFIG_PCI=y
150CONFIG_PCI_LEGACY_PROC=y
151# CONFIG_PCI_DEBUG is not set 151# CONFIG_PCI_DEBUG is not set
152 152
153# 153#
@@ -160,6 +160,7 @@ CONFIG_PCI_LEGACY_PROC=y
160# 160#
161# CONFIG_PREEMPT is not set 161# CONFIG_PREEMPT is not set
162# CONFIG_NO_IDLE_HZ is not set 162# CONFIG_NO_IDLE_HZ is not set
163CONFIG_HZ=100
163# CONFIG_AEABI is not set 164# CONFIG_AEABI is not set
164# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 165# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
165CONFIG_SELECT_MEMORY_MODEL=y 166CONFIG_SELECT_MEMORY_MODEL=y
@@ -213,6 +214,7 @@ CONFIG_NET=y
213# 214#
214# Networking options 215# Networking options
215# 216#
217# CONFIG_NETDEBUG is not set
216CONFIG_PACKET=y 218CONFIG_PACKET=y
217CONFIG_PACKET_MMAP=y 219CONFIG_PACKET_MMAP=y
218CONFIG_UNIX=y 220CONFIG_UNIX=y
@@ -232,12 +234,15 @@ CONFIG_SYN_COOKIES=y
232# CONFIG_INET_AH is not set 234# CONFIG_INET_AH is not set
233# CONFIG_INET_ESP is not set 235# CONFIG_INET_ESP is not set
234# CONFIG_INET_IPCOMP is not set 236# CONFIG_INET_IPCOMP is not set
237# CONFIG_INET_XFRM_TUNNEL is not set
235# CONFIG_INET_TUNNEL is not set 238# CONFIG_INET_TUNNEL is not set
236CONFIG_INET_DIAG=y 239CONFIG_INET_DIAG=y
237CONFIG_INET_TCP_DIAG=y 240CONFIG_INET_TCP_DIAG=y
238# CONFIG_TCP_CONG_ADVANCED is not set 241# CONFIG_TCP_CONG_ADVANCED is not set
239CONFIG_TCP_CONG_BIC=y 242CONFIG_TCP_CONG_BIC=y
240# CONFIG_IPV6 is not set 243# CONFIG_IPV6 is not set
244# CONFIG_INET6_XFRM_TUNNEL is not set
245# CONFIG_INET6_TUNNEL is not set
241# CONFIG_NETFILTER is not set 246# CONFIG_NETFILTER is not set
242 247
243# 248#
@@ -347,7 +352,6 @@ CONFIG_MTD_CFI_UTIL=y
347# CONFIG_MTD_ROM is not set 352# CONFIG_MTD_ROM is not set
348# CONFIG_MTD_ABSENT is not set 353# CONFIG_MTD_ABSENT is not set
349# CONFIG_MTD_OBSOLETE_CHIPS is not set 354# CONFIG_MTD_OBSOLETE_CHIPS is not set
350# CONFIG_MTD_XIP is not set
351 355
352# 356#
353# Mapping drivers for chip access 357# Mapping drivers for chip access
@@ -366,7 +370,6 @@ CONFIG_MTD_IXP2000=y
366# CONFIG_MTD_SLRAM is not set 370# CONFIG_MTD_SLRAM is not set
367# CONFIG_MTD_PHRAM is not set 371# CONFIG_MTD_PHRAM is not set
368# CONFIG_MTD_MTDRAM is not set 372# CONFIG_MTD_MTDRAM is not set
369# CONFIG_MTD_BLKMTD is not set
370# CONFIG_MTD_BLOCK2MTD is not set 373# CONFIG_MTD_BLOCK2MTD is not set
371 374
372# 375#
@@ -614,8 +617,9 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
614# 617#
615CONFIG_SERIAL_8250=y 618CONFIG_SERIAL_8250=y
616CONFIG_SERIAL_8250_CONSOLE=y 619CONFIG_SERIAL_8250_CONSOLE=y
620CONFIG_SERIAL_8250_PCI=y
617CONFIG_SERIAL_8250_NR_UARTS=3 621CONFIG_SERIAL_8250_NR_UARTS=3
618CONFIG_SERIAL_8250_RUNTIME_UARTS=4 622CONFIG_SERIAL_8250_RUNTIME_UARTS=3
619# CONFIG_SERIAL_8250_EXTENDED is not set 623# CONFIG_SERIAL_8250_EXTENDED is not set
620 624
621# 625#
@@ -623,6 +627,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
623# 627#
624CONFIG_SERIAL_CORE=y 628CONFIG_SERIAL_CORE=y
625CONFIG_SERIAL_CORE_CONSOLE=y 629CONFIG_SERIAL_CORE_CONSOLE=y
630# CONFIG_SERIAL_JSM is not set
626CONFIG_UNIX98_PTYS=y 631CONFIG_UNIX98_PTYS=y
627CONFIG_LEGACY_PTYS=y 632CONFIG_LEGACY_PTYS=y
628CONFIG_LEGACY_PTY_COUNT=256 633CONFIG_LEGACY_PTY_COUNT=256
@@ -650,7 +655,6 @@ CONFIG_IXP2000_WATCHDOG=y
650# CONFIG_PCIPCWATCHDOG is not set 655# CONFIG_PCIPCWATCHDOG is not set
651# CONFIG_WDTPCI is not set 656# CONFIG_WDTPCI is not set
652# CONFIG_NVRAM is not set 657# CONFIG_NVRAM is not set
653# CONFIG_RTC is not set
654# CONFIG_DTLK is not set 658# CONFIG_DTLK is not set
655# CONFIG_R3964 is not set 659# CONFIG_R3964 is not set
656# CONFIG_APPLICOM is not set 660# CONFIG_APPLICOM is not set
@@ -696,7 +700,6 @@ CONFIG_I2C_IXP2000=y
696# CONFIG_I2C_PARPORT_LIGHT is not set 700# CONFIG_I2C_PARPORT_LIGHT is not set
697# CONFIG_I2C_PROSAVAGE is not set 701# CONFIG_I2C_PROSAVAGE is not set
698# CONFIG_I2C_SAVAGE4 is not set 702# CONFIG_I2C_SAVAGE4 is not set
699# CONFIG_SCx200_ACB is not set
700# CONFIG_I2C_SIS5595 is not set 703# CONFIG_I2C_SIS5595 is not set
701# CONFIG_I2C_SIS630 is not set 704# CONFIG_I2C_SIS630 is not set
702# CONFIG_I2C_SIS96X is not set 705# CONFIG_I2C_SIS96X is not set
@@ -715,9 +718,7 @@ CONFIG_SENSORS_EEPROM=y
715# CONFIG_SENSORS_PCF8574 is not set 718# CONFIG_SENSORS_PCF8574 is not set
716# CONFIG_SENSORS_PCA9539 is not set 719# CONFIG_SENSORS_PCA9539 is not set
717# CONFIG_SENSORS_PCF8591 is not set 720# CONFIG_SENSORS_PCF8591 is not set
718# CONFIG_SENSORS_RTC8564 is not set
719# CONFIG_SENSORS_MAX6875 is not set 721# CONFIG_SENSORS_MAX6875 is not set
720# CONFIG_RTC_X1205_I2C is not set
721# CONFIG_I2C_DEBUG_CORE is not set 722# CONFIG_I2C_DEBUG_CORE is not set
722# CONFIG_I2C_DEBUG_ALGO is not set 723# CONFIG_I2C_DEBUG_ALGO is not set
723# CONFIG_I2C_DEBUG_BUS is not set 724# CONFIG_I2C_DEBUG_BUS is not set
@@ -730,6 +731,11 @@ CONFIG_SENSORS_EEPROM=y
730# CONFIG_SPI_MASTER is not set 731# CONFIG_SPI_MASTER is not set
731 732
732# 733#
734# Dallas's 1-wire bus
735#
736# CONFIG_W1 is not set
737
738#
733# Hardware Monitoring support 739# Hardware Monitoring support
734# 740#
735CONFIG_HWMON=y 741CONFIG_HWMON=y
@@ -742,6 +748,7 @@ CONFIG_HWMON=y
742# CONFIG_SENSORS_ASB100 is not set 748# CONFIG_SENSORS_ASB100 is not set
743# CONFIG_SENSORS_ATXP1 is not set 749# CONFIG_SENSORS_ATXP1 is not set
744# CONFIG_SENSORS_DS1621 is not set 750# CONFIG_SENSORS_DS1621 is not set
751# CONFIG_SENSORS_F71805F is not set
745# CONFIG_SENSORS_FSCHER is not set 752# CONFIG_SENSORS_FSCHER is not set
746# CONFIG_SENSORS_FSCPOS is not set 753# CONFIG_SENSORS_FSCPOS is not set
747# CONFIG_SENSORS_GL518SM is not set 754# CONFIG_SENSORS_GL518SM is not set
@@ -776,7 +783,16 @@ CONFIG_HWMON=y
776# 783#
777 784
778# 785#
779# Multimedia Capabilities Port drivers 786# LED devices
787#
788# CONFIG_NEW_LEDS is not set
789
790#
791# LED drivers
792#
793
794#
795# LED Triggers
780# 796#
781 797
782# 798#
@@ -804,6 +820,7 @@ CONFIG_HWMON=y
804# 820#
805CONFIG_USB_ARCH_HAS_HCD=y 821CONFIG_USB_ARCH_HAS_HCD=y
806CONFIG_USB_ARCH_HAS_OHCI=y 822CONFIG_USB_ARCH_HAS_OHCI=y
823CONFIG_USB_ARCH_HAS_EHCI=y
807# CONFIG_USB is not set 824# CONFIG_USB is not set
808 825
809# 826#
@@ -821,6 +838,12 @@ CONFIG_USB_ARCH_HAS_OHCI=y
821# CONFIG_MMC is not set 838# CONFIG_MMC is not set
822 839
823# 840#
841# Real Time Clock
842#
843CONFIG_RTC_LIB=y
844# CONFIG_RTC_CLASS is not set
845
846#
824# File systems 847# File systems
825# 848#
826CONFIG_EXT2_FS=y 849CONFIG_EXT2_FS=y
@@ -870,7 +893,6 @@ CONFIG_SYSFS=y
870CONFIG_TMPFS=y 893CONFIG_TMPFS=y
871# CONFIG_HUGETLB_PAGE is not set 894# CONFIG_HUGETLB_PAGE is not set
872CONFIG_RAMFS=y 895CONFIG_RAMFS=y
873# CONFIG_RELAYFS_FS is not set
874# CONFIG_CONFIGFS_FS is not set 896# CONFIG_CONFIGFS_FS is not set
875 897
876# 898#
@@ -972,6 +994,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
972# CONFIG_DEBUG_FS is not set 994# CONFIG_DEBUG_FS is not set
973# CONFIG_DEBUG_VM is not set 995# CONFIG_DEBUG_VM is not set
974CONFIG_FRAME_POINTER=y 996CONFIG_FRAME_POINTER=y
997# CONFIG_UNWIND_INFO is not set
975CONFIG_FORCED_INLINING=y 998CONFIG_FORCED_INLINING=y
976# CONFIG_RCU_TORTURE_TEST is not set 999# CONFIG_RCU_TORTURE_TEST is not set
977CONFIG_DEBUG_USER=y 1000CONFIG_DEBUG_USER=y
diff --git a/arch/arm/configs/ixp23xx_defconfig b/arch/arm/configs/ixp23xx_defconfig
index 1a2751e9ab05..9ce898a6cf87 100644
--- a/arch/arm/configs/ixp23xx_defconfig
+++ b/arch/arm/configs/ixp23xx_defconfig
@@ -1,12 +1,14 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.16 3# Linux kernel version: 2.6.17-rc2
4# Tue Mar 21 03:27:20 2006 4# Wed Apr 19 21:13:50 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 8CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y
9CONFIG_GENERIC_CALIBRATE_DELAY=y 10CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000
10 12
11# 13#
12# Code maturity level options 14# Code maturity level options
@@ -28,6 +30,7 @@ CONFIG_BSD_PROCESS_ACCT=y
28CONFIG_SYSCTL=y 30CONFIG_SYSCTL=y
29# CONFIG_AUDIT is not set 31# CONFIG_AUDIT is not set
30# CONFIG_IKCONFIG is not set 32# CONFIG_IKCONFIG is not set
33# CONFIG_RELAY is not set
31CONFIG_INITRAMFS_SOURCE="" 34CONFIG_INITRAMFS_SOURCE=""
32CONFIG_UID16=y 35CONFIG_UID16=y
33CONFIG_CC_OPTIMIZE_FOR_SIZE=y 36CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -43,10 +46,6 @@ CONFIG_BASE_FULL=y
43CONFIG_FUTEX=y 46CONFIG_FUTEX=y
44CONFIG_EPOLL=y 47CONFIG_EPOLL=y
45CONFIG_SHMEM=y 48CONFIG_SHMEM=y
46CONFIG_CC_ALIGN_FUNCTIONS=0
47CONFIG_CC_ALIGN_LABELS=0
48CONFIG_CC_ALIGN_LOOPS=0
49CONFIG_CC_ALIGN_JUMPS=0
50CONFIG_SLAB=y 49CONFIG_SLAB=y
51# CONFIG_TINY_SHMEM is not set 50# CONFIG_TINY_SHMEM is not set
52CONFIG_BASE_SMALL=0 51CONFIG_BASE_SMALL=0
@@ -59,7 +58,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
59CONFIG_MODULES=y 58CONFIG_MODULES=y
60CONFIG_MODULE_UNLOAD=y 59CONFIG_MODULE_UNLOAD=y
61# CONFIG_MODULE_FORCE_UNLOAD is not set 60# CONFIG_MODULE_FORCE_UNLOAD is not set
62CONFIG_OBSOLETE_MODPARM=y
63# CONFIG_MODVERSIONS is not set 61# CONFIG_MODVERSIONS is not set
64# CONFIG_MODULE_SRCVERSION_ALL is not set 62# CONFIG_MODULE_SRCVERSION_ALL is not set
65CONFIG_KMOD=y 63CONFIG_KMOD=y
@@ -67,6 +65,7 @@ CONFIG_KMOD=y
67# 65#
68# Block layer 66# Block layer
69# 67#
68# CONFIG_BLK_DEV_IO_TRACE is not set
70 69
71# 70#
72# IO Schedulers 71# IO Schedulers
@@ -143,7 +142,6 @@ CONFIG_CPU_BIG_ENDIAN=y
143# Bus support 142# Bus support
144# 143#
145CONFIG_PCI=y 144CONFIG_PCI=y
146CONFIG_PCI_LEGACY_PROC=y
147# CONFIG_PCI_DEBUG is not set 145# CONFIG_PCI_DEBUG is not set
148 146
149# 147#
@@ -230,12 +228,15 @@ CONFIG_SYN_COOKIES=y
230# CONFIG_INET_AH is not set 228# CONFIG_INET_AH is not set
231# CONFIG_INET_ESP is not set 229# CONFIG_INET_ESP is not set
232# CONFIG_INET_IPCOMP is not set 230# CONFIG_INET_IPCOMP is not set
231# CONFIG_INET_XFRM_TUNNEL is not set
233# CONFIG_INET_TUNNEL is not set 232# CONFIG_INET_TUNNEL is not set
234CONFIG_INET_DIAG=y 233CONFIG_INET_DIAG=y
235CONFIG_INET_TCP_DIAG=y 234CONFIG_INET_TCP_DIAG=y
236# CONFIG_TCP_CONG_ADVANCED is not set 235# CONFIG_TCP_CONG_ADVANCED is not set
237CONFIG_TCP_CONG_BIC=y 236CONFIG_TCP_CONG_BIC=y
238# CONFIG_IPV6 is not set 237# CONFIG_IPV6 is not set
238# CONFIG_INET6_XFRM_TUNNEL is not set
239# CONFIG_INET6_TUNNEL is not set
239# CONFIG_NETFILTER is not set 240# CONFIG_NETFILTER is not set
240 241
241# 242#
@@ -365,7 +366,6 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
365# CONFIG_MTD_SLRAM is not set 366# CONFIG_MTD_SLRAM is not set
366# CONFIG_MTD_PHRAM is not set 367# CONFIG_MTD_PHRAM is not set
367# CONFIG_MTD_MTDRAM is not set 368# CONFIG_MTD_MTDRAM is not set
368# CONFIG_MTD_BLKMTD is not set
369# CONFIG_MTD_BLOCK2MTD is not set 369# CONFIG_MTD_BLOCK2MTD is not set
370 370
371# 371#
@@ -527,7 +527,6 @@ CONFIG_BLK_DEV_SD=y
527# CONFIG_SCSI_INIA100 is not set 527# CONFIG_SCSI_INIA100 is not set
528# CONFIG_SCSI_SYM53C8XX_2 is not set 528# CONFIG_SCSI_SYM53C8XX_2 is not set
529# CONFIG_SCSI_IPR is not set 529# CONFIG_SCSI_IPR is not set
530# CONFIG_SCSI_QLOGIC_FC is not set
531# CONFIG_SCSI_QLOGIC_1280 is not set 530# CONFIG_SCSI_QLOGIC_1280 is not set
532# CONFIG_SCSI_QLA_FC is not set 531# CONFIG_SCSI_QLA_FC is not set
533# CONFIG_SCSI_LPFC is not set 532# CONFIG_SCSI_LPFC is not set
@@ -735,6 +734,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
735# 734#
736CONFIG_SERIAL_8250=y 735CONFIG_SERIAL_8250=y
737CONFIG_SERIAL_8250_CONSOLE=y 736CONFIG_SERIAL_8250_CONSOLE=y
737CONFIG_SERIAL_8250_PCI=y
738CONFIG_SERIAL_8250_NR_UARTS=4 738CONFIG_SERIAL_8250_NR_UARTS=4
739CONFIG_SERIAL_8250_RUNTIME_UARTS=4 739CONFIG_SERIAL_8250_RUNTIME_UARTS=4
740# CONFIG_SERIAL_8250_EXTENDED is not set 740# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -776,7 +776,6 @@ CONFIG_WATCHDOG=y
776# 776#
777# CONFIG_USBPCWATCHDOG is not set 777# CONFIG_USBPCWATCHDOG is not set
778# CONFIG_NVRAM is not set 778# CONFIG_NVRAM is not set
779# CONFIG_RTC is not set
780# CONFIG_DTLK is not set 779# CONFIG_DTLK is not set
781# CONFIG_R3964 is not set 780# CONFIG_R3964 is not set
782# CONFIG_APPLICOM is not set 781# CONFIG_APPLICOM is not set
@@ -821,7 +820,6 @@ CONFIG_I2C_ALGOBIT=y
821# CONFIG_I2C_PARPORT_LIGHT is not set 820# CONFIG_I2C_PARPORT_LIGHT is not set
822# CONFIG_I2C_PROSAVAGE is not set 821# CONFIG_I2C_PROSAVAGE is not set
823# CONFIG_I2C_SAVAGE4 is not set 822# CONFIG_I2C_SAVAGE4 is not set
824# CONFIG_SCx200_ACB is not set
825# CONFIG_I2C_SIS5595 is not set 823# CONFIG_I2C_SIS5595 is not set
826# CONFIG_I2C_SIS630 is not set 824# CONFIG_I2C_SIS630 is not set
827# CONFIG_I2C_SIS96X is not set 825# CONFIG_I2C_SIS96X is not set
@@ -840,9 +838,7 @@ CONFIG_SENSORS_EEPROM=y
840# CONFIG_SENSORS_PCF8574 is not set 838# CONFIG_SENSORS_PCF8574 is not set
841# CONFIG_SENSORS_PCA9539 is not set 839# CONFIG_SENSORS_PCA9539 is not set
842# CONFIG_SENSORS_PCF8591 is not set 840# CONFIG_SENSORS_PCF8591 is not set
843# CONFIG_SENSORS_RTC8564 is not set
844# CONFIG_SENSORS_MAX6875 is not set 841# CONFIG_SENSORS_MAX6875 is not set
845# CONFIG_RTC_X1205_I2C is not set
846# CONFIG_I2C_DEBUG_CORE is not set 842# CONFIG_I2C_DEBUG_CORE is not set
847# CONFIG_I2C_DEBUG_ALGO is not set 843# CONFIG_I2C_DEBUG_ALGO is not set
848# CONFIG_I2C_DEBUG_BUS is not set 844# CONFIG_I2C_DEBUG_BUS is not set
@@ -907,7 +903,16 @@ CONFIG_HWMON=y
907# 903#
908 904
909# 905#
910# Multimedia Capabilities Port drivers 906# LED devices
907#
908# CONFIG_NEW_LEDS is not set
909
910#
911# LED drivers
912#
913
914#
915# LED Triggers
911# 916#
912 917
913# 918#
@@ -919,6 +924,7 @@ CONFIG_HWMON=y
919# Digital Video Broadcasting Devices 924# Digital Video Broadcasting Devices
920# 925#
921# CONFIG_DVB is not set 926# CONFIG_DVB is not set
927# CONFIG_USB_DABUSB is not set
922 928
923# 929#
924# Graphics support 930# Graphics support
@@ -935,6 +941,7 @@ CONFIG_HWMON=y
935# 941#
936CONFIG_USB_ARCH_HAS_HCD=y 942CONFIG_USB_ARCH_HAS_HCD=y
937CONFIG_USB_ARCH_HAS_OHCI=y 943CONFIG_USB_ARCH_HAS_OHCI=y
944CONFIG_USB_ARCH_HAS_EHCI=y
938CONFIG_USB=y 945CONFIG_USB=y
939# CONFIG_USB_DEBUG is not set 946# CONFIG_USB_DEBUG is not set
940 947
@@ -1000,9 +1007,7 @@ CONFIG_USB_STORAGE=y
1000# CONFIG_USB_ACECAD is not set 1007# CONFIG_USB_ACECAD is not set
1001# CONFIG_USB_KBTAB is not set 1008# CONFIG_USB_KBTAB is not set
1002# CONFIG_USB_POWERMATE is not set 1009# CONFIG_USB_POWERMATE is not set
1003# CONFIG_USB_MTOUCH is not set 1010# CONFIG_USB_TOUCHSCREEN is not set
1004# CONFIG_USB_ITMTOUCH is not set
1005# CONFIG_USB_EGALAX is not set
1006# CONFIG_USB_YEALINK is not set 1011# CONFIG_USB_YEALINK is not set
1007# CONFIG_USB_XPAD is not set 1012# CONFIG_USB_XPAD is not set
1008# CONFIG_USB_ATI_REMOTE is not set 1013# CONFIG_USB_ATI_REMOTE is not set
@@ -1017,15 +1022,6 @@ CONFIG_USB_STORAGE=y
1017# CONFIG_USB_MICROTEK is not set 1022# CONFIG_USB_MICROTEK is not set
1018 1023
1019# 1024#
1020# USB Multimedia devices
1021#
1022# CONFIG_USB_DABUSB is not set
1023
1024#
1025# Video4Linux support is needed for USB Multimedia device support
1026#
1027
1028#
1029# USB Network Adapters 1025# USB Network Adapters
1030# 1026#
1031# CONFIG_USB_CATC is not set 1027# CONFIG_USB_CATC is not set
@@ -1076,6 +1072,12 @@ CONFIG_USB_MON=y
1076# CONFIG_MMC is not set 1072# CONFIG_MMC is not set
1077 1073
1078# 1074#
1075# Real Time Clock
1076#
1077CONFIG_RTC_LIB=y
1078# CONFIG_RTC_CLASS is not set
1079
1080#
1079# File systems 1081# File systems
1080# 1082#
1081CONFIG_EXT2_FS=y 1083CONFIG_EXT2_FS=y
@@ -1127,7 +1129,6 @@ CONFIG_SYSFS=y
1127CONFIG_TMPFS=y 1129CONFIG_TMPFS=y
1128# CONFIG_HUGETLB_PAGE is not set 1130# CONFIG_HUGETLB_PAGE is not set
1129CONFIG_RAMFS=y 1131CONFIG_RAMFS=y
1130# CONFIG_RELAYFS_FS is not set
1131# CONFIG_CONFIGFS_FS is not set 1132# CONFIG_CONFIGFS_FS is not set
1132 1133
1133# 1134#
@@ -1268,6 +1269,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1268# CONFIG_DEBUG_FS is not set 1269# CONFIG_DEBUG_FS is not set
1269# CONFIG_DEBUG_VM is not set 1270# CONFIG_DEBUG_VM is not set
1270CONFIG_FRAME_POINTER=y 1271CONFIG_FRAME_POINTER=y
1272# CONFIG_UNWIND_INFO is not set
1271CONFIG_FORCED_INLINING=y 1273CONFIG_FORCED_INLINING=y
1272# CONFIG_RCU_TORTURE_TEST is not set 1274# CONFIG_RCU_TORTURE_TEST is not set
1273CONFIG_DEBUG_USER=y 1275CONFIG_DEBUG_USER=y
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index 2ce0e3a27a45..a601b8b55f35 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -29,7 +29,7 @@ ifneq ($(CONFIG_ARCH_EBSA110),y)
29 obj-y += io.o 29 obj-y += io.o
30endif 30endif
31 31
32head-y := head.o 32head-y := head$(MMUEXT).o
33obj-$(CONFIG_DEBUG_LL) += debug.o 33obj-$(CONFIG_DEBUG_LL) += debug.o
34 34
35extra-y := $(head-y) init_task.o vmlinux.lds 35extra-y := $(head-y) init_task.o vmlinux.lds
diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
index b093ab8738b5..0bea65864051 100644
--- a/arch/arm/kernel/head-nommu.S
+++ b/arch/arm/kernel/head-nommu.S
@@ -20,10 +20,11 @@
20#include <asm/mach-types.h> 20#include <asm/mach-types.h>
21#include <asm/procinfo.h> 21#include <asm/procinfo.h>
22#include <asm/ptrace.h> 22#include <asm/ptrace.h>
23#include <asm/constants.h> 23#include <asm/thread_info.h>
24#include <asm/system.h> 24#include <asm/system.h>
25 25
26#define PROCINFO_INITFUNC 12 26#define PROCINFO_INITFUNC 12
27#define MACHINFO_TYPE 0
27 28
28/* 29/*
29 * Kernel startup entry point. 30 * Kernel startup entry point.
@@ -79,5 +80,6 @@ __after_proc_init:
79 80
80 mov pc, r13 @ clear the BSS and jump 81 mov pc, r13 @ clear the BSS and jump
81 @ to start_kernel 82 @ to start_kernel
83 .ltorg
82 84
83#include "head-common.S" 85#include "head-common.S"
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 8cff73e668b3..9fc9af88c60c 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -407,7 +407,7 @@ static void __init early_initrd(char **p)
407} 407}
408__early_param("initrd=", early_initrd); 408__early_param("initrd=", early_initrd);
409 409
410static void __init add_memory(unsigned long start, unsigned long size) 410static void __init arm_add_memory(unsigned long start, unsigned long size)
411{ 411{
412 /* 412 /*
413 * Ensure that start/size are aligned to a page boundary. 413 * Ensure that start/size are aligned to a page boundary.
@@ -445,7 +445,7 @@ static void __init early_mem(char **p)
445 if (**p == '@') 445 if (**p == '@')
446 start = memparse(*p + 1, p); 446 start = memparse(*p + 1, p);
447 447
448 add_memory(start, size); 448 arm_add_memory(start, size);
449} 449}
450__early_param("mem=", early_mem); 450__early_param("mem=", early_mem);
451 451
@@ -587,7 +587,7 @@ static int __init parse_tag_mem32(const struct tag *tag)
587 tag->u.mem.start, tag->u.mem.size / 1024); 587 tag->u.mem.start, tag->u.mem.size / 1024);
588 return -EINVAL; 588 return -EINVAL;
589 } 589 }
590 add_memory(tag->u.mem.start, tag->u.mem.size); 590 arm_add_memory(tag->u.mem.start, tag->u.mem.size);
591 return 0; 591 return 0;
592} 592}
593 593
@@ -807,7 +807,7 @@ static int __init topology_init(void)
807{ 807{
808 int cpu; 808 int cpu;
809 809
810 for_each_cpu(cpu) 810 for_each_possible_cpu(cpu)
811 register_cpu(&per_cpu(cpu_data, cpu).cpu, cpu, NULL); 811 register_cpu(&per_cpu(cpu_data, cpu).cpu, cpu, NULL);
812 812
813 return 0; 813 return 0;
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index a0888e160e3b..00b761ff0f9c 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -91,7 +91,7 @@ static void ixp4xx_config_irq(unsigned irq, enum ixp4xx_irq_type type);
91/* 91/*
92 * IRQ -> GPIO mapping table 92 * IRQ -> GPIO mapping table
93 */ 93 */
94static char irq2gpio[32] = { 94static signed char irq2gpio[32] = {
95 -1, -1, -1, -1, -1, -1, 0, 1, 95 -1, -1, -1, -1, -1, -1, 0, 1,
96 -1, -1, -1, -1, -1, -1, -1, -1, 96 -1, -1, -1, -1, -1, -1, -1, -1,
97 -1, -1, -1, 2, 3, 4, 5, 6, 97 -1, -1, -1, 2, 3, 4, 5, 6,
diff --git a/arch/arm/mach-pxa/corgi_ssp.c b/arch/arm/mach-pxa/corgi_ssp.c
index b371d723635f..8a25a1c8019f 100644
--- a/arch/arm/mach-pxa/corgi_ssp.c
+++ b/arch/arm/mach-pxa/corgi_ssp.c
@@ -196,12 +196,9 @@ static int __init corgi_ssp_probe(struct platform_device *dev)
196 int ret; 196 int ret;
197 197
198 /* Chip Select - Disable All */ 198 /* Chip Select - Disable All */
199 GPDR(ssp_machinfo->cs_lcdcon) |= GPIO_bit(ssp_machinfo->cs_lcdcon); /* output */ 199 pxa_gpio_mode(ssp_machinfo->cs_lcdcon | GPIO_OUT | GPIO_DFLT_HIGH);
200 GPSR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon); /* High - Disable LCD Control/Timing Gen */ 200 pxa_gpio_mode(ssp_machinfo->cs_max1111 | GPIO_OUT | GPIO_DFLT_HIGH);
201 GPDR(ssp_machinfo->cs_max1111) |= GPIO_bit(ssp_machinfo->cs_max1111); /* output */ 201 pxa_gpio_mode(ssp_machinfo->cs_ads7846 | GPIO_OUT | GPIO_DFLT_HIGH);
202 GPSR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111); /* High - Disable MAX1111*/
203 GPDR(ssp_machinfo->cs_ads7846) |= GPIO_bit(ssp_machinfo->cs_ads7846); /* output */
204 GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846); /* High - Disable ADS7846*/
205 202
206 ret = ssp_init(&corgi_ssp_dev, ssp_machinfo->port, 0); 203 ret = ssp_init(&corgi_ssp_dev, ssp_machinfo->port, 0);
207 204
diff --git a/arch/arm/vfp/vfpdouble.c b/arch/arm/vfp/vfpdouble.c
index febd115dba28..009038c8113e 100644
--- a/arch/arm/vfp/vfpdouble.c
+++ b/arch/arm/vfp/vfpdouble.c
@@ -197,7 +197,7 @@ u32 vfp_double_normaliseround(int dd, struct vfp_double *vd, u32 fpscr, u32 exce
197 dd, d, exceptions); 197 dd, d, exceptions);
198 vfp_put_double(dd, d); 198 vfp_put_double(dd, d);
199 } 199 }
200 return exceptions & ~VFP_NAN_FLAG; 200 return exceptions;
201} 201}
202 202
203/* 203/*
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
index 22f3da4e0829..37ff8145b5b5 100644
--- a/arch/arm/vfp/vfpmodule.c
+++ b/arch/arm/vfp/vfpmodule.c
@@ -180,7 +180,7 @@ static u32 vfp_emulate_instruction(u32 inst, u32 fpscr, struct pt_regs *regs)
180 * emulate it. 180 * emulate it.
181 */ 181 */
182 } 182 }
183 return exceptions; 183 return exceptions & ~VFP_NAN_FLAG;
184} 184}
185 185
186/* 186/*
diff --git a/arch/arm/vfp/vfpsingle.c b/arch/arm/vfp/vfpsingle.c
index 4ac27f193934..dae2c2f46052 100644
--- a/arch/arm/vfp/vfpsingle.c
+++ b/arch/arm/vfp/vfpsingle.c
@@ -203,7 +203,7 @@ u32 vfp_single_normaliseround(int sd, struct vfp_single *vs, u32 fpscr, u32 exce
203 vfp_put_float(sd, d); 203 vfp_put_float(sd, d);
204 } 204 }
205 205
206 return exceptions & ~VFP_NAN_FLAG; 206 return exceptions;
207} 207}
208 208
209/* 209/*
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
index 18ec9fe6deb6..c6fe99e57a05 100644
--- a/arch/i386/Kconfig
+++ b/arch/i386/Kconfig
@@ -467,7 +467,7 @@ endchoice
467 467
468choice 468choice
469 depends on EXPERIMENTAL && !X86_PAE 469 depends on EXPERIMENTAL && !X86_PAE
470 prompt "Memory split" 470 prompt "Memory split" if EMBEDDED
471 default VMSPLIT_3G 471 default VMSPLIT_3G
472 help 472 help
473 Select the desired split between kernel and user memory. 473 Select the desired split between kernel and user memory.
@@ -756,7 +756,7 @@ config PHYSICAL_START
756 756
757config HOTPLUG_CPU 757config HOTPLUG_CPU
758 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" 758 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
759 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER && !X86_PC 759 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
760 ---help--- 760 ---help---
761 Say Y here to experiment with turning CPUs off and on. CPUs 761 Say Y here to experiment with turning CPUs off and on. CPUs
762 can be controlled through /sys/devices/system/cpu. 762 can be controlled through /sys/devices/system/cpu.
diff --git a/arch/i386/Kconfig.debug b/arch/i386/Kconfig.debug
index 6e97df6979e8..c92191b1fb67 100644
--- a/arch/i386/Kconfig.debug
+++ b/arch/i386/Kconfig.debug
@@ -81,4 +81,13 @@ config X86_MPPARSE
81 depends on X86_LOCAL_APIC && !X86_VISWS 81 depends on X86_LOCAL_APIC && !X86_VISWS
82 default y 82 default y
83 83
84config DOUBLEFAULT
85 default y
86 bool "Enable doublefault exception handler" if EMBEDDED
87 help
88 This option allows trapping of rare doublefault exceptions that
89 would otherwise cause a system to silently reboot. Disabling this
90 option saves about 4k and might cause you much additional grey
91 hair.
92
84endmenu 93endmenu
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index 030a0007a4e0..4c785a67d585 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -168,7 +168,7 @@ int __init acpi_parse_mcfg(unsigned long phys_addr, unsigned long size)
168 unsigned long i; 168 unsigned long i;
169 int config_size; 169 int config_size;
170 170
171 if (!phys_addr || !size || !cpu_has_apic) 171 if (!phys_addr || !size)
172 return -EINVAL; 172 return -EINVAL;
173 173
174 mcfg = (struct acpi_table_mcfg *)__acpi_map_table(phys_addr, size); 174 mcfg = (struct acpi_table_mcfg *)__acpi_map_table(phys_addr, size);
@@ -215,7 +215,7 @@ static int __init acpi_parse_madt(unsigned long phys_addr, unsigned long size)
215{ 215{
216 struct acpi_table_madt *madt = NULL; 216 struct acpi_table_madt *madt = NULL;
217 217
218 if (!phys_addr || !size || !cpu_has_apic) 218 if (!phys_addr || !size)
219 return -EINVAL; 219 return -EINVAL;
220 220
221 madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size); 221 madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size);
@@ -1102,6 +1102,9 @@ int __init acpi_boot_table_init(void)
1102 dmi_check_system(acpi_dmi_table); 1102 dmi_check_system(acpi_dmi_table);
1103#endif 1103#endif
1104 1104
1105 if (!cpu_has_apic)
1106 return -ENODEV;
1107
1105 /* 1108 /*
1106 * If acpi_disabled, bail out 1109 * If acpi_disabled, bail out
1107 * One exception: acpi=ht continues far enough to enumerate LAPICs 1110 * One exception: acpi=ht continues far enough to enumerate LAPICs
@@ -1148,6 +1151,9 @@ int __init acpi_boot_init(void)
1148 1151
1149 acpi_table_parse(ACPI_BOOT, acpi_parse_sbf); 1152 acpi_table_parse(ACPI_BOOT, acpi_parse_sbf);
1150 1153
1154 if (!cpu_has_apic)
1155 return -ENODEV;
1156
1151 /* 1157 /*
1152 * set sci_int and PM timer address 1158 * set sci_int and PM timer address
1153 */ 1159 */
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c
index 254cee9f0b7b..013b85df18c6 100644
--- a/arch/i386/kernel/apic.c
+++ b/arch/i386/kernel/apic.c
@@ -757,10 +757,6 @@ static int __init apic_set_verbosity(char *str)
757 apic_verbosity = APIC_DEBUG; 757 apic_verbosity = APIC_DEBUG;
758 else if (strcmp("verbose", str) == 0) 758 else if (strcmp("verbose", str) == 0)
759 apic_verbosity = APIC_VERBOSE; 759 apic_verbosity = APIC_VERBOSE;
760 else
761 printk(KERN_WARNING "APIC Verbosity level %s not recognised"
762 " use apic=verbose or apic=debug\n", str);
763
764 return 1; 760 return 1;
765} 761}
766 762
diff --git a/arch/i386/kernel/apm.c b/arch/i386/kernel/apm.c
index da30a374dd4e..df0e1745f189 100644
--- a/arch/i386/kernel/apm.c
+++ b/arch/i386/kernel/apm.c
@@ -1079,7 +1079,7 @@ static int apm_console_blank(int blank)
1079 break; 1079 break;
1080 } 1080 }
1081 1081
1082 if (error == APM_NOT_ENGAGED && state != APM_STATE_READY) { 1082 if (error == APM_NOT_ENGAGED) {
1083 static int tried; 1083 static int tried;
1084 int eng_error; 1084 int eng_error;
1085 if (tried++ == 0) { 1085 if (tried++ == 0) {
diff --git a/arch/i386/kernel/cpu/amd.c b/arch/i386/kernel/cpu/amd.c
index ff2b2154ac1b..786d1a57048b 100644
--- a/arch/i386/kernel/cpu/amd.c
+++ b/arch/i386/kernel/cpu/amd.c
@@ -207,6 +207,8 @@ static void __init init_amd(struct cpuinfo_x86 *c)
207 set_bit(X86_FEATURE_K7, c->x86_capability); 207 set_bit(X86_FEATURE_K7, c->x86_capability);
208 break; 208 break;
209 } 209 }
210 if (c->x86 >= 6)
211 set_bit(X86_FEATURE_FXSAVE_LEAK, c->x86_capability);
210 212
211 display_cacheinfo(c); 213 display_cacheinfo(c);
212 214
diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c
index 7c0e160a2145..71fffa174425 100644
--- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c
+++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c
@@ -905,14 +905,17 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi
905{ 905{
906 cpumask_t oldmask = CPU_MASK_ALL; 906 cpumask_t oldmask = CPU_MASK_ALL;
907 struct powernow_k8_data *data = powernow_data[pol->cpu]; 907 struct powernow_k8_data *data = powernow_data[pol->cpu];
908 u32 checkfid = data->currfid; 908 u32 checkfid;
909 u32 checkvid = data->currvid; 909 u32 checkvid;
910 unsigned int newstate; 910 unsigned int newstate;
911 int ret = -EIO; 911 int ret = -EIO;
912 912
913 if (!data) 913 if (!data)
914 return -EINVAL; 914 return -EINVAL;
915 915
916 checkfid = data->currfid;
917 checkvid = data->currvid;
918
916 /* only run on specific CPU from here on */ 919 /* only run on specific CPU from here on */
917 oldmask = current->cpus_allowed; 920 oldmask = current->cpus_allowed;
918 set_cpus_allowed(current, cpumask_of_cpu(pol->cpu)); 921 set_cpus_allowed(current, cpumask_of_cpu(pol->cpu));
@@ -1109,9 +1112,6 @@ static unsigned int powernowk8_get (unsigned int cpu)
1109 if (!data) 1112 if (!data)
1110 return -EINVAL; 1113 return -EINVAL;
1111 1114
1112 if (!data)
1113 return -EINVAL;
1114
1115 set_cpus_allowed(current, cpumask_of_cpu(cpu)); 1115 set_cpus_allowed(current, cpumask_of_cpu(cpu));
1116 if (smp_processor_id() != cpu) { 1116 if (smp_processor_id() != cpu) {
1117 printk(KERN_ERR PFX "limiting to CPU %d failed in powernowk8_get\n", cpu); 1117 printk(KERN_ERR PFX "limiting to CPU %d failed in powernowk8_get\n", cpu);
diff --git a/arch/i386/kernel/cpu/intel_cacheinfo.c b/arch/i386/kernel/cpu/intel_cacheinfo.c
index 9df87b03612c..c8547a6fa7e6 100644
--- a/arch/i386/kernel/cpu/intel_cacheinfo.c
+++ b/arch/i386/kernel/cpu/intel_cacheinfo.c
@@ -642,7 +642,7 @@ static void __cpuexit cache_remove_dev(struct sys_device * sys_dev)
642 return; 642 return;
643} 643}
644 644
645static int __cpuinit cacheinfo_cpu_callback(struct notifier_block *nfb, 645static int cacheinfo_cpu_callback(struct notifier_block *nfb,
646 unsigned long action, void *hcpu) 646 unsigned long action, void *hcpu)
647{ 647{
648 unsigned int cpu = (unsigned long)hcpu; 648 unsigned int cpu = (unsigned long)hcpu;
diff --git a/arch/i386/kernel/cpuid.c b/arch/i386/kernel/cpuid.c
index 006141d1c12a..1d9a4abcdfc7 100644
--- a/arch/i386/kernel/cpuid.c
+++ b/arch/i386/kernel/cpuid.c
@@ -168,7 +168,7 @@ static int cpuid_class_device_create(int i)
168 return err; 168 return err;
169} 169}
170 170
171static int __devinit cpuid_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) 171static int cpuid_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
172{ 172{
173 unsigned int cpu = (unsigned long)hcpu; 173 unsigned int cpu = (unsigned long)hcpu;
174 174
diff --git a/arch/i386/kernel/kprobes.c b/arch/i386/kernel/kprobes.c
index f19768789e8a..38806f427849 100644
--- a/arch/i386/kernel/kprobes.c
+++ b/arch/i386/kernel/kprobes.c
@@ -43,7 +43,7 @@ DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL;
43DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); 43DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
44 44
45/* insert a jmp code */ 45/* insert a jmp code */
46static inline void set_jmp_op(void *from, void *to) 46static __always_inline void set_jmp_op(void *from, void *to)
47{ 47{
48 struct __arch_jmp_op { 48 struct __arch_jmp_op {
49 char op; 49 char op;
@@ -57,7 +57,7 @@ static inline void set_jmp_op(void *from, void *to)
57/* 57/*
58 * returns non-zero if opcodes can be boosted. 58 * returns non-zero if opcodes can be boosted.
59 */ 59 */
60static inline int can_boost(kprobe_opcode_t opcode) 60static __always_inline int can_boost(kprobe_opcode_t opcode)
61{ 61{
62 switch (opcode & 0xf0 ) { 62 switch (opcode & 0xf0 ) {
63 case 0x70: 63 case 0x70:
@@ -88,7 +88,7 @@ static inline int can_boost(kprobe_opcode_t opcode)
88/* 88/*
89 * returns non-zero if opcode modifies the interrupt flag. 89 * returns non-zero if opcode modifies the interrupt flag.
90 */ 90 */
91static inline int is_IF_modifier(kprobe_opcode_t opcode) 91static int __kprobes is_IF_modifier(kprobe_opcode_t opcode)
92{ 92{
93 switch (opcode) { 93 switch (opcode) {
94 case 0xfa: /* cli */ 94 case 0xfa: /* cli */
@@ -138,7 +138,7 @@ void __kprobes arch_remove_kprobe(struct kprobe *p)
138 mutex_unlock(&kprobe_mutex); 138 mutex_unlock(&kprobe_mutex);
139} 139}
140 140
141static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) 141static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)
142{ 142{
143 kcb->prev_kprobe.kp = kprobe_running(); 143 kcb->prev_kprobe.kp = kprobe_running();
144 kcb->prev_kprobe.status = kcb->kprobe_status; 144 kcb->prev_kprobe.status = kcb->kprobe_status;
@@ -146,7 +146,7 @@ static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb)
146 kcb->prev_kprobe.saved_eflags = kcb->kprobe_saved_eflags; 146 kcb->prev_kprobe.saved_eflags = kcb->kprobe_saved_eflags;
147} 147}
148 148
149static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb) 149static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb)
150{ 150{
151 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp; 151 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp;
152 kcb->kprobe_status = kcb->prev_kprobe.status; 152 kcb->kprobe_status = kcb->prev_kprobe.status;
@@ -154,7 +154,7 @@ static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb)
154 kcb->kprobe_saved_eflags = kcb->prev_kprobe.saved_eflags; 154 kcb->kprobe_saved_eflags = kcb->prev_kprobe.saved_eflags;
155} 155}
156 156
157static inline void set_current_kprobe(struct kprobe *p, struct pt_regs *regs, 157static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
158 struct kprobe_ctlblk *kcb) 158 struct kprobe_ctlblk *kcb)
159{ 159{
160 __get_cpu_var(current_kprobe) = p; 160 __get_cpu_var(current_kprobe) = p;
@@ -164,7 +164,7 @@ static inline void set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
164 kcb->kprobe_saved_eflags &= ~IF_MASK; 164 kcb->kprobe_saved_eflags &= ~IF_MASK;
165} 165}
166 166
167static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs) 167static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
168{ 168{
169 regs->eflags |= TF_MASK; 169 regs->eflags |= TF_MASK;
170 regs->eflags &= ~IF_MASK; 170 regs->eflags &= ~IF_MASK;
@@ -242,10 +242,6 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
242 kcb->kprobe_status = KPROBE_REENTER; 242 kcb->kprobe_status = KPROBE_REENTER;
243 return 1; 243 return 1;
244 } else { 244 } else {
245 if (regs->eflags & VM_MASK) {
246 /* We are in virtual-8086 mode. Return 0 */
247 goto no_kprobe;
248 }
249 if (*addr != BREAKPOINT_INSTRUCTION) { 245 if (*addr != BREAKPOINT_INSTRUCTION) {
250 /* The breakpoint instruction was removed by 246 /* The breakpoint instruction was removed by
251 * another cpu right after we hit, no further 247 * another cpu right after we hit, no further
@@ -265,11 +261,6 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
265 261
266 p = get_kprobe(addr); 262 p = get_kprobe(addr);
267 if (!p) { 263 if (!p) {
268 if (regs->eflags & VM_MASK) {
269 /* We are in virtual-8086 mode. Return 0 */
270 goto no_kprobe;
271 }
272
273 if (*addr != BREAKPOINT_INSTRUCTION) { 264 if (*addr != BREAKPOINT_INSTRUCTION) {
274 /* 265 /*
275 * The breakpoint instruction was removed right 266 * The breakpoint instruction was removed right
@@ -452,10 +443,11 @@ static void __kprobes resume_execution(struct kprobe *p,
452 *tos &= ~(TF_MASK | IF_MASK); 443 *tos &= ~(TF_MASK | IF_MASK);
453 *tos |= kcb->kprobe_old_eflags; 444 *tos |= kcb->kprobe_old_eflags;
454 break; 445 break;
455 case 0xc3: /* ret/lret */ 446 case 0xc2: /* iret/ret/lret */
456 case 0xcb: 447 case 0xc3:
457 case 0xc2:
458 case 0xca: 448 case 0xca:
449 case 0xcb:
450 case 0xcf:
459 case 0xea: /* jmp absolute -- eip is correct */ 451 case 0xea: /* jmp absolute -- eip is correct */
460 /* eip is already adjusted, no more changes required */ 452 /* eip is already adjusted, no more changes required */
461 p->ainsn.boostable = 1; 453 p->ainsn.boostable = 1;
@@ -463,10 +455,13 @@ static void __kprobes resume_execution(struct kprobe *p,
463 case 0xe8: /* call relative - Fix return addr */ 455 case 0xe8: /* call relative - Fix return addr */
464 *tos = orig_eip + (*tos - copy_eip); 456 *tos = orig_eip + (*tos - copy_eip);
465 break; 457 break;
458 case 0x9a: /* call absolute -- same as call absolute, indirect */
459 *tos = orig_eip + (*tos - copy_eip);
460 goto no_change;
466 case 0xff: 461 case 0xff:
467 if ((p->ainsn.insn[1] & 0x30) == 0x10) { 462 if ((p->ainsn.insn[1] & 0x30) == 0x10) {
468 /* call absolute, indirect */
469 /* 463 /*
464 * call absolute, indirect
470 * Fix return addr; eip is correct. 465 * Fix return addr; eip is correct.
471 * But this is not boostable 466 * But this is not boostable
472 */ 467 */
@@ -507,7 +502,7 @@ no_change:
507 * Interrupts are disabled on entry as trap1 is an interrupt gate and they 502 * Interrupts are disabled on entry as trap1 is an interrupt gate and they
508 * remain disabled thoroughout this function. 503 * remain disabled thoroughout this function.
509 */ 504 */
510static inline int post_kprobe_handler(struct pt_regs *regs) 505static int __kprobes post_kprobe_handler(struct pt_regs *regs)
511{ 506{
512 struct kprobe *cur = kprobe_running(); 507 struct kprobe *cur = kprobe_running();
513 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); 508 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
@@ -543,7 +538,7 @@ out:
543 return 1; 538 return 1;
544} 539}
545 540
546static inline int kprobe_fault_handler(struct pt_regs *regs, int trapnr) 541static int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr)
547{ 542{
548 struct kprobe *cur = kprobe_running(); 543 struct kprobe *cur = kprobe_running();
549 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); 544 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
diff --git a/arch/i386/kernel/msr.c b/arch/i386/kernel/msr.c
index 1d0a55e68760..7a328230e540 100644
--- a/arch/i386/kernel/msr.c
+++ b/arch/i386/kernel/msr.c
@@ -251,7 +251,7 @@ static int msr_class_device_create(int i)
251 return err; 251 return err;
252} 252}
253 253
254static int __devinit msr_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) 254static int msr_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
255{ 255{
256 unsigned int cpu = (unsigned long)hcpu; 256 unsigned int cpu = (unsigned long)hcpu;
257 257
diff --git a/arch/i386/kernel/ptrace.c b/arch/i386/kernel/ptrace.c
index 506462ef36a0..fd7eaf7866e0 100644
--- a/arch/i386/kernel/ptrace.c
+++ b/arch/i386/kernel/ptrace.c
@@ -671,7 +671,7 @@ int do_syscall_trace(struct pt_regs *regs, int entryexit)
671 671
672 if (unlikely(current->audit_context)) { 672 if (unlikely(current->audit_context)) {
673 if (entryexit) 673 if (entryexit)
674 audit_syscall_exit(current, AUDITSC_RESULT(regs->eax), 674 audit_syscall_exit(AUDITSC_RESULT(regs->eax),
675 regs->eax); 675 regs->eax);
676 /* Debug traps, when using PTRACE_SINGLESTEP, must be sent only 676 /* Debug traps, when using PTRACE_SINGLESTEP, must be sent only
677 * on the syscall exit path. Normally, when TIF_SYSCALL_AUDIT is 677 * on the syscall exit path. Normally, when TIF_SYSCALL_AUDIT is
@@ -720,14 +720,13 @@ int do_syscall_trace(struct pt_regs *regs, int entryexit)
720 ret = is_sysemu; 720 ret = is_sysemu;
721out: 721out:
722 if (unlikely(current->audit_context) && !entryexit) 722 if (unlikely(current->audit_context) && !entryexit)
723 audit_syscall_entry(current, AUDIT_ARCH_I386, regs->orig_eax, 723 audit_syscall_entry(AUDIT_ARCH_I386, regs->orig_eax,
724 regs->ebx, regs->ecx, regs->edx, regs->esi); 724 regs->ebx, regs->ecx, regs->edx, regs->esi);
725 if (ret == 0) 725 if (ret == 0)
726 return 0; 726 return 0;
727 727
728 regs->orig_eax = -1; /* force skip of syscall restarting */ 728 regs->orig_eax = -1; /* force skip of syscall restarting */
729 if (unlikely(current->audit_context)) 729 if (unlikely(current->audit_context))
730 audit_syscall_exit(current, AUDITSC_RESULT(regs->eax), 730 audit_syscall_exit(AUDITSC_RESULT(regs->eax), regs->eax);
731 regs->eax);
732 return 1; 731 return 1;
733} 732}
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
index 80cb3b2d0997..d77e89ac0d54 100644
--- a/arch/i386/kernel/setup.c
+++ b/arch/i386/kernel/setup.c
@@ -970,8 +970,10 @@ efi_memory_present_wrapper(unsigned long start, unsigned long end, void *arg)
970 * not-overlapping, which is the case 970 * not-overlapping, which is the case
971 */ 971 */
972int __init 972int __init
973e820_all_mapped(unsigned long start, unsigned long end, unsigned type) 973e820_all_mapped(unsigned long s, unsigned long e, unsigned type)
974{ 974{
975 u64 start = s;
976 u64 end = e;
975 int i; 977 int i;
976 for (i = 0; i < e820.nr_map; i++) { 978 for (i = 0; i < e820.nr_map; i++) {
977 struct e820entry *ei = &e820.map[i]; 979 struct e820entry *ei = &e820.map[i];
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c
index a6969903f2d6..825b2b4ca721 100644
--- a/arch/i386/kernel/smpboot.c
+++ b/arch/i386/kernel/smpboot.c
@@ -313,7 +313,9 @@ static void __init synchronize_tsc_bp (void)
313 if (tsc_values[i] < avg) 313 if (tsc_values[i] < avg)
314 realdelta = -realdelta; 314 realdelta = -realdelta;
315 315
316 printk(KERN_INFO "CPU#%d had %ld usecs TSC skew, fixed it up.\n", i, realdelta); 316 if (realdelta > 0)
317 printk(KERN_INFO "CPU#%d had %ld usecs TSC "
318 "skew, fixed it up.\n", i, realdelta);
317 } 319 }
318 320
319 sum += delta; 321 sum += delta;
diff --git a/arch/i386/kernel/timers/timer_tsc.c b/arch/i386/kernel/timers/timer_tsc.c
index 5e41ee29c8cf..f1187ddb0d0f 100644
--- a/arch/i386/kernel/timers/timer_tsc.c
+++ b/arch/i386/kernel/timers/timer_tsc.c
@@ -279,7 +279,7 @@ time_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
279{ 279{
280 struct cpufreq_freqs *freq = data; 280 struct cpufreq_freqs *freq = data;
281 281
282 if (val != CPUFREQ_RESUMECHANGE) 282 if (val != CPUFREQ_RESUMECHANGE && val != CPUFREQ_SUSPENDCHANGE)
283 write_seqlock_irq(&xtime_lock); 283 write_seqlock_irq(&xtime_lock);
284 if (!ref_freq) { 284 if (!ref_freq) {
285 if (!freq->old){ 285 if (!freq->old){
@@ -312,7 +312,7 @@ time_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
312 } 312 }
313 313
314end: 314end:
315 if (val != CPUFREQ_RESUMECHANGE) 315 if (val != CPUFREQ_RESUMECHANGE && val != CPUFREQ_SUSPENDCHANGE)
316 write_sequnlock_irq(&xtime_lock); 316 write_sequnlock_irq(&xtime_lock);
317 317
318 return 0; 318 return 0;
diff --git a/arch/i386/kernel/vm86.c b/arch/i386/kernel/vm86.c
index aee14fafd13d..00e0118e717c 100644
--- a/arch/i386/kernel/vm86.c
+++ b/arch/i386/kernel/vm86.c
@@ -312,7 +312,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk
312 312
313 /*call audit_syscall_exit since we do not exit via the normal paths */ 313 /*call audit_syscall_exit since we do not exit via the normal paths */
314 if (unlikely(current->audit_context)) 314 if (unlikely(current->audit_context))
315 audit_syscall_exit(current, AUDITSC_RESULT(eax), eax); 315 audit_syscall_exit(AUDITSC_RESULT(eax), eax);
316 316
317 __asm__ __volatile__( 317 __asm__ __volatile__(
318 "movl %0,%%esp\n\t" 318 "movl %0,%%esp\n\t"
diff --git a/arch/i386/mach-voyager/voyager_cat.c b/arch/i386/mach-voyager/voyager_cat.c
index 3039539de51e..10d21df14531 100644
--- a/arch/i386/mach-voyager/voyager_cat.c
+++ b/arch/i386/mach-voyager/voyager_cat.c
@@ -120,7 +120,6 @@ static struct resource qic_res = {
120 * It writes num_bits of the data buffer in msg starting at start_bit. 120 * It writes num_bits of the data buffer in msg starting at start_bit.
121 * Note: This function assumes that any unused bit in the data stream 121 * Note: This function assumes that any unused bit in the data stream
122 * is set to zero so that the ors will work correctly */ 122 * is set to zero so that the ors will work correctly */
123#define BITS_PER_BYTE 8
124static void 123static void
125cat_pack(__u8 *msg, const __u16 start_bit, __u8 *data, const __u16 num_bits) 124cat_pack(__u8 *msg, const __u16 start_bit, __u8 *data, const __u16 num_bits)
126{ 125{
diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c
index 73235443fda7..06dab00aaadc 100644
--- a/arch/i386/pci/irq.c
+++ b/arch/i386/pci/irq.c
@@ -591,7 +591,6 @@ static __init int via_router_probe(struct irq_router *r,
591 case PCI_DEVICE_ID_VIA_8233A: 591 case PCI_DEVICE_ID_VIA_8233A:
592 case PCI_DEVICE_ID_VIA_8235: 592 case PCI_DEVICE_ID_VIA_8235:
593 case PCI_DEVICE_ID_VIA_8237: 593 case PCI_DEVICE_ID_VIA_8237:
594 case PCI_DEVICE_ID_VIA_8237_SATA:
595 /* FIXME: add new ones for 8233/5 */ 594 /* FIXME: add new ones for 8233/5 */
596 r->name = "VIA"; 595 r->name = "VIA";
597 r->get = pirq_via_get; 596 r->get = pirq_via_get;
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 9f40eeff0b5c..0f3076a820c3 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -413,6 +413,8 @@ config IA64_PALINFO
413config SGI_SN 413config SGI_SN
414 def_bool y if (IA64_SGI_SN2 || IA64_GENERIC) 414 def_bool y if (IA64_SGI_SN2 || IA64_GENERIC)
415 415
416source "drivers/sn/Kconfig"
417
416source "drivers/firmware/Kconfig" 418source "drivers/firmware/Kconfig"
417 419
418source "fs/Kconfig.binfmt" 420source "fs/Kconfig.binfmt"
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig
index a718034d68d0..f6a8853cd1b4 100644
--- a/arch/ia64/configs/sn2_defconfig
+++ b/arch/ia64/configs/sn2_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.16-rc5 3# Linux kernel version: 2.6.17-rc3
4# Mon Feb 27 16:06:38 2006 4# Thu Apr 27 11:48:23 2006
5# 5#
6 6
7# 7#
@@ -24,6 +24,7 @@ CONFIG_SYSCTL=y
24# CONFIG_AUDIT is not set 24# CONFIG_AUDIT is not set
25# CONFIG_IKCONFIG is not set 25# CONFIG_IKCONFIG is not set
26CONFIG_CPUSETS=y 26CONFIG_CPUSETS=y
27CONFIG_RELAY=y
27CONFIG_INITRAMFS_SOURCE="" 28CONFIG_INITRAMFS_SOURCE=""
28CONFIG_CC_OPTIMIZE_FOR_SIZE=y 29CONFIG_CC_OPTIMIZE_FOR_SIZE=y
29# CONFIG_EMBEDDED is not set 30# CONFIG_EMBEDDED is not set
@@ -38,10 +39,6 @@ CONFIG_BASE_FULL=y
38CONFIG_FUTEX=y 39CONFIG_FUTEX=y
39CONFIG_EPOLL=y 40CONFIG_EPOLL=y
40CONFIG_SHMEM=y 41CONFIG_SHMEM=y
41CONFIG_CC_ALIGN_FUNCTIONS=0
42CONFIG_CC_ALIGN_LABELS=0
43CONFIG_CC_ALIGN_LOOPS=0
44CONFIG_CC_ALIGN_JUMPS=0
45CONFIG_SLAB=y 42CONFIG_SLAB=y
46# CONFIG_TINY_SHMEM is not set 43# CONFIG_TINY_SHMEM is not set
47CONFIG_BASE_SMALL=0 44CONFIG_BASE_SMALL=0
@@ -53,7 +50,6 @@ CONFIG_BASE_SMALL=0
53CONFIG_MODULES=y 50CONFIG_MODULES=y
54CONFIG_MODULE_UNLOAD=y 51CONFIG_MODULE_UNLOAD=y
55# CONFIG_MODULE_FORCE_UNLOAD is not set 52# CONFIG_MODULE_FORCE_UNLOAD is not set
56CONFIG_OBSOLETE_MODPARM=y
57# CONFIG_MODVERSIONS is not set 53# CONFIG_MODVERSIONS is not set
58# CONFIG_MODULE_SRCVERSION_ALL is not set 54# CONFIG_MODULE_SRCVERSION_ALL is not set
59CONFIG_KMOD=y 55CONFIG_KMOD=y
@@ -62,6 +58,7 @@ CONFIG_STOP_MACHINE=y
62# 58#
63# Block layer 59# Block layer
64# 60#
61# CONFIG_BLK_DEV_IO_TRACE is not set
65 62
66# 63#
67# IO Schedulers 64# IO Schedulers
@@ -84,8 +81,10 @@ CONFIG_64BIT=y
84CONFIG_MMU=y 81CONFIG_MMU=y
85CONFIG_SWIOTLB=y 82CONFIG_SWIOTLB=y
86CONFIG_RWSEM_XCHGADD_ALGORITHM=y 83CONFIG_RWSEM_XCHGADD_ALGORITHM=y
84CONFIG_GENERIC_FIND_NEXT_BIT=y
87CONFIG_GENERIC_CALIBRATE_DELAY=y 85CONFIG_GENERIC_CALIBRATE_DELAY=y
88CONFIG_TIME_INTERPOLATION=y 86CONFIG_TIME_INTERPOLATION=y
87CONFIG_DMI=y
89CONFIG_EFI=y 88CONFIG_EFI=y
90CONFIG_GENERIC_IOMAP=y 89CONFIG_GENERIC_IOMAP=y
91CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 90CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
@@ -116,7 +115,6 @@ CONFIG_IA64_SGI_SN_XP=m
116CONFIG_FORCE_MAX_ZONEORDER=17 115CONFIG_FORCE_MAX_ZONEORDER=17
117CONFIG_SMP=y 116CONFIG_SMP=y
118CONFIG_NR_CPUS=1024 117CONFIG_NR_CPUS=1024
119CONFIG_IA64_NR_NODES=256
120# CONFIG_HOTPLUG_CPU is not set 118# CONFIG_HOTPLUG_CPU is not set
121CONFIG_SCHED_SMT=y 119CONFIG_SCHED_SMT=y
122CONFIG_PREEMPT=y 120CONFIG_PREEMPT=y
@@ -136,6 +134,7 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
136CONFIG_ARCH_SPARSEMEM_ENABLE=y 134CONFIG_ARCH_SPARSEMEM_ENABLE=y
137CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y 135CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
138CONFIG_NUMA=y 136CONFIG_NUMA=y
137CONFIG_NODES_SHIFT=8
139CONFIG_VIRTUAL_MEM_MAP=y 138CONFIG_VIRTUAL_MEM_MAP=y
140CONFIG_HOLES_IN_ZONE=y 139CONFIG_HOLES_IN_ZONE=y
141CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y 140CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
@@ -187,7 +186,6 @@ CONFIG_ACPI_SYSTEM=y
187CONFIG_PCI=y 186CONFIG_PCI=y
188CONFIG_PCI_DOMAINS=y 187CONFIG_PCI_DOMAINS=y
189# CONFIG_PCI_MSI is not set 188# CONFIG_PCI_MSI is not set
190CONFIG_PCI_LEGACY_PROC=y
191# CONFIG_PCI_DEBUG is not set 189# CONFIG_PCI_DEBUG is not set
192 190
193# 191#
@@ -231,6 +229,7 @@ CONFIG_SYN_COOKIES=y
231# CONFIG_INET_AH is not set 229# CONFIG_INET_AH is not set
232# CONFIG_INET_ESP is not set 230# CONFIG_INET_ESP is not set
233# CONFIG_INET_IPCOMP is not set 231# CONFIG_INET_IPCOMP is not set
232# CONFIG_INET_XFRM_TUNNEL is not set
234# CONFIG_INET_TUNNEL is not set 233# CONFIG_INET_TUNNEL is not set
235CONFIG_INET_DIAG=m 234CONFIG_INET_DIAG=m
236CONFIG_INET_TCP_DIAG=m 235CONFIG_INET_TCP_DIAG=m
@@ -238,9 +237,11 @@ CONFIG_INET_TCP_DIAG=m
238CONFIG_TCP_CONG_BIC=y 237CONFIG_TCP_CONG_BIC=y
239CONFIG_IPV6=m 238CONFIG_IPV6=m
240# CONFIG_IPV6_PRIVACY is not set 239# CONFIG_IPV6_PRIVACY is not set
240# CONFIG_IPV6_ROUTER_PREF is not set
241# CONFIG_INET6_AH is not set 241# CONFIG_INET6_AH is not set
242# CONFIG_INET6_ESP is not set 242# CONFIG_INET6_ESP is not set
243# CONFIG_INET6_IPCOMP is not set 243# CONFIG_INET6_IPCOMP is not set
244# CONFIG_INET6_XFRM_TUNNEL is not set
244# CONFIG_INET6_TUNNEL is not set 245# CONFIG_INET6_TUNNEL is not set
245# CONFIG_IPV6_TUNNEL is not set 246# CONFIG_IPV6_TUNNEL is not set
246# CONFIG_NETFILTER is not set 247# CONFIG_NETFILTER is not set
@@ -468,9 +469,14 @@ CONFIG_SCSI_SATA_VITESSE=y
468# CONFIG_SCSI_INIA100 is not set 469# CONFIG_SCSI_INIA100 is not set
469# CONFIG_SCSI_SYM53C8XX_2 is not set 470# CONFIG_SCSI_SYM53C8XX_2 is not set
470# CONFIG_SCSI_IPR is not set 471# CONFIG_SCSI_IPR is not set
471# CONFIG_SCSI_QLOGIC_FC is not set
472CONFIG_SCSI_QLOGIC_1280=y 472CONFIG_SCSI_QLOGIC_1280=y
473# CONFIG_SCSI_QLA_FC is not set 473CONFIG_SCSI_QLA_FC=y
474CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE=y
475# CONFIG_SCSI_QLA21XX is not set
476CONFIG_SCSI_QLA22XX=y
477CONFIG_SCSI_QLA2300=y
478CONFIG_SCSI_QLA2322=y
479# CONFIG_SCSI_QLA24XX is not set
474# CONFIG_SCSI_LPFC is not set 480# CONFIG_SCSI_LPFC is not set
475# CONFIG_SCSI_DC395x is not set 481# CONFIG_SCSI_DC395x is not set
476# CONFIG_SCSI_DC390T is not set 482# CONFIG_SCSI_DC390T is not set
@@ -486,6 +492,7 @@ CONFIG_MD_RAID0=y
486CONFIG_MD_RAID1=y 492CONFIG_MD_RAID1=y
487# CONFIG_MD_RAID10 is not set 493# CONFIG_MD_RAID10 is not set
488CONFIG_MD_RAID5=y 494CONFIG_MD_RAID5=y
495# CONFIG_MD_RAID5_RESHAPE is not set
489# CONFIG_MD_RAID6 is not set 496# CONFIG_MD_RAID6 is not set
490CONFIG_MD_MULTIPATH=y 497CONFIG_MD_MULTIPATH=y
491# CONFIG_MD_FAULTY is not set 498# CONFIG_MD_FAULTY is not set
@@ -694,6 +701,7 @@ CONFIG_EFI_RTC=y
694# Ftape, the floppy tape device driver 701# Ftape, the floppy tape device driver
695# 702#
696CONFIG_AGP=y 703CONFIG_AGP=y
704# CONFIG_AGP_VIA is not set
697CONFIG_AGP_SGI_TIOCA=y 705CONFIG_AGP_SGI_TIOCA=y
698# CONFIG_DRM is not set 706# CONFIG_DRM is not set
699CONFIG_RAW_DRIVER=m 707CONFIG_RAW_DRIVER=m
@@ -735,10 +743,6 @@ CONFIG_MMTIMER=y
735# 743#
736 744
737# 745#
738# Multimedia Capabilities Port drivers
739#
740
741#
742# Multimedia devices 746# Multimedia devices
743# 747#
744# CONFIG_VIDEO_DEV is not set 748# CONFIG_VIDEO_DEV is not set
@@ -747,6 +751,7 @@ CONFIG_MMTIMER=y
747# Digital Video Broadcasting Devices 751# Digital Video Broadcasting Devices
748# 752#
749# CONFIG_DVB is not set 753# CONFIG_DVB is not set
754# CONFIG_USB_DABUSB is not set
750 755
751# 756#
752# Graphics support 757# Graphics support
@@ -757,6 +762,7 @@ CONFIG_MMTIMER=y
757# Console display driver support 762# Console display driver support
758# 763#
759CONFIG_VGA_CONSOLE=y 764CONFIG_VGA_CONSOLE=y
765# CONFIG_VGACON_SOFT_SCROLLBACK is not set
760CONFIG_DUMMY_CONSOLE=y 766CONFIG_DUMMY_CONSOLE=y
761 767
762# 768#
@@ -769,6 +775,7 @@ CONFIG_DUMMY_CONSOLE=y
769# 775#
770CONFIG_USB_ARCH_HAS_HCD=y 776CONFIG_USB_ARCH_HAS_HCD=y
771CONFIG_USB_ARCH_HAS_OHCI=y 777CONFIG_USB_ARCH_HAS_OHCI=y
778CONFIG_USB_ARCH_HAS_EHCI=y
772CONFIG_USB=m 779CONFIG_USB=m
773# CONFIG_USB_DEBUG is not set 780# CONFIG_USB_DEBUG is not set
774 781
@@ -829,9 +836,7 @@ CONFIG_USB_HIDINPUT=y
829# CONFIG_USB_ACECAD is not set 836# CONFIG_USB_ACECAD is not set
830# CONFIG_USB_KBTAB is not set 837# CONFIG_USB_KBTAB is not set
831# CONFIG_USB_POWERMATE is not set 838# CONFIG_USB_POWERMATE is not set
832# CONFIG_USB_MTOUCH is not set 839# CONFIG_USB_TOUCHSCREEN is not set
833# CONFIG_USB_ITMTOUCH is not set
834# CONFIG_USB_EGALAX is not set
835# CONFIG_USB_YEALINK is not set 840# CONFIG_USB_YEALINK is not set
836# CONFIG_USB_XPAD is not set 841# CONFIG_USB_XPAD is not set
837# CONFIG_USB_ATI_REMOTE is not set 842# CONFIG_USB_ATI_REMOTE is not set
@@ -846,15 +851,6 @@ CONFIG_USB_HIDINPUT=y
846# CONFIG_USB_MICROTEK is not set 851# CONFIG_USB_MICROTEK is not set
847 852
848# 853#
849# USB Multimedia devices
850#
851# CONFIG_USB_DABUSB is not set
852
853#
854# Video4Linux support is needed for USB Multimedia device support
855#
856
857#
858# USB Network Adapters 854# USB Network Adapters
859# 855#
860# CONFIG_USB_CATC is not set 856# CONFIG_USB_CATC is not set
@@ -905,15 +901,29 @@ CONFIG_USB_MON=y
905# CONFIG_MMC is not set 901# CONFIG_MMC is not set
906 902
907# 903#
904# LED devices
905#
906# CONFIG_NEW_LEDS is not set
907
908#
909# LED drivers
910#
911
912#
913# LED Triggers
914#
915
916#
908# InfiniBand support 917# InfiniBand support
909# 918#
910CONFIG_INFINIBAND=m 919CONFIG_INFINIBAND=m
911# CONFIG_INFINIBAND_USER_MAD is not set 920# CONFIG_INFINIBAND_USER_MAD is not set
912CONFIG_INFINIBAND_USER_ACCESS=m 921CONFIG_INFINIBAND_USER_ACCESS=m
913CONFIG_INFINIBAND_MTHCA=m 922CONFIG_INFINIBAND_MTHCA=m
914# CONFIG_INFINIBAND_MTHCA_DEBUG is not set 923CONFIG_INFINIBAND_MTHCA_DEBUG=y
915CONFIG_INFINIBAND_IPOIB=m 924CONFIG_INFINIBAND_IPOIB=m
916# CONFIG_INFINIBAND_IPOIB_DEBUG is not set 925CONFIG_INFINIBAND_IPOIB_DEBUG=y
926# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
917CONFIG_INFINIBAND_SRP=m 927CONFIG_INFINIBAND_SRP=m
918 928
919# 929#
@@ -923,8 +933,13 @@ CONFIG_SGI_IOC4=y
923CONFIG_SGI_IOC3=y 933CONFIG_SGI_IOC3=y
924 934
925# 935#
926# EDAC - error detection and reporting (RAS) 936# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
937#
938
939#
940# Real Time Clock
927# 941#
942# CONFIG_RTC_CLASS is not set
928 943
929# 944#
930# File systems 945# File systems
@@ -997,7 +1012,6 @@ CONFIG_TMPFS=y
997CONFIG_HUGETLBFS=y 1012CONFIG_HUGETLBFS=y
998CONFIG_HUGETLB_PAGE=y 1013CONFIG_HUGETLB_PAGE=y
999CONFIG_RAMFS=y 1014CONFIG_RAMFS=y
1000CONFIG_RELAYFS_FS=m
1001# CONFIG_CONFIGFS_FS is not set 1015# CONFIG_CONFIGFS_FS is not set
1002 1016
1003# 1017#
diff --git a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c
index 4e7a6a1ec6c7..da03c06744f1 100644
--- a/arch/ia64/ia32/binfmt_elf32.c
+++ b/arch/ia64/ia32/binfmt_elf32.c
@@ -35,6 +35,9 @@ extern void ia64_elf32_init (struct pt_regs *regs);
35 35
36static void elf32_set_personality (void); 36static void elf32_set_personality (void);
37 37
38static unsigned long __attribute ((unused))
39randomize_stack_top(unsigned long stack_top);
40
38#define setup_arg_pages(bprm,tos,exec) ia32_setup_arg_pages(bprm,exec) 41#define setup_arg_pages(bprm,tos,exec) ia32_setup_arg_pages(bprm,exec)
39#define elf_map elf32_map 42#define elf_map elf32_map
40 43
diff --git a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S
index 95fe04400f6b..a32cd59b81ed 100644
--- a/arch/ia64/ia32/ia32_entry.S
+++ b/arch/ia64/ia32/ia32_entry.S
@@ -334,7 +334,7 @@ ia32_syscall_table:
334 data8 sys_setdomainname 334 data8 sys_setdomainname
335 data8 sys32_newuname 335 data8 sys32_newuname
336 data8 sys32_modify_ldt 336 data8 sys32_modify_ldt
337 data8 sys_ni_syscall /* adjtimex */ 337 data8 compat_sys_adjtimex
338 data8 sys32_mprotect /* 125 */ 338 data8 sys32_mprotect /* 125 */
339 data8 compat_sys_sigprocmask 339 data8 compat_sys_sigprocmask
340 data8 sys_ni_syscall /* create_module */ 340 data8 sys_ni_syscall /* create_module */
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index e30798811216..bcb80ca5cf40 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -1610,5 +1610,6 @@ sys_call_table:
1610 data8 sys_get_robust_list 1610 data8 sys_get_robust_list
1611 data8 sys_sync_file_range // 1300 1611 data8 sys_sync_file_range // 1300
1612 data8 sys_tee 1612 data8 sys_tee
1613 data8 sys_vmsplice
1613 1614
1614 .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls 1615 .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c
index 789881ca83d4..f9039f88d01d 100644
--- a/arch/ia64/kernel/kprobes.c
+++ b/arch/ia64/kernel/kprobes.c
@@ -251,7 +251,7 @@ static void __kprobes prepare_break_inst(uint template, uint slot,
251 update_kprobe_inst_flag(template, slot, major_opcode, kprobe_inst, p); 251 update_kprobe_inst_flag(template, slot, major_opcode, kprobe_inst, p);
252} 252}
253 253
254static inline void get_kprobe_inst(bundle_t *bundle, uint slot, 254static void __kprobes get_kprobe_inst(bundle_t *bundle, uint slot,
255 unsigned long *kprobe_inst, uint *major_opcode) 255 unsigned long *kprobe_inst, uint *major_opcode)
256{ 256{
257 unsigned long kprobe_inst_p0, kprobe_inst_p1; 257 unsigned long kprobe_inst_p0, kprobe_inst_p1;
@@ -278,7 +278,7 @@ static inline void get_kprobe_inst(bundle_t *bundle, uint slot,
278} 278}
279 279
280/* Returns non-zero if the addr is in the Interrupt Vector Table */ 280/* Returns non-zero if the addr is in the Interrupt Vector Table */
281static inline int in_ivt_functions(unsigned long addr) 281static int __kprobes in_ivt_functions(unsigned long addr)
282{ 282{
283 return (addr >= (unsigned long)__start_ivt_text 283 return (addr >= (unsigned long)__start_ivt_text
284 && addr < (unsigned long)__end_ivt_text); 284 && addr < (unsigned long)__end_ivt_text);
@@ -308,19 +308,19 @@ static int __kprobes valid_kprobe_addr(int template, int slot,
308 return 0; 308 return 0;
309} 309}
310 310
311static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) 311static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)
312{ 312{
313 kcb->prev_kprobe.kp = kprobe_running(); 313 kcb->prev_kprobe.kp = kprobe_running();
314 kcb->prev_kprobe.status = kcb->kprobe_status; 314 kcb->prev_kprobe.status = kcb->kprobe_status;
315} 315}
316 316
317static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb) 317static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb)
318{ 318{
319 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp; 319 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp;
320 kcb->kprobe_status = kcb->prev_kprobe.status; 320 kcb->kprobe_status = kcb->prev_kprobe.status;
321} 321}
322 322
323static inline void set_current_kprobe(struct kprobe *p, 323static void __kprobes set_current_kprobe(struct kprobe *p,
324 struct kprobe_ctlblk *kcb) 324 struct kprobe_ctlblk *kcb)
325{ 325{
326 __get_cpu_var(current_kprobe) = p; 326 __get_cpu_var(current_kprobe) = p;
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c
index 37c88eb55873..ca6666b51ccb 100644
--- a/arch/ia64/kernel/mca_drv.c
+++ b/arch/ia64/kernel/mca_drv.c
@@ -62,6 +62,11 @@ typedef enum {
62 ISOLATE_NONE 62 ISOLATE_NONE
63} isolate_status_t; 63} isolate_status_t;
64 64
65typedef enum {
66 MCA_NOT_RECOVERED = 0,
67 MCA_RECOVERED = 1
68} recovery_status_t;
69
65/* 70/*
66 * This pool keeps pointers to the section part of SAL error record 71 * This pool keeps pointers to the section part of SAL error record
67 */ 72 */
@@ -71,6 +76,18 @@ static struct {
71 int max_idx; /* Maximum index of section pointer list pool */ 76 int max_idx; /* Maximum index of section pointer list pool */
72} slidx_pool; 77} slidx_pool;
73 78
79static int
80fatal_mca(const char *fmt, ...)
81{
82 va_list args;
83
84 va_start(args, fmt);
85 vprintk(fmt, args);
86 va_end(args);
87
88 return MCA_NOT_RECOVERED;
89}
90
74/** 91/**
75 * mca_page_isolate - isolate a poisoned page in order not to use it later 92 * mca_page_isolate - isolate a poisoned page in order not to use it later
76 * @paddr: poisoned memory location 93 * @paddr: poisoned memory location
@@ -424,7 +441,7 @@ recover_from_read_error(slidx_table_t *slidx,
424 441
425 /* Is target address valid? */ 442 /* Is target address valid? */
426 if (!pbci->tv) 443 if (!pbci->tv)
427 return 0; 444 return fatal_mca(KERN_ALERT "MCA: target address not valid\n");
428 445
429 /* 446 /*
430 * cpu read or memory-mapped io read 447 * cpu read or memory-mapped io read
@@ -442,7 +459,7 @@ recover_from_read_error(slidx_table_t *slidx,
442 459
443 /* Is minstate valid? */ 460 /* Is minstate valid? */
444 if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate)) 461 if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate))
445 return 0; 462 return fatal_mca(KERN_ALERT "MCA: minstate not valid\n");
446 psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr); 463 psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr);
447 psr2 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_xpsr); 464 psr2 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_xpsr);
448 465
@@ -476,12 +493,13 @@ recover_from_read_error(slidx_table_t *slidx,
476 psr2->bn = 1; 493 psr2->bn = 1;
477 psr2->i = 0; 494 psr2->i = 0;
478 495
479 return 1; 496 return MCA_RECOVERED;
480 } 497 }
481 498
482 } 499 }
483 500
484 return 0; 501 return fatal_mca(KERN_ALERT "MCA: kernel context not recovered,"
502 " iip 0x%lx\n", pmsa->pmsa_iip);
485} 503}
486 504
487/** 505/**
@@ -567,13 +585,13 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
567 * The machine check is corrected. 585 * The machine check is corrected.
568 */ 586 */
569 if (psp->cm == 1) 587 if (psp->cm == 1)
570 return 1; 588 return MCA_RECOVERED;
571 589
572 /* 590 /*
573 * The error was not contained. Software must be reset. 591 * The error was not contained. Software must be reset.
574 */ 592 */
575 if (psp->us || psp->ci == 0) 593 if (psp->us || psp->ci == 0)
576 return 0; 594 return fatal_mca(KERN_ALERT "MCA: error not contained\n");
577 595
578 /* 596 /*
579 * The cache check and bus check bits have four possible states 597 * The cache check and bus check bits have four possible states
@@ -584,20 +602,22 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
584 * 1 1 Memory error, attempt recovery 602 * 1 1 Memory error, attempt recovery
585 */ 603 */
586 if (psp->bc == 0 || pbci == NULL) 604 if (psp->bc == 0 || pbci == NULL)
587 return 0; 605 return fatal_mca(KERN_ALERT "MCA: No bus check\n");
588 606
589 /* 607 /*
590 * Sorry, we cannot handle so many. 608 * Sorry, we cannot handle so many.
591 */ 609 */
592 if (peidx_bus_check_num(peidx) > 1) 610 if (peidx_bus_check_num(peidx) > 1)
593 return 0; 611 return fatal_mca(KERN_ALERT "MCA: Too many bus checks\n");
594 /* 612 /*
595 * Well, here is only one bus error. 613 * Well, here is only one bus error.
596 */ 614 */
597 if (pbci->ib || pbci->cc) 615 if (pbci->ib)
598 return 0; 616 return fatal_mca(KERN_ALERT "MCA: Internal Bus error\n");
617 if (pbci->cc)
618 return fatal_mca(KERN_ALERT "MCA: Cache-cache error\n");
599 if (pbci->eb && pbci->bsi > 0) 619 if (pbci->eb && pbci->bsi > 0)
600 return 0; 620 return fatal_mca(KERN_ALERT "MCA: External bus check fatal status\n");
601 621
602 /* 622 /*
603 * This is a local MCA and estimated as recoverble external bus error. 623 * This is a local MCA and estimated as recoverble external bus error.
@@ -609,7 +629,7 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
609 /* 629 /*
610 * On account of strange SAL error record, we cannot recover. 630 * On account of strange SAL error record, we cannot recover.
611 */ 631 */
612 return 0; 632 return fatal_mca(KERN_ALERT "MCA: Strange SAL record\n");
613} 633}
614 634
615/** 635/**
@@ -638,12 +658,10 @@ mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos)
638 658
639 /* Now, OS can recover when there is one processor error section */ 659 /* Now, OS can recover when there is one processor error section */
640 if (n_proc_err > 1) 660 if (n_proc_err > 1)
641 return 0; 661 return fatal_mca(KERN_ALERT "MCA: Too Many Errors\n");
642 else if (n_proc_err == 0) { 662 else if (n_proc_err == 0)
643 /* Weird SAL record ... We need not to recover */ 663 /* Weird SAL record ... We need not to recover */
644 664 return fatal_mca(KERN_ALERT "MCA: Weird SAL record\n");
645 return 1;
646 }
647 665
648 /* Make index of processor error section */ 666 /* Make index of processor error section */
649 mca_make_peidx((sal_log_processor_info_t*) 667 mca_make_peidx((sal_log_processor_info_t*)
@@ -654,7 +672,7 @@ mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos)
654 672
655 /* Check whether MCA is global or not */ 673 /* Check whether MCA is global or not */
656 if (is_mca_global(&peidx, &pbci, sos)) 674 if (is_mca_global(&peidx, &pbci, sos))
657 return 0; 675 return fatal_mca(KERN_ALERT "MCA: global MCA\n");
658 676
659 /* Try to recover a processor error */ 677 /* Try to recover a processor error */
660 return recover_from_processor_error(platform_err, &slidx, &peidx, 678 return recover_from_processor_error(platform_err, &slidx, &peidx,
diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
index 6386f63c413e..859fb37ff49b 100644
--- a/arch/ia64/kernel/palinfo.c
+++ b/arch/ia64/kernel/palinfo.c
@@ -959,7 +959,7 @@ remove_palinfo_proc_entries(unsigned int hcpu)
959 } 959 }
960} 960}
961 961
962static int __devinit palinfo_cpu_callback(struct notifier_block *nfb, 962static int palinfo_cpu_callback(struct notifier_block *nfb,
963 unsigned long action, 963 unsigned long action,
964 void *hcpu) 964 void *hcpu)
965{ 965{
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c
index 9887c8787e7a..e61e15e28d8b 100644
--- a/arch/ia64/kernel/ptrace.c
+++ b/arch/ia64/kernel/ptrace.c
@@ -1644,7 +1644,7 @@ syscall_trace_enter (long arg0, long arg1, long arg2, long arg3,
1644 arch = AUDIT_ARCH_IA64; 1644 arch = AUDIT_ARCH_IA64;
1645 } 1645 }
1646 1646
1647 audit_syscall_entry(current, arch, syscall, arg0, arg1, arg2, arg3); 1647 audit_syscall_entry(arch, syscall, arg0, arg1, arg2, arg3);
1648 } 1648 }
1649 1649
1650} 1650}
@@ -1662,7 +1662,7 @@ syscall_trace_leave (long arg0, long arg1, long arg2, long arg3,
1662 1662
1663 if (success != AUDITSC_SUCCESS) 1663 if (success != AUDITSC_SUCCESS)
1664 result = -result; 1664 result = -result;
1665 audit_syscall_exit(current, success, result); 1665 audit_syscall_exit(success, result);
1666 } 1666 }
1667 1667
1668 if (test_thread_flag(TIF_SYSCALL_TRACE) 1668 if (test_thread_flag(TIF_SYSCALL_TRACE)
diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c
index 9d5a823479a3..663a186ad194 100644
--- a/arch/ia64/kernel/salinfo.c
+++ b/arch/ia64/kernel/salinfo.c
@@ -572,7 +572,7 @@ static struct file_operations salinfo_data_fops = {
572}; 572};
573 573
574#ifdef CONFIG_HOTPLUG_CPU 574#ifdef CONFIG_HOTPLUG_CPU
575static int __devinit 575static int
576salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu) 576salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu)
577{ 577{
578 unsigned int i, cpu = (unsigned long)hcpu; 578 unsigned int i, cpu = (unsigned long)hcpu;
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c
index b47476d655f1..4f3a16b37f8f 100644
--- a/arch/ia64/kernel/topology.c
+++ b/arch/ia64/kernel/topology.c
@@ -305,13 +305,10 @@ static struct kobj_type cache_ktype_percpu_entry = {
305 305
306static void __cpuinit cpu_cache_sysfs_exit(unsigned int cpu) 306static void __cpuinit cpu_cache_sysfs_exit(unsigned int cpu)
307{ 307{
308 if (all_cpu_cache_info[cpu].cache_leaves) { 308 kfree(all_cpu_cache_info[cpu].cache_leaves);
309 kfree(all_cpu_cache_info[cpu].cache_leaves); 309 all_cpu_cache_info[cpu].cache_leaves = NULL;
310 all_cpu_cache_info[cpu].cache_leaves = NULL;
311 }
312 all_cpu_cache_info[cpu].num_cache_leaves = 0; 310 all_cpu_cache_info[cpu].num_cache_leaves = 0;
313 memset(&all_cpu_cache_info[cpu].kobj, 0, sizeof(struct kobject)); 311 memset(&all_cpu_cache_info[cpu].kobj, 0, sizeof(struct kobject));
314
315 return; 312 return;
316} 313}
317 314
@@ -429,7 +426,7 @@ static int __cpuinit cache_remove_dev(struct sys_device * sys_dev)
429 * When a cpu is hot-plugged, do a check and initiate 426 * When a cpu is hot-plugged, do a check and initiate
430 * cache kobject if necessary 427 * cache kobject if necessary
431 */ 428 */
432static int __cpuinit cache_cpu_callback(struct notifier_block *nfb, 429static int cache_cpu_callback(struct notifier_block *nfb,
433 unsigned long action, void *hcpu) 430 unsigned long action, void *hcpu)
434{ 431{
435 unsigned int cpu = (unsigned long)hcpu; 432 unsigned int cpu = (unsigned long)hcpu;
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 9ba32b2d96d0..ab829a22f8a4 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -31,7 +31,6 @@
31#include <asm/irq.h> 31#include <asm/irq.h>
32#include <asm/hw_irq.h> 32#include <asm/hw_irq.h>
33 33
34
35/* 34/*
36 * Low-level SAL-based PCI configuration access functions. Note that SAL 35 * Low-level SAL-based PCI configuration access functions. Note that SAL
37 * calls are already serialized (via sal_lock), so we don't need another 36 * calls are already serialized (via sal_lock), so we don't need another
@@ -707,7 +706,7 @@ int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size)
707 * 706 *
708 * Simply writes @size bytes of @val to @port. 707 * Simply writes @size bytes of @val to @port.
709 */ 708 */
710int ia64_pci_legacy_write(struct pci_dev *bus, u16 port, u32 val, u8 size) 709int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size)
711{ 710{
712 int ret = size; 711 int ret = size;
713 712
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c
index d917afa30b27..739c948dc504 100644
--- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c
+++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c
@@ -284,6 +284,8 @@ static int sn_hwperf_get_nearest_node_objdata(struct sn_hwperf_object_info *objb
284 /* find nearest node with cpus and nearest memory */ 284 /* find nearest node with cpus and nearest memory */
285 for (router=NULL, j=0; j < op->ports; j++) { 285 for (router=NULL, j=0; j < op->ports; j++) {
286 dest = sn_hwperf_findobj_id(objbuf, nobj, ptdata[j].conn_id); 286 dest = sn_hwperf_findobj_id(objbuf, nobj, ptdata[j].conn_id);
287 if (dest && SN_HWPERF_IS_ROUTER(dest))
288 router = dest;
287 if (!dest || SN_HWPERF_FOREIGN(dest) || 289 if (!dest || SN_HWPERF_FOREIGN(dest) ||
288 !SN_HWPERF_IS_NODE(dest) || SN_HWPERF_IS_IONODE(dest)) { 290 !SN_HWPERF_IS_NODE(dest) || SN_HWPERF_IS_IONODE(dest)) {
289 continue; 291 continue;
@@ -299,8 +301,6 @@ static int sn_hwperf_get_nearest_node_objdata(struct sn_hwperf_object_info *objb
299 *near_mem_node = c; 301 *near_mem_node = c;
300 found_mem++; 302 found_mem++;
301 } 303 }
302 if (SN_HWPERF_IS_ROUTER(dest))
303 router = dest;
304 } 304 }
305 305
306 if (router && (!found_cpu || !found_mem)) { 306 if (router && (!found_cpu || !found_mem)) {
@@ -493,7 +493,7 @@ static int sn_topology_show(struct seq_file *s, void *d)
493 * numalink ports 493 * numalink ports
494 */ 494 */
495 sz = obj->ports * sizeof(struct sn_hwperf_port_info); 495 sz = obj->ports * sizeof(struct sn_hwperf_port_info);
496 if ((ptdata = vmalloc(sz)) == NULL) 496 if ((ptdata = kmalloc(sz, GFP_KERNEL)) == NULL)
497 return -ENOMEM; 497 return -ENOMEM;
498 e = ia64_sn_hwperf_op(sn_hwperf_master_nasid, 498 e = ia64_sn_hwperf_op(sn_hwperf_master_nasid,
499 SN_HWPERF_ENUM_PORTS, obj->id, sz, 499 SN_HWPERF_ENUM_PORTS, obj->id, sz,
@@ -541,7 +541,7 @@ static int sn_topology_show(struct seq_file *s, void *d)
541 (SN_HWPERF_IS_NL3ROUTER(obj) || 541 (SN_HWPERF_IS_NL3ROUTER(obj) ||
542 SN_HWPERF_IS_NL3ROUTER(p)) ? "LLP3" : "LLP4"); 542 SN_HWPERF_IS_NL3ROUTER(p)) ? "LLP3" : "LLP4");
543 } 543 }
544 vfree(ptdata); 544 kfree(ptdata);
545 } 545 }
546 546
547 return 0; 547 return 0;
diff --git a/arch/ia64/sn/kernel/xpc_partition.c b/arch/ia64/sn/kernel/xpc_partition.c
index 94211429fd0c..2a89cfce4954 100644
--- a/arch/ia64/sn/kernel/xpc_partition.c
+++ b/arch/ia64/sn/kernel/xpc_partition.c
@@ -136,9 +136,7 @@ xpc_get_rsvd_page_pa(int nasid)
136 } 136 }
137 137
138 if (L1_CACHE_ALIGN(len) > buf_len) { 138 if (L1_CACHE_ALIGN(len) > buf_len) {
139 if (buf_base != NULL) { 139 kfree(buf_base);
140 kfree(buf_base);
141 }
142 buf_len = L1_CACHE_ALIGN(len); 140 buf_len = L1_CACHE_ALIGN(len);
143 buf = (u64) xpc_kmalloc_cacheline_aligned(buf_len, 141 buf = (u64) xpc_kmalloc_cacheline_aligned(buf_len,
144 GFP_KERNEL, &buf_base); 142 GFP_KERNEL, &buf_base);
@@ -159,9 +157,7 @@ xpc_get_rsvd_page_pa(int nasid)
159 } 157 }
160 } 158 }
161 159
162 if (buf_base != NULL) { 160 kfree(buf_base);
163 kfree(buf_base);
164 }
165 161
166 if (status != SALRET_OK) { 162 if (status != SALRET_OK) {
167 rp_pa = 0; 163 rp_pa = 0;
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c
index fa073cc4b565..833295624e5d 100644
--- a/arch/ia64/sn/pci/tioce_provider.c
+++ b/arch/ia64/sn/pci/tioce_provider.c
@@ -682,9 +682,6 @@ tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit)
682 int ate_index, last_ate, ps; 682 int ate_index, last_ate, ps;
683 struct tioce *ce_mmr; 683 struct tioce *ce_mmr;
684 684
685 if (!TIOCE_M32_ADDR(base))
686 return;
687
688 ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base; 685 ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base;
689 ps = ce_kern->ce_ate3240_pagesize; 686 ps = ce_kern->ce_ate3240_pagesize;
690 ate_index = ATE_PAGE(base, ps); 687 ate_index = ATE_PAGE(base, ps);
@@ -693,6 +690,9 @@ tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit)
693 if (ate_index < 64) 690 if (ate_index < 64)
694 ate_index = 64; 691 ate_index = 64;
695 692
693 if (last_ate >= TIOCE_NUM_M3240_ATES)
694 last_ate = TIOCE_NUM_M3240_ATES - 1;
695
696 while (ate_index <= last_ate) { 696 while (ate_index <= last_ate) {
697 u64 ate; 697 u64 ate;
698 698
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S
index 3871b65f0c82..920bb742b7a2 100644
--- a/arch/m32r/kernel/entry.S
+++ b/arch/m32r/kernel/entry.S
@@ -20,7 +20,7 @@
20 * Stack layout in 'ret_from_system_call': 20 * Stack layout in 'ret_from_system_call':
21 * ptrace needs to have all regs on the stack. 21 * ptrace needs to have all regs on the stack.
22 * if the order here is changed, it needs to be 22 * if the order here is changed, it needs to be
23 * updated in fork.c:copy_process, signal.c:do_signal, 23 * updated in fork.c:copy_thread, signal.c:do_signal,
24 * ptrace.c and ptrace.h 24 * ptrace.c and ptrace.h
25 * 25 *
26 * M32Rx/M32R2 M32R 26 * M32Rx/M32R2 M32R
@@ -41,18 +41,17 @@
41 * @(0x38,sp) - syscall_nr ditto 41 * @(0x38,sp) - syscall_nr ditto
42 * @(0x3c,sp) - acc0h @(0x3c,sp) - acch 42 * @(0x3c,sp) - acc0h @(0x3c,sp) - acch
43 * @(0x40,sp) - acc0l @(0x40,sp) - accl 43 * @(0x40,sp) - acc0l @(0x40,sp) - accl
44 * @(0x44,sp) - acc1h @(0x44,sp) - psw 44 * @(0x44,sp) - acc1h @(0x44,sp) - dummy_acc1h
45 * @(0x48,sp) - acc1l @(0x48,sp) - bpc 45 * @(0x48,sp) - acc1l @(0x48,sp) - dummy_acc1l
46 * @(0x4c,sp) - psw @(0x4c,sp) - bbpsw 46 * @(0x4c,sp) - psw ditto
47 * @(0x50,sp) - bpc @(0x50,sp) - bbpc 47 * @(0x50,sp) - bpc ditto
48 * @(0x54,sp) - bbpsw @(0x54,sp) - spu (cr3) 48 * @(0x54,sp) - bbpsw ditto
49 * @(0x58,sp) - bbpc @(0x58,sp) - fp (r13) 49 * @(0x58,sp) - bbpc ditto
50 * @(0x5c,sp) - spu (cr3) @(0x5c,sp) - lr (r14) 50 * @(0x5c,sp) - spu (cr3) ditto
51 * @(0x60,sp) - fp (r13) @(0x60,sp) - spi (cr12) 51 * @(0x60,sp) - fp (r13) ditto
52 * @(0x64,sp) - lr (r14) @(0x64,sp) - orig_r0 52 * @(0x64,sp) - lr (r14) ditto
53 * @(0x68,sp) - spi (cr2) 53 * @(0x68,sp) - spi (cr2) ditto
54 * @(0x6c,sp) - orig_r0 54 * @(0x6c,sp) - orig_r0 ditto
55 *
56 */ 55 */
57 56
58#include <linux/config.h> 57#include <linux/config.h>
@@ -102,6 +101,12 @@
102#define ACC0L(reg) @(0x40,reg) 101#define ACC0L(reg) @(0x40,reg)
103#define ACC1H(reg) @(0x44,reg) 102#define ACC1H(reg) @(0x44,reg)
104#define ACC1L(reg) @(0x48,reg) 103#define ACC1L(reg) @(0x48,reg)
104#elif defined(CONFIG_ISA_M32R2) || defined(CONFIG_ISA_M32R)
105#define ACCH(reg) @(0x3C,reg)
106#define ACCL(reg) @(0x40,reg)
107#else
108#error unknown isa configuration
109#endif
105#define PSW(reg) @(0x4C,reg) 110#define PSW(reg) @(0x4C,reg)
106#define BPC(reg) @(0x50,reg) 111#define BPC(reg) @(0x50,reg)
107#define BBPSW(reg) @(0x54,reg) 112#define BBPSW(reg) @(0x54,reg)
@@ -111,21 +116,6 @@
111#define LR(reg) @(0x64,reg) 116#define LR(reg) @(0x64,reg)
112#define SP(reg) @(0x68,reg) 117#define SP(reg) @(0x68,reg)
113#define ORIG_R0(reg) @(0x6C,reg) 118#define ORIG_R0(reg) @(0x6C,reg)
114#elif defined(CONFIG_ISA_M32R2) || defined(CONFIG_ISA_M32R)
115#define ACCH(reg) @(0x3C,reg)
116#define ACCL(reg) @(0x40,reg)
117#define PSW(reg) @(0x44,reg)
118#define BPC(reg) @(0x48,reg)
119#define BBPSW(reg) @(0x4C,reg)
120#define BBPC(reg) @(0x50,reg)
121#define SPU(reg) @(0x54,reg)
122#define FP(reg) @(0x58,reg) /* FP = R13 */
123#define LR(reg) @(0x5C,reg)
124#define SP(reg) @(0x60,reg)
125#define ORIG_R0(reg) @(0x64,reg)
126#else
127#error unknown isa configuration
128#endif
129 119
130CF_MASK = 0x00000001 120CF_MASK = 0x00000001
131TF_MASK = 0x00000100 121TF_MASK = 0x00000100
@@ -142,7 +132,7 @@ VM_MASK = 0x00020000
142#endif 132#endif
143 133
144ENTRY(ret_from_fork) 134ENTRY(ret_from_fork)
145 ld r0, @sp+ 135 pop r0
146 bl schedule_tail 136 bl schedule_tail
147 GET_THREAD_INFO(r8) 137 GET_THREAD_INFO(r8)
148 bra syscall_exit 138 bra syscall_exit
@@ -231,7 +221,7 @@ restore_all:
231 RESTORE_ALL 221 RESTORE_ALL
232 222
233 # perform work that needs to be done immediately before resumption 223 # perform work that needs to be done immediately before resumption
234 # r9 : frags 224 # r9 : flags
235 ALIGN 225 ALIGN
236work_pending: 226work_pending:
237 and3 r4, r9, #_TIF_NEED_RESCHED 227 and3 r4, r9, #_TIF_NEED_RESCHED
@@ -320,7 +310,7 @@ ENTRY(ei_handler)
320; GET_ICU_STATUS; 310; GET_ICU_STATUS;
321 seth r0, #shigh(M32R_ICU_ISTS_ADDR) 311 seth r0, #shigh(M32R_ICU_ISTS_ADDR)
322 ld r0, @(low(M32R_ICU_ISTS_ADDR),r0) 312 ld r0, @(low(M32R_ICU_ISTS_ADDR),r0)
323 st r0, @-sp 313 push r0
324#if defined(CONFIG_SMP) 314#if defined(CONFIG_SMP)
325 /* 315 /*
326 * If IRQ == 0 --> Nothing to do, Not write IMASK 316 * If IRQ == 0 --> Nothing to do, Not write IMASK
@@ -557,7 +547,7 @@ check_end:
557#endif /* CONFIG_PLAT_M32104UT */ 547#endif /* CONFIG_PLAT_M32104UT */
558 bl do_IRQ 548 bl do_IRQ
559#endif /* CONFIG_SMP */ 549#endif /* CONFIG_SMP */
560 ld r14, @sp+ 550 pop r14
561 seth r0, #shigh(M32R_ICU_IMASK_ADDR) 551 seth r0, #shigh(M32R_ICU_IMASK_ADDR)
562 st r14, @(low(M32R_ICU_IMASK_ADDR),r0) 552 st r14, @(low(M32R_ICU_IMASK_ADDR),r0)
563#else 553#else
@@ -1015,4 +1005,3 @@ ENTRY(sys_call_table)
1015 .long sys_waitid 1005 .long sys_waitid
1016 1006
1017syscall_table_size=(.-sys_call_table) 1007syscall_table_size=(.-sys_call_table)
1018
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c
index 5dfc7ea45cf7..065f5e719058 100644
--- a/arch/m32r/kernel/process.c
+++ b/arch/m32r/kernel/process.c
@@ -116,6 +116,10 @@ void cpu_idle (void)
116 116
117void machine_restart(char *__unused) 117void machine_restart(char *__unused)
118{ 118{
119#if defined(CONFIG_PLAT_MAPPI3)
120 outw(1, (unsigned long)PLD_REBOOT);
121#endif
122
119 printk("Please push reset button!\n"); 123 printk("Please push reset button!\n");
120 while (1) 124 while (1)
121 cpu_relax(); 125 cpu_relax();
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c
index cb33097fefc4..6498ee70bb73 100644
--- a/arch/m32r/kernel/signal.c
+++ b/arch/m32r/kernel/signal.c
@@ -118,6 +118,8 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
118#elif defined(CONFIG_ISA_M32R2) || defined(CONFIG_ISA_M32R) 118#elif defined(CONFIG_ISA_M32R2) || defined(CONFIG_ISA_M32R)
119 COPY(acch); 119 COPY(acch);
120 COPY(accl); 120 COPY(accl);
121 COPY(dummy_acc1h);
122 COPY(dummy_acc1l);
121#else 123#else
122#error unknown isa configuration 124#error unknown isa configuration
123#endif 125#endif
@@ -203,6 +205,8 @@ setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
203#elif defined(CONFIG_ISA_M32R2) || defined(CONFIG_ISA_M32R) 205#elif defined(CONFIG_ISA_M32R2) || defined(CONFIG_ISA_M32R)
204 COPY(acch); 206 COPY(acch);
205 COPY(accl); 207 COPY(accl);
208 COPY(dummy_acc1h);
209 COPY(dummy_acc1l);
206#else 210#else
207#error unknown isa configuration 211#error unknown isa configuration
208#endif 212#endif
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 7aec60d40420..ee5fbb02b28f 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -816,6 +816,10 @@ config GENERIC_CALIBRATE_DELAY
816 bool 816 bool
817 default y 817 default y
818 818
819config SCHED_NO_NO_OMIT_FRAME_POINTER
820 bool
821 default y
822
819# 823#
820# Select some configuration options automatically based on user selections. 824# Select some configuration options automatically based on user selections.
821# 825#
@@ -1063,6 +1067,7 @@ choice
1063config CPU_MIPS32_R1 1067config CPU_MIPS32_R1
1064 bool "MIPS32 Release 1" 1068 bool "MIPS32 Release 1"
1065 depends on SYS_HAS_CPU_MIPS32_R1 1069 depends on SYS_HAS_CPU_MIPS32_R1
1070 select CPU_HAS_LLSC
1066 select CPU_HAS_PREFETCH 1071 select CPU_HAS_PREFETCH
1067 select CPU_SUPPORTS_32BIT_KERNEL 1072 select CPU_SUPPORTS_32BIT_KERNEL
1068 select CPU_SUPPORTS_HIGHMEM 1073 select CPU_SUPPORTS_HIGHMEM
@@ -1080,6 +1085,7 @@ config CPU_MIPS32_R1
1080config CPU_MIPS32_R2 1085config CPU_MIPS32_R2
1081 bool "MIPS32 Release 2" 1086 bool "MIPS32 Release 2"
1082 depends on SYS_HAS_CPU_MIPS32_R2 1087 depends on SYS_HAS_CPU_MIPS32_R2
1088 select CPU_HAS_LLSC
1083 select CPU_HAS_PREFETCH 1089 select CPU_HAS_PREFETCH
1084 select CPU_SUPPORTS_32BIT_KERNEL 1090 select CPU_SUPPORTS_32BIT_KERNEL
1085 select CPU_SUPPORTS_HIGHMEM 1091 select CPU_SUPPORTS_HIGHMEM
@@ -1093,6 +1099,7 @@ config CPU_MIPS32_R2
1093config CPU_MIPS64_R1 1099config CPU_MIPS64_R1
1094 bool "MIPS64 Release 1" 1100 bool "MIPS64 Release 1"
1095 depends on SYS_HAS_CPU_MIPS64_R1 1101 depends on SYS_HAS_CPU_MIPS64_R1
1102 select CPU_HAS_LLSC
1096 select CPU_HAS_PREFETCH 1103 select CPU_HAS_PREFETCH
1097 select CPU_SUPPORTS_32BIT_KERNEL 1104 select CPU_SUPPORTS_32BIT_KERNEL
1098 select CPU_SUPPORTS_64BIT_KERNEL 1105 select CPU_SUPPORTS_64BIT_KERNEL
@@ -1111,6 +1118,7 @@ config CPU_MIPS64_R1
1111config CPU_MIPS64_R2 1118config CPU_MIPS64_R2
1112 bool "MIPS64 Release 2" 1119 bool "MIPS64 Release 2"
1113 depends on SYS_HAS_CPU_MIPS64_R2 1120 depends on SYS_HAS_CPU_MIPS64_R2
1121 select CPU_HAS_LLSC
1114 select CPU_HAS_PREFETCH 1122 select CPU_HAS_PREFETCH
1115 select CPU_SUPPORTS_32BIT_KERNEL 1123 select CPU_SUPPORTS_32BIT_KERNEL
1116 select CPU_SUPPORTS_64BIT_KERNEL 1124 select CPU_SUPPORTS_64BIT_KERNEL
@@ -1125,6 +1133,7 @@ config CPU_MIPS64_R2
1125config CPU_R3000 1133config CPU_R3000
1126 bool "R3000" 1134 bool "R3000"
1127 depends on SYS_HAS_CPU_R3000 1135 depends on SYS_HAS_CPU_R3000
1136 select CPU_HAS_WB
1128 select CPU_SUPPORTS_32BIT_KERNEL 1137 select CPU_SUPPORTS_32BIT_KERNEL
1129 select CPU_SUPPORTS_HIGHMEM 1138 select CPU_SUPPORTS_HIGHMEM
1130 help 1139 help
@@ -1154,6 +1163,7 @@ config CPU_VR41XX
1154config CPU_R4300 1163config CPU_R4300
1155 bool "R4300" 1164 bool "R4300"
1156 depends on SYS_HAS_CPU_R4300 1165 depends on SYS_HAS_CPU_R4300
1166 select CPU_HAS_LLSC
1157 select CPU_SUPPORTS_32BIT_KERNEL 1167 select CPU_SUPPORTS_32BIT_KERNEL
1158 select CPU_SUPPORTS_64BIT_KERNEL 1168 select CPU_SUPPORTS_64BIT_KERNEL
1159 help 1169 help
@@ -1162,6 +1172,7 @@ config CPU_R4300
1162config CPU_R4X00 1172config CPU_R4X00
1163 bool "R4x00" 1173 bool "R4x00"
1164 depends on SYS_HAS_CPU_R4X00 1174 depends on SYS_HAS_CPU_R4X00
1175 select CPU_HAS_LLSC
1165 select CPU_SUPPORTS_32BIT_KERNEL 1176 select CPU_SUPPORTS_32BIT_KERNEL
1166 select CPU_SUPPORTS_64BIT_KERNEL 1177 select CPU_SUPPORTS_64BIT_KERNEL
1167 help 1178 help
@@ -1171,6 +1182,7 @@ config CPU_R4X00
1171config CPU_TX49XX 1182config CPU_TX49XX
1172 bool "R49XX" 1183 bool "R49XX"
1173 depends on SYS_HAS_CPU_TX49XX 1184 depends on SYS_HAS_CPU_TX49XX
1185 select CPU_HAS_LLSC
1174 select CPU_HAS_PREFETCH 1186 select CPU_HAS_PREFETCH
1175 select CPU_SUPPORTS_32BIT_KERNEL 1187 select CPU_SUPPORTS_32BIT_KERNEL
1176 select CPU_SUPPORTS_64BIT_KERNEL 1188 select CPU_SUPPORTS_64BIT_KERNEL
@@ -1178,6 +1190,7 @@ config CPU_TX49XX
1178config CPU_R5000 1190config CPU_R5000
1179 bool "R5000" 1191 bool "R5000"
1180 depends on SYS_HAS_CPU_R5000 1192 depends on SYS_HAS_CPU_R5000
1193 select CPU_HAS_LLSC
1181 select CPU_SUPPORTS_32BIT_KERNEL 1194 select CPU_SUPPORTS_32BIT_KERNEL
1182 select CPU_SUPPORTS_64BIT_KERNEL 1195 select CPU_SUPPORTS_64BIT_KERNEL
1183 help 1196 help
@@ -1186,12 +1199,14 @@ config CPU_R5000
1186config CPU_R5432 1199config CPU_R5432
1187 bool "R5432" 1200 bool "R5432"
1188 depends on SYS_HAS_CPU_R5432 1201 depends on SYS_HAS_CPU_R5432
1202 select CPU_HAS_LLSC
1189 select CPU_SUPPORTS_32BIT_KERNEL 1203 select CPU_SUPPORTS_32BIT_KERNEL
1190 select CPU_SUPPORTS_64BIT_KERNEL 1204 select CPU_SUPPORTS_64BIT_KERNEL
1191 1205
1192config CPU_R6000 1206config CPU_R6000
1193 bool "R6000" 1207 bool "R6000"
1194 depends on EXPERIMENTAL 1208 depends on EXPERIMENTAL
1209 select CPU_HAS_LLSC
1195 depends on SYS_HAS_CPU_R6000 1210 depends on SYS_HAS_CPU_R6000
1196 select CPU_SUPPORTS_32BIT_KERNEL 1211 select CPU_SUPPORTS_32BIT_KERNEL
1197 help 1212 help
@@ -1201,6 +1216,7 @@ config CPU_R6000
1201config CPU_NEVADA 1216config CPU_NEVADA
1202 bool "RM52xx" 1217 bool "RM52xx"
1203 depends on SYS_HAS_CPU_NEVADA 1218 depends on SYS_HAS_CPU_NEVADA
1219 select CPU_HAS_LLSC
1204 select CPU_SUPPORTS_32BIT_KERNEL 1220 select CPU_SUPPORTS_32BIT_KERNEL
1205 select CPU_SUPPORTS_64BIT_KERNEL 1221 select CPU_SUPPORTS_64BIT_KERNEL
1206 help 1222 help
@@ -1210,6 +1226,7 @@ config CPU_R8000
1210 bool "R8000" 1226 bool "R8000"
1211 depends on EXPERIMENTAL 1227 depends on EXPERIMENTAL
1212 depends on SYS_HAS_CPU_R8000 1228 depends on SYS_HAS_CPU_R8000
1229 select CPU_HAS_LLSC
1213 select CPU_HAS_PREFETCH 1230 select CPU_HAS_PREFETCH
1214 select CPU_SUPPORTS_64BIT_KERNEL 1231 select CPU_SUPPORTS_64BIT_KERNEL
1215 help 1232 help
@@ -1219,6 +1236,7 @@ config CPU_R8000
1219config CPU_R10000 1236config CPU_R10000
1220 bool "R10000" 1237 bool "R10000"
1221 depends on SYS_HAS_CPU_R10000 1238 depends on SYS_HAS_CPU_R10000
1239 select CPU_HAS_LLSC
1222 select CPU_HAS_PREFETCH 1240 select CPU_HAS_PREFETCH
1223 select CPU_SUPPORTS_32BIT_KERNEL 1241 select CPU_SUPPORTS_32BIT_KERNEL
1224 select CPU_SUPPORTS_64BIT_KERNEL 1242 select CPU_SUPPORTS_64BIT_KERNEL
@@ -1229,6 +1247,7 @@ config CPU_R10000
1229config CPU_RM7000 1247config CPU_RM7000
1230 bool "RM7000" 1248 bool "RM7000"
1231 depends on SYS_HAS_CPU_RM7000 1249 depends on SYS_HAS_CPU_RM7000
1250 select CPU_HAS_LLSC
1232 select CPU_HAS_PREFETCH 1251 select CPU_HAS_PREFETCH
1233 select CPU_SUPPORTS_32BIT_KERNEL 1252 select CPU_SUPPORTS_32BIT_KERNEL
1234 select CPU_SUPPORTS_64BIT_KERNEL 1253 select CPU_SUPPORTS_64BIT_KERNEL
@@ -1237,6 +1256,7 @@ config CPU_RM7000
1237config CPU_RM9000 1256config CPU_RM9000
1238 bool "RM9000" 1257 bool "RM9000"
1239 depends on SYS_HAS_CPU_RM9000 1258 depends on SYS_HAS_CPU_RM9000
1259 select CPU_HAS_LLSC
1240 select CPU_HAS_PREFETCH 1260 select CPU_HAS_PREFETCH
1241 select CPU_SUPPORTS_32BIT_KERNEL 1261 select CPU_SUPPORTS_32BIT_KERNEL
1242 select CPU_SUPPORTS_64BIT_KERNEL 1262 select CPU_SUPPORTS_64BIT_KERNEL
@@ -1245,6 +1265,7 @@ config CPU_RM9000
1245config CPU_SB1 1265config CPU_SB1
1246 bool "SB1" 1266 bool "SB1"
1247 depends on SYS_HAS_CPU_SB1 1267 depends on SYS_HAS_CPU_SB1
1268 select CPU_HAS_LLSC
1248 select CPU_SUPPORTS_32BIT_KERNEL 1269 select CPU_SUPPORTS_32BIT_KERNEL
1249 select CPU_SUPPORTS_64BIT_KERNEL 1270 select CPU_SUPPORTS_64BIT_KERNEL
1250 select CPU_SUPPORTS_HIGHMEM 1271 select CPU_SUPPORTS_HIGHMEM
@@ -1443,6 +1464,12 @@ choice
1443 prompt "MIPS MT options" 1464 prompt "MIPS MT options"
1444 depends on MIPS_MT 1465 depends on MIPS_MT
1445 1466
1467config MIPS_MT_SMTC
1468 bool "SMTC: Use all TCs on all VPEs for SMP"
1469 select CPU_MIPSR2_IRQ_VI
1470 select CPU_MIPSR2_SRS
1471 select SMP
1472
1446config MIPS_MT_SMP 1473config MIPS_MT_SMP
1447 bool "Use 1 TC on each available VPE for SMP" 1474 bool "Use 1 TC on each available VPE for SMP"
1448 select SMP 1475 select SMP
@@ -1456,6 +1483,11 @@ config MIPS_VPE_LOADER
1456 1483
1457endchoice 1484endchoice
1458 1485
1486config MIPS_MT_FPAFF
1487 bool "Dynamic FPU affinity for FP-intensive threads"
1488 depends on MIPS_MT
1489 default y
1490
1459config MIPS_VPE_LOADER_TOM 1491config MIPS_VPE_LOADER_TOM
1460 bool "Load VPE program into memory hidden from linux" 1492 bool "Load VPE program into memory hidden from linux"
1461 depends on MIPS_VPE_LOADER 1493 depends on MIPS_VPE_LOADER
@@ -1472,6 +1504,16 @@ config MIPS_VPE_APSP_API
1472 depends on MIPS_VPE_LOADER 1504 depends on MIPS_VPE_LOADER
1473 help 1505 help
1474 1506
1507config MIPS_APSP_KSPD
1508 bool "Enable KSPD"
1509 depends on MIPS_VPE_APSP_API
1510 default y
1511 help
1512 KSPD is a kernel daemon that accepts syscall requests from the SP
1513 side, actions them and returns the results. It also handles the
1514 "exit" syscall notifying other kernel modules the SP program is
1515 exiting. You probably want to say yes here.
1516
1475config SB1_PASS_1_WORKAROUNDS 1517config SB1_PASS_1_WORKAROUNDS
1476 bool 1518 bool
1477 depends on CPU_SB1_PASS_1 1519 depends on CPU_SB1_PASS_1
@@ -1491,38 +1533,15 @@ config 64BIT_PHYS_ADDR
1491 bool "Support for 64-bit physical address space" 1533 bool "Support for 64-bit physical address space"
1492 depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && 32BIT 1534 depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && 32BIT
1493 1535
1494config CPU_ADVANCED
1495 bool "Override CPU Options"
1496 depends on 32BIT
1497 help
1498 Saying yes here allows you to select support for various features
1499 your CPU may or may not have. Most people should say N here.
1500
1501config CPU_HAS_LLSC 1536config CPU_HAS_LLSC
1502 bool "ll/sc Instructions available" if CPU_ADVANCED 1537 bool
1503 default y if !CPU_ADVANCED && !CPU_R3000 && !CPU_VR41XX && !CPU_TX39XX
1504 help
1505 MIPS R4000 series and later provide the Load Linked (ll)
1506 and Store Conditional (sc) instructions. More information is
1507 available at <http://www.go-ecs.com/mips/miptek1.htm>.
1508
1509 Say Y here if your CPU has the ll and sc instructions. Say Y here
1510 for better performance, N if you don't know. You must say Y here
1511 for multiprocessor machines.
1512 1538
1513config CPU_HAS_WB 1539config CPU_HAS_WB
1514 bool "Writeback Buffer available" if CPU_ADVANCED 1540 bool
1515 default y if !CPU_ADVANCED && CPU_R3000 && MACH_DECSTATION
1516 help
1517 Say N here for slightly better performance. You must say Y here for
1518 machines which require flushing of write buffers in software. Saying
1519 Y is the safe option; N may result in kernel malfunction and crashes.
1520
1521menu "MIPSR2 Interrupt handling"
1522 depends on CPU_MIPSR2 && CPU_ADVANCED
1523 1541
1524config CPU_MIPSR2_IRQ_VI 1542config CPU_MIPSR2_IRQ_VI
1525 bool "Vectored interrupt mode" 1543 bool "Vectored interrupt mode"
1544 depends on CPU_MIPSR2
1526 help 1545 help
1527 Vectored interrupt mode allowing faster dispatching of interrupts. 1546 Vectored interrupt mode allowing faster dispatching of interrupts.
1528 The board support code needs to be written to take advantage of this 1547 The board support code needs to be written to take advantage of this
@@ -1532,6 +1551,7 @@ config CPU_MIPSR2_IRQ_VI
1532 1551
1533config CPU_MIPSR2_IRQ_EI 1552config CPU_MIPSR2_IRQ_EI
1534 bool "External interrupt controller mode" 1553 bool "External interrupt controller mode"
1554 depends on CPU_MIPSR2
1535 help 1555 help
1536 Extended interrupt mode takes advantage of an external interrupt 1556 Extended interrupt mode takes advantage of an external interrupt
1537 controller to allow fast dispatching from many possible interrupt 1557 controller to allow fast dispatching from many possible interrupt
@@ -1545,7 +1565,6 @@ config CPU_MIPSR2_SRS
1545 Allow the kernel to use shadow register sets for fast interrupts. 1565 Allow the kernel to use shadow register sets for fast interrupts.
1546 Interrupt handlers must be specially written to use shadow sets. 1566 Interrupt handlers must be specially written to use shadow sets.
1547 Say N unless you know that shadow register set upport is needed. 1567 Say N unless you know that shadow register set upport is needed.
1548endmenu
1549 1568
1550config CPU_HAS_SYNC 1569config CPU_HAS_SYNC
1551 bool 1570 bool
@@ -1599,7 +1618,7 @@ source "mm/Kconfig"
1599 1618
1600config SMP 1619config SMP
1601 bool "Multi-Processing support" 1620 bool "Multi-Processing support"
1602 depends on CPU_RM9000 || ((SIBYTE_BCM1x80 || SIBYTE_BCM1x55 || SIBYTE_SB1250 || QEMU) && !SIBYTE_STANDALONE) || SGI_IP27 || MIPS_MT_SMP 1621 depends on CPU_RM9000 || ((SIBYTE_BCM1x80 || SIBYTE_BCM1x55 || SIBYTE_SB1250 || QEMU) && !SIBYTE_STANDALONE) || SGI_IP27 || MIPS_MT_SMP || MIPS_MT_SMTC
1603 ---help--- 1622 ---help---
1604 This enables support for systems with more than one CPU. If you have 1623 This enables support for systems with more than one CPU. If you have
1605 a system with only one CPU, like most personal computers, say N. If 1624 a system with only one CPU, like most personal computers, say N. If
diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug
index d3c5cc3b9c9d..515f9e611307 100644
--- a/arch/mips/Kconfig.debug
+++ b/arch/mips/Kconfig.debug
@@ -6,7 +6,13 @@ config CROSSCOMPILE
6 bool "Are you using a crosscompiler" 6 bool "Are you using a crosscompiler"
7 help 7 help
8 Say Y here if you are compiling the kernel on a different 8 Say Y here if you are compiling the kernel on a different
9 architecture than the one it is intended to run on. 9 architecture than the one it is intended to run on. This is just a
10 convenience option which will select the appropriate value for
11 the CROSS_COMPILE make variable which otherwise has to be passed on
12 the command line from mips-linux-, mipsel-linux-, mips64-linux- and
13 mips64el-linux- as appropriate for a particular kernel configuration.
14 You will have to pass the value for CROSS_COMPILE manually if the
15 name prefix for your tools is different.
10 16
11config CMDLINE 17config CMDLINE
12 string "Default kernel command string" 18 string "Default kernel command string"
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 9a69e0f0ab76..133900aca992 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -105,18 +105,18 @@ cflags-$(CONFIG_CPU_R4300) += -march=r4300 -Wa,--trap
105cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap 105cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap
106cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap 106cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap
107cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap 107cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap
108cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips2 -mtune=r4600) \ 108cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \
109 -Wa,-mips32 -Wa,--trap 109 -Wa,-mips32 -Wa,--trap
110cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips2 -mtune=r4600) \ 110cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \
111 -Wa,-mips32r2 -Wa,--trap 111 -Wa,-mips32r2 -Wa,--trap
112cflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips2 -mtune=r4600) \ 112cflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \
113 -Wa,-mips64 -Wa,--trap 113 -Wa,-mips64 -Wa,--trap
114cflags-$(CONFIG_CPU_MIPS64_R2) += $(call cc-option,-march=mips64r2,-mips2 -mtune=r4600 ) \ 114cflags-$(CONFIG_CPU_MIPS64_R2) += $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \
115 -Wa,-mips64r2 -Wa,--trap 115 -Wa,-mips64r2 -Wa,--trap
116cflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap 116cflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap
117cflags-$(CONFIG_CPU_R5432) += $(call cc-options,-march=r5400,-march=r5000) \ 117cflags-$(CONFIG_CPU_R5432) += $(call cc-option,-march=r5400,-march=r5000) \
118 -Wa,--trap 118 -Wa,--trap
119cflags-$(CONFIG_CPU_NEVADA) += $(call cc-options,-march=rm5200,-march=r5000) \ 119cflags-$(CONFIG_CPU_NEVADA) += $(call cc-option,-march=rm5200,-march=r5000) \
120 -Wa,--trap 120 -Wa,--trap
121cflags-$(CONFIG_CPU_RM7000) += $(call cc-option,-march=rm7000,-march=r5000) \ 121cflags-$(CONFIG_CPU_RM7000) += $(call cc-option,-march=rm7000,-march=r5000) \
122 -Wa,--trap 122 -Wa,--trap
@@ -615,7 +615,10 @@ LDFLAGS += -m $(ld-emul)
615ifdef CONFIG_MIPS 615ifdef CONFIG_MIPS
616CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \ 616CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \
617 egrep -vw '__GNUC_(MAJOR|MINOR|PATCHLEVEL)__' | \ 617 egrep -vw '__GNUC_(MAJOR|MINOR|PATCHLEVEL)__' | \
618 sed -e 's/^\#define /-D/' -e 's/ /="/' -e 's/$$/"/') 618 sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/")
619ifdef CONFIG_64BIT
620CHECKFLAGS += -m64
621endif
619endif 622endif
620 623
621OBJCOPYFLAGS += --remove-section=.reginfo 624OBJCOPYFLAGS += --remove-section=.reginfo
diff --git a/arch/mips/au1000/common/Makefile b/arch/mips/au1000/common/Makefile
index a1edfd1f643c..bf682f50b859 100644
--- a/arch/mips/au1000/common/Makefile
+++ b/arch/mips/au1000/common/Makefile
@@ -6,7 +6,7 @@
6# Makefile for the Alchemy Au1000 CPU, generic files. 6# Makefile for the Alchemy Au1000 CPU, generic files.
7# 7#
8 8
9obj-y += prom.o int-handler.o irq.o puts.o time.o reset.o \ 9obj-y += prom.o irq.o puts.o time.o reset.o \
10 au1xxx_irqmap.o clocks.o platform.o power.o setup.o \ 10 au1xxx_irqmap.o clocks.o platform.o power.o setup.o \
11 sleeper.o cputable.o dma.o dbdma.o gpio.o 11 sleeper.o cputable.o dma.o dbdma.o gpio.o
12 12
diff --git a/arch/mips/au1000/common/int-handler.S b/arch/mips/au1000/common/int-handler.S
deleted file mode 100644
index 1c4ca883321e..000000000000
--- a/arch/mips/au1000/common/int-handler.S
+++ /dev/null
@@ -1,68 +0,0 @@
1/*
2 * Copyright 2001 MontaVista Software Inc.
3 * Author: ppopov@mvista.com
4 *
5 * Interrupt dispatcher for Au1000 boards.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version.
11 */
12#include <asm/asm.h>
13#include <asm/mipsregs.h>
14#include <asm/addrspace.h>
15#include <asm/regdef.h>
16#include <asm/stackframe.h>
17
18 .text
19 .set macro
20 .set noat
21 .align 5
22
23NESTED(au1000_IRQ, PT_SIZE, sp)
24 SAVE_ALL
25 CLI # Important: mark KERNEL mode !
26
27 mfc0 t0,CP0_CAUSE # get pending interrupts
28 mfc0 t1,CP0_STATUS # get enabled interrupts
29 and t0,t1 # isolate allowed ones
30
31 andi t0,0xff00 # isolate pending bits
32 beqz t0, 3f # spurious interrupt
33
34 andi a0, t0, CAUSEF_IP7
35 beq a0, zero, 1f
36 move a0, sp
37 jal mips_timer_interrupt
38 j ret_from_irq
39
401:
41 andi a0, t0, CAUSEF_IP2 # Interrupt Controller 0, Request 0
42 beq a0, zero, 2f
43 move a0,sp
44 jal intc0_req0_irqdispatch
45 j ret_from_irq
462:
47 andi a0, t0, CAUSEF_IP3 # Interrupt Controller 0, Request 1
48 beq a0, zero, 3f
49 move a0,sp
50 jal intc0_req1_irqdispatch
51 j ret_from_irq
523:
53 andi a0, t0, CAUSEF_IP4 # Interrupt Controller 1, Request 0
54 beq a0, zero, 4f
55 move a0,sp
56 jal intc1_req0_irqdispatch
57 j ret_from_irq
584:
59 andi a0, t0, CAUSEF_IP5 # Interrupt Controller 1, Request 1
60 beq a0, zero, 5f
61 move a0, sp
62 jal intc1_req1_irqdispatch
63 j ret_from_irq
64
655:
66 move a0, sp
67 j spurious_interrupt
68END(au1000_IRQ)
diff --git a/arch/mips/au1000/common/irq.c b/arch/mips/au1000/common/irq.c
index 1339a0979f66..da61de776154 100644
--- a/arch/mips/au1000/common/irq.c
+++ b/arch/mips/au1000/common/irq.c
@@ -66,7 +66,6 @@
66#define EXT_INTC1_REQ1 5 /* IP 5 */ 66#define EXT_INTC1_REQ1 5 /* IP 5 */
67#define MIPS_TIMER_IP 7 /* IP 7 */ 67#define MIPS_TIMER_IP 7 /* IP 7 */
68 68
69extern asmlinkage void au1000_IRQ(void);
70extern void set_debug_traps(void); 69extern void set_debug_traps(void);
71extern irq_cpustat_t irq_stat [NR_CPUS]; 70extern irq_cpustat_t irq_stat [NR_CPUS];
72 71
@@ -446,7 +445,6 @@ void __init arch_init_irq(void)
446 extern int au1xxx_ic0_nr_irqs; 445 extern int au1xxx_ic0_nr_irqs;
447 446
448 cp0_status = read_c0_status(); 447 cp0_status = read_c0_status();
449 set_except_vector(0, au1000_IRQ);
450 448
451 /* Initialize interrupt controllers to a safe state. 449 /* Initialize interrupt controllers to a safe state.
452 */ 450 */
@@ -661,3 +659,21 @@ restore_au1xxx_intctl(void)
661 au_writel(sleep_intctl_mask[0], IC0_MASKSET); au_sync(); 659 au_writel(sleep_intctl_mask[0], IC0_MASKSET); au_sync();
662} 660}
663#endif /* CONFIG_PM */ 661#endif /* CONFIG_PM */
662
663asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
664{
665 unsigned int pending = read_c0_status() & read_c0_cause() & ST0_IM;
666
667 if (pending & CAUSEF_IP7)
668 mips_timer_interrupt(regs);
669 else if (pending & CAUSEF_IP2)
670 intc0_req0_irqdispatch(regs);
671 else if (pending & CAUSEF_IP3)
672 intc0_req1_irqdispatch(regs);
673 else if (pending & CAUSEF_IP4)
674 intc1_req0_irqdispatch(regs);
675 else if (pending & CAUSEF_IP5)
676 intc1_req1_irqdispatch(regs);
677 else
678 spurious_interrupt(regs);
679}
diff --git a/arch/mips/cobalt/Makefile b/arch/mips/cobalt/Makefile
index 720e757b2b64..225ac8f34ccd 100644
--- a/arch/mips/cobalt/Makefile
+++ b/arch/mips/cobalt/Makefile
@@ -2,7 +2,7 @@
2# Makefile for the Cobalt micro systems family specific parts of the kernel 2# Makefile for the Cobalt micro systems family specific parts of the kernel
3# 3#
4 4
5obj-y := irq.o int-handler.o reset.o setup.o 5obj-y := irq.o reset.o setup.o
6 6
7obj-$(CONFIG_EARLY_PRINTK) += console.o 7obj-$(CONFIG_EARLY_PRINTK) += console.o
8 8
diff --git a/arch/mips/cobalt/int-handler.S b/arch/mips/cobalt/int-handler.S
deleted file mode 100644
index e75d5e3ca868..000000000000
--- a/arch/mips/cobalt/int-handler.S
+++ /dev/null
@@ -1,25 +0,0 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1995, 1996, 1997, 2003 by Ralf Baechle
7 * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv)
8 */
9#include <asm/asm.h>
10#include <asm/mipsregs.h>
11#include <asm/mach-cobalt/cobalt.h>
12#include <asm/regdef.h>
13#include <asm/stackframe.h>
14
15 .text
16 .align 5
17 NESTED(cobalt_handle_int, PT_SIZE, sp)
18 SAVE_ALL
19 CLI
20
21 PTR_LA ra, ret_from_irq
22 move a0, sp
23 j cobalt_irq
24
25 END(cobalt_handle_int)
diff --git a/arch/mips/cobalt/irq.c b/arch/mips/cobalt/irq.c
index f9a108820d6e..0b75f4fb7195 100644
--- a/arch/mips/cobalt/irq.c
+++ b/arch/mips/cobalt/irq.c
@@ -20,8 +20,6 @@
20 20
21#include <asm/mach-cobalt/cobalt.h> 21#include <asm/mach-cobalt/cobalt.h>
22 22
23extern void cobalt_handle_int(void);
24
25/* 23/*
26 * We have two types of interrupts that we handle, ones that come in through 24 * We have two types of interrupts that we handle, ones that come in through
27 * the CPU interrupt lines, and ones that come in on the via chip. The CPU 25 * the CPU interrupt lines, and ones that come in on the via chip. The CPU
@@ -79,7 +77,7 @@ static inline void via_pic_irq(struct pt_regs *regs)
79 do_IRQ(irq, regs); 77 do_IRQ(irq, regs);
80} 78}
81 79
82asmlinkage void cobalt_irq(struct pt_regs *regs) 80asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
83{ 81{
84 unsigned pending; 82 unsigned pending;
85 83
@@ -122,8 +120,6 @@ void __init arch_init_irq(void)
122 */ 120 */
123 GALILEO_OUTL(0, GT_INTRMASK_OFS); 121 GALILEO_OUTL(0, GT_INTRMASK_OFS);
124 122
125 set_except_vector(0, cobalt_handle_int);
126
127 init_i8259_irqs(); /* 0 ... 15 */ 123 init_i8259_irqs(); /* 0 ... 15 */
128 mips_cpu_irq_init(COBALT_CPU_IRQ); /* 16 ... 23 */ 124 mips_cpu_irq_init(COBALT_CPU_IRQ); /* 16 ... 23 */
129 125
diff --git a/arch/mips/configs/atlas_defconfig b/arch/mips/configs/atlas_defconfig
index 9e1ae953e966..4b080bcb258f 100644
--- a/arch/mips/configs/atlas_defconfig
+++ b/arch/mips/configs/atlas_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:52 2006 4# Mon Apr 24 14:50:55 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_ATLAS=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -127,11 +129,11 @@ CONFIG_RM7000_CPU_SCACHE=y
127CONFIG_CPU_HAS_PREFETCH=y 129CONFIG_CPU_HAS_PREFETCH=y
128# CONFIG_MIPS_MT is not set 130# CONFIG_MIPS_MT is not set
129# CONFIG_64BIT_PHYS_ADDR is not set 131# CONFIG_64BIT_PHYS_ADDR is not set
130# CONFIG_CPU_ADVANCED is not set
131CONFIG_CPU_HAS_LLSC=y 132CONFIG_CPU_HAS_LLSC=y
132CONFIG_CPU_HAS_SYNC=y 133CONFIG_CPU_HAS_SYNC=y
133CONFIG_GENERIC_HARDIRQS=y 134CONFIG_GENERIC_HARDIRQS=y
134CONFIG_GENERIC_IRQ_PROBE=y 135CONFIG_GENERIC_IRQ_PROBE=y
136CONFIG_CPU_SUPPORTS_HIGHMEM=y
135CONFIG_ARCH_FLATMEM_ENABLE=y 137CONFIG_ARCH_FLATMEM_ENABLE=y
136CONFIG_SELECT_MEMORY_MODEL=y 138CONFIG_SELECT_MEMORY_MODEL=y
137CONFIG_FLATMEM_MANUAL=y 139CONFIG_FLATMEM_MANUAL=y
@@ -149,7 +151,6 @@ CONFIG_PREEMPT_NONE=y
149# Code maturity level options 151# Code maturity level options
150# 152#
151CONFIG_EXPERIMENTAL=y 153CONFIG_EXPERIMENTAL=y
152CONFIG_CLEAN_COMPILE=y
153CONFIG_BROKEN_ON_SMP=y 154CONFIG_BROKEN_ON_SMP=y
154CONFIG_INIT_ENV_ARG_LIMIT=32 155CONFIG_INIT_ENV_ARG_LIMIT=32
155 156
@@ -165,6 +166,7 @@ CONFIG_SYSVIPC=y
165CONFIG_SYSCTL=y 166CONFIG_SYSCTL=y
166# CONFIG_AUDIT is not set 167# CONFIG_AUDIT is not set
167# CONFIG_IKCONFIG is not set 168# CONFIG_IKCONFIG is not set
169CONFIG_RELAY=y
168CONFIG_INITRAMFS_SOURCE="" 170CONFIG_INITRAMFS_SOURCE=""
169# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 171# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
170CONFIG_EMBEDDED=y 172CONFIG_EMBEDDED=y
@@ -178,10 +180,6 @@ CONFIG_BASE_FULL=y
178CONFIG_FUTEX=y 180CONFIG_FUTEX=y
179CONFIG_EPOLL=y 181CONFIG_EPOLL=y
180CONFIG_SHMEM=y 182CONFIG_SHMEM=y
181CONFIG_CC_ALIGN_FUNCTIONS=0
182CONFIG_CC_ALIGN_LABELS=0
183CONFIG_CC_ALIGN_LOOPS=0
184CONFIG_CC_ALIGN_JUMPS=0
185CONFIG_SLAB=y 183CONFIG_SLAB=y
186# CONFIG_TINY_SHMEM is not set 184# CONFIG_TINY_SHMEM is not set
187CONFIG_BASE_SMALL=0 185CONFIG_BASE_SMALL=0
@@ -193,7 +191,6 @@ CONFIG_BASE_SMALL=0
193CONFIG_MODULES=y 191CONFIG_MODULES=y
194CONFIG_MODULE_UNLOAD=y 192CONFIG_MODULE_UNLOAD=y
195# CONFIG_MODULE_FORCE_UNLOAD is not set 193# CONFIG_MODULE_FORCE_UNLOAD is not set
196CONFIG_OBSOLETE_MODPARM=y
197CONFIG_MODVERSIONS=y 194CONFIG_MODVERSIONS=y
198CONFIG_MODULE_SRCVERSION_ALL=y 195CONFIG_MODULE_SRCVERSION_ALL=y
199CONFIG_KMOD=y 196CONFIG_KMOD=y
@@ -202,6 +199,8 @@ CONFIG_KMOD=y
202# Block layer 199# Block layer
203# 200#
204# CONFIG_LBD is not set 201# CONFIG_LBD is not set
202# CONFIG_BLK_DEV_IO_TRACE is not set
203# CONFIG_LSF is not set
205 204
206# 205#
207# IO Schedulers 206# IO Schedulers
@@ -221,7 +220,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
221# 220#
222CONFIG_HW_HAS_PCI=y 221CONFIG_HW_HAS_PCI=y
223CONFIG_PCI=y 222CONFIG_PCI=y
224CONFIG_PCI_LEGACY_PROC=y
225CONFIG_MMU=y 223CONFIG_MMU=y
226 224
227# 225#
@@ -249,6 +247,7 @@ CONFIG_NET=y
249# 247#
250# Networking options 248# Networking options
251# 249#
250# CONFIG_NETDEBUG is not set
252CONFIG_PACKET=y 251CONFIG_PACKET=y
253CONFIG_PACKET_MMAP=y 252CONFIG_PACKET_MMAP=y
254CONFIG_UNIX=y 253CONFIG_UNIX=y
@@ -281,6 +280,7 @@ CONFIG_SYN_COOKIES=y
281CONFIG_INET_AH=m 280CONFIG_INET_AH=m
282CONFIG_INET_ESP=m 281CONFIG_INET_ESP=m
283CONFIG_INET_IPCOMP=m 282CONFIG_INET_IPCOMP=m
283CONFIG_INET_XFRM_TUNNEL=m
284CONFIG_INET_TUNNEL=m 284CONFIG_INET_TUNNEL=m
285CONFIG_INET_DIAG=y 285CONFIG_INET_DIAG=y
286CONFIG_INET_TCP_DIAG=y 286CONFIG_INET_TCP_DIAG=y
@@ -322,9 +322,12 @@ CONFIG_IP_VS_NQ=m
322CONFIG_IP_VS_FTP=m 322CONFIG_IP_VS_FTP=m
323CONFIG_IPV6=m 323CONFIG_IPV6=m
324CONFIG_IPV6_PRIVACY=y 324CONFIG_IPV6_PRIVACY=y
325CONFIG_IPV6_ROUTER_PREF=y
326CONFIG_IPV6_ROUTE_INFO=y
325CONFIG_INET6_AH=m 327CONFIG_INET6_AH=m
326CONFIG_INET6_ESP=m 328CONFIG_INET6_ESP=m
327CONFIG_INET6_IPCOMP=m 329CONFIG_INET6_IPCOMP=m
330CONFIG_INET6_XFRM_TUNNEL=m
328CONFIG_INET6_TUNNEL=m 331CONFIG_INET6_TUNNEL=m
329CONFIG_IPV6_TUNNEL=m 332CONFIG_IPV6_TUNNEL=m
330CONFIG_NETFILTER=y 333CONFIG_NETFILTER=y
@@ -348,11 +351,14 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
348CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 351CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
349CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 352CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
350CONFIG_NETFILTER_XT_MATCH_DCCP=m 353CONFIG_NETFILTER_XT_MATCH_DCCP=m
354CONFIG_NETFILTER_XT_MATCH_ESP=m
351CONFIG_NETFILTER_XT_MATCH_HELPER=m 355CONFIG_NETFILTER_XT_MATCH_HELPER=m
352CONFIG_NETFILTER_XT_MATCH_LENGTH=m 356CONFIG_NETFILTER_XT_MATCH_LENGTH=m
353CONFIG_NETFILTER_XT_MATCH_LIMIT=m 357CONFIG_NETFILTER_XT_MATCH_LIMIT=m
354CONFIG_NETFILTER_XT_MATCH_MAC=m 358CONFIG_NETFILTER_XT_MATCH_MAC=m
355CONFIG_NETFILTER_XT_MATCH_MARK=m 359CONFIG_NETFILTER_XT_MATCH_MARK=m
360CONFIG_NETFILTER_XT_MATCH_POLICY=m
361CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
356CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m 362CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
357CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 363CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
358CONFIG_NETFILTER_XT_MATCH_REALM=m 364CONFIG_NETFILTER_XT_MATCH_REALM=m
@@ -376,20 +382,19 @@ CONFIG_IP_NF_IRC=m
376CONFIG_IP_NF_TFTP=m 382CONFIG_IP_NF_TFTP=m
377CONFIG_IP_NF_AMANDA=m 383CONFIG_IP_NF_AMANDA=m
378CONFIG_IP_NF_PPTP=m 384CONFIG_IP_NF_PPTP=m
385CONFIG_IP_NF_H323=m
379CONFIG_IP_NF_QUEUE=m 386CONFIG_IP_NF_QUEUE=m
380CONFIG_IP_NF_IPTABLES=m 387CONFIG_IP_NF_IPTABLES=m
381CONFIG_IP_NF_MATCH_IPRANGE=m 388CONFIG_IP_NF_MATCH_IPRANGE=m
382CONFIG_IP_NF_MATCH_MULTIPORT=m
383CONFIG_IP_NF_MATCH_TOS=m 389CONFIG_IP_NF_MATCH_TOS=m
384CONFIG_IP_NF_MATCH_RECENT=m 390CONFIG_IP_NF_MATCH_RECENT=m
385CONFIG_IP_NF_MATCH_ECN=m 391CONFIG_IP_NF_MATCH_ECN=m
386CONFIG_IP_NF_MATCH_DSCP=m 392CONFIG_IP_NF_MATCH_DSCP=m
387CONFIG_IP_NF_MATCH_AH_ESP=m 393CONFIG_IP_NF_MATCH_AH=m
388CONFIG_IP_NF_MATCH_TTL=m 394CONFIG_IP_NF_MATCH_TTL=m
389CONFIG_IP_NF_MATCH_OWNER=m 395CONFIG_IP_NF_MATCH_OWNER=m
390CONFIG_IP_NF_MATCH_ADDRTYPE=m 396CONFIG_IP_NF_MATCH_ADDRTYPE=m
391CONFIG_IP_NF_MATCH_HASHLIMIT=m 397CONFIG_IP_NF_MATCH_HASHLIMIT=m
392CONFIG_IP_NF_MATCH_POLICY=m
393CONFIG_IP_NF_FILTER=m 398CONFIG_IP_NF_FILTER=m
394CONFIG_IP_NF_TARGET_REJECT=m 399CONFIG_IP_NF_TARGET_REJECT=m
395CONFIG_IP_NF_TARGET_LOG=m 400CONFIG_IP_NF_TARGET_LOG=m
@@ -407,6 +412,7 @@ CONFIG_IP_NF_NAT_FTP=m
407CONFIG_IP_NF_NAT_TFTP=m 412CONFIG_IP_NF_NAT_TFTP=m
408CONFIG_IP_NF_NAT_AMANDA=m 413CONFIG_IP_NF_NAT_AMANDA=m
409CONFIG_IP_NF_NAT_PPTP=m 414CONFIG_IP_NF_NAT_PPTP=m
415CONFIG_IP_NF_NAT_H323=m
410CONFIG_IP_NF_MANGLE=m 416CONFIG_IP_NF_MANGLE=m
411CONFIG_IP_NF_TARGET_TOS=m 417CONFIG_IP_NF_TARGET_TOS=m
412CONFIG_IP_NF_TARGET_ECN=m 418CONFIG_IP_NF_TARGET_ECN=m
@@ -427,12 +433,10 @@ CONFIG_IP6_NF_MATCH_RT=m
427CONFIG_IP6_NF_MATCH_OPTS=m 433CONFIG_IP6_NF_MATCH_OPTS=m
428CONFIG_IP6_NF_MATCH_FRAG=m 434CONFIG_IP6_NF_MATCH_FRAG=m
429CONFIG_IP6_NF_MATCH_HL=m 435CONFIG_IP6_NF_MATCH_HL=m
430CONFIG_IP6_NF_MATCH_MULTIPORT=m
431CONFIG_IP6_NF_MATCH_OWNER=m 436CONFIG_IP6_NF_MATCH_OWNER=m
432CONFIG_IP6_NF_MATCH_IPV6HEADER=m 437CONFIG_IP6_NF_MATCH_IPV6HEADER=m
433CONFIG_IP6_NF_MATCH_AHESP=m 438CONFIG_IP6_NF_MATCH_AH=m
434CONFIG_IP6_NF_MATCH_EUI64=m 439CONFIG_IP6_NF_MATCH_EUI64=m
435CONFIG_IP6_NF_MATCH_POLICY=m
436CONFIG_IP6_NF_FILTER=m 440CONFIG_IP6_NF_FILTER=m
437CONFIG_IP6_NF_TARGET_LOG=m 441CONFIG_IP6_NF_TARGET_LOG=m
438CONFIG_IP6_NF_TARGET_REJECT=m 442CONFIG_IP6_NF_TARGET_REJECT=m
@@ -478,6 +482,11 @@ CONFIG_IP_SCTP=m
478# CONFIG_SCTP_HMAC_NONE is not set 482# CONFIG_SCTP_HMAC_NONE is not set
479# CONFIG_SCTP_HMAC_SHA1 is not set 483# CONFIG_SCTP_HMAC_SHA1 is not set
480CONFIG_SCTP_HMAC_MD5=y 484CONFIG_SCTP_HMAC_MD5=y
485
486#
487# TIPC Configuration (EXPERIMENTAL)
488#
489# CONFIG_TIPC is not set
481# CONFIG_ATM is not set 490# CONFIG_ATM is not set
482CONFIG_BRIDGE=m 491CONFIG_BRIDGE=m
483CONFIG_VLAN_8021Q=m 492CONFIG_VLAN_8021Q=m
@@ -492,11 +501,6 @@ CONFIG_IPDDP_ENCAP=y
492CONFIG_IPDDP_DECAP=y 501CONFIG_IPDDP_DECAP=y
493# CONFIG_X25 is not set 502# CONFIG_X25 is not set
494# CONFIG_LAPB is not set 503# CONFIG_LAPB is not set
495
496#
497# TIPC Configuration (EXPERIMENTAL)
498#
499# CONFIG_TIPC is not set
500CONFIG_NET_DIVERT=y 504CONFIG_NET_DIVERT=y
501# CONFIG_ECONET is not set 505# CONFIG_ECONET is not set
502# CONFIG_WAN_ROUTER is not set 506# CONFIG_WAN_ROUTER is not set
@@ -556,6 +560,9 @@ CONFIG_IEEE80211=m
556# CONFIG_IEEE80211_DEBUG is not set 560# CONFIG_IEEE80211_DEBUG is not set
557CONFIG_IEEE80211_CRYPT_WEP=m 561CONFIG_IEEE80211_CRYPT_WEP=m
558CONFIG_IEEE80211_CRYPT_CCMP=m 562CONFIG_IEEE80211_CRYPT_CCMP=m
563CONFIG_IEEE80211_SOFTMAC=m
564# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
565CONFIG_WIRELESS_EXT=y
559 566
560# 567#
561# Device Drivers 568# Device Drivers
@@ -694,9 +701,8 @@ CONFIG_SCSI_SYM53C8XX_2=y
694CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 701CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
695CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 702CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
696CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 703CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
697# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set 704CONFIG_SCSI_SYM53C8XX_MMIO=y
698# CONFIG_SCSI_IPR is not set 705# CONFIG_SCSI_IPR is not set
699# CONFIG_SCSI_QLOGIC_FC is not set
700# CONFIG_SCSI_QLOGIC_1280 is not set 706# CONFIG_SCSI_QLOGIC_1280 is not set
701# CONFIG_SCSI_QLA_FC is not set 707# CONFIG_SCSI_QLA_FC is not set
702# CONFIG_SCSI_LPFC is not set 708# CONFIG_SCSI_LPFC is not set
@@ -715,6 +721,7 @@ CONFIG_MD_RAID0=m
715CONFIG_MD_RAID1=m 721CONFIG_MD_RAID1=m
716CONFIG_MD_RAID10=m 722CONFIG_MD_RAID10=m
717CONFIG_MD_RAID5=m 723CONFIG_MD_RAID5=m
724CONFIG_MD_RAID5_RESHAPE=y
718CONFIG_MD_RAID6=m 725CONFIG_MD_RAID6=m
719CONFIG_MD_MULTIPATH=m 726CONFIG_MD_MULTIPATH=m
720CONFIG_MD_FAULTY=m 727CONFIG_MD_FAULTY=m
@@ -921,6 +928,7 @@ CONFIG_HW_CONSOLE=y
921# 928#
922CONFIG_SERIAL_8250=y 929CONFIG_SERIAL_8250=y
923CONFIG_SERIAL_8250_CONSOLE=y 930CONFIG_SERIAL_8250_CONSOLE=y
931CONFIG_SERIAL_8250_PCI=m
924CONFIG_SERIAL_8250_NR_UARTS=4 932CONFIG_SERIAL_8250_NR_UARTS=4
925CONFIG_SERIAL_8250_RUNTIME_UARTS=4 933CONFIG_SERIAL_8250_RUNTIME_UARTS=4
926# CONFIG_SERIAL_8250_EXTENDED is not set 934# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -930,6 +938,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
930# 938#
931CONFIG_SERIAL_CORE=y 939CONFIG_SERIAL_CORE=y
932CONFIG_SERIAL_CORE_CONSOLE=y 940CONFIG_SERIAL_CORE_CONSOLE=y
941# CONFIG_SERIAL_JSM is not set
933CONFIG_UNIX98_PTYS=y 942CONFIG_UNIX98_PTYS=y
934CONFIG_LEGACY_PTYS=y 943CONFIG_LEGACY_PTYS=y
935CONFIG_LEGACY_PTY_COUNT=256 944CONFIG_LEGACY_PTY_COUNT=256
@@ -988,10 +997,6 @@ CONFIG_LEGACY_PTY_COUNT=256
988# 997#
989 998
990# 999#
991# Multimedia Capabilities Port drivers
992#
993
994#
995# Multimedia devices 1000# Multimedia devices
996# 1001#
997# CONFIG_VIDEO_DEV is not set 1002# CONFIG_VIDEO_DEV is not set
@@ -1022,6 +1027,7 @@ CONFIG_DUMMY_CONSOLE=y
1022# 1027#
1023CONFIG_USB_ARCH_HAS_HCD=y 1028CONFIG_USB_ARCH_HAS_HCD=y
1024CONFIG_USB_ARCH_HAS_OHCI=y 1029CONFIG_USB_ARCH_HAS_OHCI=y
1030CONFIG_USB_ARCH_HAS_EHCI=y
1025# CONFIG_USB is not set 1031# CONFIG_USB is not set
1026 1032
1027# 1033#
@@ -1039,13 +1045,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1039# CONFIG_MMC is not set 1045# CONFIG_MMC is not set
1040 1046
1041# 1047#
1048# LED devices
1049#
1050# CONFIG_NEW_LEDS is not set
1051
1052#
1053# LED drivers
1054#
1055
1056#
1057# LED Triggers
1058#
1059
1060#
1042# InfiniBand support 1061# InfiniBand support
1043# 1062#
1044# CONFIG_INFINIBAND is not set 1063# CONFIG_INFINIBAND is not set
1045 1064
1046# 1065#
1047# SN Devices 1066# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1067#
1068
1069#
1070# Real Time Clock
1048# 1071#
1072# CONFIG_RTC_CLASS is not set
1049 1073
1050# 1074#
1051# File systems 1075# File systems
@@ -1120,7 +1144,6 @@ CONFIG_SYSFS=y
1120# CONFIG_TMPFS is not set 1144# CONFIG_TMPFS is not set
1121# CONFIG_HUGETLB_PAGE is not set 1145# CONFIG_HUGETLB_PAGE is not set
1122CONFIG_RAMFS=y 1146CONFIG_RAMFS=y
1123CONFIG_RELAYFS_FS=m
1124# CONFIG_CONFIGFS_FS is not set 1147# CONFIG_CONFIGFS_FS is not set
1125 1148
1126# 1149#
@@ -1140,7 +1163,6 @@ CONFIG_VXFS_FS=m
1140# CONFIG_QNX4FS_FS is not set 1163# CONFIG_QNX4FS_FS is not set
1141CONFIG_SYSV_FS=m 1164CONFIG_SYSV_FS=m
1142CONFIG_UFS_FS=m 1165CONFIG_UFS_FS=m
1143# CONFIG_UFS_FS_WRITE is not set
1144 1166
1145# 1167#
1146# Network File Systems 1168# Network File Systems
@@ -1232,6 +1254,7 @@ CONFIG_NLS_UTF8=m
1232# CONFIG_MAGIC_SYSRQ is not set 1254# CONFIG_MAGIC_SYSRQ is not set
1233# CONFIG_DEBUG_KERNEL is not set 1255# CONFIG_DEBUG_KERNEL is not set
1234CONFIG_LOG_BUF_SHIFT=14 1256CONFIG_LOG_BUF_SHIFT=14
1257# CONFIG_DEBUG_FS is not set
1235CONFIG_CROSSCOMPILE=y 1258CONFIG_CROSSCOMPILE=y
1236CONFIG_CMDLINE="" 1259CONFIG_CMDLINE=""
1237 1260
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index 32984100a75e..d85cda58d650 100644
--- a/arch/mips/configs/bigsur_defconfig
+++ b/arch/mips/configs/bigsur_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:53 2006 4# Mon Apr 24 14:50:55 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -80,6 +80,8 @@ CONFIG_SIBYTE_CFE=y
80# CONFIG_SIBYTE_SB1250_PROF is not set 80# CONFIG_SIBYTE_SB1250_PROF is not set
81# CONFIG_SIBYTE_TBPROF is not set 81# CONFIG_SIBYTE_TBPROF is not set
82CONFIG_RWSEM_GENERIC_SPINLOCK=y 82CONFIG_RWSEM_GENERIC_SPINLOCK=y
83CONFIG_GENERIC_FIND_NEXT_BIT=y
84CONFIG_GENERIC_HWEIGHT=y
83CONFIG_GENERIC_CALIBRATE_DELAY=y 85CONFIG_GENERIC_CALIBRATE_DELAY=y
84CONFIG_DMA_COHERENT=y 86CONFIG_DMA_COHERENT=y
85CONFIG_CPU_BIG_ENDIAN=y 87CONFIG_CPU_BIG_ENDIAN=y
@@ -154,7 +156,6 @@ CONFIG_PREEMPT_NONE=y
154# Code maturity level options 156# Code maturity level options
155# 157#
156CONFIG_EXPERIMENTAL=y 158CONFIG_EXPERIMENTAL=y
157CONFIG_CLEAN_COMPILE=y
158CONFIG_LOCK_KERNEL=y 159CONFIG_LOCK_KERNEL=y
159CONFIG_INIT_ENV_ARG_LIMIT=32 160CONFIG_INIT_ENV_ARG_LIMIT=32
160 161
@@ -172,6 +173,7 @@ CONFIG_SYSCTL=y
172CONFIG_IKCONFIG=y 173CONFIG_IKCONFIG=y
173CONFIG_IKCONFIG_PROC=y 174CONFIG_IKCONFIG_PROC=y
174# CONFIG_CPUSETS is not set 175# CONFIG_CPUSETS is not set
176# CONFIG_RELAY is not set
175CONFIG_INITRAMFS_SOURCE="" 177CONFIG_INITRAMFS_SOURCE=""
176# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 178# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
177CONFIG_EMBEDDED=y 179CONFIG_EMBEDDED=y
@@ -186,10 +188,6 @@ CONFIG_BASE_FULL=y
186CONFIG_FUTEX=y 188CONFIG_FUTEX=y
187CONFIG_EPOLL=y 189CONFIG_EPOLL=y
188CONFIG_SHMEM=y 190CONFIG_SHMEM=y
189CONFIG_CC_ALIGN_FUNCTIONS=0
190CONFIG_CC_ALIGN_LABELS=0
191CONFIG_CC_ALIGN_LOOPS=0
192CONFIG_CC_ALIGN_JUMPS=0
193CONFIG_SLAB=y 191CONFIG_SLAB=y
194# CONFIG_TINY_SHMEM is not set 192# CONFIG_TINY_SHMEM is not set
195CONFIG_BASE_SMALL=0 193CONFIG_BASE_SMALL=0
@@ -201,7 +199,6 @@ CONFIG_BASE_SMALL=0
201CONFIG_MODULES=y 199CONFIG_MODULES=y
202CONFIG_MODULE_UNLOAD=y 200CONFIG_MODULE_UNLOAD=y
203# CONFIG_MODULE_FORCE_UNLOAD is not set 201# CONFIG_MODULE_FORCE_UNLOAD is not set
204CONFIG_OBSOLETE_MODPARM=y
205CONFIG_MODVERSIONS=y 202CONFIG_MODVERSIONS=y
206CONFIG_MODULE_SRCVERSION_ALL=y 203CONFIG_MODULE_SRCVERSION_ALL=y
207CONFIG_KMOD=y 204CONFIG_KMOD=y
@@ -210,6 +207,7 @@ CONFIG_STOP_MACHINE=y
210# 207#
211# Block layer 208# Block layer
212# 209#
210# CONFIG_BLK_DEV_IO_TRACE is not set
213 211
214# 212#
215# IO Schedulers 213# IO Schedulers
@@ -230,7 +228,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
230CONFIG_HW_HAS_PCI=y 228CONFIG_HW_HAS_PCI=y
231CONFIG_PCI=y 229CONFIG_PCI=y
232CONFIG_PCI_DOMAINS=y 230CONFIG_PCI_DOMAINS=y
233CONFIG_PCI_LEGACY_PROC=y
234CONFIG_PCI_DEBUG=y 231CONFIG_PCI_DEBUG=y
235CONFIG_MMU=y 232CONFIG_MMU=y
236 233
@@ -249,6 +246,7 @@ CONFIG_MMU=y
249# 246#
250CONFIG_BINFMT_ELF=y 247CONFIG_BINFMT_ELF=y
251# CONFIG_BINFMT_MISC is not set 248# CONFIG_BINFMT_MISC is not set
249CONFIG_BUILD_ELF64=y
252CONFIG_MIPS32_COMPAT=y 250CONFIG_MIPS32_COMPAT=y
253CONFIG_COMPAT=y 251CONFIG_COMPAT=y
254CONFIG_MIPS32_O32=y 252CONFIG_MIPS32_O32=y
@@ -263,6 +261,7 @@ CONFIG_NET=y
263# 261#
264# Networking options 262# Networking options
265# 263#
264# CONFIG_NETDEBUG is not set
266CONFIG_PACKET=y 265CONFIG_PACKET=y
267CONFIG_PACKET_MMAP=y 266CONFIG_PACKET_MMAP=y
268CONFIG_UNIX=y 267CONFIG_UNIX=y
@@ -284,12 +283,15 @@ CONFIG_IP_PNP_BOOTP=y
284# CONFIG_INET_AH is not set 283# CONFIG_INET_AH is not set
285# CONFIG_INET_ESP is not set 284# CONFIG_INET_ESP is not set
286# CONFIG_INET_IPCOMP is not set 285# CONFIG_INET_IPCOMP is not set
287CONFIG_INET_TUNNEL=m 286# CONFIG_INET_XFRM_TUNNEL is not set
287# CONFIG_INET_TUNNEL is not set
288CONFIG_INET_DIAG=y 288CONFIG_INET_DIAG=y
289CONFIG_INET_TCP_DIAG=y 289CONFIG_INET_TCP_DIAG=y
290# CONFIG_TCP_CONG_ADVANCED is not set 290# CONFIG_TCP_CONG_ADVANCED is not set
291CONFIG_TCP_CONG_BIC=y 291CONFIG_TCP_CONG_BIC=y
292# CONFIG_IPV6 is not set 292# CONFIG_IPV6 is not set
293# CONFIG_INET6_XFRM_TUNNEL is not set
294# CONFIG_INET6_TUNNEL is not set
293# CONFIG_NETFILTER is not set 295# CONFIG_NETFILTER is not set
294 296
295# 297#
@@ -301,6 +303,11 @@ CONFIG_TCP_CONG_BIC=y
301# SCTP Configuration (EXPERIMENTAL) 303# SCTP Configuration (EXPERIMENTAL)
302# 304#
303# CONFIG_IP_SCTP is not set 305# CONFIG_IP_SCTP is not set
306
307#
308# TIPC Configuration (EXPERIMENTAL)
309#
310# CONFIG_TIPC is not set
304# CONFIG_ATM is not set 311# CONFIG_ATM is not set
305# CONFIG_BRIDGE is not set 312# CONFIG_BRIDGE is not set
306# CONFIG_VLAN_8021Q is not set 313# CONFIG_VLAN_8021Q is not set
@@ -310,11 +317,6 @@ CONFIG_TCP_CONG_BIC=y
310# CONFIG_ATALK is not set 317# CONFIG_ATALK is not set
311# CONFIG_X25 is not set 318# CONFIG_X25 is not set
312# CONFIG_LAPB is not set 319# CONFIG_LAPB is not set
313
314#
315# TIPC Configuration (EXPERIMENTAL)
316#
317# CONFIG_TIPC is not set
318# CONFIG_NET_DIVERT is not set 320# CONFIG_NET_DIVERT is not set
319# CONFIG_ECONET is not set 321# CONFIG_ECONET is not set
320# CONFIG_WAN_ROUTER is not set 322# CONFIG_WAN_ROUTER is not set
@@ -377,7 +379,7 @@ CONFIG_BLK_DEV_LOOP=m
377CONFIG_BLK_DEV_NBD=m 379CONFIG_BLK_DEV_NBD=m
378# CONFIG_BLK_DEV_SX8 is not set 380# CONFIG_BLK_DEV_SX8 is not set
379# CONFIG_BLK_DEV_RAM is not set 381# CONFIG_BLK_DEV_RAM is not set
380CONFIG_BLK_DEV_RAM_COUNT=16 382# CONFIG_BLK_DEV_INITRD is not set
381# CONFIG_CDROM_PKTCDVD is not set 383# CONFIG_CDROM_PKTCDVD is not set
382# CONFIG_ATA_OVER_ETH is not set 384# CONFIG_ATA_OVER_ETH is not set
383 385
@@ -575,6 +577,7 @@ CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
575# 577#
576# Non-8250 serial port support 578# Non-8250 serial port support
577# 579#
580# CONFIG_SERIAL_JSM is not set
578CONFIG_UNIX98_PTYS=y 581CONFIG_UNIX98_PTYS=y
579CONFIG_LEGACY_PTYS=y 582CONFIG_LEGACY_PTYS=y
580CONFIG_LEGACY_PTY_COUNT=256 583CONFIG_LEGACY_PTY_COUNT=256
@@ -637,7 +640,6 @@ CONFIG_I2C_ALGO_SIBYTE=y
637# CONFIG_I2C_PROSAVAGE is not set 640# CONFIG_I2C_PROSAVAGE is not set
638# CONFIG_I2C_SAVAGE4 is not set 641# CONFIG_I2C_SAVAGE4 is not set
639CONFIG_I2C_SIBYTE=y 642CONFIG_I2C_SIBYTE=y
640# CONFIG_SCx200_ACB is not set
641# CONFIG_I2C_SIS5595 is not set 643# CONFIG_I2C_SIS5595 is not set
642# CONFIG_I2C_SIS630 is not set 644# CONFIG_I2C_SIS630 is not set
643# CONFIG_I2C_SIS96X is not set 645# CONFIG_I2C_SIS96X is not set
@@ -656,9 +658,7 @@ CONFIG_SENSORS_EEPROM=y
656CONFIG_SENSORS_PCF8574=y 658CONFIG_SENSORS_PCF8574=y
657CONFIG_SENSORS_PCA9539=y 659CONFIG_SENSORS_PCA9539=y
658CONFIG_SENSORS_PCF8591=y 660CONFIG_SENSORS_PCF8591=y
659CONFIG_SENSORS_RTC8564=y
660CONFIG_SENSORS_MAX6875=y 661CONFIG_SENSORS_MAX6875=y
661# CONFIG_RTC_X1205_I2C is not set
662CONFIG_I2C_DEBUG_CORE=y 662CONFIG_I2C_DEBUG_CORE=y
663CONFIG_I2C_DEBUG_ALGO=y 663CONFIG_I2C_DEBUG_ALGO=y
664CONFIG_I2C_DEBUG_BUS=y 664CONFIG_I2C_DEBUG_BUS=y
@@ -686,10 +686,6 @@ CONFIG_I2C_DEBUG_CHIP=y
686# 686#
687 687
688# 688#
689# Multimedia Capabilities Port drivers
690#
691
692#
693# Multimedia devices 689# Multimedia devices
694# 690#
695# CONFIG_VIDEO_DEV is not set 691# CONFIG_VIDEO_DEV is not set
@@ -714,6 +710,7 @@ CONFIG_I2C_DEBUG_CHIP=y
714# 710#
715CONFIG_USB_ARCH_HAS_HCD=y 711CONFIG_USB_ARCH_HAS_HCD=y
716CONFIG_USB_ARCH_HAS_OHCI=y 712CONFIG_USB_ARCH_HAS_OHCI=y
713CONFIG_USB_ARCH_HAS_EHCI=y
717# CONFIG_USB is not set 714# CONFIG_USB is not set
718 715
719# 716#
@@ -731,13 +728,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
731# CONFIG_MMC is not set 728# CONFIG_MMC is not set
732 729
733# 730#
731# LED devices
732#
733# CONFIG_NEW_LEDS is not set
734
735#
736# LED drivers
737#
738
739#
740# LED Triggers
741#
742
743#
734# InfiniBand support 744# InfiniBand support
735# 745#
736# CONFIG_INFINIBAND is not set 746# CONFIG_INFINIBAND is not set
737 747
738# 748#
739# SN Devices 749# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
750#
751
752#
753# Real Time Clock
740# 754#
755# CONFIG_RTC_CLASS is not set
741 756
742# 757#
743# File systems 758# File systems
@@ -785,7 +800,6 @@ CONFIG_SYSFS=y
785# CONFIG_TMPFS is not set 800# CONFIG_TMPFS is not set
786# CONFIG_HUGETLB_PAGE is not set 801# CONFIG_HUGETLB_PAGE is not set
787CONFIG_RAMFS=y 802CONFIG_RAMFS=y
788# CONFIG_RELAYFS_FS is not set
789# CONFIG_CONFIGFS_FS is not set 803# CONFIG_CONFIGFS_FS is not set
790 804
791# 805#
diff --git a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig
index 6c2961affbd6..ca0af1683a00 100644
--- a/arch/mips/configs/capcella_defconfig
+++ b/arch/mips/configs/capcella_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:54 2006 4# Tue Apr 25 00:08:06 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -72,6 +72,8 @@ CONFIG_ZAO_CAPCELLA=y
72CONFIG_PCI_VR41XX=y 72CONFIG_PCI_VR41XX=y
73# CONFIG_VRC4173 is not set 73# CONFIG_VRC4173 is not set
74CONFIG_RWSEM_GENERIC_SPINLOCK=y 74CONFIG_RWSEM_GENERIC_SPINLOCK=y
75CONFIG_GENERIC_FIND_NEXT_BIT=y
76CONFIG_GENERIC_HWEIGHT=y
75CONFIG_GENERIC_CALIBRATE_DELAY=y 77CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_DMA_NONCOHERENT=y 78CONFIG_DMA_NONCOHERENT=y
77CONFIG_DMA_NEED_PCI_MAP_STATE=y 79CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -90,7 +92,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
90# CONFIG_CPU_MIPS64_R2 is not set 92# CONFIG_CPU_MIPS64_R2 is not set
91# CONFIG_CPU_R3000 is not set 93# CONFIG_CPU_R3000 is not set
92# CONFIG_CPU_TX39XX is not set 94# CONFIG_CPU_TX39XX is not set
93# CONFIG_CPU_VR41XX is not set 95CONFIG_CPU_VR41XX=y
94# CONFIG_CPU_R4300 is not set 96# CONFIG_CPU_R4300 is not set
95# CONFIG_CPU_R4X00 is not set 97# CONFIG_CPU_R4X00 is not set
96# CONFIG_CPU_TX49XX is not set 98# CONFIG_CPU_TX49XX is not set
@@ -103,18 +105,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
103# CONFIG_CPU_RM7000 is not set 105# CONFIG_CPU_RM7000 is not set
104# CONFIG_CPU_RM9000 is not set 106# CONFIG_CPU_RM9000 is not set
105# CONFIG_CPU_SB1 is not set 107# CONFIG_CPU_SB1 is not set
108CONFIG_SYS_HAS_CPU_VR41XX=y
109CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
110CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
111CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
106 112
107# 113#
108# Kernel type 114# Kernel type
109# 115#
110# CONFIG_32BIT is not set 116CONFIG_32BIT=y
111# CONFIG_64BIT is not set 117# CONFIG_64BIT is not set
112CONFIG_PAGE_SIZE_4KB=y 118CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_8KB is not set 119# CONFIG_PAGE_SIZE_8KB is not set
114# CONFIG_PAGE_SIZE_16KB is not set 120# CONFIG_PAGE_SIZE_16KB is not set
115# CONFIG_PAGE_SIZE_64KB is not set 121# CONFIG_PAGE_SIZE_64KB is not set
116# CONFIG_MIPS_MT is not set 122# CONFIG_MIPS_MT is not set
117CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 123CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 124CONFIG_GENERIC_HARDIRQS=y
120CONFIG_GENERIC_IRQ_PROBE=y 125CONFIG_GENERIC_IRQ_PROBE=y
@@ -135,7 +140,6 @@ CONFIG_PREEMPT_NONE=y
135# Code maturity level options 140# Code maturity level options
136# 141#
137CONFIG_EXPERIMENTAL=y 142CONFIG_EXPERIMENTAL=y
138CONFIG_CLEAN_COMPILE=y
139CONFIG_BROKEN_ON_SMP=y 143CONFIG_BROKEN_ON_SMP=y
140CONFIG_INIT_ENV_ARG_LIMIT=32 144CONFIG_INIT_ENV_ARG_LIMIT=32
141 145
@@ -151,6 +155,7 @@ CONFIG_SYSVIPC=y
151CONFIG_SYSCTL=y 155CONFIG_SYSCTL=y
152# CONFIG_AUDIT is not set 156# CONFIG_AUDIT is not set
153# CONFIG_IKCONFIG is not set 157# CONFIG_IKCONFIG is not set
158# CONFIG_RELAY is not set
154CONFIG_INITRAMFS_SOURCE="" 159CONFIG_INITRAMFS_SOURCE=""
155# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 160# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
156CONFIG_EMBEDDED=y 161CONFIG_EMBEDDED=y
@@ -164,10 +169,6 @@ CONFIG_BASE_FULL=y
164CONFIG_FUTEX=y 169CONFIG_FUTEX=y
165CONFIG_EPOLL=y 170CONFIG_EPOLL=y
166CONFIG_SHMEM=y 171CONFIG_SHMEM=y
167CONFIG_CC_ALIGN_FUNCTIONS=0
168CONFIG_CC_ALIGN_LABELS=0
169CONFIG_CC_ALIGN_LOOPS=0
170CONFIG_CC_ALIGN_JUMPS=0
171CONFIG_SLAB=y 172CONFIG_SLAB=y
172# CONFIG_TINY_SHMEM is not set 173# CONFIG_TINY_SHMEM is not set
173CONFIG_BASE_SMALL=0 174CONFIG_BASE_SMALL=0
@@ -179,7 +180,6 @@ CONFIG_BASE_SMALL=0
179CONFIG_MODULES=y 180CONFIG_MODULES=y
180CONFIG_MODULE_UNLOAD=y 181CONFIG_MODULE_UNLOAD=y
181# CONFIG_MODULE_FORCE_UNLOAD is not set 182# CONFIG_MODULE_FORCE_UNLOAD is not set
182CONFIG_OBSOLETE_MODPARM=y
183CONFIG_MODVERSIONS=y 183CONFIG_MODVERSIONS=y
184CONFIG_MODULE_SRCVERSION_ALL=y 184CONFIG_MODULE_SRCVERSION_ALL=y
185CONFIG_KMOD=y 185CONFIG_KMOD=y
@@ -187,6 +187,9 @@ CONFIG_KMOD=y
187# 187#
188# Block layer 188# Block layer
189# 189#
190# CONFIG_LBD is not set
191# CONFIG_BLK_DEV_IO_TRACE is not set
192# CONFIG_LSF is not set
190 193
191# 194#
192# IO Schedulers 195# IO Schedulers
@@ -206,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
206# 209#
207CONFIG_HW_HAS_PCI=y 210CONFIG_HW_HAS_PCI=y
208CONFIG_PCI=y 211CONFIG_PCI=y
209CONFIG_PCI_LEGACY_PROC=y
210CONFIG_MMU=y 212CONFIG_MMU=y
211 213
212# 214#
@@ -224,6 +226,7 @@ CONFIG_MMU=y
224# 226#
225CONFIG_BINFMT_ELF=y 227CONFIG_BINFMT_ELF=y
226# CONFIG_BINFMT_MISC is not set 228# CONFIG_BINFMT_MISC is not set
229CONFIG_TRAD_SIGNALS=y
227 230
228# 231#
229# Networking 232# Networking
@@ -233,6 +236,7 @@ CONFIG_NET=y
233# 236#
234# Networking options 237# Networking options
235# 238#
239# CONFIG_NETDEBUG is not set
236CONFIG_PACKET=y 240CONFIG_PACKET=y
237CONFIG_PACKET_MMAP=y 241CONFIG_PACKET_MMAP=y
238CONFIG_UNIX=y 242CONFIG_UNIX=y
@@ -255,12 +259,15 @@ CONFIG_IP_PNP_BOOTP=y
255# CONFIG_INET_AH is not set 259# CONFIG_INET_AH is not set
256# CONFIG_INET_ESP is not set 260# CONFIG_INET_ESP is not set
257# CONFIG_INET_IPCOMP is not set 261# CONFIG_INET_IPCOMP is not set
258CONFIG_INET_TUNNEL=m 262# CONFIG_INET_XFRM_TUNNEL is not set
263# CONFIG_INET_TUNNEL is not set
259CONFIG_INET_DIAG=y 264CONFIG_INET_DIAG=y
260CONFIG_INET_TCP_DIAG=y 265CONFIG_INET_TCP_DIAG=y
261# CONFIG_TCP_CONG_ADVANCED is not set 266# CONFIG_TCP_CONG_ADVANCED is not set
262CONFIG_TCP_CONG_BIC=y 267CONFIG_TCP_CONG_BIC=y
263# CONFIG_IPV6 is not set 268# CONFIG_IPV6 is not set
269# CONFIG_INET6_XFRM_TUNNEL is not set
270# CONFIG_INET6_TUNNEL is not set
264# CONFIG_NETFILTER is not set 271# CONFIG_NETFILTER is not set
265 272
266# 273#
@@ -272,6 +279,11 @@ CONFIG_TCP_CONG_BIC=y
272# SCTP Configuration (EXPERIMENTAL) 279# SCTP Configuration (EXPERIMENTAL)
273# 280#
274# CONFIG_IP_SCTP is not set 281# CONFIG_IP_SCTP is not set
282
283#
284# TIPC Configuration (EXPERIMENTAL)
285#
286# CONFIG_TIPC is not set
275# CONFIG_ATM is not set 287# CONFIG_ATM is not set
276# CONFIG_BRIDGE is not set 288# CONFIG_BRIDGE is not set
277# CONFIG_VLAN_8021Q is not set 289# CONFIG_VLAN_8021Q is not set
@@ -281,11 +293,6 @@ CONFIG_TCP_CONG_BIC=y
281# CONFIG_ATALK is not set 293# CONFIG_ATALK is not set
282# CONFIG_X25 is not set 294# CONFIG_X25 is not set
283# CONFIG_LAPB is not set 295# CONFIG_LAPB is not set
284
285#
286# TIPC Configuration (EXPERIMENTAL)
287#
288# CONFIG_TIPC is not set
289# CONFIG_NET_DIVERT is not set 296# CONFIG_NET_DIVERT is not set
290# CONFIG_ECONET is not set 297# CONFIG_ECONET is not set
291# CONFIG_WAN_ROUTER is not set 298# CONFIG_WAN_ROUTER is not set
@@ -302,10 +309,7 @@ CONFIG_TCP_CONG_BIC=y
302# CONFIG_HAMRADIO is not set 309# CONFIG_HAMRADIO is not set
303# CONFIG_IRDA is not set 310# CONFIG_IRDA is not set
304# CONFIG_BT is not set 311# CONFIG_BT is not set
305CONFIG_IEEE80211=m 312# CONFIG_IEEE80211 is not set
306# CONFIG_IEEE80211_DEBUG is not set
307CONFIG_IEEE80211_CRYPT_WEP=m
308CONFIG_IEEE80211_CRYPT_CCMP=m
309 313
310# 314#
311# Device Drivers 315# Device Drivers
@@ -348,10 +352,12 @@ CONFIG_CONNECTOR=m
348# CONFIG_BLK_DEV_LOOP is not set 352# CONFIG_BLK_DEV_LOOP is not set
349# CONFIG_BLK_DEV_NBD is not set 353# CONFIG_BLK_DEV_NBD is not set
350# CONFIG_BLK_DEV_SX8 is not set 354# CONFIG_BLK_DEV_SX8 is not set
351# CONFIG_BLK_DEV_RAM is not set 355CONFIG_BLK_DEV_RAM=y
352CONFIG_BLK_DEV_RAM_COUNT=16 356CONFIG_BLK_DEV_RAM_COUNT=16
357CONFIG_BLK_DEV_RAM_SIZE=4096
358# CONFIG_BLK_DEV_INITRD is not set
353# CONFIG_CDROM_PKTCDVD is not set 359# CONFIG_CDROM_PKTCDVD is not set
354CONFIG_ATA_OVER_ETH=m 360# CONFIG_ATA_OVER_ETH is not set
355 361
356# 362#
357# ATA/ATAPI/MFM/RLL support 363# ATA/ATAPI/MFM/RLL support
@@ -578,6 +584,11 @@ CONFIG_HW_CONSOLE=y
578# 584#
579# Non-8250 serial port support 585# Non-8250 serial port support
580# 586#
587CONFIG_SERIAL_CORE=y
588CONFIG_SERIAL_CORE_CONSOLE=y
589CONFIG_SERIAL_VR41XX=y
590CONFIG_SERIAL_VR41XX_CONSOLE=y
591# CONFIG_SERIAL_JSM is not set
581CONFIG_UNIX98_PTYS=y 592CONFIG_UNIX98_PTYS=y
582CONFIG_LEGACY_PTYS=y 593CONFIG_LEGACY_PTYS=y
583CONFIG_LEGACY_PTY_COUNT=256 594CONFIG_LEGACY_PTY_COUNT=256
@@ -601,6 +612,7 @@ CONFIG_LEGACY_PTY_COUNT=256
601# Ftape, the floppy tape device driver 612# Ftape, the floppy tape device driver
602# 613#
603# CONFIG_DRM is not set 614# CONFIG_DRM is not set
615CONFIG_GPIO_VR41XX=y
604# CONFIG_RAW_DRIVER is not set 616# CONFIG_RAW_DRIVER is not set
605 617
606# 618#
@@ -636,10 +648,6 @@ CONFIG_LEGACY_PTY_COUNT=256
636# 648#
637 649
638# 650#
639# Multimedia Capabilities Port drivers
640#
641
642#
643# Multimedia devices 651# Multimedia devices
644# 652#
645# CONFIG_VIDEO_DEV is not set 653# CONFIG_VIDEO_DEV is not set
@@ -670,6 +678,7 @@ CONFIG_DUMMY_CONSOLE=y
670# 678#
671CONFIG_USB_ARCH_HAS_HCD=y 679CONFIG_USB_ARCH_HAS_HCD=y
672CONFIG_USB_ARCH_HAS_OHCI=y 680CONFIG_USB_ARCH_HAS_OHCI=y
681CONFIG_USB_ARCH_HAS_EHCI=y
673# CONFIG_USB is not set 682# CONFIG_USB is not set
674 683
675# 684#
@@ -687,13 +696,48 @@ CONFIG_USB_ARCH_HAS_OHCI=y
687# CONFIG_MMC is not set 696# CONFIG_MMC is not set
688 697
689# 698#
699# LED devices
700#
701# CONFIG_NEW_LEDS is not set
702
703#
704# LED drivers
705#
706
707#
708# LED Triggers
709#
710
711#
690# InfiniBand support 712# InfiniBand support
691# 713#
692# CONFIG_INFINIBAND is not set 714# CONFIG_INFINIBAND is not set
693 715
694# 716#
695# SN Devices 717# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
718#
719
720#
721# Real Time Clock
722#
723CONFIG_RTC_LIB=y
724CONFIG_RTC_CLASS=y
725CONFIG_RTC_HCTOSYS=y
726CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
727
728#
729# RTC interfaces
730#
731CONFIG_RTC_INTF_SYSFS=y
732CONFIG_RTC_INTF_PROC=y
733CONFIG_RTC_INTF_DEV=y
734
735#
736# RTC drivers
696# 737#
738# CONFIG_RTC_DRV_M48T86 is not set
739CONFIG_RTC_DRV_VR41XX=y
740# CONFIG_RTC_DRV_TEST is not set
697 741
698# 742#
699# File systems 743# File systems
@@ -712,7 +756,7 @@ CONFIG_EXT2_FS=y
712CONFIG_INOTIFY=y 756CONFIG_INOTIFY=y
713# CONFIG_QUOTA is not set 757# CONFIG_QUOTA is not set
714CONFIG_DNOTIFY=y 758CONFIG_DNOTIFY=y
715CONFIG_AUTOFS_FS=y 759# CONFIG_AUTOFS_FS is not set
716CONFIG_AUTOFS4_FS=y 760CONFIG_AUTOFS4_FS=y
717CONFIG_FUSE_FS=m 761CONFIG_FUSE_FS=m
718 762
@@ -735,10 +779,9 @@ CONFIG_FUSE_FS=m
735CONFIG_PROC_FS=y 779CONFIG_PROC_FS=y
736CONFIG_PROC_KCORE=y 780CONFIG_PROC_KCORE=y
737CONFIG_SYSFS=y 781CONFIG_SYSFS=y
738# CONFIG_TMPFS is not set 782CONFIG_TMPFS=y
739# CONFIG_HUGETLB_PAGE is not set 783# CONFIG_HUGETLB_PAGE is not set
740CONFIG_RAMFS=y 784CONFIG_RAMFS=y
741CONFIG_RELAYFS_FS=m
742# CONFIG_CONFIGFS_FS is not set 785# CONFIG_CONFIGFS_FS is not set
743 786
744# 787#
@@ -805,44 +848,20 @@ CONFIG_MSDOS_PARTITION=y
805# CONFIG_MAGIC_SYSRQ is not set 848# CONFIG_MAGIC_SYSRQ is not set
806# CONFIG_DEBUG_KERNEL is not set 849# CONFIG_DEBUG_KERNEL is not set
807CONFIG_LOG_BUF_SHIFT=14 850CONFIG_LOG_BUF_SHIFT=14
851# CONFIG_DEBUG_FS is not set
808CONFIG_CROSSCOMPILE=y 852CONFIG_CROSSCOMPILE=y
809CONFIG_CMDLINE="mem=32M console=ttyVR0,38400" 853CONFIG_CMDLINE="mem=32M console=ttyVR0,38400"
810 854
811# 855#
812# Security options 856# Security options
813# 857#
814CONFIG_KEYS=y 858# CONFIG_KEYS is not set
815CONFIG_KEYS_DEBUG_PROC_KEYS=y
816# CONFIG_SECURITY is not set 859# CONFIG_SECURITY is not set
817 860
818# 861#
819# Cryptographic options 862# Cryptographic options
820# 863#
821CONFIG_CRYPTO=y 864# CONFIG_CRYPTO is not set
822CONFIG_CRYPTO_HMAC=y
823CONFIG_CRYPTO_NULL=m
824CONFIG_CRYPTO_MD4=m
825CONFIG_CRYPTO_MD5=m
826CONFIG_CRYPTO_SHA1=m
827CONFIG_CRYPTO_SHA256=m
828CONFIG_CRYPTO_SHA512=m
829CONFIG_CRYPTO_WP512=m
830CONFIG_CRYPTO_TGR192=m
831CONFIG_CRYPTO_DES=m
832CONFIG_CRYPTO_BLOWFISH=m
833CONFIG_CRYPTO_TWOFISH=m
834CONFIG_CRYPTO_SERPENT=m
835CONFIG_CRYPTO_AES=m
836CONFIG_CRYPTO_CAST5=m
837CONFIG_CRYPTO_CAST6=m
838CONFIG_CRYPTO_TEA=m
839CONFIG_CRYPTO_ARC4=m
840CONFIG_CRYPTO_KHAZAD=m
841CONFIG_CRYPTO_ANUBIS=m
842CONFIG_CRYPTO_DEFLATE=m
843CONFIG_CRYPTO_MICHAEL_MIC=m
844CONFIG_CRYPTO_CRC32C=m
845# CONFIG_CRYPTO_TEST is not set
846 865
847# 866#
848# Hardware crypto devices 867# Hardware crypto devices
@@ -852,8 +871,6 @@ CONFIG_CRYPTO_CRC32C=m
852# Library routines 871# Library routines
853# 872#
854# CONFIG_CRC_CCITT is not set 873# CONFIG_CRC_CCITT is not set
855CONFIG_CRC16=m 874# CONFIG_CRC16 is not set
856CONFIG_CRC32=y 875CONFIG_CRC32=y
857CONFIG_LIBCRC32C=m 876# CONFIG_LIBCRC32C is not set
858CONFIG_ZLIB_INFLATE=m
859CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig
index 8336b21d3db2..7d269e609282 100644
--- a/arch/mips/configs/cobalt_defconfig
+++ b/arch/mips/configs/cobalt_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:55 2006 4# Mon Apr 24 14:50:57 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -63,7 +63,10 @@ CONFIG_MIPS_COBALT=y
63# CONFIG_TOSHIBA_JMR3927 is not set 63# CONFIG_TOSHIBA_JMR3927 is not set
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_EARLY_PRINTK=y
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 67CONFIG_RWSEM_GENERIC_SPINLOCK=y
68CONFIG_GENERIC_FIND_NEXT_BIT=y
69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 71CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 72CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -113,7 +116,6 @@ CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_16KB is not set 116# CONFIG_PAGE_SIZE_16KB is not set
114# CONFIG_PAGE_SIZE_64KB is not set 117# CONFIG_PAGE_SIZE_64KB is not set
115# CONFIG_MIPS_MT is not set 118# CONFIG_MIPS_MT is not set
116# CONFIG_CPU_ADVANCED is not set
117CONFIG_CPU_HAS_LLSC=y 119CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 120CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
@@ -135,7 +137,6 @@ CONFIG_PREEMPT_NONE=y
135# Code maturity level options 137# Code maturity level options
136# 138#
137CONFIG_EXPERIMENTAL=y 139CONFIG_EXPERIMENTAL=y
138CONFIG_CLEAN_COMPILE=y
139CONFIG_BROKEN_ON_SMP=y 140CONFIG_BROKEN_ON_SMP=y
140CONFIG_INIT_ENV_ARG_LIMIT=32 141CONFIG_INIT_ENV_ARG_LIMIT=32
141 142
@@ -151,6 +152,7 @@ CONFIG_SYSVIPC=y
151CONFIG_SYSCTL=y 152CONFIG_SYSCTL=y
152# CONFIG_AUDIT is not set 153# CONFIG_AUDIT is not set
153# CONFIG_IKCONFIG is not set 154# CONFIG_IKCONFIG is not set
155CONFIG_RELAY=y
154CONFIG_INITRAMFS_SOURCE="" 156CONFIG_INITRAMFS_SOURCE=""
155# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
156CONFIG_EMBEDDED=y 158CONFIG_EMBEDDED=y
@@ -164,10 +166,6 @@ CONFIG_BASE_FULL=y
164CONFIG_FUTEX=y 166CONFIG_FUTEX=y
165CONFIG_EPOLL=y 167CONFIG_EPOLL=y
166CONFIG_SHMEM=y 168CONFIG_SHMEM=y
167CONFIG_CC_ALIGN_FUNCTIONS=0
168CONFIG_CC_ALIGN_LABELS=0
169CONFIG_CC_ALIGN_LOOPS=0
170CONFIG_CC_ALIGN_JUMPS=0
171CONFIG_SLAB=y 169CONFIG_SLAB=y
172# CONFIG_TINY_SHMEM is not set 170# CONFIG_TINY_SHMEM is not set
173CONFIG_BASE_SMALL=0 171CONFIG_BASE_SMALL=0
@@ -182,6 +180,8 @@ CONFIG_BASE_SMALL=0
182# Block layer 180# Block layer
183# 181#
184# CONFIG_LBD is not set 182# CONFIG_LBD is not set
183# CONFIG_BLK_DEV_IO_TRACE is not set
184# CONFIG_LSF is not set
185 185
186# 186#
187# IO Schedulers 187# IO Schedulers
@@ -201,7 +201,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
201# 201#
202CONFIG_HW_HAS_PCI=y 202CONFIG_HW_HAS_PCI=y
203CONFIG_PCI=y 203CONFIG_PCI=y
204CONFIG_PCI_LEGACY_PROC=y
205CONFIG_MMU=y 204CONFIG_MMU=y
206 205
207# 206#
@@ -229,6 +228,7 @@ CONFIG_NET=y
229# 228#
230# Networking options 229# Networking options
231# 230#
231# CONFIG_NETDEBUG is not set
232CONFIG_PACKET=y 232CONFIG_PACKET=y
233# CONFIG_PACKET_MMAP is not set 233# CONFIG_PACKET_MMAP is not set
234CONFIG_UNIX=y 234CONFIG_UNIX=y
@@ -247,12 +247,15 @@ CONFIG_IP_FIB_HASH=y
247# CONFIG_INET_AH is not set 247# CONFIG_INET_AH is not set
248# CONFIG_INET_ESP is not set 248# CONFIG_INET_ESP is not set
249# CONFIG_INET_IPCOMP is not set 249# CONFIG_INET_IPCOMP is not set
250CONFIG_INET_TUNNEL=y 250# CONFIG_INET_XFRM_TUNNEL is not set
251# CONFIG_INET_TUNNEL is not set
251CONFIG_INET_DIAG=y 252CONFIG_INET_DIAG=y
252CONFIG_INET_TCP_DIAG=y 253CONFIG_INET_TCP_DIAG=y
253# CONFIG_TCP_CONG_ADVANCED is not set 254# CONFIG_TCP_CONG_ADVANCED is not set
254CONFIG_TCP_CONG_BIC=y 255CONFIG_TCP_CONG_BIC=y
255# CONFIG_IPV6 is not set 256# CONFIG_IPV6 is not set
257# CONFIG_INET6_XFRM_TUNNEL is not set
258# CONFIG_INET6_TUNNEL is not set
256# CONFIG_NETFILTER is not set 259# CONFIG_NETFILTER is not set
257 260
258# 261#
@@ -264,6 +267,11 @@ CONFIG_TCP_CONG_BIC=y
264# SCTP Configuration (EXPERIMENTAL) 267# SCTP Configuration (EXPERIMENTAL)
265# 268#
266# CONFIG_IP_SCTP is not set 269# CONFIG_IP_SCTP is not set
270
271#
272# TIPC Configuration (EXPERIMENTAL)
273#
274# CONFIG_TIPC is not set
267# CONFIG_ATM is not set 275# CONFIG_ATM is not set
268# CONFIG_BRIDGE is not set 276# CONFIG_BRIDGE is not set
269# CONFIG_VLAN_8021Q is not set 277# CONFIG_VLAN_8021Q is not set
@@ -273,11 +281,6 @@ CONFIG_TCP_CONG_BIC=y
273# CONFIG_ATALK is not set 281# CONFIG_ATALK is not set
274# CONFIG_X25 is not set 282# CONFIG_X25 is not set
275# CONFIG_LAPB is not set 283# CONFIG_LAPB is not set
276
277#
278# TIPC Configuration (EXPERIMENTAL)
279#
280# CONFIG_TIPC is not set
281# CONFIG_NET_DIVERT is not set 284# CONFIG_NET_DIVERT is not set
282# CONFIG_ECONET is not set 285# CONFIG_ECONET is not set
283# CONFIG_WAN_ROUTER is not set 286# CONFIG_WAN_ROUTER is not set
@@ -298,6 +301,9 @@ CONFIG_IEEE80211=y
298# CONFIG_IEEE80211_DEBUG is not set 301# CONFIG_IEEE80211_DEBUG is not set
299CONFIG_IEEE80211_CRYPT_WEP=y 302CONFIG_IEEE80211_CRYPT_WEP=y
300CONFIG_IEEE80211_CRYPT_CCMP=y 303CONFIG_IEEE80211_CRYPT_CCMP=y
304CONFIG_IEEE80211_SOFTMAC=y
305# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
306CONFIG_WIRELESS_EXT=y
301 307
302# 308#
303# Device Drivers 309# Device Drivers
@@ -343,7 +349,7 @@ CONFIG_BLK_DEV_LOOP=y
343# CONFIG_BLK_DEV_NBD is not set 349# CONFIG_BLK_DEV_NBD is not set
344# CONFIG_BLK_DEV_SX8 is not set 350# CONFIG_BLK_DEV_SX8 is not set
345# CONFIG_BLK_DEV_RAM is not set 351# CONFIG_BLK_DEV_RAM is not set
346CONFIG_BLK_DEV_RAM_COUNT=16 352# CONFIG_BLK_DEV_INITRD is not set
347CONFIG_CDROM_PKTCDVD=y 353CONFIG_CDROM_PKTCDVD=y
348CONFIG_CDROM_PKTCDVD_BUFFERS=8 354CONFIG_CDROM_PKTCDVD_BUFFERS=8
349# CONFIG_CDROM_PKTCDVD_WCACHE is not set 355# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -593,6 +599,7 @@ CONFIG_HW_CONSOLE=y
593# 599#
594CONFIG_SERIAL_8250=y 600CONFIG_SERIAL_8250=y
595CONFIG_SERIAL_8250_CONSOLE=y 601CONFIG_SERIAL_8250_CONSOLE=y
602CONFIG_SERIAL_8250_PCI=y
596CONFIG_SERIAL_8250_NR_UARTS=4 603CONFIG_SERIAL_8250_NR_UARTS=4
597CONFIG_SERIAL_8250_RUNTIME_UARTS=4 604CONFIG_SERIAL_8250_RUNTIME_UARTS=4
598# CONFIG_SERIAL_8250_EXTENDED is not set 605# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -602,6 +609,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
602# 609#
603CONFIG_SERIAL_CORE=y 610CONFIG_SERIAL_CORE=y
604CONFIG_SERIAL_CORE_CONSOLE=y 611CONFIG_SERIAL_CORE_CONSOLE=y
612# CONFIG_SERIAL_JSM is not set
605CONFIG_UNIX98_PTYS=y 613CONFIG_UNIX98_PTYS=y
606CONFIG_LEGACY_PTYS=y 614CONFIG_LEGACY_PTYS=y
607CONFIG_LEGACY_PTY_COUNT=256 615CONFIG_LEGACY_PTY_COUNT=256
@@ -660,10 +668,6 @@ CONFIG_COBALT_LCD=y
660# 668#
661 669
662# 670#
663# Multimedia Capabilities Port drivers
664#
665
666#
667# Multimedia devices 671# Multimedia devices
668# 672#
669# CONFIG_VIDEO_DEV is not set 673# CONFIG_VIDEO_DEV is not set
@@ -694,6 +698,7 @@ CONFIG_DUMMY_CONSOLE=y
694# 698#
695CONFIG_USB_ARCH_HAS_HCD=y 699CONFIG_USB_ARCH_HAS_HCD=y
696CONFIG_USB_ARCH_HAS_OHCI=y 700CONFIG_USB_ARCH_HAS_OHCI=y
701CONFIG_USB_ARCH_HAS_EHCI=y
697# CONFIG_USB is not set 702# CONFIG_USB is not set
698 703
699# 704#
@@ -711,13 +716,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
711# CONFIG_MMC is not set 716# CONFIG_MMC is not set
712 717
713# 718#
719# LED devices
720#
721# CONFIG_NEW_LEDS is not set
722
723#
724# LED drivers
725#
726
727#
728# LED Triggers
729#
730
731#
714# InfiniBand support 732# InfiniBand support
715# 733#
716# CONFIG_INFINIBAND is not set 734# CONFIG_INFINIBAND is not set
717 735
718# 736#
719# SN Devices 737# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
738#
739
740#
741# Real Time Clock
720# 742#
743# CONFIG_RTC_CLASS is not set
721 744
722# 745#
723# File systems 746# File systems
@@ -765,7 +788,6 @@ CONFIG_SYSFS=y
765# CONFIG_TMPFS is not set 788# CONFIG_TMPFS is not set
766# CONFIG_HUGETLB_PAGE is not set 789# CONFIG_HUGETLB_PAGE is not set
767CONFIG_RAMFS=y 790CONFIG_RAMFS=y
768CONFIG_RELAYFS_FS=y
769# CONFIG_CONFIGFS_FS is not set 791# CONFIG_CONFIGFS_FS is not set
770 792
771# 793#
@@ -828,6 +850,8 @@ CONFIG_MSDOS_PARTITION=y
828# CONFIG_MAGIC_SYSRQ is not set 850# CONFIG_MAGIC_SYSRQ is not set
829# CONFIG_DEBUG_KERNEL is not set 851# CONFIG_DEBUG_KERNEL is not set
830CONFIG_LOG_BUF_SHIFT=14 852CONFIG_LOG_BUF_SHIFT=14
853# CONFIG_DEBUG_FS is not set
854# CONFIG_UNWIND_INFO is not set
831CONFIG_CROSSCOMPILE=y 855CONFIG_CROSSCOMPILE=y
832CONFIG_CMDLINE="" 856CONFIG_CMDLINE=""
833 857
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig
index 7f071403c8e3..579b665e3339 100644
--- a/arch/mips/configs/db1000_defconfig
+++ b/arch/mips/configs/db1000_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:56 2006 4# Mon Apr 24 14:50:57 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1000=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -114,11 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y
114CONFIG_CPU_HAS_PREFETCH=y 116CONFIG_CPU_HAS_PREFETCH=y
115# CONFIG_MIPS_MT is not set 117# CONFIG_MIPS_MT is not set
116CONFIG_64BIT_PHYS_ADDR=y 118CONFIG_64BIT_PHYS_ADDR=y
117# CONFIG_CPU_ADVANCED is not set
118CONFIG_CPU_HAS_LLSC=y 119CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 120CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
121CONFIG_GENERIC_IRQ_PROBE=y 122CONFIG_GENERIC_IRQ_PROBE=y
123CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 124CONFIG_ARCH_FLATMEM_ENABLE=y
123CONFIG_SELECT_MEMORY_MODEL=y 125CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 126CONFIG_FLATMEM_MANUAL=y
@@ -136,7 +138,6 @@ CONFIG_PREEMPT_NONE=y
136# Code maturity level options 138# Code maturity level options
137# 139#
138CONFIG_EXPERIMENTAL=y 140CONFIG_EXPERIMENTAL=y
139CONFIG_CLEAN_COMPILE=y
140CONFIG_BROKEN_ON_SMP=y 141CONFIG_BROKEN_ON_SMP=y
141CONFIG_INIT_ENV_ARG_LIMIT=32 142CONFIG_INIT_ENV_ARG_LIMIT=32
142 143
@@ -152,6 +153,7 @@ CONFIG_SYSVIPC=y
152CONFIG_SYSCTL=y 153CONFIG_SYSCTL=y
153# CONFIG_AUDIT is not set 154# CONFIG_AUDIT is not set
154# CONFIG_IKCONFIG is not set 155# CONFIG_IKCONFIG is not set
156CONFIG_RELAY=y
155CONFIG_INITRAMFS_SOURCE="" 157CONFIG_INITRAMFS_SOURCE=""
156# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 158# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
157CONFIG_EMBEDDED=y 159CONFIG_EMBEDDED=y
@@ -165,10 +167,6 @@ CONFIG_BASE_FULL=y
165CONFIG_FUTEX=y 167CONFIG_FUTEX=y
166CONFIG_EPOLL=y 168CONFIG_EPOLL=y
167CONFIG_SHMEM=y 169CONFIG_SHMEM=y
168CONFIG_CC_ALIGN_FUNCTIONS=0
169CONFIG_CC_ALIGN_LABELS=0
170CONFIG_CC_ALIGN_LOOPS=0
171CONFIG_CC_ALIGN_JUMPS=0
172CONFIG_SLAB=y 170CONFIG_SLAB=y
173# CONFIG_TINY_SHMEM is not set 171# CONFIG_TINY_SHMEM is not set
174CONFIG_BASE_SMALL=0 172CONFIG_BASE_SMALL=0
@@ -181,7 +179,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
181CONFIG_MODULES=y 179CONFIG_MODULES=y
182CONFIG_MODULE_UNLOAD=y 180CONFIG_MODULE_UNLOAD=y
183# CONFIG_MODULE_FORCE_UNLOAD is not set 181# CONFIG_MODULE_FORCE_UNLOAD is not set
184CONFIG_OBSOLETE_MODPARM=y
185CONFIG_MODVERSIONS=y 182CONFIG_MODVERSIONS=y
186CONFIG_MODULE_SRCVERSION_ALL=y 183CONFIG_MODULE_SRCVERSION_ALL=y
187CONFIG_KMOD=y 184CONFIG_KMOD=y
@@ -190,6 +187,8 @@ CONFIG_KMOD=y
190# Block layer 187# Block layer
191# 188#
192# CONFIG_LBD is not set 189# CONFIG_LBD is not set
190# CONFIG_BLK_DEV_IO_TRACE is not set
191# CONFIG_LSF is not set
193 192
194# 193#
195# IO Schedulers 194# IO Schedulers
@@ -245,6 +244,7 @@ CONFIG_NET=y
245# 244#
246# Networking options 245# Networking options
247# 246#
247# CONFIG_NETDEBUG is not set
248CONFIG_PACKET=y 248CONFIG_PACKET=y
249# CONFIG_PACKET_MMAP is not set 249# CONFIG_PACKET_MMAP is not set
250CONFIG_UNIX=y 250CONFIG_UNIX=y
@@ -267,7 +267,8 @@ CONFIG_IP_PNP_BOOTP=y
267# CONFIG_INET_AH is not set 267# CONFIG_INET_AH is not set
268# CONFIG_INET_ESP is not set 268# CONFIG_INET_ESP is not set
269# CONFIG_INET_IPCOMP is not set 269# CONFIG_INET_IPCOMP is not set
270CONFIG_INET_TUNNEL=m 270# CONFIG_INET_XFRM_TUNNEL is not set
271# CONFIG_INET_TUNNEL is not set
271CONFIG_INET_DIAG=y 272CONFIG_INET_DIAG=y
272CONFIG_INET_TCP_DIAG=y 273CONFIG_INET_TCP_DIAG=y
273# CONFIG_TCP_CONG_ADVANCED is not set 274# CONFIG_TCP_CONG_ADVANCED is not set
@@ -278,6 +279,8 @@ CONFIG_TCP_CONG_BIC=y
278# 279#
279# CONFIG_IP_VS is not set 280# CONFIG_IP_VS is not set
280# CONFIG_IPV6 is not set 281# CONFIG_IPV6 is not set
282# CONFIG_INET6_XFRM_TUNNEL is not set
283# CONFIG_INET6_TUNNEL is not set
281CONFIG_NETFILTER=y 284CONFIG_NETFILTER=y
282# CONFIG_NETFILTER_DEBUG is not set 285# CONFIG_NETFILTER_DEBUG is not set
283 286
@@ -294,10 +297,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
294CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 297CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
295CONFIG_NETFILTER_XT_MATCH_COMMENT=m 298CONFIG_NETFILTER_XT_MATCH_COMMENT=m
296CONFIG_NETFILTER_XT_MATCH_DCCP=m 299CONFIG_NETFILTER_XT_MATCH_DCCP=m
300CONFIG_NETFILTER_XT_MATCH_ESP=m
297CONFIG_NETFILTER_XT_MATCH_LENGTH=m 301CONFIG_NETFILTER_XT_MATCH_LENGTH=m
298CONFIG_NETFILTER_XT_MATCH_LIMIT=m 302CONFIG_NETFILTER_XT_MATCH_LIMIT=m
299CONFIG_NETFILTER_XT_MATCH_MAC=m 303CONFIG_NETFILTER_XT_MATCH_MAC=m
300CONFIG_NETFILTER_XT_MATCH_MARK=m 304CONFIG_NETFILTER_XT_MATCH_MARK=m
305CONFIG_NETFILTER_XT_MATCH_POLICY=m
306CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
301CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 307CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
302CONFIG_NETFILTER_XT_MATCH_REALM=m 308CONFIG_NETFILTER_XT_MATCH_REALM=m
303CONFIG_NETFILTER_XT_MATCH_SCTP=m 309CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -321,6 +327,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
321# SCTP Configuration (EXPERIMENTAL) 327# SCTP Configuration (EXPERIMENTAL)
322# 328#
323# CONFIG_IP_SCTP is not set 329# CONFIG_IP_SCTP is not set
330
331#
332# TIPC Configuration (EXPERIMENTAL)
333#
334# CONFIG_TIPC is not set
324# CONFIG_ATM is not set 335# CONFIG_ATM is not set
325# CONFIG_BRIDGE is not set 336# CONFIG_BRIDGE is not set
326# CONFIG_VLAN_8021Q is not set 337# CONFIG_VLAN_8021Q is not set
@@ -330,11 +341,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
330# CONFIG_ATALK is not set 341# CONFIG_ATALK is not set
331# CONFIG_X25 is not set 342# CONFIG_X25 is not set
332# CONFIG_LAPB is not set 343# CONFIG_LAPB is not set
333
334#
335# TIPC Configuration (EXPERIMENTAL)
336#
337# CONFIG_TIPC is not set
338# CONFIG_NET_DIVERT is not set 344# CONFIG_NET_DIVERT is not set
339# CONFIG_ECONET is not set 345# CONFIG_ECONET is not set
340# CONFIG_WAN_ROUTER is not set 346# CONFIG_WAN_ROUTER is not set
@@ -356,6 +362,9 @@ CONFIG_IEEE80211=m
356# CONFIG_IEEE80211_DEBUG is not set 362# CONFIG_IEEE80211_DEBUG is not set
357CONFIG_IEEE80211_CRYPT_WEP=m 363CONFIG_IEEE80211_CRYPT_WEP=m
358CONFIG_IEEE80211_CRYPT_CCMP=m 364CONFIG_IEEE80211_CRYPT_CCMP=m
365CONFIG_IEEE80211_SOFTMAC=m
366# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
367CONFIG_WIRELESS_EXT=y
359 368
360# 369#
361# Device Drivers 370# Device Drivers
@@ -412,7 +421,6 @@ CONFIG_MTD_CFI_I2=y
412# CONFIG_MTD_CFI_I8 is not set 421# CONFIG_MTD_CFI_I8 is not set
413# CONFIG_MTD_CFI_INTELEXT is not set 422# CONFIG_MTD_CFI_INTELEXT is not set
414CONFIG_MTD_CFI_AMDSTD=y 423CONFIG_MTD_CFI_AMDSTD=y
415CONFIG_MTD_CFI_AMDSTD_RETRY=0
416# CONFIG_MTD_CFI_STAA is not set 424# CONFIG_MTD_CFI_STAA is not set
417CONFIG_MTD_CFI_UTIL=y 425CONFIG_MTD_CFI_UTIL=y
418# CONFIG_MTD_RAM is not set 426# CONFIG_MTD_RAM is not set
@@ -434,7 +442,6 @@ CONFIG_MTD_ALCHEMY=y
434# CONFIG_MTD_SLRAM is not set 442# CONFIG_MTD_SLRAM is not set
435# CONFIG_MTD_PHRAM is not set 443# CONFIG_MTD_PHRAM is not set
436# CONFIG_MTD_MTDRAM is not set 444# CONFIG_MTD_MTDRAM is not set
437# CONFIG_MTD_BLKMTD is not set
438# CONFIG_MTD_BLOCK2MTD is not set 445# CONFIG_MTD_BLOCK2MTD is not set
439 446
440# 447#
@@ -471,7 +478,7 @@ CONFIG_BLK_DEV_LOOP=y
471# CONFIG_BLK_DEV_CRYPTOLOOP is not set 478# CONFIG_BLK_DEV_CRYPTOLOOP is not set
472# CONFIG_BLK_DEV_NBD is not set 479# CONFIG_BLK_DEV_NBD is not set
473# CONFIG_BLK_DEV_RAM is not set 480# CONFIG_BLK_DEV_RAM is not set
474CONFIG_BLK_DEV_RAM_COUNT=16 481# CONFIG_BLK_DEV_INITRD is not set
475CONFIG_CDROM_PKTCDVD=m 482CONFIG_CDROM_PKTCDVD=m
476CONFIG_CDROM_PKTCDVD_BUFFERS=8 483CONFIG_CDROM_PKTCDVD_BUFFERS=8
477# CONFIG_CDROM_PKTCDVD_WCACHE is not set 484# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -722,10 +729,6 @@ CONFIG_SYNCLINK_CS=m
722# 729#
723 730
724# 731#
725# Multimedia Capabilities Port drivers
726#
727
728#
729# Multimedia devices 732# Multimedia devices
730# 733#
731# CONFIG_VIDEO_DEV is not set 734# CONFIG_VIDEO_DEV is not set
@@ -756,6 +759,7 @@ CONFIG_DUMMY_CONSOLE=y
756# 759#
757CONFIG_USB_ARCH_HAS_HCD=y 760CONFIG_USB_ARCH_HAS_HCD=y
758CONFIG_USB_ARCH_HAS_OHCI=y 761CONFIG_USB_ARCH_HAS_OHCI=y
762# CONFIG_USB_ARCH_HAS_EHCI is not set
759# CONFIG_USB is not set 763# CONFIG_USB is not set
760 764
761# 765#
@@ -773,12 +777,30 @@ CONFIG_USB_ARCH_HAS_OHCI=y
773# CONFIG_MMC is not set 777# CONFIG_MMC is not set
774 778
775# 779#
780# LED devices
781#
782# CONFIG_NEW_LEDS is not set
783
784#
785# LED drivers
786#
787
788#
789# LED Triggers
790#
791
792#
776# InfiniBand support 793# InfiniBand support
777# 794#
778 795
779# 796#
780# SN Devices 797# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
798#
799
800#
801# Real Time Clock
781# 802#
803# CONFIG_RTC_CLASS is not set
782 804
783# 805#
784# File systems 806# File systems
@@ -836,7 +858,6 @@ CONFIG_SYSFS=y
836CONFIG_TMPFS=y 858CONFIG_TMPFS=y
837# CONFIG_HUGETLB_PAGE is not set 859# CONFIG_HUGETLB_PAGE is not set
838CONFIG_RAMFS=y 860CONFIG_RAMFS=y
839CONFIG_RELAYFS_FS=m
840# CONFIG_CONFIGFS_FS is not set 861# CONFIG_CONFIGFS_FS is not set
841 862
842# 863#
@@ -945,6 +966,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
945# CONFIG_MAGIC_SYSRQ is not set 966# CONFIG_MAGIC_SYSRQ is not set
946# CONFIG_DEBUG_KERNEL is not set 967# CONFIG_DEBUG_KERNEL is not set
947CONFIG_LOG_BUF_SHIFT=14 968CONFIG_LOG_BUF_SHIFT=14
969# CONFIG_DEBUG_FS is not set
948CONFIG_CROSSCOMPILE=y 970CONFIG_CROSSCOMPILE=y
949CONFIG_CMDLINE="" 971CONFIG_CMDLINE=""
950 972
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig
index 98590cac1ec5..e5eb53867422 100644
--- a/arch/mips/configs/db1100_defconfig
+++ b/arch/mips/configs/db1100_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:57 2006 4# Mon Apr 24 14:50:58 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1100=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -114,11 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y
114CONFIG_CPU_HAS_PREFETCH=y 116CONFIG_CPU_HAS_PREFETCH=y
115# CONFIG_MIPS_MT is not set 117# CONFIG_MIPS_MT is not set
116CONFIG_64BIT_PHYS_ADDR=y 118CONFIG_64BIT_PHYS_ADDR=y
117# CONFIG_CPU_ADVANCED is not set
118CONFIG_CPU_HAS_LLSC=y 119CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 120CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
121CONFIG_GENERIC_IRQ_PROBE=y 122CONFIG_GENERIC_IRQ_PROBE=y
123CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 124CONFIG_ARCH_FLATMEM_ENABLE=y
123CONFIG_SELECT_MEMORY_MODEL=y 125CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 126CONFIG_FLATMEM_MANUAL=y
@@ -136,7 +138,6 @@ CONFIG_PREEMPT_NONE=y
136# Code maturity level options 138# Code maturity level options
137# 139#
138CONFIG_EXPERIMENTAL=y 140CONFIG_EXPERIMENTAL=y
139CONFIG_CLEAN_COMPILE=y
140CONFIG_BROKEN_ON_SMP=y 141CONFIG_BROKEN_ON_SMP=y
141CONFIG_INIT_ENV_ARG_LIMIT=32 142CONFIG_INIT_ENV_ARG_LIMIT=32
142 143
@@ -152,6 +153,7 @@ CONFIG_SYSVIPC=y
152CONFIG_SYSCTL=y 153CONFIG_SYSCTL=y
153# CONFIG_AUDIT is not set 154# CONFIG_AUDIT is not set
154# CONFIG_IKCONFIG is not set 155# CONFIG_IKCONFIG is not set
156CONFIG_RELAY=y
155CONFIG_INITRAMFS_SOURCE="" 157CONFIG_INITRAMFS_SOURCE=""
156# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 158# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
157CONFIG_EMBEDDED=y 159CONFIG_EMBEDDED=y
@@ -165,10 +167,6 @@ CONFIG_BASE_FULL=y
165CONFIG_FUTEX=y 167CONFIG_FUTEX=y
166CONFIG_EPOLL=y 168CONFIG_EPOLL=y
167CONFIG_SHMEM=y 169CONFIG_SHMEM=y
168CONFIG_CC_ALIGN_FUNCTIONS=0
169CONFIG_CC_ALIGN_LABELS=0
170CONFIG_CC_ALIGN_LOOPS=0
171CONFIG_CC_ALIGN_JUMPS=0
172CONFIG_SLAB=y 170CONFIG_SLAB=y
173# CONFIG_TINY_SHMEM is not set 171# CONFIG_TINY_SHMEM is not set
174CONFIG_BASE_SMALL=0 172CONFIG_BASE_SMALL=0
@@ -181,7 +179,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
181CONFIG_MODULES=y 179CONFIG_MODULES=y
182CONFIG_MODULE_UNLOAD=y 180CONFIG_MODULE_UNLOAD=y
183# CONFIG_MODULE_FORCE_UNLOAD is not set 181# CONFIG_MODULE_FORCE_UNLOAD is not set
184CONFIG_OBSOLETE_MODPARM=y
185CONFIG_MODVERSIONS=y 182CONFIG_MODVERSIONS=y
186CONFIG_MODULE_SRCVERSION_ALL=y 183CONFIG_MODULE_SRCVERSION_ALL=y
187CONFIG_KMOD=y 184CONFIG_KMOD=y
@@ -190,6 +187,8 @@ CONFIG_KMOD=y
190# Block layer 187# Block layer
191# 188#
192# CONFIG_LBD is not set 189# CONFIG_LBD is not set
190# CONFIG_BLK_DEV_IO_TRACE is not set
191# CONFIG_LSF is not set
193 192
194# 193#
195# IO Schedulers 194# IO Schedulers
@@ -234,6 +233,7 @@ CONFIG_NET=y
234# 233#
235# Networking options 234# Networking options
236# 235#
236# CONFIG_NETDEBUG is not set
237CONFIG_PACKET=y 237CONFIG_PACKET=y
238# CONFIG_PACKET_MMAP is not set 238# CONFIG_PACKET_MMAP is not set
239CONFIG_UNIX=y 239CONFIG_UNIX=y
@@ -256,7 +256,8 @@ CONFIG_IP_PNP_BOOTP=y
256# CONFIG_INET_AH is not set 256# CONFIG_INET_AH is not set
257# CONFIG_INET_ESP is not set 257# CONFIG_INET_ESP is not set
258# CONFIG_INET_IPCOMP is not set 258# CONFIG_INET_IPCOMP is not set
259CONFIG_INET_TUNNEL=m 259# CONFIG_INET_XFRM_TUNNEL is not set
260# CONFIG_INET_TUNNEL is not set
260CONFIG_INET_DIAG=y 261CONFIG_INET_DIAG=y
261CONFIG_INET_TCP_DIAG=y 262CONFIG_INET_TCP_DIAG=y
262# CONFIG_TCP_CONG_ADVANCED is not set 263# CONFIG_TCP_CONG_ADVANCED is not set
@@ -267,6 +268,8 @@ CONFIG_TCP_CONG_BIC=y
267# 268#
268# CONFIG_IP_VS is not set 269# CONFIG_IP_VS is not set
269# CONFIG_IPV6 is not set 270# CONFIG_IPV6 is not set
271# CONFIG_INET6_XFRM_TUNNEL is not set
272# CONFIG_INET6_TUNNEL is not set
270CONFIG_NETFILTER=y 273CONFIG_NETFILTER=y
271# CONFIG_NETFILTER_DEBUG is not set 274# CONFIG_NETFILTER_DEBUG is not set
272 275
@@ -283,10 +286,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
283CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 286CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
284CONFIG_NETFILTER_XT_MATCH_COMMENT=m 287CONFIG_NETFILTER_XT_MATCH_COMMENT=m
285CONFIG_NETFILTER_XT_MATCH_DCCP=m 288CONFIG_NETFILTER_XT_MATCH_DCCP=m
289CONFIG_NETFILTER_XT_MATCH_ESP=m
286CONFIG_NETFILTER_XT_MATCH_LENGTH=m 290CONFIG_NETFILTER_XT_MATCH_LENGTH=m
287CONFIG_NETFILTER_XT_MATCH_LIMIT=m 291CONFIG_NETFILTER_XT_MATCH_LIMIT=m
288CONFIG_NETFILTER_XT_MATCH_MAC=m 292CONFIG_NETFILTER_XT_MATCH_MAC=m
289CONFIG_NETFILTER_XT_MATCH_MARK=m 293CONFIG_NETFILTER_XT_MATCH_MARK=m
294CONFIG_NETFILTER_XT_MATCH_POLICY=m
295CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
290CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 296CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
291CONFIG_NETFILTER_XT_MATCH_REALM=m 297CONFIG_NETFILTER_XT_MATCH_REALM=m
292CONFIG_NETFILTER_XT_MATCH_SCTP=m 298CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -310,6 +316,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
310# SCTP Configuration (EXPERIMENTAL) 316# SCTP Configuration (EXPERIMENTAL)
311# 317#
312# CONFIG_IP_SCTP is not set 318# CONFIG_IP_SCTP is not set
319
320#
321# TIPC Configuration (EXPERIMENTAL)
322#
323# CONFIG_TIPC is not set
313# CONFIG_ATM is not set 324# CONFIG_ATM is not set
314# CONFIG_BRIDGE is not set 325# CONFIG_BRIDGE is not set
315# CONFIG_VLAN_8021Q is not set 326# CONFIG_VLAN_8021Q is not set
@@ -319,11 +330,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
319# CONFIG_ATALK is not set 330# CONFIG_ATALK is not set
320# CONFIG_X25 is not set 331# CONFIG_X25 is not set
321# CONFIG_LAPB is not set 332# CONFIG_LAPB is not set
322
323#
324# TIPC Configuration (EXPERIMENTAL)
325#
326# CONFIG_TIPC is not set
327# CONFIG_NET_DIVERT is not set 333# CONFIG_NET_DIVERT is not set
328# CONFIG_ECONET is not set 334# CONFIG_ECONET is not set
329# CONFIG_WAN_ROUTER is not set 335# CONFIG_WAN_ROUTER is not set
@@ -345,6 +351,9 @@ CONFIG_IEEE80211=m
345# CONFIG_IEEE80211_DEBUG is not set 351# CONFIG_IEEE80211_DEBUG is not set
346CONFIG_IEEE80211_CRYPT_WEP=m 352CONFIG_IEEE80211_CRYPT_WEP=m
347CONFIG_IEEE80211_CRYPT_CCMP=m 353CONFIG_IEEE80211_CRYPT_CCMP=m
354CONFIG_IEEE80211_SOFTMAC=m
355# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
356CONFIG_WIRELESS_EXT=y
348 357
349# 358#
350# Device Drivers 359# Device Drivers
@@ -401,7 +410,6 @@ CONFIG_MTD_CFI_I2=y
401# CONFIG_MTD_CFI_I8 is not set 410# CONFIG_MTD_CFI_I8 is not set
402# CONFIG_MTD_CFI_INTELEXT is not set 411# CONFIG_MTD_CFI_INTELEXT is not set
403CONFIG_MTD_CFI_AMDSTD=y 412CONFIG_MTD_CFI_AMDSTD=y
404CONFIG_MTD_CFI_AMDSTD_RETRY=0
405# CONFIG_MTD_CFI_STAA is not set 413# CONFIG_MTD_CFI_STAA is not set
406CONFIG_MTD_CFI_UTIL=y 414CONFIG_MTD_CFI_UTIL=y
407# CONFIG_MTD_RAM is not set 415# CONFIG_MTD_RAM is not set
@@ -423,7 +431,6 @@ CONFIG_MTD_ALCHEMY=y
423# CONFIG_MTD_SLRAM is not set 431# CONFIG_MTD_SLRAM is not set
424# CONFIG_MTD_PHRAM is not set 432# CONFIG_MTD_PHRAM is not set
425# CONFIG_MTD_MTDRAM is not set 433# CONFIG_MTD_MTDRAM is not set
426# CONFIG_MTD_BLKMTD is not set
427# CONFIG_MTD_BLOCK2MTD is not set 434# CONFIG_MTD_BLOCK2MTD is not set
428 435
429# 436#
@@ -460,7 +467,7 @@ CONFIG_BLK_DEV_LOOP=y
460# CONFIG_BLK_DEV_CRYPTOLOOP is not set 467# CONFIG_BLK_DEV_CRYPTOLOOP is not set
461# CONFIG_BLK_DEV_NBD is not set 468# CONFIG_BLK_DEV_NBD is not set
462# CONFIG_BLK_DEV_RAM is not set 469# CONFIG_BLK_DEV_RAM is not set
463CONFIG_BLK_DEV_RAM_COUNT=16 470# CONFIG_BLK_DEV_INITRD is not set
464CONFIG_CDROM_PKTCDVD=m 471CONFIG_CDROM_PKTCDVD=m
465CONFIG_CDROM_PKTCDVD_BUFFERS=8 472CONFIG_CDROM_PKTCDVD_BUFFERS=8
466# CONFIG_CDROM_PKTCDVD_WCACHE is not set 473# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -690,10 +697,6 @@ CONFIG_LEGACY_PTY_COUNT=256
690# 697#
691 698
692# 699#
693# Multimedia Capabilities Port drivers
694#
695
696#
697# Multimedia devices 700# Multimedia devices
698# 701#
699# CONFIG_VIDEO_DEV is not set 702# CONFIG_VIDEO_DEV is not set
@@ -711,6 +714,7 @@ CONFIG_FB_CFB_FILLRECT=y
711CONFIG_FB_CFB_COPYAREA=y 714CONFIG_FB_CFB_COPYAREA=y
712CONFIG_FB_CFB_IMAGEBLIT=y 715CONFIG_FB_CFB_IMAGEBLIT=y
713# CONFIG_FB_MACMODES is not set 716# CONFIG_FB_MACMODES is not set
717CONFIG_FB_FIRMWARE_EDID=y
714# CONFIG_FB_MODE_HELPERS is not set 718# CONFIG_FB_MODE_HELPERS is not set
715# CONFIG_FB_TILEBLITTING is not set 719# CONFIG_FB_TILEBLITTING is not set
716# CONFIG_FB_S1D13XXX is not set 720# CONFIG_FB_S1D13XXX is not set
@@ -755,6 +759,7 @@ CONFIG_LOGO_LINUX_CLUT224=y
755# 759#
756CONFIG_USB_ARCH_HAS_HCD=y 760CONFIG_USB_ARCH_HAS_HCD=y
757CONFIG_USB_ARCH_HAS_OHCI=y 761CONFIG_USB_ARCH_HAS_OHCI=y
762# CONFIG_USB_ARCH_HAS_EHCI is not set
758# CONFIG_USB is not set 763# CONFIG_USB is not set
759 764
760# 765#
@@ -772,12 +777,30 @@ CONFIG_USB_ARCH_HAS_OHCI=y
772# CONFIG_MMC is not set 777# CONFIG_MMC is not set
773 778
774# 779#
780# LED devices
781#
782# CONFIG_NEW_LEDS is not set
783
784#
785# LED drivers
786#
787
788#
789# LED Triggers
790#
791
792#
775# InfiniBand support 793# InfiniBand support
776# 794#
777 795
778# 796#
779# SN Devices 797# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
798#
799
800#
801# Real Time Clock
780# 802#
803# CONFIG_RTC_CLASS is not set
781 804
782# 805#
783# File systems 806# File systems
@@ -835,7 +858,6 @@ CONFIG_SYSFS=y
835CONFIG_TMPFS=y 858CONFIG_TMPFS=y
836# CONFIG_HUGETLB_PAGE is not set 859# CONFIG_HUGETLB_PAGE is not set
837CONFIG_RAMFS=y 860CONFIG_RAMFS=y
838CONFIG_RELAYFS_FS=m
839# CONFIG_CONFIGFS_FS is not set 861# CONFIG_CONFIGFS_FS is not set
840 862
841# 863#
@@ -944,6 +966,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
944# CONFIG_MAGIC_SYSRQ is not set 966# CONFIG_MAGIC_SYSRQ is not set
945# CONFIG_DEBUG_KERNEL is not set 967# CONFIG_DEBUG_KERNEL is not set
946CONFIG_LOG_BUF_SHIFT=14 968CONFIG_LOG_BUF_SHIFT=14
969# CONFIG_DEBUG_FS is not set
947CONFIG_CROSSCOMPILE=y 970CONFIG_CROSSCOMPILE=y
948CONFIG_CMDLINE="" 971CONFIG_CMDLINE=""
949 972
diff --git a/arch/mips/configs/db1200_defconfig b/arch/mips/configs/db1200_defconfig
index 92888472dca0..a43fb2329fd5 100644
--- a/arch/mips/configs/db1200_defconfig
+++ b/arch/mips/configs/db1200_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:58 2006 4# Mon Apr 24 14:50:58 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1200=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_COHERENT=y 70CONFIG_DMA_COHERENT=y
69CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 71CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
@@ -114,11 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y
114CONFIG_CPU_HAS_PREFETCH=y 116CONFIG_CPU_HAS_PREFETCH=y
115# CONFIG_MIPS_MT is not set 117# CONFIG_MIPS_MT is not set
116CONFIG_64BIT_PHYS_ADDR=y 118CONFIG_64BIT_PHYS_ADDR=y
117# CONFIG_CPU_ADVANCED is not set
118CONFIG_CPU_HAS_LLSC=y 119CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 120CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
121CONFIG_GENERIC_IRQ_PROBE=y 122CONFIG_GENERIC_IRQ_PROBE=y
123CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 124CONFIG_ARCH_FLATMEM_ENABLE=y
123CONFIG_SELECT_MEMORY_MODEL=y 125CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 126CONFIG_FLATMEM_MANUAL=y
@@ -136,7 +138,6 @@ CONFIG_PREEMPT_NONE=y
136# Code maturity level options 138# Code maturity level options
137# 139#
138CONFIG_EXPERIMENTAL=y 140CONFIG_EXPERIMENTAL=y
139CONFIG_CLEAN_COMPILE=y
140CONFIG_BROKEN_ON_SMP=y 141CONFIG_BROKEN_ON_SMP=y
141CONFIG_INIT_ENV_ARG_LIMIT=32 142CONFIG_INIT_ENV_ARG_LIMIT=32
142 143
@@ -153,6 +154,7 @@ CONFIG_SYSCTL=y
153# CONFIG_AUDIT is not set 154# CONFIG_AUDIT is not set
154CONFIG_IKCONFIG=y 155CONFIG_IKCONFIG=y
155CONFIG_IKCONFIG_PROC=y 156CONFIG_IKCONFIG_PROC=y
157# CONFIG_RELAY is not set
156CONFIG_INITRAMFS_SOURCE="" 158CONFIG_INITRAMFS_SOURCE=""
157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 159# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
158CONFIG_EMBEDDED=y 160CONFIG_EMBEDDED=y
@@ -166,10 +168,6 @@ CONFIG_BASE_FULL=y
166CONFIG_FUTEX=y 168CONFIG_FUTEX=y
167CONFIG_EPOLL=y 169CONFIG_EPOLL=y
168CONFIG_SHMEM=y 170CONFIG_SHMEM=y
169CONFIG_CC_ALIGN_FUNCTIONS=0
170CONFIG_CC_ALIGN_LABELS=0
171CONFIG_CC_ALIGN_LOOPS=0
172CONFIG_CC_ALIGN_JUMPS=0
173CONFIG_SLAB=y 171CONFIG_SLAB=y
174# CONFIG_TINY_SHMEM is not set 172# CONFIG_TINY_SHMEM is not set
175CONFIG_BASE_SMALL=0 173CONFIG_BASE_SMALL=0
@@ -182,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
182CONFIG_MODULES=y 180CONFIG_MODULES=y
183CONFIG_MODULE_UNLOAD=y 181CONFIG_MODULE_UNLOAD=y
184# CONFIG_MODULE_FORCE_UNLOAD is not set 182# CONFIG_MODULE_FORCE_UNLOAD is not set
185CONFIG_OBSOLETE_MODPARM=y
186CONFIG_MODVERSIONS=y 183CONFIG_MODVERSIONS=y
187CONFIG_MODULE_SRCVERSION_ALL=y 184CONFIG_MODULE_SRCVERSION_ALL=y
188CONFIG_KMOD=y 185CONFIG_KMOD=y
@@ -191,6 +188,8 @@ CONFIG_KMOD=y
191# Block layer 188# Block layer
192# 189#
193# CONFIG_LBD is not set 190# CONFIG_LBD is not set
191# CONFIG_BLK_DEV_IO_TRACE is not set
192# CONFIG_LSF is not set
194 193
195# 194#
196# IO Schedulers 195# IO Schedulers
@@ -244,6 +243,7 @@ CONFIG_NET=y
244# 243#
245# Networking options 244# Networking options
246# 245#
246# CONFIG_NETDEBUG is not set
247CONFIG_PACKET=y 247CONFIG_PACKET=y
248# CONFIG_PACKET_MMAP is not set 248# CONFIG_PACKET_MMAP is not set
249CONFIG_UNIX=y 249CONFIG_UNIX=y
@@ -263,7 +263,8 @@ CONFIG_IP_FIB_HASH=y
263# CONFIG_INET_AH is not set 263# CONFIG_INET_AH is not set
264# CONFIG_INET_ESP is not set 264# CONFIG_INET_ESP is not set
265# CONFIG_INET_IPCOMP is not set 265# CONFIG_INET_IPCOMP is not set
266CONFIG_INET_TUNNEL=m 266# CONFIG_INET_XFRM_TUNNEL is not set
267# CONFIG_INET_TUNNEL is not set
267CONFIG_INET_DIAG=y 268CONFIG_INET_DIAG=y
268CONFIG_INET_TCP_DIAG=y 269CONFIG_INET_TCP_DIAG=y
269# CONFIG_TCP_CONG_ADVANCED is not set 270# CONFIG_TCP_CONG_ADVANCED is not set
@@ -274,6 +275,8 @@ CONFIG_TCP_CONG_BIC=y
274# 275#
275# CONFIG_IP_VS is not set 276# CONFIG_IP_VS is not set
276# CONFIG_IPV6 is not set 277# CONFIG_IPV6 is not set
278# CONFIG_INET6_XFRM_TUNNEL is not set
279# CONFIG_INET6_TUNNEL is not set
277CONFIG_NETFILTER=y 280CONFIG_NETFILTER=y
278# CONFIG_NETFILTER_DEBUG is not set 281# CONFIG_NETFILTER_DEBUG is not set
279 282
@@ -288,10 +291,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
288CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 291CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
289CONFIG_NETFILTER_XT_MATCH_COMMENT=m 292CONFIG_NETFILTER_XT_MATCH_COMMENT=m
290CONFIG_NETFILTER_XT_MATCH_DCCP=m 293CONFIG_NETFILTER_XT_MATCH_DCCP=m
294CONFIG_NETFILTER_XT_MATCH_ESP=m
291CONFIG_NETFILTER_XT_MATCH_LENGTH=m 295CONFIG_NETFILTER_XT_MATCH_LENGTH=m
292CONFIG_NETFILTER_XT_MATCH_LIMIT=m 296CONFIG_NETFILTER_XT_MATCH_LIMIT=m
293CONFIG_NETFILTER_XT_MATCH_MAC=m 297CONFIG_NETFILTER_XT_MATCH_MAC=m
294CONFIG_NETFILTER_XT_MATCH_MARK=m 298CONFIG_NETFILTER_XT_MATCH_MARK=m
299CONFIG_NETFILTER_XT_MATCH_POLICY=m
300CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
295CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 301CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
296CONFIG_NETFILTER_XT_MATCH_REALM=m 302CONFIG_NETFILTER_XT_MATCH_REALM=m
297CONFIG_NETFILTER_XT_MATCH_SCTP=m 303CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -315,6 +321,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
315# SCTP Configuration (EXPERIMENTAL) 321# SCTP Configuration (EXPERIMENTAL)
316# 322#
317# CONFIG_IP_SCTP is not set 323# CONFIG_IP_SCTP is not set
324
325#
326# TIPC Configuration (EXPERIMENTAL)
327#
328# CONFIG_TIPC is not set
318# CONFIG_ATM is not set 329# CONFIG_ATM is not set
319# CONFIG_BRIDGE is not set 330# CONFIG_BRIDGE is not set
320# CONFIG_VLAN_8021Q is not set 331# CONFIG_VLAN_8021Q is not set
@@ -324,11 +335,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
324# CONFIG_ATALK is not set 335# CONFIG_ATALK is not set
325# CONFIG_X25 is not set 336# CONFIG_X25 is not set
326# CONFIG_LAPB is not set 337# CONFIG_LAPB is not set
327
328#
329# TIPC Configuration (EXPERIMENTAL)
330#
331# CONFIG_TIPC is not set
332# CONFIG_NET_DIVERT is not set 338# CONFIG_NET_DIVERT is not set
333# CONFIG_ECONET is not set 339# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 340# CONFIG_WAN_ROUTER is not set
@@ -403,7 +409,6 @@ CONFIG_MTD_CFI_I2=y
403# CONFIG_MTD_CFI_I8 is not set 409# CONFIG_MTD_CFI_I8 is not set
404# CONFIG_MTD_CFI_INTELEXT is not set 410# CONFIG_MTD_CFI_INTELEXT is not set
405CONFIG_MTD_CFI_AMDSTD=y 411CONFIG_MTD_CFI_AMDSTD=y
406CONFIG_MTD_CFI_AMDSTD_RETRY=0
407# CONFIG_MTD_CFI_STAA is not set 412# CONFIG_MTD_CFI_STAA is not set
408CONFIG_MTD_CFI_UTIL=y 413CONFIG_MTD_CFI_UTIL=y
409# CONFIG_MTD_RAM is not set 414# CONFIG_MTD_RAM is not set
@@ -425,7 +430,6 @@ CONFIG_MTD_ALCHEMY=y
425# CONFIG_MTD_SLRAM is not set 430# CONFIG_MTD_SLRAM is not set
426# CONFIG_MTD_PHRAM is not set 431# CONFIG_MTD_PHRAM is not set
427# CONFIG_MTD_MTDRAM is not set 432# CONFIG_MTD_MTDRAM is not set
428# CONFIG_MTD_BLKMTD is not set
429# CONFIG_MTD_BLOCK2MTD is not set 433# CONFIG_MTD_BLOCK2MTD is not set
430 434
431# 435#
@@ -763,10 +767,6 @@ CONFIG_LEGACY_PTY_COUNT=256
763# 767#
764 768
765# 769#
766# Multimedia Capabilities Port drivers
767#
768
769#
770# Multimedia devices 770# Multimedia devices
771# 771#
772# CONFIG_VIDEO_DEV is not set 772# CONFIG_VIDEO_DEV is not set
@@ -784,6 +784,7 @@ CONFIG_FB_CFB_FILLRECT=y
784CONFIG_FB_CFB_COPYAREA=y 784CONFIG_FB_CFB_COPYAREA=y
785CONFIG_FB_CFB_IMAGEBLIT=y 785CONFIG_FB_CFB_IMAGEBLIT=y
786# CONFIG_FB_MACMODES is not set 786# CONFIG_FB_MACMODES is not set
787CONFIG_FB_FIRMWARE_EDID=y
787# CONFIG_FB_MODE_HELPERS is not set 788# CONFIG_FB_MODE_HELPERS is not set
788# CONFIG_FB_TILEBLITTING is not set 789# CONFIG_FB_TILEBLITTING is not set
789# CONFIG_FB_S1D13XXX is not set 790# CONFIG_FB_S1D13XXX is not set
@@ -794,6 +795,7 @@ CONFIG_FB_AU1200=y
794# Console display driver support 795# Console display driver support
795# 796#
796CONFIG_VGA_CONSOLE=y 797CONFIG_VGA_CONSOLE=y
798# CONFIG_VGACON_SOFT_SCROLLBACK is not set
797CONFIG_DUMMY_CONSOLE=y 799CONFIG_DUMMY_CONSOLE=y
798# CONFIG_FRAMEBUFFER_CONSOLE is not set 800# CONFIG_FRAMEBUFFER_CONSOLE is not set
799 801
@@ -816,6 +818,7 @@ CONFIG_LOGO_LINUX_CLUT224=y
816# 818#
817CONFIG_USB_ARCH_HAS_HCD=y 819CONFIG_USB_ARCH_HAS_HCD=y
818CONFIG_USB_ARCH_HAS_OHCI=y 820CONFIG_USB_ARCH_HAS_OHCI=y
821CONFIG_USB_ARCH_HAS_EHCI=y
819# CONFIG_USB is not set 822# CONFIG_USB is not set
820 823
821# 824#
@@ -832,6 +835,7 @@ CONFIG_USB_GADGET=m
832# CONFIG_USB_GADGET_GOKU is not set 835# CONFIG_USB_GADGET_GOKU is not set
833# CONFIG_USB_GADGET_LH7A40X is not set 836# CONFIG_USB_GADGET_LH7A40X is not set
834# CONFIG_USB_GADGET_OMAP is not set 837# CONFIG_USB_GADGET_OMAP is not set
838# CONFIG_USB_GADGET_AT91 is not set
835# CONFIG_USB_GADGET_DUMMY_HCD is not set 839# CONFIG_USB_GADGET_DUMMY_HCD is not set
836# CONFIG_USB_GADGET_DUALSPEED is not set 840# CONFIG_USB_GADGET_DUALSPEED is not set
837 841
@@ -844,12 +848,30 @@ CONFIG_MMC_BLOCK=y
844CONFIG_MMC_AU1X=y 848CONFIG_MMC_AU1X=y
845 849
846# 850#
851# LED devices
852#
853# CONFIG_NEW_LEDS is not set
854
855#
856# LED drivers
857#
858
859#
860# LED Triggers
861#
862
863#
847# InfiniBand support 864# InfiniBand support
848# 865#
849 866
850# 867#
851# SN Devices 868# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
869#
870
871#
872# Real Time Clock
852# 873#
874# CONFIG_RTC_CLASS is not set
853 875
854# 876#
855# File systems 877# File systems
@@ -913,7 +935,6 @@ CONFIG_SYSFS=y
913CONFIG_TMPFS=y 935CONFIG_TMPFS=y
914# CONFIG_HUGETLB_PAGE is not set 936# CONFIG_HUGETLB_PAGE is not set
915CONFIG_RAMFS=y 937CONFIG_RAMFS=y
916# CONFIG_RELAYFS_FS is not set
917# CONFIG_CONFIGFS_FS is not set 938# CONFIG_CONFIGFS_FS is not set
918 939
919# 940#
@@ -1027,6 +1048,7 @@ CONFIG_NLS_UTF8=m
1027# CONFIG_MAGIC_SYSRQ is not set 1048# CONFIG_MAGIC_SYSRQ is not set
1028# CONFIG_DEBUG_KERNEL is not set 1049# CONFIG_DEBUG_KERNEL is not set
1029CONFIG_LOG_BUF_SHIFT=14 1050CONFIG_LOG_BUF_SHIFT=14
1051# CONFIG_DEBUG_FS is not set
1030CONFIG_CROSSCOMPILE=y 1052CONFIG_CROSSCOMPILE=y
1031CONFIG_CMDLINE="mem=48M" 1053CONFIG_CMDLINE="mem=48M"
1032 1054
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig
index 5a415b1d4af0..ad632d87c4ef 100644
--- a/arch/mips/configs/db1500_defconfig
+++ b/arch/mips/configs/db1500_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:59 2006 4# Mon Apr 24 14:50:59 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1500=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -116,11 +118,11 @@ CONFIG_PAGE_SIZE_4KB=y
116CONFIG_CPU_HAS_PREFETCH=y 118CONFIG_CPU_HAS_PREFETCH=y
117# CONFIG_MIPS_MT is not set 119# CONFIG_MIPS_MT is not set
118CONFIG_64BIT_PHYS_ADDR=y 120CONFIG_64BIT_PHYS_ADDR=y
119# CONFIG_CPU_ADVANCED is not set
120CONFIG_CPU_HAS_LLSC=y 121CONFIG_CPU_HAS_LLSC=y
121CONFIG_CPU_HAS_SYNC=y 122CONFIG_CPU_HAS_SYNC=y
122CONFIG_GENERIC_HARDIRQS=y 123CONFIG_GENERIC_HARDIRQS=y
123CONFIG_GENERIC_IRQ_PROBE=y 124CONFIG_GENERIC_IRQ_PROBE=y
125CONFIG_CPU_SUPPORTS_HIGHMEM=y
124CONFIG_ARCH_FLATMEM_ENABLE=y 126CONFIG_ARCH_FLATMEM_ENABLE=y
125CONFIG_SELECT_MEMORY_MODEL=y 127CONFIG_SELECT_MEMORY_MODEL=y
126CONFIG_FLATMEM_MANUAL=y 128CONFIG_FLATMEM_MANUAL=y
@@ -138,7 +140,6 @@ CONFIG_PREEMPT_NONE=y
138# Code maturity level options 140# Code maturity level options
139# 141#
140CONFIG_EXPERIMENTAL=y 142CONFIG_EXPERIMENTAL=y
141CONFIG_CLEAN_COMPILE=y
142CONFIG_BROKEN_ON_SMP=y 143CONFIG_BROKEN_ON_SMP=y
143CONFIG_INIT_ENV_ARG_LIMIT=32 144CONFIG_INIT_ENV_ARG_LIMIT=32
144 145
@@ -154,6 +155,7 @@ CONFIG_SYSVIPC=y
154CONFIG_SYSCTL=y 155CONFIG_SYSCTL=y
155# CONFIG_AUDIT is not set 156# CONFIG_AUDIT is not set
156# CONFIG_IKCONFIG is not set 157# CONFIG_IKCONFIG is not set
158CONFIG_RELAY=y
157CONFIG_INITRAMFS_SOURCE="" 159CONFIG_INITRAMFS_SOURCE=""
158# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 160# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
159CONFIG_EMBEDDED=y 161CONFIG_EMBEDDED=y
@@ -167,10 +169,6 @@ CONFIG_BASE_FULL=y
167CONFIG_FUTEX=y 169CONFIG_FUTEX=y
168CONFIG_EPOLL=y 170CONFIG_EPOLL=y
169CONFIG_SHMEM=y 171CONFIG_SHMEM=y
170CONFIG_CC_ALIGN_FUNCTIONS=0
171CONFIG_CC_ALIGN_LABELS=0
172CONFIG_CC_ALIGN_LOOPS=0
173CONFIG_CC_ALIGN_JUMPS=0
174CONFIG_SLAB=y 172CONFIG_SLAB=y
175# CONFIG_TINY_SHMEM is not set 173# CONFIG_TINY_SHMEM is not set
176CONFIG_BASE_SMALL=0 174CONFIG_BASE_SMALL=0
@@ -183,7 +181,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
183CONFIG_MODULES=y 181CONFIG_MODULES=y
184CONFIG_MODULE_UNLOAD=y 182CONFIG_MODULE_UNLOAD=y
185# CONFIG_MODULE_FORCE_UNLOAD is not set 183# CONFIG_MODULE_FORCE_UNLOAD is not set
186CONFIG_OBSOLETE_MODPARM=y
187CONFIG_MODVERSIONS=y 184CONFIG_MODVERSIONS=y
188CONFIG_MODULE_SRCVERSION_ALL=y 185CONFIG_MODULE_SRCVERSION_ALL=y
189CONFIG_KMOD=y 186CONFIG_KMOD=y
@@ -192,6 +189,8 @@ CONFIG_KMOD=y
192# Block layer 189# Block layer
193# 190#
194# CONFIG_LBD is not set 191# CONFIG_LBD is not set
192# CONFIG_BLK_DEV_IO_TRACE is not set
193# CONFIG_LSF is not set
195 194
196# 195#
197# IO Schedulers 196# IO Schedulers
@@ -211,7 +210,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
211# 210#
212CONFIG_HW_HAS_PCI=y 211CONFIG_HW_HAS_PCI=y
213CONFIG_PCI=y 212CONFIG_PCI=y
214CONFIG_PCI_LEGACY_PROC=y
215CONFIG_MMU=y 213CONFIG_MMU=y
216 214
217# 215#
@@ -253,6 +251,7 @@ CONFIG_NET=y
253# 251#
254# Networking options 252# Networking options
255# 253#
254# CONFIG_NETDEBUG is not set
256CONFIG_PACKET=y 255CONFIG_PACKET=y
257# CONFIG_PACKET_MMAP is not set 256# CONFIG_PACKET_MMAP is not set
258CONFIG_UNIX=y 257CONFIG_UNIX=y
@@ -275,7 +274,8 @@ CONFIG_IP_PNP_BOOTP=y
275# CONFIG_INET_AH is not set 274# CONFIG_INET_AH is not set
276# CONFIG_INET_ESP is not set 275# CONFIG_INET_ESP is not set
277# CONFIG_INET_IPCOMP is not set 276# CONFIG_INET_IPCOMP is not set
278CONFIG_INET_TUNNEL=m 277# CONFIG_INET_XFRM_TUNNEL is not set
278# CONFIG_INET_TUNNEL is not set
279CONFIG_INET_DIAG=y 279CONFIG_INET_DIAG=y
280CONFIG_INET_TCP_DIAG=y 280CONFIG_INET_TCP_DIAG=y
281# CONFIG_TCP_CONG_ADVANCED is not set 281# CONFIG_TCP_CONG_ADVANCED is not set
@@ -286,6 +286,8 @@ CONFIG_TCP_CONG_BIC=y
286# 286#
287# CONFIG_IP_VS is not set 287# CONFIG_IP_VS is not set
288# CONFIG_IPV6 is not set 288# CONFIG_IPV6 is not set
289# CONFIG_INET6_XFRM_TUNNEL is not set
290# CONFIG_INET6_TUNNEL is not set
289CONFIG_NETFILTER=y 291CONFIG_NETFILTER=y
290# CONFIG_NETFILTER_DEBUG is not set 292# CONFIG_NETFILTER_DEBUG is not set
291 293
@@ -302,10 +304,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
302CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 304CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
303CONFIG_NETFILTER_XT_MATCH_COMMENT=m 305CONFIG_NETFILTER_XT_MATCH_COMMENT=m
304CONFIG_NETFILTER_XT_MATCH_DCCP=m 306CONFIG_NETFILTER_XT_MATCH_DCCP=m
307CONFIG_NETFILTER_XT_MATCH_ESP=m
305CONFIG_NETFILTER_XT_MATCH_LENGTH=m 308CONFIG_NETFILTER_XT_MATCH_LENGTH=m
306CONFIG_NETFILTER_XT_MATCH_LIMIT=m 309CONFIG_NETFILTER_XT_MATCH_LIMIT=m
307CONFIG_NETFILTER_XT_MATCH_MAC=m 310CONFIG_NETFILTER_XT_MATCH_MAC=m
308CONFIG_NETFILTER_XT_MATCH_MARK=m 311CONFIG_NETFILTER_XT_MATCH_MARK=m
312CONFIG_NETFILTER_XT_MATCH_POLICY=m
313CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
309CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 314CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
310CONFIG_NETFILTER_XT_MATCH_REALM=m 315CONFIG_NETFILTER_XT_MATCH_REALM=m
311CONFIG_NETFILTER_XT_MATCH_SCTP=m 316CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -329,6 +334,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
329# SCTP Configuration (EXPERIMENTAL) 334# SCTP Configuration (EXPERIMENTAL)
330# 335#
331# CONFIG_IP_SCTP is not set 336# CONFIG_IP_SCTP is not set
337
338#
339# TIPC Configuration (EXPERIMENTAL)
340#
341# CONFIG_TIPC is not set
332# CONFIG_ATM is not set 342# CONFIG_ATM is not set
333# CONFIG_BRIDGE is not set 343# CONFIG_BRIDGE is not set
334# CONFIG_VLAN_8021Q is not set 344# CONFIG_VLAN_8021Q is not set
@@ -338,11 +348,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
338# CONFIG_ATALK is not set 348# CONFIG_ATALK is not set
339# CONFIG_X25 is not set 349# CONFIG_X25 is not set
340# CONFIG_LAPB is not set 350# CONFIG_LAPB is not set
341
342#
343# TIPC Configuration (EXPERIMENTAL)
344#
345# CONFIG_TIPC is not set
346# CONFIG_NET_DIVERT is not set 351# CONFIG_NET_DIVERT is not set
347# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
348# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
@@ -364,6 +369,9 @@ CONFIG_IEEE80211=m
364# CONFIG_IEEE80211_DEBUG is not set 369# CONFIG_IEEE80211_DEBUG is not set
365CONFIG_IEEE80211_CRYPT_WEP=m 370CONFIG_IEEE80211_CRYPT_WEP=m
366CONFIG_IEEE80211_CRYPT_CCMP=m 371CONFIG_IEEE80211_CRYPT_CCMP=m
372CONFIG_IEEE80211_SOFTMAC=m
373# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
374CONFIG_WIRELESS_EXT=y
367 375
368# 376#
369# Device Drivers 377# Device Drivers
@@ -420,7 +428,6 @@ CONFIG_MTD_CFI_I2=y
420# CONFIG_MTD_CFI_I8 is not set 428# CONFIG_MTD_CFI_I8 is not set
421CONFIG_MTD_CFI_INTELEXT=y 429CONFIG_MTD_CFI_INTELEXT=y
422CONFIG_MTD_CFI_AMDSTD=y 430CONFIG_MTD_CFI_AMDSTD=y
423CONFIG_MTD_CFI_AMDSTD_RETRY=0
424# CONFIG_MTD_CFI_STAA is not set 431# CONFIG_MTD_CFI_STAA is not set
425CONFIG_MTD_CFI_UTIL=y 432CONFIG_MTD_CFI_UTIL=y
426# CONFIG_MTD_RAM is not set 433# CONFIG_MTD_RAM is not set
@@ -443,7 +450,6 @@ CONFIG_MTD_ALCHEMY=y
443# CONFIG_MTD_SLRAM is not set 450# CONFIG_MTD_SLRAM is not set
444# CONFIG_MTD_PHRAM is not set 451# CONFIG_MTD_PHRAM is not set
445# CONFIG_MTD_MTDRAM is not set 452# CONFIG_MTD_MTDRAM is not set
446# CONFIG_MTD_BLKMTD is not set
447# CONFIG_MTD_BLOCK2MTD is not set 453# CONFIG_MTD_BLOCK2MTD is not set
448 454
449# 455#
@@ -486,7 +492,7 @@ CONFIG_BLK_DEV_LOOP=y
486# CONFIG_BLK_DEV_SX8 is not set 492# CONFIG_BLK_DEV_SX8 is not set
487# CONFIG_BLK_DEV_UB is not set 493# CONFIG_BLK_DEV_UB is not set
488# CONFIG_BLK_DEV_RAM is not set 494# CONFIG_BLK_DEV_RAM is not set
489CONFIG_BLK_DEV_RAM_COUNT=16 495# CONFIG_BLK_DEV_INITRD is not set
490CONFIG_CDROM_PKTCDVD=m 496CONFIG_CDROM_PKTCDVD=m
491CONFIG_CDROM_PKTCDVD_BUFFERS=8 497CONFIG_CDROM_PKTCDVD_BUFFERS=8
492# CONFIG_CDROM_PKTCDVD_WCACHE is not set 498# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -714,6 +720,7 @@ CONFIG_SERIO_RAW=m
714# 720#
715CONFIG_SERIAL_8250=y 721CONFIG_SERIAL_8250=y
716CONFIG_SERIAL_8250_CONSOLE=y 722CONFIG_SERIAL_8250_CONSOLE=y
723CONFIG_SERIAL_8250_PCI=y
717# CONFIG_SERIAL_8250_CS is not set 724# CONFIG_SERIAL_8250_CS is not set
718CONFIG_SERIAL_8250_NR_UARTS=4 725CONFIG_SERIAL_8250_NR_UARTS=4
719CONFIG_SERIAL_8250_RUNTIME_UARTS=4 726CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -725,6 +732,7 @@ CONFIG_SERIAL_8250_AU1X00=y
725# 732#
726CONFIG_SERIAL_CORE=y 733CONFIG_SERIAL_CORE=y
727CONFIG_SERIAL_CORE_CONSOLE=y 734CONFIG_SERIAL_CORE_CONSOLE=y
735# CONFIG_SERIAL_JSM is not set
728CONFIG_UNIX98_PTYS=y 736CONFIG_UNIX98_PTYS=y
729CONFIG_LEGACY_PTYS=y 737CONFIG_LEGACY_PTYS=y
730CONFIG_LEGACY_PTY_COUNT=256 738CONFIG_LEGACY_PTY_COUNT=256
@@ -790,10 +798,6 @@ CONFIG_SYNCLINK_CS=m
790# 798#
791 799
792# 800#
793# Multimedia Capabilities Port drivers
794#
795
796#
797# Multimedia devices 801# Multimedia devices
798# 802#
799# CONFIG_VIDEO_DEV is not set 803# CONFIG_VIDEO_DEV is not set
@@ -802,6 +806,7 @@ CONFIG_SYNCLINK_CS=m
802# Digital Video Broadcasting Devices 806# Digital Video Broadcasting Devices
803# 807#
804# CONFIG_DVB is not set 808# CONFIG_DVB is not set
809# CONFIG_USB_DABUSB is not set
805 810
806# 811#
807# Graphics support 812# Graphics support
@@ -825,9 +830,11 @@ CONFIG_SND_SEQ_DUMMY=m
825CONFIG_SND_OSSEMUL=y 830CONFIG_SND_OSSEMUL=y
826CONFIG_SND_MIXER_OSS=m 831CONFIG_SND_MIXER_OSS=m
827CONFIG_SND_PCM_OSS=m 832CONFIG_SND_PCM_OSS=m
833CONFIG_SND_PCM_OSS_PLUGINS=y
828CONFIG_SND_SEQUENCER_OSS=y 834CONFIG_SND_SEQUENCER_OSS=y
829# CONFIG_SND_DYNAMIC_MINORS is not set 835# CONFIG_SND_DYNAMIC_MINORS is not set
830CONFIG_SND_SUPPORT_OLD_API=y 836CONFIG_SND_SUPPORT_OLD_API=y
837CONFIG_SND_VERBOSE_PROCFS=y
831# CONFIG_SND_VERBOSE_PRINTK is not set 838# CONFIG_SND_VERBOSE_PRINTK is not set
832# CONFIG_SND_DEBUG is not set 839# CONFIG_SND_DEBUG is not set
833 840
@@ -846,6 +853,7 @@ CONFIG_SND_MTPAV=m
846# PCI devices 853# PCI devices
847# 854#
848# CONFIG_SND_AD1889 is not set 855# CONFIG_SND_AD1889 is not set
856# CONFIG_SND_ALS300 is not set
849# CONFIG_SND_ALI5451 is not set 857# CONFIG_SND_ALI5451 is not set
850# CONFIG_SND_ATIIXP is not set 858# CONFIG_SND_ATIIXP is not set
851# CONFIG_SND_ATIIXP_MODEM is not set 859# CONFIG_SND_ATIIXP_MODEM is not set
@@ -877,6 +885,7 @@ CONFIG_SND_MTPAV=m
877# CONFIG_SND_MIXART is not set 885# CONFIG_SND_MIXART is not set
878# CONFIG_SND_NM256 is not set 886# CONFIG_SND_NM256 is not set
879# CONFIG_SND_PCXHR is not set 887# CONFIG_SND_PCXHR is not set
888# CONFIG_SND_RIPTIDE is not set
880# CONFIG_SND_RME32 is not set 889# CONFIG_SND_RME32 is not set
881# CONFIG_SND_RME96 is not set 890# CONFIG_SND_RME96 is not set
882# CONFIG_SND_RME9652 is not set 891# CONFIG_SND_RME9652 is not set
@@ -905,34 +914,22 @@ CONFIG_SND_AU1X00=m
905# Open Sound System 914# Open Sound System
906# 915#
907CONFIG_SOUND_PRIME=y 916CONFIG_SOUND_PRIME=y
908CONFIG_OBSOLETE_OSS_DRIVER=y
909# CONFIG_SOUND_BT878 is not set 917# CONFIG_SOUND_BT878 is not set
910# CONFIG_SOUND_CMPCI is not set
911# CONFIG_SOUND_EMU10K1 is not set 918# CONFIG_SOUND_EMU10K1 is not set
912# CONFIG_SOUND_FUSION is not set 919# CONFIG_SOUND_FUSION is not set
913# CONFIG_SOUND_CS4281 is not set
914# CONFIG_SOUND_ES1370 is not set
915# CONFIG_SOUND_ES1371 is not set 920# CONFIG_SOUND_ES1371 is not set
916# CONFIG_SOUND_ESSSOLO1 is not set
917# CONFIG_SOUND_MAESTRO is not set
918# CONFIG_SOUND_MAESTRO3 is not set
919# CONFIG_SOUND_ICH is not set 921# CONFIG_SOUND_ICH is not set
920# CONFIG_SOUND_SONICVIBES is not set
921# CONFIG_SOUND_AU1000 is not set
922# CONFIG_SOUND_TRIDENT is not set 922# CONFIG_SOUND_TRIDENT is not set
923# CONFIG_SOUND_MSNDCLAS is not set 923# CONFIG_SOUND_MSNDCLAS is not set
924# CONFIG_SOUND_MSNDPIN is not set 924# CONFIG_SOUND_MSNDPIN is not set
925# CONFIG_SOUND_VIA82CXXX is not set 925# CONFIG_SOUND_VIA82CXXX is not set
926# CONFIG_SOUND_ALI5455 is not set
927# CONFIG_SOUND_FORTE is not set
928# CONFIG_SOUND_RME96XX is not set
929# CONFIG_SOUND_AD1980 is not set
930 926
931# 927#
932# USB support 928# USB support
933# 929#
934CONFIG_USB_ARCH_HAS_HCD=y 930CONFIG_USB_ARCH_HAS_HCD=y
935CONFIG_USB_ARCH_HAS_OHCI=y 931CONFIG_USB_ARCH_HAS_OHCI=y
932CONFIG_USB_ARCH_HAS_EHCI=y
936CONFIG_USB=y 933CONFIG_USB=y
937# CONFIG_USB_DEBUG is not set 934# CONFIG_USB_DEBUG is not set
938 935
@@ -958,7 +955,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
958# 955#
959# USB Device Class drivers 956# USB Device Class drivers
960# 957#
961# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set
962# CONFIG_USB_ACM is not set 958# CONFIG_USB_ACM is not set
963# CONFIG_USB_PRINTER is not set 959# CONFIG_USB_PRINTER is not set
964 960
@@ -985,9 +981,7 @@ CONFIG_USB_HIDINPUT=y
985# CONFIG_USB_ACECAD is not set 981# CONFIG_USB_ACECAD is not set
986# CONFIG_USB_KBTAB is not set 982# CONFIG_USB_KBTAB is not set
987# CONFIG_USB_POWERMATE is not set 983# CONFIG_USB_POWERMATE is not set
988# CONFIG_USB_MTOUCH is not set 984# CONFIG_USB_TOUCHSCREEN is not set
989# CONFIG_USB_ITMTOUCH is not set
990# CONFIG_USB_EGALAX is not set
991CONFIG_USB_YEALINK=m 985CONFIG_USB_YEALINK=m
992# CONFIG_USB_XPAD is not set 986# CONFIG_USB_XPAD is not set
993# CONFIG_USB_ATI_REMOTE is not set 987# CONFIG_USB_ATI_REMOTE is not set
@@ -1001,15 +995,6 @@ CONFIG_USB_YEALINK=m
1001# CONFIG_USB_MDC800 is not set 995# CONFIG_USB_MDC800 is not set
1002 996
1003# 997#
1004# USB Multimedia devices
1005#
1006# CONFIG_USB_DABUSB is not set
1007
1008#
1009# Video4Linux support is needed for USB Multimedia device support
1010#
1011
1012#
1013# USB Network Adapters 998# USB Network Adapters
1014# 999#
1015# CONFIG_USB_CATC is not set 1000# CONFIG_USB_CATC is not set
@@ -1059,13 +1044,31 @@ CONFIG_USB_LD=m
1059# CONFIG_MMC is not set 1044# CONFIG_MMC is not set
1060 1045
1061# 1046#
1047# LED devices
1048#
1049# CONFIG_NEW_LEDS is not set
1050
1051#
1052# LED drivers
1053#
1054
1055#
1056# LED Triggers
1057#
1058
1059#
1062# InfiniBand support 1060# InfiniBand support
1063# 1061#
1064# CONFIG_INFINIBAND is not set 1062# CONFIG_INFINIBAND is not set
1065 1063
1066# 1064#
1067# SN Devices 1065# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1066#
1067
1068#
1069# Real Time Clock
1068# 1070#
1071# CONFIG_RTC_CLASS is not set
1069 1072
1070# 1073#
1071# File systems 1074# File systems
@@ -1123,7 +1126,6 @@ CONFIG_SYSFS=y
1123CONFIG_TMPFS=y 1126CONFIG_TMPFS=y
1124# CONFIG_HUGETLB_PAGE is not set 1127# CONFIG_HUGETLB_PAGE is not set
1125CONFIG_RAMFS=y 1128CONFIG_RAMFS=y
1126CONFIG_RELAYFS_FS=m
1127# CONFIG_CONFIGFS_FS is not set 1129# CONFIG_CONFIGFS_FS is not set
1128 1130
1129# 1131#
@@ -1232,6 +1234,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1232# CONFIG_MAGIC_SYSRQ is not set 1234# CONFIG_MAGIC_SYSRQ is not set
1233# CONFIG_DEBUG_KERNEL is not set 1235# CONFIG_DEBUG_KERNEL is not set
1234CONFIG_LOG_BUF_SHIFT=14 1236CONFIG_LOG_BUF_SHIFT=14
1237# CONFIG_DEBUG_FS is not set
1235CONFIG_CROSSCOMPILE=y 1238CONFIG_CROSSCOMPILE=y
1236CONFIG_CMDLINE="" 1239CONFIG_CMDLINE=""
1237 1240
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig
index 8dc1f18badfe..8130e23dc255 100644
--- a/arch/mips/configs/db1550_defconfig
+++ b/arch/mips/configs/db1550_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:00 2006 4# Mon Apr 24 14:51:00 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1550=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -115,11 +117,11 @@ CONFIG_PAGE_SIZE_4KB=y
115CONFIG_CPU_HAS_PREFETCH=y 117CONFIG_CPU_HAS_PREFETCH=y
116# CONFIG_MIPS_MT is not set 118# CONFIG_MIPS_MT is not set
117CONFIG_64BIT_PHYS_ADDR=y 119CONFIG_64BIT_PHYS_ADDR=y
118# CONFIG_CPU_ADVANCED is not set
119CONFIG_CPU_HAS_LLSC=y 120CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 121CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y 122CONFIG_GENERIC_HARDIRQS=y
122CONFIG_GENERIC_IRQ_PROBE=y 123CONFIG_GENERIC_IRQ_PROBE=y
124CONFIG_CPU_SUPPORTS_HIGHMEM=y
123CONFIG_ARCH_FLATMEM_ENABLE=y 125CONFIG_ARCH_FLATMEM_ENABLE=y
124CONFIG_SELECT_MEMORY_MODEL=y 126CONFIG_SELECT_MEMORY_MODEL=y
125CONFIG_FLATMEM_MANUAL=y 127CONFIG_FLATMEM_MANUAL=y
@@ -137,7 +139,6 @@ CONFIG_PREEMPT_NONE=y
137# Code maturity level options 139# Code maturity level options
138# 140#
139CONFIG_EXPERIMENTAL=y 141CONFIG_EXPERIMENTAL=y
140CONFIG_CLEAN_COMPILE=y
141CONFIG_BROKEN_ON_SMP=y 142CONFIG_BROKEN_ON_SMP=y
142CONFIG_INIT_ENV_ARG_LIMIT=32 143CONFIG_INIT_ENV_ARG_LIMIT=32
143 144
@@ -153,6 +154,7 @@ CONFIG_SYSVIPC=y
153CONFIG_SYSCTL=y 154CONFIG_SYSCTL=y
154# CONFIG_AUDIT is not set 155# CONFIG_AUDIT is not set
155# CONFIG_IKCONFIG is not set 156# CONFIG_IKCONFIG is not set
157CONFIG_RELAY=y
156CONFIG_INITRAMFS_SOURCE="" 158CONFIG_INITRAMFS_SOURCE=""
157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 159# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
158CONFIG_EMBEDDED=y 160CONFIG_EMBEDDED=y
@@ -166,10 +168,6 @@ CONFIG_BASE_FULL=y
166CONFIG_FUTEX=y 168CONFIG_FUTEX=y
167CONFIG_EPOLL=y 169CONFIG_EPOLL=y
168CONFIG_SHMEM=y 170CONFIG_SHMEM=y
169CONFIG_CC_ALIGN_FUNCTIONS=0
170CONFIG_CC_ALIGN_LABELS=0
171CONFIG_CC_ALIGN_LOOPS=0
172CONFIG_CC_ALIGN_JUMPS=0
173CONFIG_SLAB=y 171CONFIG_SLAB=y
174# CONFIG_TINY_SHMEM is not set 172# CONFIG_TINY_SHMEM is not set
175CONFIG_BASE_SMALL=0 173CONFIG_BASE_SMALL=0
@@ -182,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
182CONFIG_MODULES=y 180CONFIG_MODULES=y
183CONFIG_MODULE_UNLOAD=y 181CONFIG_MODULE_UNLOAD=y
184# CONFIG_MODULE_FORCE_UNLOAD is not set 182# CONFIG_MODULE_FORCE_UNLOAD is not set
185CONFIG_OBSOLETE_MODPARM=y
186CONFIG_MODVERSIONS=y 183CONFIG_MODVERSIONS=y
187CONFIG_MODULE_SRCVERSION_ALL=y 184CONFIG_MODULE_SRCVERSION_ALL=y
188CONFIG_KMOD=y 185CONFIG_KMOD=y
@@ -191,6 +188,8 @@ CONFIG_KMOD=y
191# Block layer 188# Block layer
192# 189#
193# CONFIG_LBD is not set 190# CONFIG_LBD is not set
191# CONFIG_BLK_DEV_IO_TRACE is not set
192# CONFIG_LSF is not set
194 193
195# 194#
196# IO Schedulers 195# IO Schedulers
@@ -210,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
210# 209#
211CONFIG_HW_HAS_PCI=y 210CONFIG_HW_HAS_PCI=y
212CONFIG_PCI=y 211CONFIG_PCI=y
213CONFIG_PCI_LEGACY_PROC=y
214CONFIG_MMU=y 212CONFIG_MMU=y
215 213
216# 214#
@@ -252,6 +250,7 @@ CONFIG_NET=y
252# 250#
253# Networking options 251# Networking options
254# 252#
253# CONFIG_NETDEBUG is not set
255CONFIG_PACKET=y 254CONFIG_PACKET=y
256# CONFIG_PACKET_MMAP is not set 255# CONFIG_PACKET_MMAP is not set
257CONFIG_UNIX=y 256CONFIG_UNIX=y
@@ -274,7 +273,8 @@ CONFIG_IP_PNP_BOOTP=y
274# CONFIG_INET_AH is not set 273# CONFIG_INET_AH is not set
275# CONFIG_INET_ESP is not set 274# CONFIG_INET_ESP is not set
276# CONFIG_INET_IPCOMP is not set 275# CONFIG_INET_IPCOMP is not set
277CONFIG_INET_TUNNEL=m 276# CONFIG_INET_XFRM_TUNNEL is not set
277# CONFIG_INET_TUNNEL is not set
278CONFIG_INET_DIAG=y 278CONFIG_INET_DIAG=y
279CONFIG_INET_TCP_DIAG=y 279CONFIG_INET_TCP_DIAG=y
280# CONFIG_TCP_CONG_ADVANCED is not set 280# CONFIG_TCP_CONG_ADVANCED is not set
@@ -285,6 +285,8 @@ CONFIG_TCP_CONG_BIC=y
285# 285#
286# CONFIG_IP_VS is not set 286# CONFIG_IP_VS is not set
287# CONFIG_IPV6 is not set 287# CONFIG_IPV6 is not set
288# CONFIG_INET6_XFRM_TUNNEL is not set
289# CONFIG_INET6_TUNNEL is not set
288CONFIG_NETFILTER=y 290CONFIG_NETFILTER=y
289# CONFIG_NETFILTER_DEBUG is not set 291# CONFIG_NETFILTER_DEBUG is not set
290 292
@@ -301,10 +303,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
301CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 303CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
302CONFIG_NETFILTER_XT_MATCH_COMMENT=m 304CONFIG_NETFILTER_XT_MATCH_COMMENT=m
303CONFIG_NETFILTER_XT_MATCH_DCCP=m 305CONFIG_NETFILTER_XT_MATCH_DCCP=m
306CONFIG_NETFILTER_XT_MATCH_ESP=m
304CONFIG_NETFILTER_XT_MATCH_LENGTH=m 307CONFIG_NETFILTER_XT_MATCH_LENGTH=m
305CONFIG_NETFILTER_XT_MATCH_LIMIT=m 308CONFIG_NETFILTER_XT_MATCH_LIMIT=m
306CONFIG_NETFILTER_XT_MATCH_MAC=m 309CONFIG_NETFILTER_XT_MATCH_MAC=m
307CONFIG_NETFILTER_XT_MATCH_MARK=m 310CONFIG_NETFILTER_XT_MATCH_MARK=m
311CONFIG_NETFILTER_XT_MATCH_POLICY=m
312CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
308CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 313CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
309CONFIG_NETFILTER_XT_MATCH_REALM=m 314CONFIG_NETFILTER_XT_MATCH_REALM=m
310CONFIG_NETFILTER_XT_MATCH_SCTP=m 315CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -328,6 +333,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
328# SCTP Configuration (EXPERIMENTAL) 333# SCTP Configuration (EXPERIMENTAL)
329# 334#
330# CONFIG_IP_SCTP is not set 335# CONFIG_IP_SCTP is not set
336
337#
338# TIPC Configuration (EXPERIMENTAL)
339#
340# CONFIG_TIPC is not set
331# CONFIG_ATM is not set 341# CONFIG_ATM is not set
332# CONFIG_BRIDGE is not set 342# CONFIG_BRIDGE is not set
333# CONFIG_VLAN_8021Q is not set 343# CONFIG_VLAN_8021Q is not set
@@ -337,11 +347,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
337# CONFIG_ATALK is not set 347# CONFIG_ATALK is not set
338# CONFIG_X25 is not set 348# CONFIG_X25 is not set
339# CONFIG_LAPB is not set 349# CONFIG_LAPB is not set
340
341#
342# TIPC Configuration (EXPERIMENTAL)
343#
344# CONFIG_TIPC is not set
345# CONFIG_NET_DIVERT is not set 350# CONFIG_NET_DIVERT is not set
346# CONFIG_ECONET is not set 351# CONFIG_ECONET is not set
347# CONFIG_WAN_ROUTER is not set 352# CONFIG_WAN_ROUTER is not set
@@ -363,6 +368,9 @@ CONFIG_IEEE80211=m
363# CONFIG_IEEE80211_DEBUG is not set 368# CONFIG_IEEE80211_DEBUG is not set
364CONFIG_IEEE80211_CRYPT_WEP=m 369CONFIG_IEEE80211_CRYPT_WEP=m
365CONFIG_IEEE80211_CRYPT_CCMP=m 370CONFIG_IEEE80211_CRYPT_CCMP=m
371CONFIG_IEEE80211_SOFTMAC=m
372# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
373CONFIG_WIRELESS_EXT=y
366 374
367# 375#
368# Device Drivers 376# Device Drivers
@@ -419,7 +427,6 @@ CONFIG_MTD_CFI_I2=y
419# CONFIG_MTD_CFI_I8 is not set 427# CONFIG_MTD_CFI_I8 is not set
420# CONFIG_MTD_CFI_INTELEXT is not set 428# CONFIG_MTD_CFI_INTELEXT is not set
421CONFIG_MTD_CFI_AMDSTD=y 429CONFIG_MTD_CFI_AMDSTD=y
422CONFIG_MTD_CFI_AMDSTD_RETRY=0
423# CONFIG_MTD_CFI_STAA is not set 430# CONFIG_MTD_CFI_STAA is not set
424CONFIG_MTD_CFI_UTIL=y 431CONFIG_MTD_CFI_UTIL=y
425# CONFIG_MTD_RAM is not set 432# CONFIG_MTD_RAM is not set
@@ -442,7 +449,6 @@ CONFIG_MTD_ALCHEMY=y
442# CONFIG_MTD_SLRAM is not set 449# CONFIG_MTD_SLRAM is not set
443# CONFIG_MTD_PHRAM is not set 450# CONFIG_MTD_PHRAM is not set
444# CONFIG_MTD_MTDRAM is not set 451# CONFIG_MTD_MTDRAM is not set
445# CONFIG_MTD_BLKMTD is not set
446# CONFIG_MTD_BLOCK2MTD is not set 452# CONFIG_MTD_BLOCK2MTD is not set
447 453
448# 454#
@@ -489,7 +495,7 @@ CONFIG_BLK_DEV_LOOP=y
489# CONFIG_BLK_DEV_NBD is not set 495# CONFIG_BLK_DEV_NBD is not set
490# CONFIG_BLK_DEV_SX8 is not set 496# CONFIG_BLK_DEV_SX8 is not set
491# CONFIG_BLK_DEV_RAM is not set 497# CONFIG_BLK_DEV_RAM is not set
492CONFIG_BLK_DEV_RAM_COUNT=16 498# CONFIG_BLK_DEV_INITRD is not set
493CONFIG_CDROM_PKTCDVD=m 499CONFIG_CDROM_PKTCDVD=m
494CONFIG_CDROM_PKTCDVD_BUFFERS=8 500CONFIG_CDROM_PKTCDVD_BUFFERS=8
495# CONFIG_CDROM_PKTCDVD_WCACHE is not set 501# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -754,6 +760,7 @@ CONFIG_SERIO_RAW=m
754# 760#
755CONFIG_SERIAL_8250=y 761CONFIG_SERIAL_8250=y
756CONFIG_SERIAL_8250_CONSOLE=y 762CONFIG_SERIAL_8250_CONSOLE=y
763CONFIG_SERIAL_8250_PCI=y
757# CONFIG_SERIAL_8250_CS is not set 764# CONFIG_SERIAL_8250_CS is not set
758CONFIG_SERIAL_8250_NR_UARTS=4 765CONFIG_SERIAL_8250_NR_UARTS=4
759CONFIG_SERIAL_8250_RUNTIME_UARTS=4 766CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -765,6 +772,7 @@ CONFIG_SERIAL_8250_AU1X00=y
765# 772#
766CONFIG_SERIAL_CORE=y 773CONFIG_SERIAL_CORE=y
767CONFIG_SERIAL_CORE_CONSOLE=y 774CONFIG_SERIAL_CORE_CONSOLE=y
775# CONFIG_SERIAL_JSM is not set
768CONFIG_UNIX98_PTYS=y 776CONFIG_UNIX98_PTYS=y
769CONFIG_LEGACY_PTYS=y 777CONFIG_LEGACY_PTYS=y
770CONFIG_LEGACY_PTY_COUNT=256 778CONFIG_LEGACY_PTY_COUNT=256
@@ -830,10 +838,6 @@ CONFIG_SYNCLINK_CS=m
830# 838#
831 839
832# 840#
833# Multimedia Capabilities Port drivers
834#
835
836#
837# Multimedia devices 841# Multimedia devices
838# 842#
839# CONFIG_VIDEO_DEV is not set 843# CONFIG_VIDEO_DEV is not set
@@ -858,6 +862,7 @@ CONFIG_SYNCLINK_CS=m
858# 862#
859CONFIG_USB_ARCH_HAS_HCD=y 863CONFIG_USB_ARCH_HAS_HCD=y
860CONFIG_USB_ARCH_HAS_OHCI=y 864CONFIG_USB_ARCH_HAS_OHCI=y
865CONFIG_USB_ARCH_HAS_EHCI=y
861# CONFIG_USB is not set 866# CONFIG_USB is not set
862 867
863# 868#
@@ -875,13 +880,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
875# CONFIG_MMC is not set 880# CONFIG_MMC is not set
876 881
877# 882#
883# LED devices
884#
885# CONFIG_NEW_LEDS is not set
886
887#
888# LED drivers
889#
890
891#
892# LED Triggers
893#
894
895#
878# InfiniBand support 896# InfiniBand support
879# 897#
880# CONFIG_INFINIBAND is not set 898# CONFIG_INFINIBAND is not set
881 899
882# 900#
883# SN Devices 901# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
902#
903
904#
905# Real Time Clock
884# 906#
907# CONFIG_RTC_CLASS is not set
885 908
886# 909#
887# File systems 910# File systems
@@ -939,7 +962,6 @@ CONFIG_SYSFS=y
939CONFIG_TMPFS=y 962CONFIG_TMPFS=y
940# CONFIG_HUGETLB_PAGE is not set 963# CONFIG_HUGETLB_PAGE is not set
941CONFIG_RAMFS=y 964CONFIG_RAMFS=y
942CONFIG_RELAYFS_FS=m
943# CONFIG_CONFIGFS_FS is not set 965# CONFIG_CONFIGFS_FS is not set
944 966
945# 967#
@@ -1048,6 +1070,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1048# CONFIG_MAGIC_SYSRQ is not set 1070# CONFIG_MAGIC_SYSRQ is not set
1049# CONFIG_DEBUG_KERNEL is not set 1071# CONFIG_DEBUG_KERNEL is not set
1050CONFIG_LOG_BUF_SHIFT=14 1072CONFIG_LOG_BUF_SHIFT=14
1073# CONFIG_DEBUG_FS is not set
1051CONFIG_CROSSCOMPILE=y 1074CONFIG_CROSSCOMPILE=y
1052CONFIG_CMDLINE="" 1075CONFIG_CMDLINE=""
1053 1076
diff --git a/arch/mips/configs/ddb5476_defconfig b/arch/mips/configs/ddb5476_defconfig
index 8fae63e47e5e..8d88ac1bbfeb 100644
--- a/arch/mips/configs/ddb5476_defconfig
+++ b/arch/mips/configs/ddb5476_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:02 2006 4# Mon Apr 24 14:51:00 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_DDB5476=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -114,7 +116,6 @@ CONFIG_PAGE_SIZE_4KB=y
114# CONFIG_PAGE_SIZE_16KB is not set 116# CONFIG_PAGE_SIZE_16KB is not set
115# CONFIG_PAGE_SIZE_64KB is not set 117# CONFIG_PAGE_SIZE_64KB is not set
116# CONFIG_MIPS_MT is not set 118# CONFIG_MIPS_MT is not set
117# CONFIG_CPU_ADVANCED is not set
118CONFIG_CPU_HAS_LLSC=y 119CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 120CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
@@ -136,7 +137,6 @@ CONFIG_PREEMPT_NONE=y
136# Code maturity level options 137# Code maturity level options
137# 138#
138CONFIG_EXPERIMENTAL=y 139CONFIG_EXPERIMENTAL=y
139CONFIG_CLEAN_COMPILE=y
140CONFIG_BROKEN_ON_SMP=y 140CONFIG_BROKEN_ON_SMP=y
141CONFIG_INIT_ENV_ARG_LIMIT=32 141CONFIG_INIT_ENV_ARG_LIMIT=32
142 142
@@ -152,6 +152,7 @@ CONFIG_SYSVIPC=y
152CONFIG_SYSCTL=y 152CONFIG_SYSCTL=y
153# CONFIG_AUDIT is not set 153# CONFIG_AUDIT is not set
154# CONFIG_IKCONFIG is not set 154# CONFIG_IKCONFIG is not set
155CONFIG_RELAY=y
155CONFIG_INITRAMFS_SOURCE="" 156CONFIG_INITRAMFS_SOURCE=""
156# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
157CONFIG_EMBEDDED=y 158CONFIG_EMBEDDED=y
@@ -165,10 +166,6 @@ CONFIG_BASE_FULL=y
165CONFIG_FUTEX=y 166CONFIG_FUTEX=y
166CONFIG_EPOLL=y 167CONFIG_EPOLL=y
167CONFIG_SHMEM=y 168CONFIG_SHMEM=y
168CONFIG_CC_ALIGN_FUNCTIONS=0
169CONFIG_CC_ALIGN_LABELS=0
170CONFIG_CC_ALIGN_LOOPS=0
171CONFIG_CC_ALIGN_JUMPS=0
172CONFIG_SLAB=y 169CONFIG_SLAB=y
173# CONFIG_TINY_SHMEM is not set 170# CONFIG_TINY_SHMEM is not set
174CONFIG_BASE_SMALL=0 171CONFIG_BASE_SMALL=0
@@ -183,6 +180,8 @@ CONFIG_BASE_SMALL=0
183# Block layer 180# Block layer
184# 181#
185# CONFIG_LBD is not set 182# CONFIG_LBD is not set
183# CONFIG_BLK_DEV_IO_TRACE is not set
184# CONFIG_LSF is not set
186 185
187# 186#
188# IO Schedulers 187# IO Schedulers
@@ -202,7 +201,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
202# 201#
203CONFIG_HW_HAS_PCI=y 202CONFIG_HW_HAS_PCI=y
204CONFIG_PCI=y 203CONFIG_PCI=y
205CONFIG_PCI_LEGACY_PROC=y
206CONFIG_ISA=y 204CONFIG_ISA=y
207CONFIG_MMU=y 205CONFIG_MMU=y
208 206
@@ -231,6 +229,7 @@ CONFIG_NET=y
231# 229#
232# Networking options 230# Networking options
233# 231#
232# CONFIG_NETDEBUG is not set
234CONFIG_PACKET=y 233CONFIG_PACKET=y
235# CONFIG_PACKET_MMAP is not set 234# CONFIG_PACKET_MMAP is not set
236CONFIG_UNIX=y 235CONFIG_UNIX=y
@@ -252,12 +251,15 @@ CONFIG_IP_PNP_BOOTP=y
252# CONFIG_INET_AH is not set 251# CONFIG_INET_AH is not set
253# CONFIG_INET_ESP is not set 252# CONFIG_INET_ESP is not set
254# CONFIG_INET_IPCOMP is not set 253# CONFIG_INET_IPCOMP is not set
255CONFIG_INET_TUNNEL=y 254# CONFIG_INET_XFRM_TUNNEL is not set
255# CONFIG_INET_TUNNEL is not set
256CONFIG_INET_DIAG=y 256CONFIG_INET_DIAG=y
257CONFIG_INET_TCP_DIAG=y 257CONFIG_INET_TCP_DIAG=y
258# CONFIG_TCP_CONG_ADVANCED is not set 258# CONFIG_TCP_CONG_ADVANCED is not set
259CONFIG_TCP_CONG_BIC=y 259CONFIG_TCP_CONG_BIC=y
260# CONFIG_IPV6 is not set 260# CONFIG_IPV6 is not set
261# CONFIG_INET6_XFRM_TUNNEL is not set
262# CONFIG_INET6_TUNNEL is not set
261# CONFIG_NETFILTER is not set 263# CONFIG_NETFILTER is not set
262 264
263# 265#
@@ -269,6 +271,11 @@ CONFIG_TCP_CONG_BIC=y
269# SCTP Configuration (EXPERIMENTAL) 271# SCTP Configuration (EXPERIMENTAL)
270# 272#
271# CONFIG_IP_SCTP is not set 273# CONFIG_IP_SCTP is not set
274
275#
276# TIPC Configuration (EXPERIMENTAL)
277#
278# CONFIG_TIPC is not set
272# CONFIG_ATM is not set 279# CONFIG_ATM is not set
273# CONFIG_BRIDGE is not set 280# CONFIG_BRIDGE is not set
274# CONFIG_VLAN_8021Q is not set 281# CONFIG_VLAN_8021Q is not set
@@ -278,11 +285,6 @@ CONFIG_TCP_CONG_BIC=y
278# CONFIG_ATALK is not set 285# CONFIG_ATALK is not set
279# CONFIG_X25 is not set 286# CONFIG_X25 is not set
280# CONFIG_LAPB is not set 287# CONFIG_LAPB is not set
281
282#
283# TIPC Configuration (EXPERIMENTAL)
284#
285# CONFIG_TIPC is not set
286# CONFIG_NET_DIVERT is not set 288# CONFIG_NET_DIVERT is not set
287# CONFIG_ECONET is not set 289# CONFIG_ECONET is not set
288# CONFIG_WAN_ROUTER is not set 290# CONFIG_WAN_ROUTER is not set
@@ -303,6 +305,9 @@ CONFIG_IEEE80211=y
303# CONFIG_IEEE80211_DEBUG is not set 305# CONFIG_IEEE80211_DEBUG is not set
304CONFIG_IEEE80211_CRYPT_WEP=y 306CONFIG_IEEE80211_CRYPT_WEP=y
305CONFIG_IEEE80211_CRYPT_CCMP=y 307CONFIG_IEEE80211_CRYPT_CCMP=y
308CONFIG_IEEE80211_SOFTMAC=y
309# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
310CONFIG_WIRELESS_EXT=y
306 311
307# 312#
308# Device Drivers 313# Device Drivers
@@ -348,7 +353,7 @@ CONFIG_PROC_EVENTS=y
348# CONFIG_BLK_DEV_NBD is not set 353# CONFIG_BLK_DEV_NBD is not set
349# CONFIG_BLK_DEV_SX8 is not set 354# CONFIG_BLK_DEV_SX8 is not set
350# CONFIG_BLK_DEV_RAM is not set 355# CONFIG_BLK_DEV_RAM is not set
351CONFIG_BLK_DEV_RAM_COUNT=16 356# CONFIG_BLK_DEV_INITRD is not set
352CONFIG_CDROM_PKTCDVD=y 357CONFIG_CDROM_PKTCDVD=y
353CONFIG_CDROM_PKTCDVD_BUFFERS=8 358CONFIG_CDROM_PKTCDVD_BUFFERS=8
354# CONFIG_CDROM_PKTCDVD_WCACHE is not set 359# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -571,6 +576,7 @@ CONFIG_HW_CONSOLE=y
571# 576#
572CONFIG_SERIAL_8250=y 577CONFIG_SERIAL_8250=y
573CONFIG_SERIAL_8250_CONSOLE=y 578CONFIG_SERIAL_8250_CONSOLE=y
579CONFIG_SERIAL_8250_PCI=y
574CONFIG_SERIAL_8250_NR_UARTS=4 580CONFIG_SERIAL_8250_NR_UARTS=4
575CONFIG_SERIAL_8250_RUNTIME_UARTS=4 581CONFIG_SERIAL_8250_RUNTIME_UARTS=4
576# CONFIG_SERIAL_8250_EXTENDED is not set 582# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -580,6 +586,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
580# 586#
581CONFIG_SERIAL_CORE=y 587CONFIG_SERIAL_CORE=y
582CONFIG_SERIAL_CORE_CONSOLE=y 588CONFIG_SERIAL_CORE_CONSOLE=y
589# CONFIG_SERIAL_JSM is not set
583CONFIG_UNIX98_PTYS=y 590CONFIG_UNIX98_PTYS=y
584CONFIG_LEGACY_PTYS=y 591CONFIG_LEGACY_PTYS=y
585CONFIG_LEGACY_PTY_COUNT=256 592CONFIG_LEGACY_PTY_COUNT=256
@@ -638,10 +645,6 @@ CONFIG_LEGACY_PTY_COUNT=256
638# 645#
639 646
640# 647#
641# Multimedia Capabilities Port drivers
642#
643
644#
645# Multimedia devices 648# Multimedia devices
646# 649#
647# CONFIG_VIDEO_DEV is not set 650# CONFIG_VIDEO_DEV is not set
@@ -659,6 +662,7 @@ CONFIG_FB=y
659# CONFIG_FB_CFB_COPYAREA is not set 662# CONFIG_FB_CFB_COPYAREA is not set
660# CONFIG_FB_CFB_IMAGEBLIT is not set 663# CONFIG_FB_CFB_IMAGEBLIT is not set
661# CONFIG_FB_MACMODES is not set 664# CONFIG_FB_MACMODES is not set
665CONFIG_FB_FIRMWARE_EDID=y
662# CONFIG_FB_MODE_HELPERS is not set 666# CONFIG_FB_MODE_HELPERS is not set
663# CONFIG_FB_TILEBLITTING is not set 667# CONFIG_FB_TILEBLITTING is not set
664# CONFIG_FB_CIRRUS is not set 668# CONFIG_FB_CIRRUS is not set
@@ -670,7 +674,6 @@ CONFIG_FB=y
670# CONFIG_FB_NVIDIA is not set 674# CONFIG_FB_NVIDIA is not set
671# CONFIG_FB_RIVA is not set 675# CONFIG_FB_RIVA is not set
672# CONFIG_FB_MATROX is not set 676# CONFIG_FB_MATROX is not set
673# CONFIG_FB_RADEON_OLD is not set
674# CONFIG_FB_RADEON is not set 677# CONFIG_FB_RADEON is not set
675# CONFIG_FB_ATY128 is not set 678# CONFIG_FB_ATY128 is not set
676# CONFIG_FB_ATY is not set 679# CONFIG_FB_ATY is not set
@@ -708,6 +711,7 @@ CONFIG_DUMMY_CONSOLE=y
708# 711#
709CONFIG_USB_ARCH_HAS_HCD=y 712CONFIG_USB_ARCH_HAS_HCD=y
710CONFIG_USB_ARCH_HAS_OHCI=y 713CONFIG_USB_ARCH_HAS_OHCI=y
714CONFIG_USB_ARCH_HAS_EHCI=y
711# CONFIG_USB is not set 715# CONFIG_USB is not set
712 716
713# 717#
@@ -725,13 +729,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
725# CONFIG_MMC is not set 729# CONFIG_MMC is not set
726 730
727# 731#
732# LED devices
733#
734# CONFIG_NEW_LEDS is not set
735
736#
737# LED drivers
738#
739
740#
741# LED Triggers
742#
743
744#
728# InfiniBand support 745# InfiniBand support
729# 746#
730# CONFIG_INFINIBAND is not set 747# CONFIG_INFINIBAND is not set
731 748
732# 749#
733# SN Devices 750# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
751#
752
753#
754# Real Time Clock
734# 755#
756# CONFIG_RTC_CLASS is not set
735 757
736# 758#
737# File systems 759# File systems
@@ -776,7 +798,6 @@ CONFIG_SYSFS=y
776# CONFIG_TMPFS is not set 798# CONFIG_TMPFS is not set
777# CONFIG_HUGETLB_PAGE is not set 799# CONFIG_HUGETLB_PAGE is not set
778CONFIG_RAMFS=y 800CONFIG_RAMFS=y
779CONFIG_RELAYFS_FS=y
780# CONFIG_CONFIGFS_FS is not set 801# CONFIG_CONFIGFS_FS is not set
781 802
782# 803#
@@ -840,6 +861,8 @@ CONFIG_MSDOS_PARTITION=y
840# CONFIG_MAGIC_SYSRQ is not set 861# CONFIG_MAGIC_SYSRQ is not set
841# CONFIG_DEBUG_KERNEL is not set 862# CONFIG_DEBUG_KERNEL is not set
842CONFIG_LOG_BUF_SHIFT=14 863CONFIG_LOG_BUF_SHIFT=14
864# CONFIG_DEBUG_FS is not set
865# CONFIG_UNWIND_INFO is not set
843CONFIG_CROSSCOMPILE=y 866CONFIG_CROSSCOMPILE=y
844CONFIG_CMDLINE="ip=any" 867CONFIG_CMDLINE="ip=any"
845 868
diff --git a/arch/mips/configs/ddb5477_defconfig b/arch/mips/configs/ddb5477_defconfig
index a0fcd44e7709..8c911b671415 100644
--- a/arch/mips/configs/ddb5477_defconfig
+++ b/arch/mips/configs/ddb5477_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:02 2006 4# Mon Apr 24 14:51:01 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -65,6 +65,8 @@ CONFIG_DDB5477=y
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_DDB5477_BUS_FREQUENCY=0 66CONFIG_DDB5477_BUS_FREQUENCY=0
67CONFIG_RWSEM_GENERIC_SPINLOCK=y 67CONFIG_RWSEM_GENERIC_SPINLOCK=y
68CONFIG_GENERIC_FIND_NEXT_BIT=y
69CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
69CONFIG_DMA_NONCOHERENT=y 71CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 72CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -114,7 +116,6 @@ CONFIG_PAGE_SIZE_4KB=y
114# CONFIG_PAGE_SIZE_16KB is not set 116# CONFIG_PAGE_SIZE_16KB is not set
115# CONFIG_PAGE_SIZE_64KB is not set 117# CONFIG_PAGE_SIZE_64KB is not set
116# CONFIG_MIPS_MT is not set 118# CONFIG_MIPS_MT is not set
117# CONFIG_CPU_ADVANCED is not set
118CONFIG_CPU_HAS_LLSC=y 119CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 120CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
@@ -136,7 +137,6 @@ CONFIG_PREEMPT_NONE=y
136# Code maturity level options 137# Code maturity level options
137# 138#
138CONFIG_EXPERIMENTAL=y 139CONFIG_EXPERIMENTAL=y
139CONFIG_CLEAN_COMPILE=y
140CONFIG_BROKEN_ON_SMP=y 140CONFIG_BROKEN_ON_SMP=y
141CONFIG_INIT_ENV_ARG_LIMIT=32 141CONFIG_INIT_ENV_ARG_LIMIT=32
142 142
@@ -152,6 +152,7 @@ CONFIG_SYSVIPC=y
152CONFIG_SYSCTL=y 152CONFIG_SYSCTL=y
153# CONFIG_AUDIT is not set 153# CONFIG_AUDIT is not set
154# CONFIG_IKCONFIG is not set 154# CONFIG_IKCONFIG is not set
155CONFIG_RELAY=y
155CONFIG_INITRAMFS_SOURCE="" 156CONFIG_INITRAMFS_SOURCE=""
156# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
157CONFIG_EMBEDDED=y 158CONFIG_EMBEDDED=y
@@ -165,10 +166,6 @@ CONFIG_BASE_FULL=y
165CONFIG_FUTEX=y 166CONFIG_FUTEX=y
166CONFIG_EPOLL=y 167CONFIG_EPOLL=y
167CONFIG_SHMEM=y 168CONFIG_SHMEM=y
168CONFIG_CC_ALIGN_FUNCTIONS=0
169CONFIG_CC_ALIGN_LABELS=0
170CONFIG_CC_ALIGN_LOOPS=0
171CONFIG_CC_ALIGN_JUMPS=0
172CONFIG_SLAB=y 169CONFIG_SLAB=y
173# CONFIG_TINY_SHMEM is not set 170# CONFIG_TINY_SHMEM is not set
174CONFIG_BASE_SMALL=0 171CONFIG_BASE_SMALL=0
@@ -183,6 +180,8 @@ CONFIG_BASE_SMALL=0
183# Block layer 180# Block layer
184# 181#
185# CONFIG_LBD is not set 182# CONFIG_LBD is not set
183# CONFIG_BLK_DEV_IO_TRACE is not set
184# CONFIG_LSF is not set
186 185
187# 186#
188# IO Schedulers 187# IO Schedulers
@@ -202,7 +201,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
202# 201#
203CONFIG_HW_HAS_PCI=y 202CONFIG_HW_HAS_PCI=y
204CONFIG_PCI=y 203CONFIG_PCI=y
205CONFIG_PCI_LEGACY_PROC=y
206CONFIG_MMU=y 204CONFIG_MMU=y
207 205
208# 206#
@@ -230,6 +228,7 @@ CONFIG_NET=y
230# 228#
231# Networking options 229# Networking options
232# 230#
231# CONFIG_NETDEBUG is not set
233CONFIG_PACKET=y 232CONFIG_PACKET=y
234# CONFIG_PACKET_MMAP is not set 233# CONFIG_PACKET_MMAP is not set
235CONFIG_UNIX=y 234CONFIG_UNIX=y
@@ -251,12 +250,15 @@ CONFIG_IP_PNP_BOOTP=y
251# CONFIG_INET_AH is not set 250# CONFIG_INET_AH is not set
252# CONFIG_INET_ESP is not set 251# CONFIG_INET_ESP is not set
253# CONFIG_INET_IPCOMP is not set 252# CONFIG_INET_IPCOMP is not set
254CONFIG_INET_TUNNEL=y 253# CONFIG_INET_XFRM_TUNNEL is not set
254# CONFIG_INET_TUNNEL is not set
255CONFIG_INET_DIAG=y 255CONFIG_INET_DIAG=y
256CONFIG_INET_TCP_DIAG=y 256CONFIG_INET_TCP_DIAG=y
257# CONFIG_TCP_CONG_ADVANCED is not set 257# CONFIG_TCP_CONG_ADVANCED is not set
258CONFIG_TCP_CONG_BIC=y 258CONFIG_TCP_CONG_BIC=y
259# CONFIG_IPV6 is not set 259# CONFIG_IPV6 is not set
260# CONFIG_INET6_XFRM_TUNNEL is not set
261# CONFIG_INET6_TUNNEL is not set
260# CONFIG_NETFILTER is not set 262# CONFIG_NETFILTER is not set
261 263
262# 264#
@@ -268,6 +270,11 @@ CONFIG_TCP_CONG_BIC=y
268# SCTP Configuration (EXPERIMENTAL) 270# SCTP Configuration (EXPERIMENTAL)
269# 271#
270# CONFIG_IP_SCTP is not set 272# CONFIG_IP_SCTP is not set
273
274#
275# TIPC Configuration (EXPERIMENTAL)
276#
277# CONFIG_TIPC is not set
271# CONFIG_ATM is not set 278# CONFIG_ATM is not set
272# CONFIG_BRIDGE is not set 279# CONFIG_BRIDGE is not set
273# CONFIG_VLAN_8021Q is not set 280# CONFIG_VLAN_8021Q is not set
@@ -277,11 +284,6 @@ CONFIG_TCP_CONG_BIC=y
277# CONFIG_ATALK is not set 284# CONFIG_ATALK is not set
278# CONFIG_X25 is not set 285# CONFIG_X25 is not set
279# CONFIG_LAPB is not set 286# CONFIG_LAPB is not set
280
281#
282# TIPC Configuration (EXPERIMENTAL)
283#
284# CONFIG_TIPC is not set
285# CONFIG_NET_DIVERT is not set 287# CONFIG_NET_DIVERT is not set
286# CONFIG_ECONET is not set 288# CONFIG_ECONET is not set
287# CONFIG_WAN_ROUTER is not set 289# CONFIG_WAN_ROUTER is not set
@@ -302,6 +304,9 @@ CONFIG_IEEE80211=y
302# CONFIG_IEEE80211_DEBUG is not set 304# CONFIG_IEEE80211_DEBUG is not set
303CONFIG_IEEE80211_CRYPT_WEP=y 305CONFIG_IEEE80211_CRYPT_WEP=y
304CONFIG_IEEE80211_CRYPT_CCMP=y 306CONFIG_IEEE80211_CRYPT_CCMP=y
307CONFIG_IEEE80211_SOFTMAC=y
308# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
309CONFIG_WIRELESS_EXT=y
305 310
306# 311#
307# Device Drivers 312# Device Drivers
@@ -346,7 +351,7 @@ CONFIG_PROC_EVENTS=y
346# CONFIG_BLK_DEV_NBD is not set 351# CONFIG_BLK_DEV_NBD is not set
347# CONFIG_BLK_DEV_SX8 is not set 352# CONFIG_BLK_DEV_SX8 is not set
348# CONFIG_BLK_DEV_RAM is not set 353# CONFIG_BLK_DEV_RAM is not set
349CONFIG_BLK_DEV_RAM_COUNT=16 354# CONFIG_BLK_DEV_INITRD is not set
350CONFIG_CDROM_PKTCDVD=y 355CONFIG_CDROM_PKTCDVD=y
351CONFIG_CDROM_PKTCDVD_BUFFERS=8 356CONFIG_CDROM_PKTCDVD_BUFFERS=8
352# CONFIG_CDROM_PKTCDVD_WCACHE is not set 357# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -556,6 +561,7 @@ CONFIG_HW_CONSOLE=y
556# 561#
557CONFIG_SERIAL_8250=y 562CONFIG_SERIAL_8250=y
558CONFIG_SERIAL_8250_CONSOLE=y 563CONFIG_SERIAL_8250_CONSOLE=y
564CONFIG_SERIAL_8250_PCI=y
559CONFIG_SERIAL_8250_NR_UARTS=4 565CONFIG_SERIAL_8250_NR_UARTS=4
560CONFIG_SERIAL_8250_RUNTIME_UARTS=4 566CONFIG_SERIAL_8250_RUNTIME_UARTS=4
561# CONFIG_SERIAL_8250_EXTENDED is not set 567# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -565,6 +571,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
565# 571#
566CONFIG_SERIAL_CORE=y 572CONFIG_SERIAL_CORE=y
567CONFIG_SERIAL_CORE_CONSOLE=y 573CONFIG_SERIAL_CORE_CONSOLE=y
574# CONFIG_SERIAL_JSM is not set
568CONFIG_UNIX98_PTYS=y 575CONFIG_UNIX98_PTYS=y
569CONFIG_LEGACY_PTYS=y 576CONFIG_LEGACY_PTYS=y
570CONFIG_LEGACY_PTY_COUNT=256 577CONFIG_LEGACY_PTY_COUNT=256
@@ -623,10 +630,6 @@ CONFIG_LEGACY_PTY_COUNT=256
623# 630#
624 631
625# 632#
626# Multimedia Capabilities Port drivers
627#
628
629#
630# Multimedia devices 633# Multimedia devices
631# 634#
632# CONFIG_VIDEO_DEV is not set 635# CONFIG_VIDEO_DEV is not set
@@ -657,6 +660,7 @@ CONFIG_DUMMY_CONSOLE=y
657# 660#
658CONFIG_USB_ARCH_HAS_HCD=y 661CONFIG_USB_ARCH_HAS_HCD=y
659CONFIG_USB_ARCH_HAS_OHCI=y 662CONFIG_USB_ARCH_HAS_OHCI=y
663CONFIG_USB_ARCH_HAS_EHCI=y
660# CONFIG_USB is not set 664# CONFIG_USB is not set
661 665
662# 666#
@@ -674,13 +678,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
674# CONFIG_MMC is not set 678# CONFIG_MMC is not set
675 679
676# 680#
681# LED devices
682#
683# CONFIG_NEW_LEDS is not set
684
685#
686# LED drivers
687#
688
689#
690# LED Triggers
691#
692
693#
677# InfiniBand support 694# InfiniBand support
678# 695#
679# CONFIG_INFINIBAND is not set 696# CONFIG_INFINIBAND is not set
680 697
681# 698#
682# SN Devices 699# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
700#
701
702#
703# Real Time Clock
683# 704#
705# CONFIG_RTC_CLASS is not set
684 706
685# 707#
686# File systems 708# File systems
@@ -725,7 +747,6 @@ CONFIG_SYSFS=y
725# CONFIG_TMPFS is not set 747# CONFIG_TMPFS is not set
726# CONFIG_HUGETLB_PAGE is not set 748# CONFIG_HUGETLB_PAGE is not set
727CONFIG_RAMFS=y 749CONFIG_RAMFS=y
728CONFIG_RELAYFS_FS=y
729# CONFIG_CONFIGFS_FS is not set 750# CONFIG_CONFIGFS_FS is not set
730 751
731# 752#
@@ -792,6 +813,8 @@ CONFIG_MSDOS_PARTITION=y
792# CONFIG_MAGIC_SYSRQ is not set 813# CONFIG_MAGIC_SYSRQ is not set
793# CONFIG_DEBUG_KERNEL is not set 814# CONFIG_DEBUG_KERNEL is not set
794CONFIG_LOG_BUF_SHIFT=14 815CONFIG_LOG_BUF_SHIFT=14
816# CONFIG_DEBUG_FS is not set
817# CONFIG_UNWIND_INFO is not set
795CONFIG_CROSSCOMPILE=y 818CONFIG_CROSSCOMPILE=y
796CONFIG_CMDLINE="ip=any" 819CONFIG_CMDLINE="ip=any"
797 820
diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig
index 5a181eadd437..d838496e114f 100644
--- a/arch/mips/configs/decstation_defconfig
+++ b/arch/mips/configs/decstation_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:03 2006 4# Mon Apr 24 14:51:01 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -63,11 +63,13 @@ CONFIG_MACH_DECSTATION=y
63# CONFIG_TOSHIBA_JMR3927 is not set 63# CONFIG_TOSHIBA_JMR3927 is not set
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_EARLY_PRINTK=y
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 67CONFIG_RWSEM_GENERIC_SPINLOCK=y
68CONFIG_GENERIC_FIND_NEXT_BIT=y
69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 71CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 72CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_EARLY_PRINTK=y
71# CONFIG_CPU_BIG_ENDIAN is not set 73# CONFIG_CPU_BIG_ENDIAN is not set
72CONFIG_CPU_LITTLE_ENDIAN=y 74CONFIG_CPU_LITTLE_ENDIAN=y
73CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 75CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
@@ -113,7 +115,6 @@ CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_16KB is not set 115# CONFIG_PAGE_SIZE_16KB is not set
114# CONFIG_PAGE_SIZE_64KB is not set 116# CONFIG_PAGE_SIZE_64KB is not set
115# CONFIG_MIPS_MT is not set 117# CONFIG_MIPS_MT is not set
116# CONFIG_CPU_ADVANCED is not set
117CONFIG_CPU_HAS_WB=y 118CONFIG_CPU_HAS_WB=y
118CONFIG_GENERIC_HARDIRQS=y 119CONFIG_GENERIC_HARDIRQS=y
119CONFIG_GENERIC_IRQ_PROBE=y 120CONFIG_GENERIC_IRQ_PROBE=y
@@ -135,7 +136,6 @@ CONFIG_PREEMPT_NONE=y
135# Code maturity level options 136# Code maturity level options
136# 137#
137CONFIG_EXPERIMENTAL=y 138CONFIG_EXPERIMENTAL=y
138CONFIG_CLEAN_COMPILE=y
139CONFIG_BROKEN_ON_SMP=y 139CONFIG_BROKEN_ON_SMP=y
140CONFIG_INIT_ENV_ARG_LIMIT=32 140CONFIG_INIT_ENV_ARG_LIMIT=32
141 141
@@ -151,6 +151,7 @@ CONFIG_SYSVIPC=y
151CONFIG_SYSCTL=y 151CONFIG_SYSCTL=y
152# CONFIG_AUDIT is not set 152# CONFIG_AUDIT is not set
153# CONFIG_IKCONFIG is not set 153# CONFIG_IKCONFIG is not set
154CONFIG_RELAY=y
154CONFIG_INITRAMFS_SOURCE="" 155CONFIG_INITRAMFS_SOURCE=""
155# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 156# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
156CONFIG_EMBEDDED=y 157CONFIG_EMBEDDED=y
@@ -165,10 +166,6 @@ CONFIG_BASE_FULL=y
165CONFIG_FUTEX=y 166CONFIG_FUTEX=y
166CONFIG_EPOLL=y 167CONFIG_EPOLL=y
167CONFIG_SHMEM=y 168CONFIG_SHMEM=y
168CONFIG_CC_ALIGN_FUNCTIONS=0
169CONFIG_CC_ALIGN_LABELS=0
170CONFIG_CC_ALIGN_LOOPS=0
171CONFIG_CC_ALIGN_JUMPS=0
172CONFIG_SLAB=y 169CONFIG_SLAB=y
173# CONFIG_TINY_SHMEM is not set 170# CONFIG_TINY_SHMEM is not set
174CONFIG_BASE_SMALL=0 171CONFIG_BASE_SMALL=0
@@ -180,7 +177,6 @@ CONFIG_BASE_SMALL=0
180CONFIG_MODULES=y 177CONFIG_MODULES=y
181CONFIG_MODULE_UNLOAD=y 178CONFIG_MODULE_UNLOAD=y
182# CONFIG_MODULE_FORCE_UNLOAD is not set 179# CONFIG_MODULE_FORCE_UNLOAD is not set
183CONFIG_OBSOLETE_MODPARM=y
184# CONFIG_MODVERSIONS is not set 180# CONFIG_MODVERSIONS is not set
185CONFIG_MODULE_SRCVERSION_ALL=y 181CONFIG_MODULE_SRCVERSION_ALL=y
186CONFIG_KMOD=y 182CONFIG_KMOD=y
@@ -189,6 +185,8 @@ CONFIG_KMOD=y
189# Block layer 185# Block layer
190# 186#
191# CONFIG_LBD is not set 187# CONFIG_LBD is not set
188# CONFIG_BLK_DEV_IO_TRACE is not set
189# CONFIG_LSF is not set
192 190
193# 191#
194# IO Schedulers 192# IO Schedulers
@@ -233,11 +231,10 @@ CONFIG_NET=y
233# 231#
234# Networking options 232# Networking options
235# 233#
234# CONFIG_NETDEBUG is not set
236CONFIG_PACKET=y 235CONFIG_PACKET=y
237CONFIG_PACKET_MMAP=y 236CONFIG_PACKET_MMAP=y
238CONFIG_UNIX=y 237CONFIG_UNIX=y
239CONFIG_XFRM=y
240CONFIG_XFRM_USER=m
241# CONFIG_NET_KEY is not set 238# CONFIG_NET_KEY is not set
242CONFIG_INET=y 239CONFIG_INET=y
243# CONFIG_IP_MULTICAST is not set 240# CONFIG_IP_MULTICAST is not set
@@ -254,12 +251,15 @@ CONFIG_IP_PNP_BOOTP=y
254# CONFIG_INET_AH is not set 251# CONFIG_INET_AH is not set
255# CONFIG_INET_ESP is not set 252# CONFIG_INET_ESP is not set
256# CONFIG_INET_IPCOMP is not set 253# CONFIG_INET_IPCOMP is not set
257CONFIG_INET_TUNNEL=m 254# CONFIG_INET_XFRM_TUNNEL is not set
255# CONFIG_INET_TUNNEL is not set
258CONFIG_INET_DIAG=y 256CONFIG_INET_DIAG=y
259CONFIG_INET_TCP_DIAG=y 257CONFIG_INET_TCP_DIAG=y
260# CONFIG_TCP_CONG_ADVANCED is not set 258# CONFIG_TCP_CONG_ADVANCED is not set
261CONFIG_TCP_CONG_BIC=y 259CONFIG_TCP_CONG_BIC=y
262# CONFIG_IPV6 is not set 260# CONFIG_IPV6 is not set
261# CONFIG_INET6_XFRM_TUNNEL is not set
262# CONFIG_INET6_TUNNEL is not set
263# CONFIG_NETFILTER is not set 263# CONFIG_NETFILTER is not set
264 264
265# 265#
@@ -271,6 +271,11 @@ CONFIG_TCP_CONG_BIC=y
271# SCTP Configuration (EXPERIMENTAL) 271# SCTP Configuration (EXPERIMENTAL)
272# 272#
273# CONFIG_IP_SCTP is not set 273# CONFIG_IP_SCTP is not set
274
275#
276# TIPC Configuration (EXPERIMENTAL)
277#
278# CONFIG_TIPC is not set
274# CONFIG_ATM is not set 279# CONFIG_ATM is not set
275# CONFIG_BRIDGE is not set 280# CONFIG_BRIDGE is not set
276# CONFIG_VLAN_8021Q is not set 281# CONFIG_VLAN_8021Q is not set
@@ -280,11 +285,6 @@ CONFIG_TCP_CONG_BIC=y
280# CONFIG_ATALK is not set 285# CONFIG_ATALK is not set
281# CONFIG_X25 is not set 286# CONFIG_X25 is not set
282# CONFIG_LAPB is not set 287# CONFIG_LAPB is not set
283
284#
285# TIPC Configuration (EXPERIMENTAL)
286#
287# CONFIG_TIPC is not set
288# CONFIG_NET_DIVERT is not set 288# CONFIG_NET_DIVERT is not set
289# CONFIG_ECONET is not set 289# CONFIG_ECONET is not set
290# CONFIG_WAN_ROUTER is not set 290# CONFIG_WAN_ROUTER is not set
@@ -305,6 +305,9 @@ CONFIG_IEEE80211=m
305# CONFIG_IEEE80211_DEBUG is not set 305# CONFIG_IEEE80211_DEBUG is not set
306CONFIG_IEEE80211_CRYPT_WEP=m 306CONFIG_IEEE80211_CRYPT_WEP=m
307CONFIG_IEEE80211_CRYPT_CCMP=m 307CONFIG_IEEE80211_CRYPT_CCMP=m
308CONFIG_IEEE80211_SOFTMAC=m
309# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
310CONFIG_WIRELESS_EXT=y
308 311
309# 312#
310# Device Drivers 313# Device Drivers
@@ -345,7 +348,7 @@ CONFIG_BLK_DEV_LOOP=m
345# CONFIG_BLK_DEV_CRYPTOLOOP is not set 348# CONFIG_BLK_DEV_CRYPTOLOOP is not set
346# CONFIG_BLK_DEV_NBD is not set 349# CONFIG_BLK_DEV_NBD is not set
347# CONFIG_BLK_DEV_RAM is not set 350# CONFIG_BLK_DEV_RAM is not set
348CONFIG_BLK_DEV_RAM_COUNT=16 351# CONFIG_BLK_DEV_INITRD is not set
349# CONFIG_CDROM_PKTCDVD is not set 352# CONFIG_CDROM_PKTCDVD is not set
350# CONFIG_ATA_OVER_ETH is not set 353# CONFIG_ATA_OVER_ETH is not set
351 354
@@ -567,10 +570,6 @@ CONFIG_RTC=y
567# 570#
568 571
569# 572#
570# Multimedia Capabilities Port drivers
571#
572
573#
574# Multimedia devices 573# Multimedia devices
575# 574#
576# CONFIG_VIDEO_DEV is not set 575# CONFIG_VIDEO_DEV is not set
@@ -588,6 +587,7 @@ CONFIG_FB_CFB_FILLRECT=y
588CONFIG_FB_CFB_COPYAREA=y 587CONFIG_FB_CFB_COPYAREA=y
589CONFIG_FB_CFB_IMAGEBLIT=y 588CONFIG_FB_CFB_IMAGEBLIT=y
590# CONFIG_FB_MACMODES is not set 589# CONFIG_FB_MACMODES is not set
590CONFIG_FB_FIRMWARE_EDID=y
591# CONFIG_FB_MODE_HELPERS is not set 591# CONFIG_FB_MODE_HELPERS is not set
592# CONFIG_FB_TILEBLITTING is not set 592# CONFIG_FB_TILEBLITTING is not set
593# CONFIG_FB_S1D13XXX is not set 593# CONFIG_FB_S1D13XXX is not set
@@ -617,6 +617,7 @@ CONFIG_LOGO_DEC_CLUT224=y
617# 617#
618# CONFIG_USB_ARCH_HAS_HCD is not set 618# CONFIG_USB_ARCH_HAS_HCD is not set
619# CONFIG_USB_ARCH_HAS_OHCI is not set 619# CONFIG_USB_ARCH_HAS_OHCI is not set
620# CONFIG_USB_ARCH_HAS_EHCI is not set
620 621
621# 622#
622# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 623# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -633,12 +634,30 @@ CONFIG_LOGO_DEC_CLUT224=y
633# CONFIG_MMC is not set 634# CONFIG_MMC is not set
634 635
635# 636#
637# LED devices
638#
639# CONFIG_NEW_LEDS is not set
640
641#
642# LED drivers
643#
644
645#
646# LED Triggers
647#
648
649#
636# InfiniBand support 650# InfiniBand support
637# 651#
638 652
639# 653#
640# SN Devices 654# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
655#
656
657#
658# Real Time Clock
641# 659#
660# CONFIG_RTC_CLASS is not set
642 661
643# 662#
644# File systems 663# File systems
@@ -686,7 +705,6 @@ CONFIG_SYSFS=y
686CONFIG_TMPFS=y 705CONFIG_TMPFS=y
687# CONFIG_HUGETLB_PAGE is not set 706# CONFIG_HUGETLB_PAGE is not set
688CONFIG_RAMFS=y 707CONFIG_RAMFS=y
689CONFIG_RELAYFS_FS=m
690# CONFIG_CONFIGFS_FS is not set 708# CONFIG_CONFIGFS_FS is not set
691 709
692# 710#
@@ -705,7 +723,6 @@ CONFIG_RELAYFS_FS=m
705# CONFIG_QNX4FS_FS is not set 723# CONFIG_QNX4FS_FS is not set
706# CONFIG_SYSV_FS is not set 724# CONFIG_SYSV_FS is not set
707CONFIG_UFS_FS=y 725CONFIG_UFS_FS=y
708CONFIG_UFS_FS_WRITE=y
709 726
710# 727#
711# Network File Systems 728# Network File Systems
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig
index 8fbfc06a6a2a..0760f4318910 100644
--- a/arch/mips/configs/e55_defconfig
+++ b/arch/mips/configs/e55_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:04 2006 4# Tue Apr 25 00:08:20 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -70,6 +70,8 @@ CONFIG_CASIO_E55=y
70# CONFIG_VICTOR_MPC30X is not set 70# CONFIG_VICTOR_MPC30X is not set
71# CONFIG_ZAO_CAPCELLA is not set 71# CONFIG_ZAO_CAPCELLA is not set
72CONFIG_RWSEM_GENERIC_SPINLOCK=y 72CONFIG_RWSEM_GENERIC_SPINLOCK=y
73CONFIG_GENERIC_FIND_NEXT_BIT=y
74CONFIG_GENERIC_HWEIGHT=y
73CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
74CONFIG_DMA_NONCOHERENT=y 76CONFIG_DMA_NONCOHERENT=y
75CONFIG_DMA_NEED_PCI_MAP_STATE=y 77CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -88,7 +90,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
88# CONFIG_CPU_MIPS64_R2 is not set 90# CONFIG_CPU_MIPS64_R2 is not set
89# CONFIG_CPU_R3000 is not set 91# CONFIG_CPU_R3000 is not set
90# CONFIG_CPU_TX39XX is not set 92# CONFIG_CPU_TX39XX is not set
91# CONFIG_CPU_VR41XX is not set 93CONFIG_CPU_VR41XX=y
92# CONFIG_CPU_R4300 is not set 94# CONFIG_CPU_R4300 is not set
93# CONFIG_CPU_R4X00 is not set 95# CONFIG_CPU_R4X00 is not set
94# CONFIG_CPU_TX49XX is not set 96# CONFIG_CPU_TX49XX is not set
@@ -101,18 +103,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
101# CONFIG_CPU_RM7000 is not set 103# CONFIG_CPU_RM7000 is not set
102# CONFIG_CPU_RM9000 is not set 104# CONFIG_CPU_RM9000 is not set
103# CONFIG_CPU_SB1 is not set 105# CONFIG_CPU_SB1 is not set
106CONFIG_SYS_HAS_CPU_VR41XX=y
107CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
108CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
109CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
104 110
105# 111#
106# Kernel type 112# Kernel type
107# 113#
108# CONFIG_32BIT is not set 114CONFIG_32BIT=y
109# CONFIG_64BIT is not set 115# CONFIG_64BIT is not set
110CONFIG_PAGE_SIZE_4KB=y 116CONFIG_PAGE_SIZE_4KB=y
111# CONFIG_PAGE_SIZE_8KB is not set 117# CONFIG_PAGE_SIZE_8KB is not set
112# CONFIG_PAGE_SIZE_16KB is not set 118# CONFIG_PAGE_SIZE_16KB is not set
113# CONFIG_PAGE_SIZE_64KB is not set 119# CONFIG_PAGE_SIZE_64KB is not set
114# CONFIG_MIPS_MT is not set 120# CONFIG_MIPS_MT is not set
115CONFIG_CPU_HAS_LLSC=y
116CONFIG_CPU_HAS_SYNC=y 121CONFIG_CPU_HAS_SYNC=y
117CONFIG_GENERIC_HARDIRQS=y 122CONFIG_GENERIC_HARDIRQS=y
118CONFIG_GENERIC_IRQ_PROBE=y 123CONFIG_GENERIC_IRQ_PROBE=y
@@ -133,7 +138,6 @@ CONFIG_PREEMPT_NONE=y
133# Code maturity level options 138# Code maturity level options
134# 139#
135CONFIG_EXPERIMENTAL=y 140CONFIG_EXPERIMENTAL=y
136CONFIG_CLEAN_COMPILE=y
137CONFIG_BROKEN_ON_SMP=y 141CONFIG_BROKEN_ON_SMP=y
138CONFIG_INIT_ENV_ARG_LIMIT=32 142CONFIG_INIT_ENV_ARG_LIMIT=32
139 143
@@ -144,11 +148,10 @@ CONFIG_LOCALVERSION=""
144CONFIG_LOCALVERSION_AUTO=y 148CONFIG_LOCALVERSION_AUTO=y
145CONFIG_SWAP=y 149CONFIG_SWAP=y
146CONFIG_SYSVIPC=y 150CONFIG_SYSVIPC=y
147# CONFIG_POSIX_MQUEUE is not set
148# CONFIG_BSD_PROCESS_ACCT is not set 151# CONFIG_BSD_PROCESS_ACCT is not set
149CONFIG_SYSCTL=y 152CONFIG_SYSCTL=y
150# CONFIG_AUDIT is not set
151# CONFIG_IKCONFIG is not set 153# CONFIG_IKCONFIG is not set
154# CONFIG_RELAY is not set
152CONFIG_INITRAMFS_SOURCE="" 155CONFIG_INITRAMFS_SOURCE=""
153# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 156# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
154CONFIG_EMBEDDED=y 157CONFIG_EMBEDDED=y
@@ -162,10 +165,6 @@ CONFIG_BASE_FULL=y
162CONFIG_FUTEX=y 165CONFIG_FUTEX=y
163CONFIG_EPOLL=y 166CONFIG_EPOLL=y
164CONFIG_SHMEM=y 167CONFIG_SHMEM=y
165CONFIG_CC_ALIGN_FUNCTIONS=0
166CONFIG_CC_ALIGN_LABELS=0
167CONFIG_CC_ALIGN_LOOPS=0
168CONFIG_CC_ALIGN_JUMPS=0
169CONFIG_SLAB=y 168CONFIG_SLAB=y
170# CONFIG_TINY_SHMEM is not set 169# CONFIG_TINY_SHMEM is not set
171CONFIG_BASE_SMALL=0 170CONFIG_BASE_SMALL=0
@@ -177,7 +176,6 @@ CONFIG_BASE_SMALL=0
177CONFIG_MODULES=y 176CONFIG_MODULES=y
178CONFIG_MODULE_UNLOAD=y 177CONFIG_MODULE_UNLOAD=y
179# CONFIG_MODULE_FORCE_UNLOAD is not set 178# CONFIG_MODULE_FORCE_UNLOAD is not set
180CONFIG_OBSOLETE_MODPARM=y
181CONFIG_MODVERSIONS=y 179CONFIG_MODVERSIONS=y
182CONFIG_MODULE_SRCVERSION_ALL=y 180CONFIG_MODULE_SRCVERSION_ALL=y
183CONFIG_KMOD=y 181CONFIG_KMOD=y
@@ -185,6 +183,9 @@ CONFIG_KMOD=y
185# 183#
186# Block layer 184# Block layer
187# 185#
186# CONFIG_LBD is not set
187# CONFIG_BLK_DEV_IO_TRACE is not set
188# CONFIG_LSF is not set
188 189
189# 190#
190# IO Schedulers 191# IO Schedulers
@@ -219,85 +220,12 @@ CONFIG_MMU=y
219# 220#
220CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
221# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
223CONFIG_TRAD_SIGNALS=y
222 224
223# 225#
224# Networking 226# Networking
225# 227#
226CONFIG_NET=y 228# CONFIG_NET is not set
227
228#
229# Networking options
230#
231CONFIG_PACKET=y
232CONFIG_PACKET_MMAP=y
233CONFIG_UNIX=y
234CONFIG_XFRM=y
235CONFIG_XFRM_USER=m
236CONFIG_NET_KEY=y
237CONFIG_INET=y
238CONFIG_IP_MULTICAST=y
239# CONFIG_IP_ADVANCED_ROUTER is not set
240CONFIG_IP_FIB_HASH=y
241# CONFIG_IP_PNP is not set
242# CONFIG_NET_IPIP is not set
243# CONFIG_NET_IPGRE is not set
244# CONFIG_IP_MROUTE is not set
245# CONFIG_ARPD is not set
246# CONFIG_SYN_COOKIES is not set
247# CONFIG_INET_AH is not set
248# CONFIG_INET_ESP is not set
249# CONFIG_INET_IPCOMP is not set
250CONFIG_INET_TUNNEL=m
251CONFIG_INET_DIAG=y
252CONFIG_INET_TCP_DIAG=y
253# CONFIG_TCP_CONG_ADVANCED is not set
254CONFIG_TCP_CONG_BIC=y
255# CONFIG_IPV6 is not set
256# CONFIG_NETFILTER is not set
257
258#
259# DCCP Configuration (EXPERIMENTAL)
260#
261# CONFIG_IP_DCCP is not set
262
263#
264# SCTP Configuration (EXPERIMENTAL)
265#
266# CONFIG_IP_SCTP is not set
267# CONFIG_ATM is not set
268# CONFIG_BRIDGE is not set
269# CONFIG_VLAN_8021Q is not set
270# CONFIG_DECNET is not set
271# CONFIG_LLC2 is not set
272# CONFIG_IPX is not set
273# CONFIG_ATALK is not set
274# CONFIG_X25 is not set
275# CONFIG_LAPB is not set
276
277#
278# TIPC Configuration (EXPERIMENTAL)
279#
280# CONFIG_TIPC is not set
281# CONFIG_NET_DIVERT is not set
282# CONFIG_ECONET is not set
283# CONFIG_WAN_ROUTER is not set
284
285#
286# QoS and/or fair queueing
287#
288# CONFIG_NET_SCHED is not set
289
290#
291# Network testing
292#
293# CONFIG_NET_PKTGEN is not set
294# CONFIG_HAMRADIO is not set
295# CONFIG_IRDA is not set
296# CONFIG_BT is not set
297CONFIG_IEEE80211=m
298# CONFIG_IEEE80211_DEBUG is not set
299CONFIG_IEEE80211_CRYPT_WEP=m
300CONFIG_IEEE80211_CRYPT_CCMP=m
301 229
302# 230#
303# Device Drivers 231# Device Drivers
@@ -313,7 +241,6 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
313# 241#
314# Connector - unified userspace <-> kernelspace linker 242# Connector - unified userspace <-> kernelspace linker
315# 243#
316CONFIG_CONNECTOR=m
317 244
318# 245#
319# Memory Technology Devices (MTD) 246# Memory Technology Devices (MTD)
@@ -335,11 +262,11 @@ CONFIG_CONNECTOR=m
335# 262#
336# CONFIG_BLK_DEV_COW_COMMON is not set 263# CONFIG_BLK_DEV_COW_COMMON is not set
337# CONFIG_BLK_DEV_LOOP is not set 264# CONFIG_BLK_DEV_LOOP is not set
338# CONFIG_BLK_DEV_NBD is not set 265CONFIG_BLK_DEV_RAM=m
339# CONFIG_BLK_DEV_RAM is not set
340CONFIG_BLK_DEV_RAM_COUNT=16 266CONFIG_BLK_DEV_RAM_COUNT=16
267CONFIG_BLK_DEV_RAM_SIZE=4096
268# CONFIG_BLK_DEV_INITRD is not set
341# CONFIG_CDROM_PKTCDVD is not set 269# CONFIG_CDROM_PKTCDVD is not set
342# CONFIG_ATA_OVER_ETH is not set
343 270
344# 271#
345# ATA/ATAPI/MFM/RLL support 272# ATA/ATAPI/MFM/RLL support
@@ -398,81 +325,8 @@ CONFIG_IDE_GENERIC=y
398# 325#
399 326
400# 327#
401# Network device support
402#
403CONFIG_NETDEVICES=y
404# CONFIG_DUMMY is not set
405# CONFIG_BONDING is not set
406# CONFIG_EQUALIZER is not set
407# CONFIG_TUN is not set
408
409#
410# ARCnet devices
411#
412# CONFIG_ARCNET is not set
413
414#
415# PHY device support
416#
417CONFIG_PHYLIB=m
418
419#
420# MII PHY device drivers
421#
422CONFIG_MARVELL_PHY=m
423CONFIG_DAVICOM_PHY=m
424CONFIG_QSEMI_PHY=m
425CONFIG_LXT_PHY=m
426CONFIG_CICADA_PHY=m
427
428#
429# Ethernet (10 or 100Mbit)
430#
431CONFIG_NET_ETHERNET=y
432# CONFIG_MII is not set
433# CONFIG_NET_VENDOR_3COM is not set
434# CONFIG_NET_VENDOR_SMC is not set
435# CONFIG_DM9000 is not set
436# CONFIG_NET_VENDOR_RACAL is not set
437# CONFIG_AT1700 is not set
438# CONFIG_DEPCA is not set
439# CONFIG_HP100 is not set
440# CONFIG_NET_ISA is not set
441# CONFIG_NET_PCI is not set
442
443#
444# Ethernet (1000 Mbit)
445#
446
447#
448# Ethernet (10000 Mbit)
449#
450
451#
452# Token Ring devices
453#
454# CONFIG_TR is not set
455
456#
457# Wireless LAN (non-hamradio)
458#
459# CONFIG_NET_RADIO is not set
460
461#
462# Wan interfaces
463#
464# CONFIG_WAN is not set
465# CONFIG_PPP is not set
466# CONFIG_SLIP is not set
467# CONFIG_SHAPER is not set
468# CONFIG_NETCONSOLE is not set
469# CONFIG_NETPOLL is not set
470# CONFIG_NET_POLL_CONTROLLER is not set
471
472#
473# ISDN subsystem 328# ISDN subsystem
474# 329#
475# CONFIG_ISDN is not set
476 330
477# 331#
478# Telephony Support 332# Telephony Support
@@ -508,11 +362,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
508# 362#
509# Hardware I/O ports 363# Hardware I/O ports
510# 364#
511CONFIG_SERIO=y 365# CONFIG_SERIO is not set
512# CONFIG_SERIO_I8042 is not set
513CONFIG_SERIO_SERPORT=y
514# CONFIG_SERIO_LIBPS2 is not set
515CONFIG_SERIO_RAW=m
516# CONFIG_GAMEPORT is not set 366# CONFIG_GAMEPORT is not set
517 367
518# 368#
@@ -531,6 +381,10 @@ CONFIG_HW_CONSOLE=y
531# 381#
532# Non-8250 serial port support 382# Non-8250 serial port support
533# 383#
384CONFIG_SERIAL_CORE=y
385CONFIG_SERIAL_CORE_CONSOLE=y
386CONFIG_SERIAL_VR41XX=y
387CONFIG_SERIAL_VR41XX_CONSOLE=y
534CONFIG_UNIX98_PTYS=y 388CONFIG_UNIX98_PTYS=y
535CONFIG_LEGACY_PTYS=y 389CONFIG_LEGACY_PTYS=y
536CONFIG_LEGACY_PTY_COUNT=256 390CONFIG_LEGACY_PTY_COUNT=256
@@ -565,6 +419,7 @@ CONFIG_WATCHDOG=y
565# 419#
566# Ftape, the floppy tape device driver 420# Ftape, the floppy tape device driver
567# 421#
422CONFIG_GPIO_VR41XX=y
568# CONFIG_RAW_DRIVER is not set 423# CONFIG_RAW_DRIVER is not set
569 424
570# 425#
@@ -600,10 +455,6 @@ CONFIG_WATCHDOG=y
600# 455#
601 456
602# 457#
603# Multimedia Capabilities Port drivers
604#
605
606#
607# Multimedia devices 458# Multimedia devices
608# 459#
609# CONFIG_VIDEO_DEV is not set 460# CONFIG_VIDEO_DEV is not set
@@ -611,7 +462,6 @@ CONFIG_WATCHDOG=y
611# 462#
612# Digital Video Broadcasting Devices 463# Digital Video Broadcasting Devices
613# 464#
614# CONFIG_DVB is not set
615 465
616# 466#
617# Graphics support 467# Graphics support
@@ -635,6 +485,7 @@ CONFIG_DUMMY_CONSOLE=y
635# 485#
636# CONFIG_USB_ARCH_HAS_HCD is not set 486# CONFIG_USB_ARCH_HAS_HCD is not set
637# CONFIG_USB_ARCH_HAS_OHCI is not set 487# CONFIG_USB_ARCH_HAS_OHCI is not set
488# CONFIG_USB_ARCH_HAS_EHCI is not set
638 489
639# 490#
640# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 491# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -651,12 +502,30 @@ CONFIG_DUMMY_CONSOLE=y
651# CONFIG_MMC is not set 502# CONFIG_MMC is not set
652 503
653# 504#
505# LED devices
506#
507# CONFIG_NEW_LEDS is not set
508
509#
510# LED drivers
511#
512
513#
514# LED Triggers
515#
516
517#
654# InfiniBand support 518# InfiniBand support
655# 519#
656 520
657# 521#
658# SN Devices 522# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
523#
524
525#
526# Real Time Clock
659# 527#
528# CONFIG_RTC_CLASS is not set
660 529
661# 530#
662# File systems 531# File systems
@@ -669,13 +538,12 @@ CONFIG_EXT2_FS=y
669# CONFIG_JFS_FS is not set 538# CONFIG_JFS_FS is not set
670# CONFIG_FS_POSIX_ACL is not set 539# CONFIG_FS_POSIX_ACL is not set
671# CONFIG_XFS_FS is not set 540# CONFIG_XFS_FS is not set
672# CONFIG_OCFS2_FS is not set
673# CONFIG_MINIX_FS is not set 541# CONFIG_MINIX_FS is not set
674# CONFIG_ROMFS_FS is not set 542# CONFIG_ROMFS_FS is not set
675CONFIG_INOTIFY=y 543CONFIG_INOTIFY=y
676# CONFIG_QUOTA is not set 544# CONFIG_QUOTA is not set
677CONFIG_DNOTIFY=y 545CONFIG_DNOTIFY=y
678CONFIG_AUTOFS_FS=y 546# CONFIG_AUTOFS_FS is not set
679CONFIG_AUTOFS4_FS=y 547CONFIG_AUTOFS4_FS=y
680CONFIG_FUSE_FS=m 548CONFIG_FUSE_FS=m
681 549
@@ -698,10 +566,9 @@ CONFIG_FUSE_FS=m
698CONFIG_PROC_FS=y 566CONFIG_PROC_FS=y
699CONFIG_PROC_KCORE=y 567CONFIG_PROC_KCORE=y
700CONFIG_SYSFS=y 568CONFIG_SYSFS=y
701# CONFIG_TMPFS is not set 569CONFIG_TMPFS=y
702# CONFIG_HUGETLB_PAGE is not set 570# CONFIG_HUGETLB_PAGE is not set
703CONFIG_RAMFS=y 571CONFIG_RAMFS=y
704CONFIG_RELAYFS_FS=m
705# CONFIG_CONFIGFS_FS is not set 572# CONFIG_CONFIGFS_FS is not set
706 573
707# 574#
@@ -722,29 +589,6 @@ CONFIG_RELAYFS_FS=m
722# CONFIG_UFS_FS is not set 589# CONFIG_UFS_FS is not set
723 590
724# 591#
725# Network File Systems
726#
727CONFIG_NFS_FS=m
728# CONFIG_NFS_V3 is not set
729# CONFIG_NFS_V4 is not set
730# CONFIG_NFS_DIRECTIO is not set
731CONFIG_NFSD=m
732# CONFIG_NFSD_V3 is not set
733# CONFIG_NFSD_TCP is not set
734CONFIG_LOCKD=m
735CONFIG_EXPORTFS=m
736CONFIG_NFS_COMMON=y
737CONFIG_SUNRPC=m
738# CONFIG_RPCSEC_GSS_KRB5 is not set
739# CONFIG_RPCSEC_GSS_SPKM3 is not set
740# CONFIG_SMB_FS is not set
741# CONFIG_CIFS is not set
742# CONFIG_NCP_FS is not set
743# CONFIG_CODA_FS is not set
744# CONFIG_AFS_FS is not set
745# CONFIG_9P_FS is not set
746
747#
748# Partition Types 592# Partition Types
749# 593#
750# CONFIG_PARTITION_ADVANCED is not set 594# CONFIG_PARTITION_ADVANCED is not set
@@ -767,44 +611,20 @@ CONFIG_MSDOS_PARTITION=y
767# CONFIG_MAGIC_SYSRQ is not set 611# CONFIG_MAGIC_SYSRQ is not set
768# CONFIG_DEBUG_KERNEL is not set 612# CONFIG_DEBUG_KERNEL is not set
769CONFIG_LOG_BUF_SHIFT=14 613CONFIG_LOG_BUF_SHIFT=14
614# CONFIG_DEBUG_FS is not set
770CONFIG_CROSSCOMPILE=y 615CONFIG_CROSSCOMPILE=y
771CONFIG_CMDLINE="console=ttyVR0,19200 mem=8M" 616CONFIG_CMDLINE="console=ttyVR0,19200 mem=8M"
772 617
773# 618#
774# Security options 619# Security options
775# 620#
776CONFIG_KEYS=y 621# CONFIG_KEYS is not set
777CONFIG_KEYS_DEBUG_PROC_KEYS=y
778# CONFIG_SECURITY is not set 622# CONFIG_SECURITY is not set
779 623
780# 624#
781# Cryptographic options 625# Cryptographic options
782# 626#
783CONFIG_CRYPTO=y 627# CONFIG_CRYPTO is not set
784CONFIG_CRYPTO_HMAC=y
785CONFIG_CRYPTO_NULL=m
786CONFIG_CRYPTO_MD4=m
787CONFIG_CRYPTO_MD5=m
788CONFIG_CRYPTO_SHA1=m
789CONFIG_CRYPTO_SHA256=m
790CONFIG_CRYPTO_SHA512=m
791CONFIG_CRYPTO_WP512=m
792CONFIG_CRYPTO_TGR192=m
793CONFIG_CRYPTO_DES=m
794CONFIG_CRYPTO_BLOWFISH=m
795CONFIG_CRYPTO_TWOFISH=m
796CONFIG_CRYPTO_SERPENT=m
797CONFIG_CRYPTO_AES=m
798CONFIG_CRYPTO_CAST5=m
799CONFIG_CRYPTO_CAST6=m
800CONFIG_CRYPTO_TEA=m
801CONFIG_CRYPTO_ARC4=m
802CONFIG_CRYPTO_KHAZAD=m
803CONFIG_CRYPTO_ANUBIS=m
804CONFIG_CRYPTO_DEFLATE=m
805CONFIG_CRYPTO_MICHAEL_MIC=m
806CONFIG_CRYPTO_CRC32C=m
807# CONFIG_CRYPTO_TEST is not set
808 628
809# 629#
810# Hardware crypto devices 630# Hardware crypto devices
@@ -814,8 +634,6 @@ CONFIG_CRYPTO_CRC32C=m
814# Library routines 634# Library routines
815# 635#
816# CONFIG_CRC_CCITT is not set 636# CONFIG_CRC_CCITT is not set
817CONFIG_CRC16=m 637# CONFIG_CRC16 is not set
818CONFIG_CRC32=m 638# CONFIG_CRC32 is not set
819CONFIG_LIBCRC32C=m 639# CONFIG_LIBCRC32C is not set
820CONFIG_ZLIB_INFLATE=m
821CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/mips/configs/ev64120_defconfig b/arch/mips/configs/ev64120_defconfig
index f2d43be69007..7067f608b22c 100644
--- a/arch/mips/configs/ev64120_defconfig
+++ b/arch/mips/configs/ev64120_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:05 2006 4# Mon Apr 24 14:51:02 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -65,6 +65,8 @@ CONFIG_MIPS_EV64120=y
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66# CONFIG_EVB_PCI1 is not set 66# CONFIG_EVB_PCI1 is not set
67CONFIG_RWSEM_GENERIC_SPINLOCK=y 67CONFIG_RWSEM_GENERIC_SPINLOCK=y
68CONFIG_GENERIC_FIND_NEXT_BIT=y
69CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
69CONFIG_DMA_NONCOHERENT=y 71CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 72CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -116,7 +118,6 @@ CONFIG_PAGE_SIZE_4KB=y
116# CONFIG_PAGE_SIZE_64KB is not set 118# CONFIG_PAGE_SIZE_64KB is not set
117# CONFIG_MIPS_MT is not set 119# CONFIG_MIPS_MT is not set
118# CONFIG_64BIT_PHYS_ADDR is not set 120# CONFIG_64BIT_PHYS_ADDR is not set
119# CONFIG_CPU_ADVANCED is not set
120CONFIG_CPU_HAS_LLSC=y 121CONFIG_CPU_HAS_LLSC=y
121CONFIG_CPU_HAS_SYNC=y 122CONFIG_CPU_HAS_SYNC=y
122CONFIG_GENERIC_HARDIRQS=y 123CONFIG_GENERIC_HARDIRQS=y
@@ -138,7 +139,6 @@ CONFIG_PREEMPT_NONE=y
138# Code maturity level options 139# Code maturity level options
139# 140#
140CONFIG_EXPERIMENTAL=y 141CONFIG_EXPERIMENTAL=y
141CONFIG_CLEAN_COMPILE=y
142CONFIG_BROKEN_ON_SMP=y 142CONFIG_BROKEN_ON_SMP=y
143CONFIG_INIT_ENV_ARG_LIMIT=32 143CONFIG_INIT_ENV_ARG_LIMIT=32
144 144
@@ -154,6 +154,7 @@ CONFIG_SYSVIPC=y
154CONFIG_SYSCTL=y 154CONFIG_SYSCTL=y
155# CONFIG_AUDIT is not set 155# CONFIG_AUDIT is not set
156# CONFIG_IKCONFIG is not set 156# CONFIG_IKCONFIG is not set
157CONFIG_RELAY=y
157CONFIG_INITRAMFS_SOURCE="" 158CONFIG_INITRAMFS_SOURCE=""
158# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 159# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
159CONFIG_EMBEDDED=y 160CONFIG_EMBEDDED=y
@@ -167,10 +168,6 @@ CONFIG_BASE_FULL=y
167CONFIG_FUTEX=y 168CONFIG_FUTEX=y
168CONFIG_EPOLL=y 169CONFIG_EPOLL=y
169CONFIG_SHMEM=y 170CONFIG_SHMEM=y
170CONFIG_CC_ALIGN_FUNCTIONS=0
171CONFIG_CC_ALIGN_LABELS=0
172CONFIG_CC_ALIGN_LOOPS=0
173CONFIG_CC_ALIGN_JUMPS=0
174CONFIG_SLAB=y 171CONFIG_SLAB=y
175# CONFIG_TINY_SHMEM is not set 172# CONFIG_TINY_SHMEM is not set
176CONFIG_BASE_SMALL=0 173CONFIG_BASE_SMALL=0
@@ -182,7 +179,6 @@ CONFIG_BASE_SMALL=0
182CONFIG_MODULES=y 179CONFIG_MODULES=y
183CONFIG_MODULE_UNLOAD=y 180CONFIG_MODULE_UNLOAD=y
184# CONFIG_MODULE_FORCE_UNLOAD is not set 181# CONFIG_MODULE_FORCE_UNLOAD is not set
185CONFIG_OBSOLETE_MODPARM=y
186CONFIG_MODVERSIONS=y 182CONFIG_MODVERSIONS=y
187CONFIG_MODULE_SRCVERSION_ALL=y 183CONFIG_MODULE_SRCVERSION_ALL=y
188# CONFIG_KMOD is not set 184# CONFIG_KMOD is not set
@@ -191,6 +187,8 @@ CONFIG_MODULE_SRCVERSION_ALL=y
191# Block layer 187# Block layer
192# 188#
193# CONFIG_LBD is not set 189# CONFIG_LBD is not set
190# CONFIG_BLK_DEV_IO_TRACE is not set
191# CONFIG_LSF is not set
194 192
195# 193#
196# IO Schedulers 194# IO Schedulers
@@ -210,7 +208,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
210# 208#
211CONFIG_HW_HAS_PCI=y 209CONFIG_HW_HAS_PCI=y
212CONFIG_PCI=y 210CONFIG_PCI=y
213CONFIG_PCI_LEGACY_PROC=y
214CONFIG_MMU=y 211CONFIG_MMU=y
215 212
216# 213#
@@ -238,6 +235,7 @@ CONFIG_NET=y
238# 235#
239# Networking options 236# Networking options
240# 237#
238# CONFIG_NETDEBUG is not set
241# CONFIG_PACKET is not set 239# CONFIG_PACKET is not set
242CONFIG_UNIX=y 240CONFIG_UNIX=y
243CONFIG_XFRM=y 241CONFIG_XFRM=y
@@ -258,12 +256,15 @@ CONFIG_IP_PNP=y
258# CONFIG_INET_AH is not set 256# CONFIG_INET_AH is not set
259# CONFIG_INET_ESP is not set 257# CONFIG_INET_ESP is not set
260# CONFIG_INET_IPCOMP is not set 258# CONFIG_INET_IPCOMP is not set
261CONFIG_INET_TUNNEL=m 259# CONFIG_INET_XFRM_TUNNEL is not set
260# CONFIG_INET_TUNNEL is not set
262CONFIG_INET_DIAG=y 261CONFIG_INET_DIAG=y
263CONFIG_INET_TCP_DIAG=y 262CONFIG_INET_TCP_DIAG=y
264# CONFIG_TCP_CONG_ADVANCED is not set 263# CONFIG_TCP_CONG_ADVANCED is not set
265CONFIG_TCP_CONG_BIC=y 264CONFIG_TCP_CONG_BIC=y
266# CONFIG_IPV6 is not set 265# CONFIG_IPV6 is not set
266# CONFIG_INET6_XFRM_TUNNEL is not set
267# CONFIG_INET6_TUNNEL is not set
267# CONFIG_NETFILTER is not set 268# CONFIG_NETFILTER is not set
268 269
269# 270#
@@ -275,6 +276,11 @@ CONFIG_TCP_CONG_BIC=y
275# SCTP Configuration (EXPERIMENTAL) 276# SCTP Configuration (EXPERIMENTAL)
276# 277#
277# CONFIG_IP_SCTP is not set 278# CONFIG_IP_SCTP is not set
279
280#
281# TIPC Configuration (EXPERIMENTAL)
282#
283# CONFIG_TIPC is not set
278# CONFIG_ATM is not set 284# CONFIG_ATM is not set
279# CONFIG_BRIDGE is not set 285# CONFIG_BRIDGE is not set
280# CONFIG_VLAN_8021Q is not set 286# CONFIG_VLAN_8021Q is not set
@@ -284,11 +290,6 @@ CONFIG_TCP_CONG_BIC=y
284# CONFIG_ATALK is not set 290# CONFIG_ATALK is not set
285# CONFIG_X25 is not set 291# CONFIG_X25 is not set
286# CONFIG_LAPB is not set 292# CONFIG_LAPB is not set
287
288#
289# TIPC Configuration (EXPERIMENTAL)
290#
291# CONFIG_TIPC is not set
292# CONFIG_NET_DIVERT is not set 293# CONFIG_NET_DIVERT is not set
293# CONFIG_ECONET is not set 294# CONFIG_ECONET is not set
294# CONFIG_WAN_ROUTER is not set 295# CONFIG_WAN_ROUTER is not set
@@ -309,6 +310,9 @@ CONFIG_IEEE80211=m
309# CONFIG_IEEE80211_DEBUG is not set 310# CONFIG_IEEE80211_DEBUG is not set
310CONFIG_IEEE80211_CRYPT_WEP=m 311CONFIG_IEEE80211_CRYPT_WEP=m
311CONFIG_IEEE80211_CRYPT_CCMP=m 312CONFIG_IEEE80211_CRYPT_CCMP=m
313CONFIG_IEEE80211_SOFTMAC=m
314# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
315CONFIG_WIRELESS_EXT=y
312 316
313# 317#
314# Device Drivers 318# Device Drivers
@@ -352,7 +356,7 @@ CONFIG_CONNECTOR=m
352# CONFIG_BLK_DEV_NBD is not set 356# CONFIG_BLK_DEV_NBD is not set
353# CONFIG_BLK_DEV_SX8 is not set 357# CONFIG_BLK_DEV_SX8 is not set
354# CONFIG_BLK_DEV_RAM is not set 358# CONFIG_BLK_DEV_RAM is not set
355CONFIG_BLK_DEV_RAM_COUNT=16 359# CONFIG_BLK_DEV_INITRD is not set
356CONFIG_CDROM_PKTCDVD=m 360CONFIG_CDROM_PKTCDVD=m
357CONFIG_CDROM_PKTCDVD_BUFFERS=8 361CONFIG_CDROM_PKTCDVD_BUFFERS=8
358# CONFIG_CDROM_PKTCDVD_WCACHE is not set 362# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -550,6 +554,7 @@ CONFIG_HW_CONSOLE=y
550# 554#
551CONFIG_SERIAL_8250=y 555CONFIG_SERIAL_8250=y
552CONFIG_SERIAL_8250_CONSOLE=y 556CONFIG_SERIAL_8250_CONSOLE=y
557CONFIG_SERIAL_8250_PCI=y
553CONFIG_SERIAL_8250_NR_UARTS=4 558CONFIG_SERIAL_8250_NR_UARTS=4
554CONFIG_SERIAL_8250_RUNTIME_UARTS=4 559CONFIG_SERIAL_8250_RUNTIME_UARTS=4
555# CONFIG_SERIAL_8250_EXTENDED is not set 560# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -559,6 +564,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
559# 564#
560CONFIG_SERIAL_CORE=y 565CONFIG_SERIAL_CORE=y
561CONFIG_SERIAL_CORE_CONSOLE=y 566CONFIG_SERIAL_CORE_CONSOLE=y
567# CONFIG_SERIAL_JSM is not set
562CONFIG_UNIX98_PTYS=y 568CONFIG_UNIX98_PTYS=y
563CONFIG_LEGACY_PTYS=y 569CONFIG_LEGACY_PTYS=y
564CONFIG_LEGACY_PTY_COUNT=256 570CONFIG_LEGACY_PTY_COUNT=256
@@ -617,10 +623,6 @@ CONFIG_LEGACY_PTY_COUNT=256
617# 623#
618 624
619# 625#
620# Multimedia Capabilities Port drivers
621#
622
623#
624# Multimedia devices 626# Multimedia devices
625# 627#
626# CONFIG_VIDEO_DEV is not set 628# CONFIG_VIDEO_DEV is not set
@@ -651,6 +653,7 @@ CONFIG_DUMMY_CONSOLE=y
651# 653#
652CONFIG_USB_ARCH_HAS_HCD=y 654CONFIG_USB_ARCH_HAS_HCD=y
653CONFIG_USB_ARCH_HAS_OHCI=y 655CONFIG_USB_ARCH_HAS_OHCI=y
656CONFIG_USB_ARCH_HAS_EHCI=y
654# CONFIG_USB is not set 657# CONFIG_USB is not set
655 658
656# 659#
@@ -668,13 +671,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
668# CONFIG_MMC is not set 671# CONFIG_MMC is not set
669 672
670# 673#
674# LED devices
675#
676# CONFIG_NEW_LEDS is not set
677
678#
679# LED drivers
680#
681
682#
683# LED Triggers
684#
685
686#
671# InfiniBand support 687# InfiniBand support
672# 688#
673# CONFIG_INFINIBAND is not set 689# CONFIG_INFINIBAND is not set
674 690
675# 691#
676# SN Devices 692# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
693#
694
695#
696# Real Time Clock
677# 697#
698# CONFIG_RTC_CLASS is not set
678 699
679# 700#
680# File systems 701# File systems
@@ -719,7 +740,6 @@ CONFIG_SYSFS=y
719# CONFIG_TMPFS is not set 740# CONFIG_TMPFS is not set
720# CONFIG_HUGETLB_PAGE is not set 741# CONFIG_HUGETLB_PAGE is not set
721CONFIG_RAMFS=y 742CONFIG_RAMFS=y
722CONFIG_RELAYFS_FS=m
723# CONFIG_CONFIGFS_FS is not set 743# CONFIG_CONFIGFS_FS is not set
724 744
725# 745#
@@ -783,6 +803,7 @@ CONFIG_MSDOS_PARTITION=y
783# CONFIG_MAGIC_SYSRQ is not set 803# CONFIG_MAGIC_SYSRQ is not set
784# CONFIG_DEBUG_KERNEL is not set 804# CONFIG_DEBUG_KERNEL is not set
785CONFIG_LOG_BUF_SHIFT=14 805CONFIG_LOG_BUF_SHIFT=14
806# CONFIG_DEBUG_FS is not set
786CONFIG_CROSSCOMPILE=y 807CONFIG_CROSSCOMPILE=y
787CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.1:/mnt/disk2/fs.gal ip=192.168.1.211:192.168.1.1:::gt::" 808CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.1:/mnt/disk2/fs.gal ip=192.168.1.211:192.168.1.1:::gt::"
788 809
diff --git a/arch/mips/configs/ev96100_defconfig b/arch/mips/configs/ev96100_defconfig
index ac5841c4b698..00b56ed0e638 100644
--- a/arch/mips/configs/ev96100_defconfig
+++ b/arch/mips/configs/ev96100_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:06 2006 4# Mon Apr 24 14:51:03 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_EV96100=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -119,7 +121,6 @@ CONFIG_RM7000_CPU_SCACHE=y
119CONFIG_CPU_HAS_PREFETCH=y 121CONFIG_CPU_HAS_PREFETCH=y
120# CONFIG_MIPS_MT is not set 122# CONFIG_MIPS_MT is not set
121# CONFIG_64BIT_PHYS_ADDR is not set 123# CONFIG_64BIT_PHYS_ADDR is not set
122# CONFIG_CPU_ADVANCED is not set
123CONFIG_CPU_HAS_LLSC=y 124CONFIG_CPU_HAS_LLSC=y
124CONFIG_CPU_HAS_SYNC=y 125CONFIG_CPU_HAS_SYNC=y
125CONFIG_GENERIC_HARDIRQS=y 126CONFIG_GENERIC_HARDIRQS=y
@@ -142,7 +143,6 @@ CONFIG_PREEMPT_NONE=y
142# Code maturity level options 143# Code maturity level options
143# 144#
144CONFIG_EXPERIMENTAL=y 145CONFIG_EXPERIMENTAL=y
145CONFIG_CLEAN_COMPILE=y
146CONFIG_BROKEN_ON_SMP=y 146CONFIG_BROKEN_ON_SMP=y
147CONFIG_INIT_ENV_ARG_LIMIT=32 147CONFIG_INIT_ENV_ARG_LIMIT=32
148 148
@@ -158,6 +158,7 @@ CONFIG_SYSVIPC=y
158CONFIG_SYSCTL=y 158CONFIG_SYSCTL=y
159# CONFIG_AUDIT is not set 159# CONFIG_AUDIT is not set
160# CONFIG_IKCONFIG is not set 160# CONFIG_IKCONFIG is not set
161CONFIG_RELAY=y
161CONFIG_INITRAMFS_SOURCE="" 162CONFIG_INITRAMFS_SOURCE=""
162# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 163# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
163CONFIG_EMBEDDED=y 164CONFIG_EMBEDDED=y
@@ -171,10 +172,6 @@ CONFIG_BASE_FULL=y
171CONFIG_FUTEX=y 172CONFIG_FUTEX=y
172CONFIG_EPOLL=y 173CONFIG_EPOLL=y
173CONFIG_SHMEM=y 174CONFIG_SHMEM=y
174CONFIG_CC_ALIGN_FUNCTIONS=0
175CONFIG_CC_ALIGN_LABELS=0
176CONFIG_CC_ALIGN_LOOPS=0
177CONFIG_CC_ALIGN_JUMPS=0
178CONFIG_SLAB=y 175CONFIG_SLAB=y
179# CONFIG_TINY_SHMEM is not set 176# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 177CONFIG_BASE_SMALL=0
@@ -186,7 +183,6 @@ CONFIG_BASE_SMALL=0
186CONFIG_MODULES=y 183CONFIG_MODULES=y
187CONFIG_MODULE_UNLOAD=y 184CONFIG_MODULE_UNLOAD=y
188# CONFIG_MODULE_FORCE_UNLOAD is not set 185# CONFIG_MODULE_FORCE_UNLOAD is not set
189CONFIG_OBSOLETE_MODPARM=y
190CONFIG_MODVERSIONS=y 186CONFIG_MODVERSIONS=y
191CONFIG_MODULE_SRCVERSION_ALL=y 187CONFIG_MODULE_SRCVERSION_ALL=y
192# CONFIG_KMOD is not set 188# CONFIG_KMOD is not set
@@ -195,6 +191,8 @@ CONFIG_MODULE_SRCVERSION_ALL=y
195# Block layer 191# Block layer
196# 192#
197# CONFIG_LBD is not set 193# CONFIG_LBD is not set
194# CONFIG_BLK_DEV_IO_TRACE is not set
195# CONFIG_LSF is not set
198 196
199# 197#
200# IO Schedulers 198# IO Schedulers
@@ -240,6 +238,7 @@ CONFIG_NET=y
240# 238#
241# Networking options 239# Networking options
242# 240#
241# CONFIG_NETDEBUG is not set
243# CONFIG_PACKET is not set 242# CONFIG_PACKET is not set
244CONFIG_UNIX=y 243CONFIG_UNIX=y
245CONFIG_XFRM=y 244CONFIG_XFRM=y
@@ -260,12 +259,15 @@ CONFIG_IP_PNP_BOOTP=y
260# CONFIG_INET_AH is not set 259# CONFIG_INET_AH is not set
261# CONFIG_INET_ESP is not set 260# CONFIG_INET_ESP is not set
262# CONFIG_INET_IPCOMP is not set 261# CONFIG_INET_IPCOMP is not set
263CONFIG_INET_TUNNEL=m 262# CONFIG_INET_XFRM_TUNNEL is not set
263# CONFIG_INET_TUNNEL is not set
264CONFIG_INET_DIAG=y 264CONFIG_INET_DIAG=y
265CONFIG_INET_TCP_DIAG=y 265CONFIG_INET_TCP_DIAG=y
266# CONFIG_TCP_CONG_ADVANCED is not set 266# CONFIG_TCP_CONG_ADVANCED is not set
267CONFIG_TCP_CONG_BIC=y 267CONFIG_TCP_CONG_BIC=y
268# CONFIG_IPV6 is not set 268# CONFIG_IPV6 is not set
269# CONFIG_INET6_XFRM_TUNNEL is not set
270# CONFIG_INET6_TUNNEL is not set
269# CONFIG_NETFILTER is not set 271# CONFIG_NETFILTER is not set
270 272
271# 273#
@@ -277,6 +279,11 @@ CONFIG_TCP_CONG_BIC=y
277# SCTP Configuration (EXPERIMENTAL) 279# SCTP Configuration (EXPERIMENTAL)
278# 280#
279# CONFIG_IP_SCTP is not set 281# CONFIG_IP_SCTP is not set
282
283#
284# TIPC Configuration (EXPERIMENTAL)
285#
286# CONFIG_TIPC is not set
280# CONFIG_ATM is not set 287# CONFIG_ATM is not set
281# CONFIG_BRIDGE is not set 288# CONFIG_BRIDGE is not set
282# CONFIG_VLAN_8021Q is not set 289# CONFIG_VLAN_8021Q is not set
@@ -286,11 +293,6 @@ CONFIG_TCP_CONG_BIC=y
286# CONFIG_ATALK is not set 293# CONFIG_ATALK is not set
287# CONFIG_X25 is not set 294# CONFIG_X25 is not set
288# CONFIG_LAPB is not set 295# CONFIG_LAPB is not set
289
290#
291# TIPC Configuration (EXPERIMENTAL)
292#
293# CONFIG_TIPC is not set
294# CONFIG_NET_DIVERT is not set 296# CONFIG_NET_DIVERT is not set
295# CONFIG_ECONET is not set 297# CONFIG_ECONET is not set
296# CONFIG_WAN_ROUTER is not set 298# CONFIG_WAN_ROUTER is not set
@@ -311,6 +313,9 @@ CONFIG_IEEE80211=m
311# CONFIG_IEEE80211_DEBUG is not set 313# CONFIG_IEEE80211_DEBUG is not set
312CONFIG_IEEE80211_CRYPT_WEP=m 314CONFIG_IEEE80211_CRYPT_WEP=m
313CONFIG_IEEE80211_CRYPT_CCMP=m 315CONFIG_IEEE80211_CRYPT_CCMP=m
316CONFIG_IEEE80211_SOFTMAC=m
317# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
318CONFIG_WIRELESS_EXT=y
314 319
315# 320#
316# Device Drivers 321# Device Drivers
@@ -349,7 +354,7 @@ CONFIG_CONNECTOR=m
349# CONFIG_BLK_DEV_LOOP is not set 354# CONFIG_BLK_DEV_LOOP is not set
350# CONFIG_BLK_DEV_NBD is not set 355# CONFIG_BLK_DEV_NBD is not set
351# CONFIG_BLK_DEV_RAM is not set 356# CONFIG_BLK_DEV_RAM is not set
352CONFIG_BLK_DEV_RAM_COUNT=16 357# CONFIG_BLK_DEV_INITRD is not set
353CONFIG_CDROM_PKTCDVD=m 358CONFIG_CDROM_PKTCDVD=m
354CONFIG_CDROM_PKTCDVD_BUFFERS=8 359CONFIG_CDROM_PKTCDVD_BUFFERS=8
355# CONFIG_CDROM_PKTCDVD_WCACHE is not set 360# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -567,10 +572,6 @@ CONFIG_LEGACY_PTY_COUNT=256
567# 572#
568 573
569# 574#
570# Multimedia Capabilities Port drivers
571#
572
573#
574# Multimedia devices 575# Multimedia devices
575# 576#
576# CONFIG_VIDEO_DEV is not set 577# CONFIG_VIDEO_DEV is not set
@@ -601,6 +602,7 @@ CONFIG_DUMMY_CONSOLE=y
601# 602#
602# CONFIG_USB_ARCH_HAS_HCD is not set 603# CONFIG_USB_ARCH_HAS_HCD is not set
603# CONFIG_USB_ARCH_HAS_OHCI is not set 604# CONFIG_USB_ARCH_HAS_OHCI is not set
605# CONFIG_USB_ARCH_HAS_EHCI is not set
604 606
605# 607#
606# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 608# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -617,12 +619,30 @@ CONFIG_DUMMY_CONSOLE=y
617# CONFIG_MMC is not set 619# CONFIG_MMC is not set
618 620
619# 621#
622# LED devices
623#
624# CONFIG_NEW_LEDS is not set
625
626#
627# LED drivers
628#
629
630#
631# LED Triggers
632#
633
634#
620# InfiniBand support 635# InfiniBand support
621# 636#
622 637
623# 638#
624# SN Devices 639# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
640#
641
642#
643# Real Time Clock
625# 644#
645# CONFIG_RTC_CLASS is not set
626 646
627# 647#
628# File systems 648# File systems
@@ -667,7 +687,6 @@ CONFIG_SYSFS=y
667# CONFIG_TMPFS is not set 687# CONFIG_TMPFS is not set
668# CONFIG_HUGETLB_PAGE is not set 688# CONFIG_HUGETLB_PAGE is not set
669CONFIG_RAMFS=y 689CONFIG_RAMFS=y
670CONFIG_RELAYFS_FS=m
671# CONFIG_CONFIGFS_FS is not set 690# CONFIG_CONFIGFS_FS is not set
672 691
673# 692#
@@ -731,6 +750,7 @@ CONFIG_MSDOS_PARTITION=y
731# CONFIG_MAGIC_SYSRQ is not set 750# CONFIG_MAGIC_SYSRQ is not set
732# CONFIG_DEBUG_KERNEL is not set 751# CONFIG_DEBUG_KERNEL is not set
733CONFIG_LOG_BUF_SHIFT=14 752CONFIG_LOG_BUF_SHIFT=14
753# CONFIG_DEBUG_FS is not set
734CONFIG_CROSSCOMPILE=y 754CONFIG_CROSSCOMPILE=y
735CONFIG_CMDLINE="" 755CONFIG_CMDLINE=""
736 756
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig
index 42d5cd7927cb..607e2985ffe3 100644
--- a/arch/mips/configs/ip22_defconfig
+++ b/arch/mips/configs/ip22_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:51 2006 4# Mon Apr 24 14:50:54 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_SGI_IP22=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_ARC=y 70CONFIG_ARC=y
69CONFIG_DMA_NONCOHERENT=y 71CONFIG_DMA_NONCOHERENT=y
@@ -121,7 +123,6 @@ CONFIG_BOARD_SCACHE=y
121CONFIG_IP22_CPU_SCACHE=y 123CONFIG_IP22_CPU_SCACHE=y
122# CONFIG_MIPS_MT is not set 124# CONFIG_MIPS_MT is not set
123# CONFIG_64BIT_PHYS_ADDR is not set 125# CONFIG_64BIT_PHYS_ADDR is not set
124# CONFIG_CPU_ADVANCED is not set
125CONFIG_CPU_HAS_LLSC=y 126CONFIG_CPU_HAS_LLSC=y
126CONFIG_CPU_HAS_SYNC=y 127CONFIG_CPU_HAS_SYNC=y
127CONFIG_GENERIC_HARDIRQS=y 128CONFIG_GENERIC_HARDIRQS=y
@@ -143,7 +144,6 @@ CONFIG_PREEMPT_VOLUNTARY=y
143# Code maturity level options 144# Code maturity level options
144# 145#
145CONFIG_EXPERIMENTAL=y 146CONFIG_EXPERIMENTAL=y
146CONFIG_CLEAN_COMPILE=y
147CONFIG_BROKEN_ON_SMP=y 147CONFIG_BROKEN_ON_SMP=y
148CONFIG_INIT_ENV_ARG_LIMIT=32 148CONFIG_INIT_ENV_ARG_LIMIT=32
149 149
@@ -160,6 +160,7 @@ CONFIG_SYSCTL=y
160# CONFIG_AUDIT is not set 160# CONFIG_AUDIT is not set
161CONFIG_IKCONFIG=y 161CONFIG_IKCONFIG=y
162CONFIG_IKCONFIG_PROC=y 162CONFIG_IKCONFIG_PROC=y
163CONFIG_RELAY=y
163CONFIG_INITRAMFS_SOURCE="" 164CONFIG_INITRAMFS_SOURCE=""
164# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 165# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
165CONFIG_EMBEDDED=y 166CONFIG_EMBEDDED=y
@@ -173,10 +174,6 @@ CONFIG_BASE_FULL=y
173CONFIG_FUTEX=y 174CONFIG_FUTEX=y
174CONFIG_EPOLL=y 175CONFIG_EPOLL=y
175CONFIG_SHMEM=y 176CONFIG_SHMEM=y
176CONFIG_CC_ALIGN_FUNCTIONS=0
177CONFIG_CC_ALIGN_LABELS=0
178CONFIG_CC_ALIGN_LOOPS=0
179CONFIG_CC_ALIGN_JUMPS=0
180CONFIG_SLAB=y 177CONFIG_SLAB=y
181# CONFIG_TINY_SHMEM is not set 178# CONFIG_TINY_SHMEM is not set
182CONFIG_BASE_SMALL=0 179CONFIG_BASE_SMALL=0
@@ -188,7 +185,6 @@ CONFIG_BASE_SMALL=0
188CONFIG_MODULES=y 185CONFIG_MODULES=y
189CONFIG_MODULE_UNLOAD=y 186CONFIG_MODULE_UNLOAD=y
190# CONFIG_MODULE_FORCE_UNLOAD is not set 187# CONFIG_MODULE_FORCE_UNLOAD is not set
191CONFIG_OBSOLETE_MODPARM=y
192CONFIG_MODVERSIONS=y 188CONFIG_MODVERSIONS=y
193CONFIG_MODULE_SRCVERSION_ALL=y 189CONFIG_MODULE_SRCVERSION_ALL=y
194CONFIG_KMOD=y 190CONFIG_KMOD=y
@@ -197,6 +193,8 @@ CONFIG_KMOD=y
197# Block layer 193# Block layer
198# 194#
199# CONFIG_LBD is not set 195# CONFIG_LBD is not set
196# CONFIG_BLK_DEV_IO_TRACE is not set
197# CONFIG_LSF is not set
200 198
201# 199#
202# IO Schedulers 200# IO Schedulers
@@ -242,6 +240,7 @@ CONFIG_NET=y
242# 240#
243# Networking options 241# Networking options
244# 242#
243# CONFIG_NETDEBUG is not set
245CONFIG_PACKET=y 244CONFIG_PACKET=y
246CONFIG_PACKET_MMAP=y 245CONFIG_PACKET_MMAP=y
247CONFIG_UNIX=y 246CONFIG_UNIX=y
@@ -264,6 +263,7 @@ CONFIG_IP_PNP_BOOTP=y
264CONFIG_INET_AH=m 263CONFIG_INET_AH=m
265CONFIG_INET_ESP=m 264CONFIG_INET_ESP=m
266CONFIG_INET_IPCOMP=m 265CONFIG_INET_IPCOMP=m
266CONFIG_INET_XFRM_TUNNEL=m
267CONFIG_INET_TUNNEL=m 267CONFIG_INET_TUNNEL=m
268CONFIG_INET_DIAG=y 268CONFIG_INET_DIAG=y
269CONFIG_INET_TCP_DIAG=y 269CONFIG_INET_TCP_DIAG=y
@@ -305,9 +305,12 @@ CONFIG_IP_VS_NQ=m
305CONFIG_IP_VS_FTP=m 305CONFIG_IP_VS_FTP=m
306CONFIG_IPV6=m 306CONFIG_IPV6=m
307CONFIG_IPV6_PRIVACY=y 307CONFIG_IPV6_PRIVACY=y
308CONFIG_IPV6_ROUTER_PREF=y
309CONFIG_IPV6_ROUTE_INFO=y
308CONFIG_INET6_AH=m 310CONFIG_INET6_AH=m
309CONFIG_INET6_ESP=m 311CONFIG_INET6_ESP=m
310CONFIG_INET6_IPCOMP=m 312CONFIG_INET6_IPCOMP=m
313CONFIG_INET6_XFRM_TUNNEL=m
311CONFIG_INET6_TUNNEL=m 314CONFIG_INET6_TUNNEL=m
312CONFIG_IPV6_TUNNEL=m 315CONFIG_IPV6_TUNNEL=m
313CONFIG_NETFILTER=y 316CONFIG_NETFILTER=y
@@ -330,11 +333,14 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
330CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 333CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
331CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 334CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
332CONFIG_NETFILTER_XT_MATCH_DCCP=m 335CONFIG_NETFILTER_XT_MATCH_DCCP=m
336CONFIG_NETFILTER_XT_MATCH_ESP=m
333CONFIG_NETFILTER_XT_MATCH_HELPER=m 337CONFIG_NETFILTER_XT_MATCH_HELPER=m
334CONFIG_NETFILTER_XT_MATCH_LENGTH=m 338CONFIG_NETFILTER_XT_MATCH_LENGTH=m
335CONFIG_NETFILTER_XT_MATCH_LIMIT=m 339CONFIG_NETFILTER_XT_MATCH_LIMIT=m
336CONFIG_NETFILTER_XT_MATCH_MAC=m 340CONFIG_NETFILTER_XT_MATCH_MAC=m
337CONFIG_NETFILTER_XT_MATCH_MARK=m 341CONFIG_NETFILTER_XT_MATCH_MARK=m
342CONFIG_NETFILTER_XT_MATCH_POLICY=m
343CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
338CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 344CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
339CONFIG_NETFILTER_XT_MATCH_REALM=m 345CONFIG_NETFILTER_XT_MATCH_REALM=m
340CONFIG_NETFILTER_XT_MATCH_SCTP=m 346CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -357,20 +363,19 @@ CONFIG_IP_NF_IRC=m
357CONFIG_IP_NF_TFTP=m 363CONFIG_IP_NF_TFTP=m
358CONFIG_IP_NF_AMANDA=m 364CONFIG_IP_NF_AMANDA=m
359CONFIG_IP_NF_PPTP=m 365CONFIG_IP_NF_PPTP=m
366CONFIG_IP_NF_H323=m
360CONFIG_IP_NF_QUEUE=m 367CONFIG_IP_NF_QUEUE=m
361CONFIG_IP_NF_IPTABLES=m 368CONFIG_IP_NF_IPTABLES=m
362CONFIG_IP_NF_MATCH_IPRANGE=m 369CONFIG_IP_NF_MATCH_IPRANGE=m
363CONFIG_IP_NF_MATCH_MULTIPORT=m
364CONFIG_IP_NF_MATCH_TOS=m 370CONFIG_IP_NF_MATCH_TOS=m
365CONFIG_IP_NF_MATCH_RECENT=m 371CONFIG_IP_NF_MATCH_RECENT=m
366CONFIG_IP_NF_MATCH_ECN=m 372CONFIG_IP_NF_MATCH_ECN=m
367CONFIG_IP_NF_MATCH_DSCP=m 373CONFIG_IP_NF_MATCH_DSCP=m
368CONFIG_IP_NF_MATCH_AH_ESP=m 374CONFIG_IP_NF_MATCH_AH=m
369CONFIG_IP_NF_MATCH_TTL=m 375CONFIG_IP_NF_MATCH_TTL=m
370CONFIG_IP_NF_MATCH_OWNER=m 376CONFIG_IP_NF_MATCH_OWNER=m
371CONFIG_IP_NF_MATCH_ADDRTYPE=m 377CONFIG_IP_NF_MATCH_ADDRTYPE=m
372CONFIG_IP_NF_MATCH_HASHLIMIT=m 378CONFIG_IP_NF_MATCH_HASHLIMIT=m
373CONFIG_IP_NF_MATCH_POLICY=m
374CONFIG_IP_NF_FILTER=m 379CONFIG_IP_NF_FILTER=m
375CONFIG_IP_NF_TARGET_REJECT=m 380CONFIG_IP_NF_TARGET_REJECT=m
376CONFIG_IP_NF_TARGET_LOG=m 381CONFIG_IP_NF_TARGET_LOG=m
@@ -388,6 +393,7 @@ CONFIG_IP_NF_NAT_FTP=m
388CONFIG_IP_NF_NAT_TFTP=m 393CONFIG_IP_NF_NAT_TFTP=m
389CONFIG_IP_NF_NAT_AMANDA=m 394CONFIG_IP_NF_NAT_AMANDA=m
390CONFIG_IP_NF_NAT_PPTP=m 395CONFIG_IP_NF_NAT_PPTP=m
396CONFIG_IP_NF_NAT_H323=m
391CONFIG_IP_NF_MANGLE=m 397CONFIG_IP_NF_MANGLE=m
392CONFIG_IP_NF_TARGET_TOS=m 398CONFIG_IP_NF_TARGET_TOS=m
393CONFIG_IP_NF_TARGET_ECN=m 399CONFIG_IP_NF_TARGET_ECN=m
@@ -408,12 +414,10 @@ CONFIG_IP6_NF_MATCH_RT=m
408CONFIG_IP6_NF_MATCH_OPTS=m 414CONFIG_IP6_NF_MATCH_OPTS=m
409CONFIG_IP6_NF_MATCH_FRAG=m 415CONFIG_IP6_NF_MATCH_FRAG=m
410CONFIG_IP6_NF_MATCH_HL=m 416CONFIG_IP6_NF_MATCH_HL=m
411CONFIG_IP6_NF_MATCH_MULTIPORT=m
412CONFIG_IP6_NF_MATCH_OWNER=m 417CONFIG_IP6_NF_MATCH_OWNER=m
413CONFIG_IP6_NF_MATCH_IPV6HEADER=m 418CONFIG_IP6_NF_MATCH_IPV6HEADER=m
414CONFIG_IP6_NF_MATCH_AHESP=m 419CONFIG_IP6_NF_MATCH_AH=m
415CONFIG_IP6_NF_MATCH_EUI64=m 420CONFIG_IP6_NF_MATCH_EUI64=m
416CONFIG_IP6_NF_MATCH_POLICY=m
417CONFIG_IP6_NF_FILTER=m 421CONFIG_IP6_NF_FILTER=m
418CONFIG_IP6_NF_TARGET_LOG=m 422CONFIG_IP6_NF_TARGET_LOG=m
419CONFIG_IP6_NF_TARGET_REJECT=m 423CONFIG_IP6_NF_TARGET_REJECT=m
@@ -435,6 +439,11 @@ CONFIG_IP_SCTP=m
435# CONFIG_SCTP_HMAC_NONE is not set 439# CONFIG_SCTP_HMAC_NONE is not set
436# CONFIG_SCTP_HMAC_SHA1 is not set 440# CONFIG_SCTP_HMAC_SHA1 is not set
437CONFIG_SCTP_HMAC_MD5=y 441CONFIG_SCTP_HMAC_MD5=y
442
443#
444# TIPC Configuration (EXPERIMENTAL)
445#
446# CONFIG_TIPC is not set
438# CONFIG_ATM is not set 447# CONFIG_ATM is not set
439# CONFIG_BRIDGE is not set 448# CONFIG_BRIDGE is not set
440# CONFIG_VLAN_8021Q is not set 449# CONFIG_VLAN_8021Q is not set
@@ -444,11 +453,6 @@ CONFIG_SCTP_HMAC_MD5=y
444# CONFIG_ATALK is not set 453# CONFIG_ATALK is not set
445# CONFIG_X25 is not set 454# CONFIG_X25 is not set
446# CONFIG_LAPB is not set 455# CONFIG_LAPB is not set
447
448#
449# TIPC Configuration (EXPERIMENTAL)
450#
451# CONFIG_TIPC is not set
452CONFIG_NET_DIVERT=y 456CONFIG_NET_DIVERT=y
453# CONFIG_ECONET is not set 457# CONFIG_ECONET is not set
454# CONFIG_WAN_ROUTER is not set 458# CONFIG_WAN_ROUTER is not set
@@ -508,6 +512,9 @@ CONFIG_IEEE80211=m
508# CONFIG_IEEE80211_DEBUG is not set 512# CONFIG_IEEE80211_DEBUG is not set
509CONFIG_IEEE80211_CRYPT_WEP=m 513CONFIG_IEEE80211_CRYPT_WEP=m
510CONFIG_IEEE80211_CRYPT_CCMP=m 514CONFIG_IEEE80211_CRYPT_CCMP=m
515CONFIG_IEEE80211_SOFTMAC=m
516# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
517CONFIG_WIRELESS_EXT=y
511 518
512# 519#
513# Device Drivers 520# Device Drivers
@@ -546,7 +553,7 @@ CONFIG_CONNECTOR=m
546# CONFIG_BLK_DEV_LOOP is not set 553# CONFIG_BLK_DEV_LOOP is not set
547# CONFIG_BLK_DEV_NBD is not set 554# CONFIG_BLK_DEV_NBD is not set
548# CONFIG_BLK_DEV_RAM is not set 555# CONFIG_BLK_DEV_RAM is not set
549CONFIG_BLK_DEV_RAM_COUNT=16 556# CONFIG_BLK_DEV_INITRD is not set
550CONFIG_CDROM_PKTCDVD=m 557CONFIG_CDROM_PKTCDVD=m
551CONFIG_CDROM_PKTCDVD_BUFFERS=8 558CONFIG_CDROM_PKTCDVD_BUFFERS=8
552# CONFIG_CDROM_PKTCDVD_WCACHE is not set 559# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -812,10 +819,6 @@ CONFIG_MAX_RAW_DEVS=256
812# 819#
813 820
814# 821#
815# Multimedia Capabilities Port drivers
816#
817
818#
819# Multimedia devices 822# Multimedia devices
820# 823#
821# CONFIG_VIDEO_DEV is not set 824# CONFIG_VIDEO_DEV is not set
@@ -857,6 +860,7 @@ CONFIG_LOGO_SGI_CLUT224=y
857# 860#
858# CONFIG_USB_ARCH_HAS_HCD is not set 861# CONFIG_USB_ARCH_HAS_HCD is not set
859# CONFIG_USB_ARCH_HAS_OHCI is not set 862# CONFIG_USB_ARCH_HAS_OHCI is not set
863# CONFIG_USB_ARCH_HAS_EHCI is not set
860 864
861# 865#
862# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 866# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -873,12 +877,30 @@ CONFIG_LOGO_SGI_CLUT224=y
873# CONFIG_MMC is not set 877# CONFIG_MMC is not set
874 878
875# 879#
880# LED devices
881#
882# CONFIG_NEW_LEDS is not set
883
884#
885# LED drivers
886#
887
888#
889# LED Triggers
890#
891
892#
876# InfiniBand support 893# InfiniBand support
877# 894#
878 895
879# 896#
880# SN Devices 897# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
898#
899
900#
901# Real Time Clock
881# 902#
903# CONFIG_RTC_CLASS is not set
882 904
883# 905#
884# File systems 906# File systems
@@ -944,7 +966,6 @@ CONFIG_SYSFS=y
944# CONFIG_TMPFS is not set 966# CONFIG_TMPFS is not set
945# CONFIG_HUGETLB_PAGE is not set 967# CONFIG_HUGETLB_PAGE is not set
946CONFIG_RAMFS=y 968CONFIG_RAMFS=y
947CONFIG_RELAYFS_FS=m
948# CONFIG_CONFIGFS_FS is not set 969# CONFIG_CONFIGFS_FS is not set
949 970
950# 971#
@@ -963,7 +984,6 @@ CONFIG_EFS_FS=m
963# CONFIG_QNX4FS_FS is not set 984# CONFIG_QNX4FS_FS is not set
964# CONFIG_SYSV_FS is not set 985# CONFIG_SYSV_FS is not set
965CONFIG_UFS_FS=m 986CONFIG_UFS_FS=m
966# CONFIG_UFS_FS_WRITE is not set
967 987
968# 988#
969# Network File Systems 989# Network File Systems
@@ -1078,6 +1098,7 @@ CONFIG_NLS_UTF8=m
1078# CONFIG_MAGIC_SYSRQ is not set 1098# CONFIG_MAGIC_SYSRQ is not set
1079# CONFIG_DEBUG_KERNEL is not set 1099# CONFIG_DEBUG_KERNEL is not set
1080CONFIG_LOG_BUF_SHIFT=14 1100CONFIG_LOG_BUF_SHIFT=14
1101# CONFIG_DEBUG_FS is not set
1081CONFIG_CROSSCOMPILE=y 1102CONFIG_CROSSCOMPILE=y
1082CONFIG_CMDLINE="" 1103CONFIG_CMDLINE=""
1083 1104
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig
index 8c40590737e1..f724b4b2ecf2 100644
--- a/arch/mips/configs/ip27_defconfig
+++ b/arch/mips/configs/ip27_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.16-rc4 3# Linux kernel version: 2.6.17-rc2
4# Tue Feb 21 13:44:31 2006 4# Mon Apr 24 14:51:04 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -70,6 +70,8 @@ CONFIG_NUMA=y
70# CONFIG_REPLICATE_KTEXT is not set 70# CONFIG_REPLICATE_KTEXT is not set
71# CONFIG_REPLICATE_EXHANDLERS is not set 71# CONFIG_REPLICATE_EXHANDLERS is not set
72CONFIG_RWSEM_GENERIC_SPINLOCK=y 72CONFIG_RWSEM_GENERIC_SPINLOCK=y
73CONFIG_GENERIC_FIND_NEXT_BIT=y
74CONFIG_GENERIC_HWEIGHT=y
73CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
74CONFIG_ARC=y 76CONFIG_ARC=y
75CONFIG_DMA_IP27=y 77CONFIG_DMA_IP27=y
@@ -123,6 +125,7 @@ CONFIG_CPU_HAS_SYNC=y
123CONFIG_GENERIC_HARDIRQS=y 125CONFIG_GENERIC_HARDIRQS=y
124CONFIG_GENERIC_IRQ_PROBE=y 126CONFIG_GENERIC_IRQ_PROBE=y
125CONFIG_CPU_SUPPORTS_HIGHMEM=y 127CONFIG_CPU_SUPPORTS_HIGHMEM=y
128CONFIG_NODES_SHIFT=6
126CONFIG_SELECT_MEMORY_MODEL=y 129CONFIG_SELECT_MEMORY_MODEL=y
127# CONFIG_FLATMEM_MANUAL is not set 130# CONFIG_FLATMEM_MANUAL is not set
128CONFIG_DISCONTIGMEM_MANUAL=y 131CONFIG_DISCONTIGMEM_MANUAL=y
@@ -162,6 +165,7 @@ CONFIG_SYSCTL=y
162CONFIG_IKCONFIG=y 165CONFIG_IKCONFIG=y
163CONFIG_IKCONFIG_PROC=y 166CONFIG_IKCONFIG_PROC=y
164CONFIG_CPUSETS=y 167CONFIG_CPUSETS=y
168CONFIG_RELAY=y
165CONFIG_INITRAMFS_SOURCE="" 169CONFIG_INITRAMFS_SOURCE=""
166# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 170# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
167CONFIG_EMBEDDED=y 171CONFIG_EMBEDDED=y
@@ -175,10 +179,6 @@ CONFIG_BASE_FULL=y
175CONFIG_FUTEX=y 179CONFIG_FUTEX=y
176CONFIG_EPOLL=y 180CONFIG_EPOLL=y
177CONFIG_SHMEM=y 181CONFIG_SHMEM=y
178CONFIG_CC_ALIGN_FUNCTIONS=0
179CONFIG_CC_ALIGN_LABELS=0
180CONFIG_CC_ALIGN_LOOPS=0
181CONFIG_CC_ALIGN_JUMPS=0
182CONFIG_SLAB=y 182CONFIG_SLAB=y
183# CONFIG_TINY_SHMEM is not set 183# CONFIG_TINY_SHMEM is not set
184CONFIG_BASE_SMALL=0 184CONFIG_BASE_SMALL=0
@@ -190,7 +190,6 @@ CONFIG_BASE_SMALL=0
190CONFIG_MODULES=y 190CONFIG_MODULES=y
191CONFIG_MODULE_UNLOAD=y 191CONFIG_MODULE_UNLOAD=y
192# CONFIG_MODULE_FORCE_UNLOAD is not set 192# CONFIG_MODULE_FORCE_UNLOAD is not set
193CONFIG_OBSOLETE_MODPARM=y
194# CONFIG_MODVERSIONS is not set 193# CONFIG_MODVERSIONS is not set
195CONFIG_MODULE_SRCVERSION_ALL=y 194CONFIG_MODULE_SRCVERSION_ALL=y
196CONFIG_KMOD=y 195CONFIG_KMOD=y
@@ -199,6 +198,7 @@ CONFIG_STOP_MACHINE=y
199# 198#
200# Block layer 199# Block layer
201# 200#
201# CONFIG_BLK_DEV_IO_TRACE is not set
202 202
203# 203#
204# IO Schedulers 204# IO Schedulers
@@ -219,7 +219,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
219CONFIG_HW_HAS_PCI=y 219CONFIG_HW_HAS_PCI=y
220CONFIG_PCI=y 220CONFIG_PCI=y
221CONFIG_PCI_DOMAINS=y 221CONFIG_PCI_DOMAINS=y
222CONFIG_PCI_LEGACY_PROC=y
223CONFIG_MMU=y 222CONFIG_MMU=y
224 223
225# 224#
@@ -237,6 +236,7 @@ CONFIG_MMU=y
237# 236#
238CONFIG_BINFMT_ELF=y 237CONFIG_BINFMT_ELF=y
239# CONFIG_BINFMT_MISC is not set 238# CONFIG_BINFMT_MISC is not set
239# CONFIG_BUILD_ELF64 is not set
240CONFIG_MIPS32_COMPAT=y 240CONFIG_MIPS32_COMPAT=y
241CONFIG_COMPAT=y 241CONFIG_COMPAT=y
242CONFIG_MIPS32_O32=y 242CONFIG_MIPS32_O32=y
@@ -274,12 +274,15 @@ CONFIG_IP_PNP=y
274# CONFIG_INET_AH is not set 274# CONFIG_INET_AH is not set
275# CONFIG_INET_ESP is not set 275# CONFIG_INET_ESP is not set
276# CONFIG_INET_IPCOMP is not set 276# CONFIG_INET_IPCOMP is not set
277CONFIG_INET_TUNNEL=m 277# CONFIG_INET_XFRM_TUNNEL is not set
278# CONFIG_INET_TUNNEL is not set
278CONFIG_INET_DIAG=y 279CONFIG_INET_DIAG=y
279CONFIG_INET_TCP_DIAG=y 280CONFIG_INET_TCP_DIAG=y
280# CONFIG_TCP_CONG_ADVANCED is not set 281# CONFIG_TCP_CONG_ADVANCED is not set
281CONFIG_TCP_CONG_BIC=y 282CONFIG_TCP_CONG_BIC=y
282# CONFIG_IPV6 is not set 283# CONFIG_IPV6 is not set
284# CONFIG_INET6_XFRM_TUNNEL is not set
285# CONFIG_INET6_TUNNEL is not set
283# CONFIG_NETFILTER is not set 286# CONFIG_NETFILTER is not set
284 287
285# 288#
@@ -363,6 +366,9 @@ CONFIG_IEEE80211=m
363# CONFIG_IEEE80211_DEBUG is not set 366# CONFIG_IEEE80211_DEBUG is not set
364CONFIG_IEEE80211_CRYPT_WEP=m 367CONFIG_IEEE80211_CRYPT_WEP=m
365CONFIG_IEEE80211_CRYPT_CCMP=m 368CONFIG_IEEE80211_CRYPT_CCMP=m
369CONFIG_IEEE80211_SOFTMAC=m
370# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
371CONFIG_WIRELESS_EXT=y
366 372
367# 373#
368# Device Drivers 374# Device Drivers
@@ -407,7 +413,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
407# CONFIG_BLK_DEV_NBD is not set 413# CONFIG_BLK_DEV_NBD is not set
408# CONFIG_BLK_DEV_SX8 is not set 414# CONFIG_BLK_DEV_SX8 is not set
409# CONFIG_BLK_DEV_RAM is not set 415# CONFIG_BLK_DEV_RAM is not set
410CONFIG_BLK_DEV_RAM_COUNT=16 416# CONFIG_BLK_DEV_INITRD is not set
411CONFIG_CDROM_PKTCDVD=m 417CONFIG_CDROM_PKTCDVD=m
412CONFIG_CDROM_PKTCDVD_BUFFERS=8 418CONFIG_CDROM_PKTCDVD_BUFFERS=8
413# CONFIG_CDROM_PKTCDVD_WCACHE is not set 419# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -473,7 +479,6 @@ CONFIG_SCSI_SAS_ATTRS=m
473# CONFIG_SCSI_INIA100 is not set 479# CONFIG_SCSI_INIA100 is not set
474# CONFIG_SCSI_SYM53C8XX_2 is not set 480# CONFIG_SCSI_SYM53C8XX_2 is not set
475# CONFIG_SCSI_IPR is not set 481# CONFIG_SCSI_IPR is not set
476# CONFIG_SCSI_QLOGIC_FC is not set
477CONFIG_SCSI_QLOGIC_1280=y 482CONFIG_SCSI_QLOGIC_1280=y
478# CONFIG_SCSI_QLA_FC is not set 483# CONFIG_SCSI_QLA_FC is not set
479# CONFIG_SCSI_LPFC is not set 484# CONFIG_SCSI_LPFC is not set
@@ -491,6 +496,7 @@ CONFIG_MD_RAID0=y
491CONFIG_MD_RAID1=y 496CONFIG_MD_RAID1=y
492CONFIG_MD_RAID10=m 497CONFIG_MD_RAID10=m
493CONFIG_MD_RAID5=y 498CONFIG_MD_RAID5=y
499CONFIG_MD_RAID5_RESHAPE=y
494CONFIG_MD_RAID6=m 500CONFIG_MD_RAID6=m
495CONFIG_MD_MULTIPATH=m 501CONFIG_MD_MULTIPATH=m
496CONFIG_MD_FAULTY=m 502CONFIG_MD_FAULTY=m
@@ -654,6 +660,7 @@ CONFIG_SERIO_RAW=m
654# 660#
655CONFIG_SERIAL_8250=y 661CONFIG_SERIAL_8250=y
656CONFIG_SERIAL_8250_CONSOLE=y 662CONFIG_SERIAL_8250_CONSOLE=y
663CONFIG_SERIAL_8250_PCI=y
657CONFIG_SERIAL_8250_NR_UARTS=4 664CONFIG_SERIAL_8250_NR_UARTS=4
658CONFIG_SERIAL_8250_RUNTIME_UARTS=4 665CONFIG_SERIAL_8250_RUNTIME_UARTS=4
659CONFIG_SERIAL_8250_EXTENDED=y 666CONFIG_SERIAL_8250_EXTENDED=y
@@ -727,10 +734,6 @@ CONFIG_SGI_IP27_RTC=y
727# 734#
728 735
729# 736#
730# Multimedia Capabilities Port drivers
731#
732
733#
734# Multimedia devices 737# Multimedia devices
735# 738#
736# CONFIG_VIDEO_DEV is not set 739# CONFIG_VIDEO_DEV is not set
@@ -755,6 +758,7 @@ CONFIG_SGI_IP27_RTC=y
755# 758#
756CONFIG_USB_ARCH_HAS_HCD=y 759CONFIG_USB_ARCH_HAS_HCD=y
757CONFIG_USB_ARCH_HAS_OHCI=y 760CONFIG_USB_ARCH_HAS_OHCI=y
761CONFIG_USB_ARCH_HAS_EHCI=y
758# CONFIG_USB is not set 762# CONFIG_USB is not set
759 763
760# 764#
@@ -772,17 +776,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
772# CONFIG_MMC is not set 776# CONFIG_MMC is not set
773 777
774# 778#
779# LED devices
780#
781# CONFIG_NEW_LEDS is not set
782
783#
784# LED drivers
785#
786
787#
788# LED Triggers
789#
790
791#
775# InfiniBand support 792# InfiniBand support
776# 793#
777# CONFIG_INFINIBAND is not set 794# CONFIG_INFINIBAND is not set
778 795
779# 796#
780# SN Devices 797# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
781# 798#
782 799
783# 800#
784# EDAC - error detection and reporting (RAS) 801# Real Time Clock
785# 802#
803# CONFIG_RTC_CLASS is not set
786 804
787# 805#
788# File systems 806# File systems
@@ -840,7 +858,6 @@ CONFIG_SYSFS=y
840# CONFIG_TMPFS is not set 858# CONFIG_TMPFS is not set
841# CONFIG_HUGETLB_PAGE is not set 859# CONFIG_HUGETLB_PAGE is not set
842CONFIG_RAMFS=y 860CONFIG_RAMFS=y
843CONFIG_RELAYFS_FS=m
844# CONFIG_CONFIGFS_FS is not set 861# CONFIG_CONFIGFS_FS is not set
845 862
846# 863#
@@ -922,6 +939,7 @@ CONFIG_SGI_PARTITION=y
922# CONFIG_MAGIC_SYSRQ is not set 939# CONFIG_MAGIC_SYSRQ is not set
923# CONFIG_DEBUG_KERNEL is not set 940# CONFIG_DEBUG_KERNEL is not set
924CONFIG_LOG_BUF_SHIFT=15 941CONFIG_LOG_BUF_SHIFT=15
942# CONFIG_DEBUG_FS is not set
925CONFIG_CROSSCOMPILE=y 943CONFIG_CROSSCOMPILE=y
926CONFIG_CMDLINE="" 944CONFIG_CMDLINE=""
927 945
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig
index 7fdcaf51face..8f11d3565b2d 100644
--- a/arch/mips/configs/ip32_defconfig
+++ b/arch/mips/configs/ip32_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:09 2006 4# Mon Apr 24 14:51:05 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_SGI_IP32=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_ARC=y 70CONFIG_ARC=y
69CONFIG_DMA_IP32=y 71CONFIG_DMA_IP32=y
@@ -142,7 +144,6 @@ CONFIG_PREEMPT_VOLUNTARY=y
142# Code maturity level options 144# Code maturity level options
143# 145#
144CONFIG_EXPERIMENTAL=y 146CONFIG_EXPERIMENTAL=y
145CONFIG_CLEAN_COMPILE=y
146CONFIG_BROKEN_ON_SMP=y 147CONFIG_BROKEN_ON_SMP=y
147CONFIG_INIT_ENV_ARG_LIMIT=32 148CONFIG_INIT_ENV_ARG_LIMIT=32
148 149
@@ -159,6 +160,7 @@ CONFIG_BSD_PROCESS_ACCT=y
159CONFIG_SYSCTL=y 160CONFIG_SYSCTL=y
160# CONFIG_AUDIT is not set 161# CONFIG_AUDIT is not set
161# CONFIG_IKCONFIG is not set 162# CONFIG_IKCONFIG is not set
163CONFIG_RELAY=y
162CONFIG_INITRAMFS_SOURCE="" 164CONFIG_INITRAMFS_SOURCE=""
163# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 165# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
164CONFIG_EMBEDDED=y 166CONFIG_EMBEDDED=y
@@ -172,10 +174,6 @@ CONFIG_BASE_FULL=y
172CONFIG_FUTEX=y 174CONFIG_FUTEX=y
173CONFIG_EPOLL=y 175CONFIG_EPOLL=y
174CONFIG_SHMEM=y 176CONFIG_SHMEM=y
175CONFIG_CC_ALIGN_FUNCTIONS=0
176CONFIG_CC_ALIGN_LABELS=0
177CONFIG_CC_ALIGN_LOOPS=0
178CONFIG_CC_ALIGN_JUMPS=0
179CONFIG_SLAB=y 177CONFIG_SLAB=y
180# CONFIG_TINY_SHMEM is not set 178# CONFIG_TINY_SHMEM is not set
181CONFIG_BASE_SMALL=0 179CONFIG_BASE_SMALL=0
@@ -189,6 +187,7 @@ CONFIG_BASE_SMALL=0
189# 187#
190# Block layer 188# Block layer
191# 189#
190# CONFIG_BLK_DEV_IO_TRACE is not set
192 191
193# 192#
194# IO Schedulers 193# IO Schedulers
@@ -208,7 +207,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
208# 207#
209CONFIG_HW_HAS_PCI=y 208CONFIG_HW_HAS_PCI=y
210CONFIG_PCI=y 209CONFIG_PCI=y
211CONFIG_PCI_LEGACY_PROC=y
212CONFIG_MMU=y 210CONFIG_MMU=y
213 211
214# 212#
@@ -226,6 +224,7 @@ CONFIG_MMU=y
226# 224#
227CONFIG_BINFMT_ELF=y 225CONFIG_BINFMT_ELF=y
228CONFIG_BINFMT_MISC=y 226CONFIG_BINFMT_MISC=y
227# CONFIG_BUILD_ELF64 is not set
229CONFIG_MIPS32_COMPAT=y 228CONFIG_MIPS32_COMPAT=y
230CONFIG_COMPAT=y 229CONFIG_COMPAT=y
231CONFIG_MIPS32_O32=y 230CONFIG_MIPS32_O32=y
@@ -240,6 +239,7 @@ CONFIG_NET=y
240# 239#
241# Networking options 240# Networking options
242# 241#
242# CONFIG_NETDEBUG is not set
243CONFIG_PACKET=y 243CONFIG_PACKET=y
244CONFIG_PACKET_MMAP=y 244CONFIG_PACKET_MMAP=y
245CONFIG_UNIX=y 245CONFIG_UNIX=y
@@ -261,12 +261,15 @@ CONFIG_IP_PNP_BOOTP=y
261# CONFIG_INET_AH is not set 261# CONFIG_INET_AH is not set
262# CONFIG_INET_ESP is not set 262# CONFIG_INET_ESP is not set
263# CONFIG_INET_IPCOMP is not set 263# CONFIG_INET_IPCOMP is not set
264CONFIG_INET_TUNNEL=y 264# CONFIG_INET_XFRM_TUNNEL is not set
265# CONFIG_INET_TUNNEL is not set
265CONFIG_INET_DIAG=y 266CONFIG_INET_DIAG=y
266CONFIG_INET_TCP_DIAG=y 267CONFIG_INET_TCP_DIAG=y
267# CONFIG_TCP_CONG_ADVANCED is not set 268# CONFIG_TCP_CONG_ADVANCED is not set
268CONFIG_TCP_CONG_BIC=y 269CONFIG_TCP_CONG_BIC=y
269# CONFIG_IPV6 is not set 270# CONFIG_IPV6 is not set
271# CONFIG_INET6_XFRM_TUNNEL is not set
272# CONFIG_INET6_TUNNEL is not set
270# CONFIG_NETFILTER is not set 273# CONFIG_NETFILTER is not set
271 274
272# 275#
@@ -278,6 +281,11 @@ CONFIG_TCP_CONG_BIC=y
278# SCTP Configuration (EXPERIMENTAL) 281# SCTP Configuration (EXPERIMENTAL)
279# 282#
280# CONFIG_IP_SCTP is not set 283# CONFIG_IP_SCTP is not set
284
285#
286# TIPC Configuration (EXPERIMENTAL)
287#
288# CONFIG_TIPC is not set
281# CONFIG_ATM is not set 289# CONFIG_ATM is not set
282# CONFIG_BRIDGE is not set 290# CONFIG_BRIDGE is not set
283# CONFIG_VLAN_8021Q is not set 291# CONFIG_VLAN_8021Q is not set
@@ -287,11 +295,6 @@ CONFIG_TCP_CONG_BIC=y
287# CONFIG_ATALK is not set 295# CONFIG_ATALK is not set
288# CONFIG_X25 is not set 296# CONFIG_X25 is not set
289# CONFIG_LAPB is not set 297# CONFIG_LAPB is not set
290
291#
292# TIPC Configuration (EXPERIMENTAL)
293#
294# CONFIG_TIPC is not set
295# CONFIG_NET_DIVERT is not set 298# CONFIG_NET_DIVERT is not set
296# CONFIG_ECONET is not set 299# CONFIG_ECONET is not set
297# CONFIG_WAN_ROUTER is not set 300# CONFIG_WAN_ROUTER is not set
@@ -312,6 +315,9 @@ CONFIG_IEEE80211=y
312# CONFIG_IEEE80211_DEBUG is not set 315# CONFIG_IEEE80211_DEBUG is not set
313CONFIG_IEEE80211_CRYPT_WEP=y 316CONFIG_IEEE80211_CRYPT_WEP=y
314CONFIG_IEEE80211_CRYPT_CCMP=y 317CONFIG_IEEE80211_CRYPT_CCMP=y
318CONFIG_IEEE80211_SOFTMAC=y
319# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
320CONFIG_WIRELESS_EXT=y
315 321
316# 322#
317# Device Drivers 323# Device Drivers
@@ -357,7 +363,7 @@ CONFIG_BLK_DEV_LOOP=y
357# CONFIG_BLK_DEV_NBD is not set 363# CONFIG_BLK_DEV_NBD is not set
358# CONFIG_BLK_DEV_SX8 is not set 364# CONFIG_BLK_DEV_SX8 is not set
359# CONFIG_BLK_DEV_RAM is not set 365# CONFIG_BLK_DEV_RAM is not set
360CONFIG_BLK_DEV_RAM_COUNT=16 366# CONFIG_BLK_DEV_INITRD is not set
361CONFIG_CDROM_PKTCDVD=y 367CONFIG_CDROM_PKTCDVD=y
362CONFIG_CDROM_PKTCDVD_BUFFERS=8 368CONFIG_CDROM_PKTCDVD_BUFFERS=8
363# CONFIG_CDROM_PKTCDVD_WCACHE is not set 369# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -428,7 +434,6 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
428# CONFIG_SCSI_INIA100 is not set 434# CONFIG_SCSI_INIA100 is not set
429# CONFIG_SCSI_SYM53C8XX_2 is not set 435# CONFIG_SCSI_SYM53C8XX_2 is not set
430# CONFIG_SCSI_IPR is not set 436# CONFIG_SCSI_IPR is not set
431# CONFIG_SCSI_QLOGIC_FC is not set
432# CONFIG_SCSI_QLOGIC_1280 is not set 437# CONFIG_SCSI_QLOGIC_1280 is not set
433# CONFIG_SCSI_QLA_FC is not set 438# CONFIG_SCSI_QLA_FC is not set
434# CONFIG_SCSI_LPFC is not set 439# CONFIG_SCSI_LPFC is not set
@@ -615,6 +620,7 @@ CONFIG_HW_CONSOLE=y
615# 620#
616CONFIG_SERIAL_8250=y 621CONFIG_SERIAL_8250=y
617CONFIG_SERIAL_8250_CONSOLE=y 622CONFIG_SERIAL_8250_CONSOLE=y
623CONFIG_SERIAL_8250_PCI=y
618CONFIG_SERIAL_8250_NR_UARTS=4 624CONFIG_SERIAL_8250_NR_UARTS=4
619CONFIG_SERIAL_8250_RUNTIME_UARTS=4 625CONFIG_SERIAL_8250_RUNTIME_UARTS=4
620# CONFIG_SERIAL_8250_EXTENDED is not set 626# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -624,6 +630,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
624# 630#
625CONFIG_SERIAL_CORE=y 631CONFIG_SERIAL_CORE=y
626CONFIG_SERIAL_CORE_CONSOLE=y 632CONFIG_SERIAL_CORE_CONSOLE=y
633# CONFIG_SERIAL_JSM is not set
627CONFIG_UNIX98_PTYS=y 634CONFIG_UNIX98_PTYS=y
628CONFIG_LEGACY_PTYS=y 635CONFIG_LEGACY_PTYS=y
629CONFIG_LEGACY_PTY_COUNT=256 636CONFIG_LEGACY_PTY_COUNT=256
@@ -682,10 +689,6 @@ CONFIG_LEGACY_PTY_COUNT=256
682# 689#
683 690
684# 691#
685# Multimedia Capabilities Port drivers
686#
687
688#
689# Multimedia devices 692# Multimedia devices
690# 693#
691# CONFIG_VIDEO_DEV is not set 694# CONFIG_VIDEO_DEV is not set
@@ -716,6 +719,7 @@ CONFIG_DUMMY_CONSOLE=y
716# 719#
717CONFIG_USB_ARCH_HAS_HCD=y 720CONFIG_USB_ARCH_HAS_HCD=y
718CONFIG_USB_ARCH_HAS_OHCI=y 721CONFIG_USB_ARCH_HAS_OHCI=y
722CONFIG_USB_ARCH_HAS_EHCI=y
719# CONFIG_USB is not set 723# CONFIG_USB is not set
720 724
721# 725#
@@ -733,13 +737,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
733# CONFIG_MMC is not set 737# CONFIG_MMC is not set
734 738
735# 739#
740# LED devices
741#
742# CONFIG_NEW_LEDS is not set
743
744#
745# LED drivers
746#
747
748#
749# LED Triggers
750#
751
752#
736# InfiniBand support 753# InfiniBand support
737# 754#
738# CONFIG_INFINIBAND is not set 755# CONFIG_INFINIBAND is not set
739 756
740# 757#
741# SN Devices 758# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
759#
760
761#
762# Real Time Clock
742# 763#
764# CONFIG_RTC_CLASS is not set
743 765
744# 766#
745# File systems 767# File systems
@@ -784,7 +806,6 @@ CONFIG_SYSFS=y
784CONFIG_TMPFS=y 806CONFIG_TMPFS=y
785# CONFIG_HUGETLB_PAGE is not set 807# CONFIG_HUGETLB_PAGE is not set
786CONFIG_RAMFS=y 808CONFIG_RAMFS=y
787CONFIG_RELAYFS_FS=y
788# CONFIG_CONFIGFS_FS is not set 809# CONFIG_CONFIGFS_FS is not set
789 810
790# 811#
@@ -861,6 +882,8 @@ CONFIG_SGI_PARTITION=y
861# CONFIG_MAGIC_SYSRQ is not set 882# CONFIG_MAGIC_SYSRQ is not set
862# CONFIG_DEBUG_KERNEL is not set 883# CONFIG_DEBUG_KERNEL is not set
863CONFIG_LOG_BUF_SHIFT=14 884CONFIG_LOG_BUF_SHIFT=14
885# CONFIG_DEBUG_FS is not set
886# CONFIG_UNWIND_INFO is not set
864CONFIG_CROSSCOMPILE=y 887CONFIG_CROSSCOMPILE=y
865CONFIG_CMDLINE="" 888CONFIG_CMDLINE=""
866 889
diff --git a/arch/mips/configs/it8172_defconfig b/arch/mips/configs/it8172_defconfig
index c716996d9eca..757adf23853d 100644
--- a/arch/mips/configs/it8172_defconfig
+++ b/arch/mips/configs/it8172_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:10 2006 4# Mon Apr 24 14:51:05 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -65,6 +65,8 @@ CONFIG_MIPS_ITE8172=y
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66# CONFIG_IT8172_REVC is not set 66# CONFIG_IT8172_REVC is not set
67CONFIG_RWSEM_GENERIC_SPINLOCK=y 67CONFIG_RWSEM_GENERIC_SPINLOCK=y
68CONFIG_GENERIC_FIND_NEXT_BIT=y
69CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
69CONFIG_DMA_NONCOHERENT=y 71CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 72CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -115,7 +117,6 @@ CONFIG_PAGE_SIZE_4KB=y
115# CONFIG_PAGE_SIZE_16KB is not set 117# CONFIG_PAGE_SIZE_16KB is not set
116# CONFIG_PAGE_SIZE_64KB is not set 118# CONFIG_PAGE_SIZE_64KB is not set
117# CONFIG_MIPS_MT is not set 119# CONFIG_MIPS_MT is not set
118# CONFIG_CPU_ADVANCED is not set
119CONFIG_CPU_HAS_LLSC=y 120CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 121CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y 122CONFIG_GENERIC_HARDIRQS=y
@@ -137,7 +138,6 @@ CONFIG_PREEMPT_NONE=y
137# Code maturity level options 138# Code maturity level options
138# 139#
139CONFIG_EXPERIMENTAL=y 140CONFIG_EXPERIMENTAL=y
140CONFIG_CLEAN_COMPILE=y
141CONFIG_BROKEN_ON_SMP=y 141CONFIG_BROKEN_ON_SMP=y
142CONFIG_INIT_ENV_ARG_LIMIT=32 142CONFIG_INIT_ENV_ARG_LIMIT=32
143 143
@@ -154,6 +154,7 @@ CONFIG_BSD_PROCESS_ACCT=y
154CONFIG_SYSCTL=y 154CONFIG_SYSCTL=y
155# CONFIG_AUDIT is not set 155# CONFIG_AUDIT is not set
156# CONFIG_IKCONFIG is not set 156# CONFIG_IKCONFIG is not set
157CONFIG_RELAY=y
157CONFIG_INITRAMFS_SOURCE="" 158CONFIG_INITRAMFS_SOURCE=""
158# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 159# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
159CONFIG_EMBEDDED=y 160CONFIG_EMBEDDED=y
@@ -167,10 +168,6 @@ CONFIG_BASE_FULL=y
167CONFIG_FUTEX=y 168CONFIG_FUTEX=y
168CONFIG_EPOLL=y 169CONFIG_EPOLL=y
169CONFIG_SHMEM=y 170CONFIG_SHMEM=y
170CONFIG_CC_ALIGN_FUNCTIONS=0
171CONFIG_CC_ALIGN_LABELS=0
172CONFIG_CC_ALIGN_LOOPS=0
173CONFIG_CC_ALIGN_JUMPS=0
174CONFIG_SLAB=y 171CONFIG_SLAB=y
175# CONFIG_TINY_SHMEM is not set 172# CONFIG_TINY_SHMEM is not set
176CONFIG_BASE_SMALL=0 173CONFIG_BASE_SMALL=0
@@ -183,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
183CONFIG_MODULES=y 180CONFIG_MODULES=y
184CONFIG_MODULE_UNLOAD=y 181CONFIG_MODULE_UNLOAD=y
185# CONFIG_MODULE_FORCE_UNLOAD is not set 182# CONFIG_MODULE_FORCE_UNLOAD is not set
186CONFIG_OBSOLETE_MODPARM=y
187CONFIG_MODVERSIONS=y 183CONFIG_MODVERSIONS=y
188CONFIG_MODULE_SRCVERSION_ALL=y 184CONFIG_MODULE_SRCVERSION_ALL=y
189CONFIG_KMOD=y 185CONFIG_KMOD=y
@@ -192,6 +188,8 @@ CONFIG_KMOD=y
192# Block layer 188# Block layer
193# 189#
194# CONFIG_LBD is not set 190# CONFIG_LBD is not set
191# CONFIG_BLK_DEV_IO_TRACE is not set
192# CONFIG_LSF is not set
195 193
196# 194#
197# IO Schedulers 195# IO Schedulers
@@ -237,6 +235,7 @@ CONFIG_NET=y
237# 235#
238# Networking options 236# Networking options
239# 237#
238# CONFIG_NETDEBUG is not set
240CONFIG_PACKET=y 239CONFIG_PACKET=y
241CONFIG_PACKET_MMAP=y 240CONFIG_PACKET_MMAP=y
242CONFIG_UNIX=y 241CONFIG_UNIX=y
@@ -258,12 +257,15 @@ CONFIG_IP_PNP_BOOTP=y
258# CONFIG_INET_AH is not set 257# CONFIG_INET_AH is not set
259# CONFIG_INET_ESP is not set 258# CONFIG_INET_ESP is not set
260# CONFIG_INET_IPCOMP is not set 259# CONFIG_INET_IPCOMP is not set
261CONFIG_INET_TUNNEL=m 260# CONFIG_INET_XFRM_TUNNEL is not set
261# CONFIG_INET_TUNNEL is not set
262CONFIG_INET_DIAG=y 262CONFIG_INET_DIAG=y
263CONFIG_INET_TCP_DIAG=y 263CONFIG_INET_TCP_DIAG=y
264# CONFIG_TCP_CONG_ADVANCED is not set 264# CONFIG_TCP_CONG_ADVANCED is not set
265CONFIG_TCP_CONG_BIC=y 265CONFIG_TCP_CONG_BIC=y
266# CONFIG_IPV6 is not set 266# CONFIG_IPV6 is not set
267# CONFIG_INET6_XFRM_TUNNEL is not set
268# CONFIG_INET6_TUNNEL is not set
267# CONFIG_NETFILTER is not set 269# CONFIG_NETFILTER is not set
268 270
269# 271#
@@ -275,6 +277,11 @@ CONFIG_TCP_CONG_BIC=y
275# SCTP Configuration (EXPERIMENTAL) 277# SCTP Configuration (EXPERIMENTAL)
276# 278#
277# CONFIG_IP_SCTP is not set 279# CONFIG_IP_SCTP is not set
280
281#
282# TIPC Configuration (EXPERIMENTAL)
283#
284# CONFIG_TIPC is not set
278# CONFIG_ATM is not set 285# CONFIG_ATM is not set
279# CONFIG_BRIDGE is not set 286# CONFIG_BRIDGE is not set
280# CONFIG_VLAN_8021Q is not set 287# CONFIG_VLAN_8021Q is not set
@@ -284,11 +291,6 @@ CONFIG_TCP_CONG_BIC=y
284# CONFIG_ATALK is not set 291# CONFIG_ATALK is not set
285# CONFIG_X25 is not set 292# CONFIG_X25 is not set
286# CONFIG_LAPB is not set 293# CONFIG_LAPB is not set
287
288#
289# TIPC Configuration (EXPERIMENTAL)
290#
291# CONFIG_TIPC is not set
292# CONFIG_NET_DIVERT is not set 294# CONFIG_NET_DIVERT is not set
293# CONFIG_ECONET is not set 295# CONFIG_ECONET is not set
294# CONFIG_WAN_ROUTER is not set 296# CONFIG_WAN_ROUTER is not set
@@ -309,6 +311,9 @@ CONFIG_IEEE80211=m
309# CONFIG_IEEE80211_DEBUG is not set 311# CONFIG_IEEE80211_DEBUG is not set
310CONFIG_IEEE80211_CRYPT_WEP=m 312CONFIG_IEEE80211_CRYPT_WEP=m
311CONFIG_IEEE80211_CRYPT_CCMP=m 313CONFIG_IEEE80211_CRYPT_CCMP=m
314CONFIG_IEEE80211_SOFTMAC=m
315# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
316CONFIG_WIRELESS_EXT=y
312 317
313# 318#
314# Device Drivers 319# Device Drivers
@@ -387,7 +392,6 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
387# CONFIG_MTD_SLRAM is not set 392# CONFIG_MTD_SLRAM is not set
388# CONFIG_MTD_PHRAM is not set 393# CONFIG_MTD_PHRAM is not set
389# CONFIG_MTD_MTDRAM is not set 394# CONFIG_MTD_MTDRAM is not set
390# CONFIG_MTD_BLKMTD is not set
391# CONFIG_MTD_BLOCK2MTD is not set 395# CONFIG_MTD_BLOCK2MTD is not set
392 396
393# 397#
@@ -424,7 +428,7 @@ CONFIG_BLK_DEV_LOOP=y
424# CONFIG_BLK_DEV_CRYPTOLOOP is not set 428# CONFIG_BLK_DEV_CRYPTOLOOP is not set
425# CONFIG_BLK_DEV_NBD is not set 429# CONFIG_BLK_DEV_NBD is not set
426# CONFIG_BLK_DEV_RAM is not set 430# CONFIG_BLK_DEV_RAM is not set
427CONFIG_BLK_DEV_RAM_COUNT=16 431# CONFIG_BLK_DEV_INITRD is not set
428CONFIG_CDROM_PKTCDVD=m 432CONFIG_CDROM_PKTCDVD=m
429CONFIG_CDROM_PKTCDVD_BUFFERS=8 433CONFIG_CDROM_PKTCDVD_BUFFERS=8
430# CONFIG_CDROM_PKTCDVD_WCACHE is not set 434# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -666,10 +670,6 @@ CONFIG_LEGACY_PTY_COUNT=256
666# 670#
667 671
668# 672#
669# Multimedia Capabilities Port drivers
670#
671
672#
673# Multimedia devices 673# Multimedia devices
674# 674#
675# CONFIG_VIDEO_DEV is not set 675# CONFIG_VIDEO_DEV is not set
@@ -704,7 +704,6 @@ CONFIG_SOUND=y
704# Open Sound System 704# Open Sound System
705# 705#
706CONFIG_SOUND_PRIME=y 706CONFIG_SOUND_PRIME=y
707# CONFIG_OBSOLETE_OSS_DRIVER is not set
708CONFIG_SOUND_IT8172=y 707CONFIG_SOUND_IT8172=y
709# CONFIG_SOUND_MSNDCLAS is not set 708# CONFIG_SOUND_MSNDCLAS is not set
710# CONFIG_SOUND_MSNDPIN is not set 709# CONFIG_SOUND_MSNDPIN is not set
@@ -714,6 +713,7 @@ CONFIG_SOUND_IT8172=y
714# 713#
715# CONFIG_USB_ARCH_HAS_HCD is not set 714# CONFIG_USB_ARCH_HAS_HCD is not set
716# CONFIG_USB_ARCH_HAS_OHCI is not set 715# CONFIG_USB_ARCH_HAS_OHCI is not set
716# CONFIG_USB_ARCH_HAS_EHCI is not set
717 717
718# 718#
719# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 719# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -730,12 +730,30 @@ CONFIG_SOUND_IT8172=y
730# CONFIG_MMC is not set 730# CONFIG_MMC is not set
731 731
732# 732#
733# LED devices
734#
735# CONFIG_NEW_LEDS is not set
736
737#
738# LED drivers
739#
740
741#
742# LED Triggers
743#
744
745#
733# InfiniBand support 746# InfiniBand support
734# 747#
735 748
736# 749#
737# SN Devices 750# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
751#
752
753#
754# Real Time Clock
738# 755#
756# CONFIG_RTC_CLASS is not set
739 757
740# 758#
741# File systems 759# File systems
@@ -780,7 +798,6 @@ CONFIG_SYSFS=y
780# CONFIG_TMPFS is not set 798# CONFIG_TMPFS is not set
781# CONFIG_HUGETLB_PAGE is not set 799# CONFIG_HUGETLB_PAGE is not set
782CONFIG_RAMFS=y 800CONFIG_RAMFS=y
783CONFIG_RELAYFS_FS=m
784# CONFIG_CONFIGFS_FS is not set 801# CONFIG_CONFIGFS_FS is not set
785 802
786# 803#
@@ -846,6 +863,7 @@ CONFIG_MSDOS_PARTITION=y
846# CONFIG_MAGIC_SYSRQ is not set 863# CONFIG_MAGIC_SYSRQ is not set
847# CONFIG_DEBUG_KERNEL is not set 864# CONFIG_DEBUG_KERNEL is not set
848CONFIG_LOG_BUF_SHIFT=14 865CONFIG_LOG_BUF_SHIFT=14
866# CONFIG_DEBUG_FS is not set
849CONFIG_CROSSCOMPILE=y 867CONFIG_CROSSCOMPILE=y
850CONFIG_CMDLINE="" 868CONFIG_CMDLINE=""
851 869
diff --git a/arch/mips/configs/ivr_defconfig b/arch/mips/configs/ivr_defconfig
index a8376d125e11..021761a8a237 100644
--- a/arch/mips/configs/ivr_defconfig
+++ b/arch/mips/configs/ivr_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:11 2006 4# Mon Apr 24 14:51:06 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_IVR=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -112,7 +114,6 @@ CONFIG_PAGE_SIZE_4KB=y
112# CONFIG_PAGE_SIZE_16KB is not set 114# CONFIG_PAGE_SIZE_16KB is not set
113# CONFIG_PAGE_SIZE_64KB is not set 115# CONFIG_PAGE_SIZE_64KB is not set
114# CONFIG_MIPS_MT is not set 116# CONFIG_MIPS_MT is not set
115# CONFIG_CPU_ADVANCED is not set
116CONFIG_CPU_HAS_LLSC=y 117CONFIG_CPU_HAS_LLSC=y
117CONFIG_CPU_HAS_SYNC=y 118CONFIG_CPU_HAS_SYNC=y
118CONFIG_GENERIC_HARDIRQS=y 119CONFIG_GENERIC_HARDIRQS=y
@@ -134,7 +135,6 @@ CONFIG_PREEMPT_NONE=y
134# Code maturity level options 135# Code maturity level options
135# 136#
136CONFIG_EXPERIMENTAL=y 137CONFIG_EXPERIMENTAL=y
137CONFIG_CLEAN_COMPILE=y
138CONFIG_BROKEN_ON_SMP=y 138CONFIG_BROKEN_ON_SMP=y
139CONFIG_INIT_ENV_ARG_LIMIT=32 139CONFIG_INIT_ENV_ARG_LIMIT=32
140 140
@@ -151,6 +151,7 @@ CONFIG_BSD_PROCESS_ACCT=y
151CONFIG_SYSCTL=y 151CONFIG_SYSCTL=y
152# CONFIG_AUDIT is not set 152# CONFIG_AUDIT is not set
153# CONFIG_IKCONFIG is not set 153# CONFIG_IKCONFIG is not set
154CONFIG_RELAY=y
154CONFIG_INITRAMFS_SOURCE="" 155CONFIG_INITRAMFS_SOURCE=""
155# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 156# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
156CONFIG_EMBEDDED=y 157CONFIG_EMBEDDED=y
@@ -164,10 +165,6 @@ CONFIG_BASE_FULL=y
164CONFIG_FUTEX=y 165CONFIG_FUTEX=y
165CONFIG_EPOLL=y 166CONFIG_EPOLL=y
166CONFIG_SHMEM=y 167CONFIG_SHMEM=y
167CONFIG_CC_ALIGN_FUNCTIONS=0
168CONFIG_CC_ALIGN_LABELS=0
169CONFIG_CC_ALIGN_LOOPS=0
170CONFIG_CC_ALIGN_JUMPS=0
171CONFIG_SLAB=y 168CONFIG_SLAB=y
172# CONFIG_TINY_SHMEM is not set 169# CONFIG_TINY_SHMEM is not set
173CONFIG_BASE_SMALL=0 170CONFIG_BASE_SMALL=0
@@ -179,7 +176,6 @@ CONFIG_BASE_SMALL=0
179CONFIG_MODULES=y 176CONFIG_MODULES=y
180CONFIG_MODULE_UNLOAD=y 177CONFIG_MODULE_UNLOAD=y
181# CONFIG_MODULE_FORCE_UNLOAD is not set 178# CONFIG_MODULE_FORCE_UNLOAD is not set
182CONFIG_OBSOLETE_MODPARM=y
183CONFIG_MODVERSIONS=y 179CONFIG_MODVERSIONS=y
184CONFIG_MODULE_SRCVERSION_ALL=y 180CONFIG_MODULE_SRCVERSION_ALL=y
185CONFIG_KMOD=y 181CONFIG_KMOD=y
@@ -188,6 +184,8 @@ CONFIG_KMOD=y
188# Block layer 184# Block layer
189# 185#
190# CONFIG_LBD is not set 186# CONFIG_LBD is not set
187# CONFIG_BLK_DEV_IO_TRACE is not set
188# CONFIG_LSF is not set
191 189
192# 190#
193# IO Schedulers 191# IO Schedulers
@@ -207,7 +205,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
207# 205#
208CONFIG_HW_HAS_PCI=y 206CONFIG_HW_HAS_PCI=y
209CONFIG_PCI=y 207CONFIG_PCI=y
210CONFIG_PCI_LEGACY_PROC=y
211CONFIG_MMU=y 208CONFIG_MMU=y
212 209
213# 210#
@@ -235,6 +232,7 @@ CONFIG_NET=y
235# 232#
236# Networking options 233# Networking options
237# 234#
235# CONFIG_NETDEBUG is not set
238CONFIG_PACKET=y 236CONFIG_PACKET=y
239CONFIG_PACKET_MMAP=y 237CONFIG_PACKET_MMAP=y
240CONFIG_UNIX=y 238CONFIG_UNIX=y
@@ -256,12 +254,15 @@ CONFIG_IP_PNP_BOOTP=y
256# CONFIG_INET_AH is not set 254# CONFIG_INET_AH is not set
257# CONFIG_INET_ESP is not set 255# CONFIG_INET_ESP is not set
258# CONFIG_INET_IPCOMP is not set 256# CONFIG_INET_IPCOMP is not set
259CONFIG_INET_TUNNEL=m 257# CONFIG_INET_XFRM_TUNNEL is not set
258# CONFIG_INET_TUNNEL is not set
260CONFIG_INET_DIAG=y 259CONFIG_INET_DIAG=y
261CONFIG_INET_TCP_DIAG=y 260CONFIG_INET_TCP_DIAG=y
262# CONFIG_TCP_CONG_ADVANCED is not set 261# CONFIG_TCP_CONG_ADVANCED is not set
263CONFIG_TCP_CONG_BIC=y 262CONFIG_TCP_CONG_BIC=y
264# CONFIG_IPV6 is not set 263# CONFIG_IPV6 is not set
264# CONFIG_INET6_XFRM_TUNNEL is not set
265# CONFIG_INET6_TUNNEL is not set
265# CONFIG_NETFILTER is not set 266# CONFIG_NETFILTER is not set
266 267
267# 268#
@@ -273,6 +274,11 @@ CONFIG_TCP_CONG_BIC=y
273# SCTP Configuration (EXPERIMENTAL) 274# SCTP Configuration (EXPERIMENTAL)
274# 275#
275# CONFIG_IP_SCTP is not set 276# CONFIG_IP_SCTP is not set
277
278#
279# TIPC Configuration (EXPERIMENTAL)
280#
281# CONFIG_TIPC is not set
276# CONFIG_ATM is not set 282# CONFIG_ATM is not set
277# CONFIG_BRIDGE is not set 283# CONFIG_BRIDGE is not set
278# CONFIG_VLAN_8021Q is not set 284# CONFIG_VLAN_8021Q is not set
@@ -282,11 +288,6 @@ CONFIG_TCP_CONG_BIC=y
282# CONFIG_ATALK is not set 288# CONFIG_ATALK is not set
283# CONFIG_X25 is not set 289# CONFIG_X25 is not set
284# CONFIG_LAPB is not set 290# CONFIG_LAPB is not set
285
286#
287# TIPC Configuration (EXPERIMENTAL)
288#
289# CONFIG_TIPC is not set
290# CONFIG_NET_DIVERT is not set 291# CONFIG_NET_DIVERT is not set
291# CONFIG_ECONET is not set 292# CONFIG_ECONET is not set
292# CONFIG_WAN_ROUTER is not set 293# CONFIG_WAN_ROUTER is not set
@@ -307,6 +308,9 @@ CONFIG_IEEE80211=m
307# CONFIG_IEEE80211_DEBUG is not set 308# CONFIG_IEEE80211_DEBUG is not set
308CONFIG_IEEE80211_CRYPT_WEP=m 309CONFIG_IEEE80211_CRYPT_WEP=m
309CONFIG_IEEE80211_CRYPT_CCMP=m 310CONFIG_IEEE80211_CRYPT_CCMP=m
311CONFIG_IEEE80211_SOFTMAC=m
312# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
313CONFIG_WIRELESS_EXT=y
310 314
311# 315#
312# Device Drivers 316# Device Drivers
@@ -350,7 +354,7 @@ CONFIG_CONNECTOR=m
350# CONFIG_BLK_DEV_NBD is not set 354# CONFIG_BLK_DEV_NBD is not set
351# CONFIG_BLK_DEV_SX8 is not set 355# CONFIG_BLK_DEV_SX8 is not set
352# CONFIG_BLK_DEV_RAM is not set 356# CONFIG_BLK_DEV_RAM is not set
353CONFIG_BLK_DEV_RAM_COUNT=16 357# CONFIG_BLK_DEV_INITRD is not set
354CONFIG_CDROM_PKTCDVD=m 358CONFIG_CDROM_PKTCDVD=m
355CONFIG_CDROM_PKTCDVD_BUFFERS=8 359CONFIG_CDROM_PKTCDVD_BUFFERS=8
356# CONFIG_CDROM_PKTCDVD_WCACHE is not set 360# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -565,6 +569,7 @@ CONFIG_IT8172_SCR1=y
565# 569#
566CONFIG_SERIAL_8250=y 570CONFIG_SERIAL_8250=y
567CONFIG_SERIAL_8250_CONSOLE=y 571CONFIG_SERIAL_8250_CONSOLE=y
572CONFIG_SERIAL_8250_PCI=y
568CONFIG_SERIAL_8250_NR_UARTS=4 573CONFIG_SERIAL_8250_NR_UARTS=4
569CONFIG_SERIAL_8250_RUNTIME_UARTS=4 574CONFIG_SERIAL_8250_RUNTIME_UARTS=4
570# CONFIG_SERIAL_8250_EXTENDED is not set 575# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -574,6 +579,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
574# 579#
575CONFIG_SERIAL_CORE=y 580CONFIG_SERIAL_CORE=y
576CONFIG_SERIAL_CORE_CONSOLE=y 581CONFIG_SERIAL_CORE_CONSOLE=y
582# CONFIG_SERIAL_JSM is not set
577CONFIG_UNIX98_PTYS=y 583CONFIG_UNIX98_PTYS=y
578CONFIG_LEGACY_PTYS=y 584CONFIG_LEGACY_PTYS=y
579CONFIG_LEGACY_PTY_COUNT=256 585CONFIG_LEGACY_PTY_COUNT=256
@@ -631,10 +637,6 @@ CONFIG_RTC=y
631# 637#
632 638
633# 639#
634# Multimedia Capabilities Port drivers
635#
636
637#
638# Multimedia devices 640# Multimedia devices
639# 641#
640# CONFIG_VIDEO_DEV is not set 642# CONFIG_VIDEO_DEV is not set
@@ -665,6 +667,7 @@ CONFIG_DUMMY_CONSOLE=y
665# 667#
666CONFIG_USB_ARCH_HAS_HCD=y 668CONFIG_USB_ARCH_HAS_HCD=y
667CONFIG_USB_ARCH_HAS_OHCI=y 669CONFIG_USB_ARCH_HAS_OHCI=y
670CONFIG_USB_ARCH_HAS_EHCI=y
668# CONFIG_USB is not set 671# CONFIG_USB is not set
669 672
670# 673#
@@ -682,13 +685,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
682# CONFIG_MMC is not set 685# CONFIG_MMC is not set
683 686
684# 687#
688# LED devices
689#
690# CONFIG_NEW_LEDS is not set
691
692#
693# LED drivers
694#
695
696#
697# LED Triggers
698#
699
700#
685# InfiniBand support 701# InfiniBand support
686# 702#
687# CONFIG_INFINIBAND is not set 703# CONFIG_INFINIBAND is not set
688 704
689# 705#
690# SN Devices 706# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
707#
708
709#
710# Real Time Clock
691# 711#
712# CONFIG_RTC_CLASS is not set
692 713
693# 714#
694# File systems 715# File systems
@@ -733,7 +754,6 @@ CONFIG_SYSFS=y
733# CONFIG_TMPFS is not set 754# CONFIG_TMPFS is not set
734# CONFIG_HUGETLB_PAGE is not set 755# CONFIG_HUGETLB_PAGE is not set
735CONFIG_RAMFS=y 756CONFIG_RAMFS=y
736CONFIG_RELAYFS_FS=m
737# CONFIG_CONFIGFS_FS is not set 757# CONFIG_CONFIGFS_FS is not set
738 758
739# 759#
@@ -797,6 +817,7 @@ CONFIG_MSDOS_PARTITION=y
797# CONFIG_MAGIC_SYSRQ is not set 817# CONFIG_MAGIC_SYSRQ is not set
798# CONFIG_DEBUG_KERNEL is not set 818# CONFIG_DEBUG_KERNEL is not set
799CONFIG_LOG_BUF_SHIFT=14 819CONFIG_LOG_BUF_SHIFT=14
820# CONFIG_DEBUG_FS is not set
800CONFIG_CROSSCOMPILE=y 821CONFIG_CROSSCOMPILE=y
801CONFIG_CMDLINE="" 822CONFIG_CMDLINE=""
802 823
diff --git a/arch/mips/configs/jaguar-atx_defconfig b/arch/mips/configs/jaguar-atx_defconfig
index 316015379dbc..08f6c30b0abc 100644
--- a/arch/mips/configs/jaguar-atx_defconfig
+++ b/arch/mips/configs/jaguar-atx_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:12 2006 4# Mon Apr 24 14:51:06 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -65,6 +65,8 @@ CONFIG_MOMENCO_JAGUAR_ATX=y
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_JAGUAR_DMALOW=y 66CONFIG_JAGUAR_DMALOW=y
67CONFIG_RWSEM_GENERIC_SPINLOCK=y 67CONFIG_RWSEM_GENERIC_SPINLOCK=y
68CONFIG_GENERIC_FIND_NEXT_BIT=y
69CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
69CONFIG_DMA_NONCOHERENT=y 71CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 72CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -122,7 +124,6 @@ CONFIG_RM7000_CPU_SCACHE=y
122CONFIG_CPU_HAS_PREFETCH=y 124CONFIG_CPU_HAS_PREFETCH=y
123# CONFIG_MIPS_MT is not set 125# CONFIG_MIPS_MT is not set
124# CONFIG_64BIT_PHYS_ADDR is not set 126# CONFIG_64BIT_PHYS_ADDR is not set
125# CONFIG_CPU_ADVANCED is not set
126CONFIG_CPU_HAS_LLSC=y 127CONFIG_CPU_HAS_LLSC=y
127CONFIG_CPU_HAS_SYNC=y 128CONFIG_CPU_HAS_SYNC=y
128CONFIG_GENERIC_HARDIRQS=y 129CONFIG_GENERIC_HARDIRQS=y
@@ -144,7 +145,6 @@ CONFIG_PREEMPT_NONE=y
144# Code maturity level options 145# Code maturity level options
145# 146#
146# CONFIG_EXPERIMENTAL is not set 147# CONFIG_EXPERIMENTAL is not set
147CONFIG_CLEAN_COMPILE=y
148CONFIG_BROKEN_ON_SMP=y 148CONFIG_BROKEN_ON_SMP=y
149CONFIG_INIT_ENV_ARG_LIMIT=32 149CONFIG_INIT_ENV_ARG_LIMIT=32
150 150
@@ -160,6 +160,7 @@ CONFIG_SYSCTL=y
160# CONFIG_AUDIT is not set 160# CONFIG_AUDIT is not set
161CONFIG_IKCONFIG=y 161CONFIG_IKCONFIG=y
162CONFIG_IKCONFIG_PROC=y 162CONFIG_IKCONFIG_PROC=y
163CONFIG_RELAY=y
163CONFIG_INITRAMFS_SOURCE="" 164CONFIG_INITRAMFS_SOURCE=""
164CONFIG_EMBEDDED=y 165CONFIG_EMBEDDED=y
165CONFIG_KALLSYMS=y 166CONFIG_KALLSYMS=y
@@ -172,10 +173,6 @@ CONFIG_BASE_FULL=y
172CONFIG_FUTEX=y 173CONFIG_FUTEX=y
173CONFIG_EPOLL=y 174CONFIG_EPOLL=y
174CONFIG_SHMEM=y 175CONFIG_SHMEM=y
175CONFIG_CC_ALIGN_FUNCTIONS=0
176CONFIG_CC_ALIGN_LABELS=0
177CONFIG_CC_ALIGN_LOOPS=0
178CONFIG_CC_ALIGN_JUMPS=0
179CONFIG_SLAB=y 176CONFIG_SLAB=y
180# CONFIG_TINY_SHMEM is not set 177# CONFIG_TINY_SHMEM is not set
181CONFIG_BASE_SMALL=0 178CONFIG_BASE_SMALL=0
@@ -186,7 +183,6 @@ CONFIG_BASE_SMALL=0
186# 183#
187CONFIG_MODULES=y 184CONFIG_MODULES=y
188CONFIG_MODULE_UNLOAD=y 185CONFIG_MODULE_UNLOAD=y
189CONFIG_OBSOLETE_MODPARM=y
190# CONFIG_MODVERSIONS is not set 186# CONFIG_MODVERSIONS is not set
191CONFIG_MODULE_SRCVERSION_ALL=y 187CONFIG_MODULE_SRCVERSION_ALL=y
192CONFIG_KMOD=y 188CONFIG_KMOD=y
@@ -195,6 +191,8 @@ CONFIG_KMOD=y
195# Block layer 191# Block layer
196# 192#
197# CONFIG_LBD is not set 193# CONFIG_LBD is not set
194# CONFIG_BLK_DEV_IO_TRACE is not set
195# CONFIG_LSF is not set
198 196
199# 197#
200# IO Schedulers 198# IO Schedulers
@@ -214,7 +212,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
214# 212#
215CONFIG_HW_HAS_PCI=y 213CONFIG_HW_HAS_PCI=y
216CONFIG_PCI=y 214CONFIG_PCI=y
217CONFIG_PCI_LEGACY_PROC=y
218CONFIG_MMU=y 215CONFIG_MMU=y
219 216
220# 217#
@@ -241,6 +238,7 @@ CONFIG_NET=y
241# 238#
242# Networking options 239# Networking options
243# 240#
241# CONFIG_NETDEBUG is not set
244# CONFIG_PACKET is not set 242# CONFIG_PACKET is not set
245CONFIG_UNIX=y 243CONFIG_UNIX=y
246CONFIG_XFRM=y 244CONFIG_XFRM=y
@@ -260,16 +258,19 @@ CONFIG_IP_PNP_BOOTP=y
260# CONFIG_INET_AH is not set 258# CONFIG_INET_AH is not set
261# CONFIG_INET_ESP is not set 259# CONFIG_INET_ESP is not set
262# CONFIG_INET_IPCOMP is not set 260# CONFIG_INET_IPCOMP is not set
263CONFIG_INET_TUNNEL=m 261# CONFIG_INET_XFRM_TUNNEL is not set
262# CONFIG_INET_TUNNEL is not set
264CONFIG_INET_DIAG=y 263CONFIG_INET_DIAG=y
265CONFIG_INET_TCP_DIAG=y 264CONFIG_INET_TCP_DIAG=y
266# CONFIG_TCP_CONG_ADVANCED is not set 265# CONFIG_TCP_CONG_ADVANCED is not set
267CONFIG_TCP_CONG_BIC=y 266CONFIG_TCP_CONG_BIC=y
268CONFIG_IPV6=m 267CONFIG_IPV6=m
269CONFIG_IPV6_PRIVACY=y 268CONFIG_IPV6_PRIVACY=y
269CONFIG_IPV6_ROUTER_PREF=y
270CONFIG_INET6_AH=m 270CONFIG_INET6_AH=m
271CONFIG_INET6_ESP=m 271CONFIG_INET6_ESP=m
272CONFIG_INET6_IPCOMP=m 272CONFIG_INET6_IPCOMP=m
273CONFIG_INET6_XFRM_TUNNEL=m
273CONFIG_INET6_TUNNEL=m 274CONFIG_INET6_TUNNEL=m
274CONFIG_IPV6_TUNNEL=m 275CONFIG_IPV6_TUNNEL=m
275# CONFIG_NETFILTER is not set 276# CONFIG_NETFILTER is not set
@@ -338,10 +339,9 @@ CONFIG_CONNECTOR=m
338# CONFIG_BLK_DEV_NBD is not set 339# CONFIG_BLK_DEV_NBD is not set
339# CONFIG_BLK_DEV_SX8 is not set 340# CONFIG_BLK_DEV_SX8 is not set
340# CONFIG_BLK_DEV_RAM is not set 341# CONFIG_BLK_DEV_RAM is not set
341CONFIG_BLK_DEV_RAM_COUNT=16 342# CONFIG_BLK_DEV_INITRD is not set
342CONFIG_CDROM_PKTCDVD=m 343CONFIG_CDROM_PKTCDVD=m
343CONFIG_CDROM_PKTCDVD_BUFFERS=8 344CONFIG_CDROM_PKTCDVD_BUFFERS=8
344# CONFIG_CDROM_PKTCDVD_WCACHE is not set
345CONFIG_ATA_OVER_ETH=m 345CONFIG_ATA_OVER_ETH=m
346 346
347# 347#
@@ -423,6 +423,7 @@ CONFIG_NET_PCI=y
423# CONFIG_PCNET32 is not set 423# CONFIG_PCNET32 is not set
424# CONFIG_AMD8111_ETH is not set 424# CONFIG_AMD8111_ETH is not set
425# CONFIG_ADAPTEC_STARFIRE is not set 425# CONFIG_ADAPTEC_STARFIRE is not set
426# CONFIG_FORCEDETH is not set
426# CONFIG_DGRS is not set 427# CONFIG_DGRS is not set
427CONFIG_EEPRO100=y 428CONFIG_EEPRO100=y
428# CONFIG_E100 is not set 429# CONFIG_E100 is not set
@@ -446,6 +447,7 @@ CONFIG_EEPRO100=y
446# CONFIG_HAMACHI is not set 447# CONFIG_HAMACHI is not set
447# CONFIG_R8169 is not set 448# CONFIG_R8169 is not set
448# CONFIG_SIS190 is not set 449# CONFIG_SIS190 is not set
450# CONFIG_SKGE is not set
449# CONFIG_SK98LIN is not set 451# CONFIG_SK98LIN is not set
450# CONFIG_VIA_VELOCITY is not set 452# CONFIG_VIA_VELOCITY is not set
451# CONFIG_TIGON3 is not set 453# CONFIG_TIGON3 is not set
@@ -514,6 +516,7 @@ CONFIG_MV643XX_ETH_2=y
514# 516#
515CONFIG_SERIAL_8250=y 517CONFIG_SERIAL_8250=y
516CONFIG_SERIAL_8250_CONSOLE=y 518CONFIG_SERIAL_8250_CONSOLE=y
519CONFIG_SERIAL_8250_PCI=y
517CONFIG_SERIAL_8250_NR_UARTS=4 520CONFIG_SERIAL_8250_NR_UARTS=4
518CONFIG_SERIAL_8250_RUNTIME_UARTS=4 521CONFIG_SERIAL_8250_RUNTIME_UARTS=4
519# CONFIG_SERIAL_8250_EXTENDED is not set 522# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -523,6 +526,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
523# 526#
524CONFIG_SERIAL_CORE=y 527CONFIG_SERIAL_CORE=y
525CONFIG_SERIAL_CORE_CONSOLE=y 528CONFIG_SERIAL_CORE_CONSOLE=y
529# CONFIG_SERIAL_JSM is not set
526CONFIG_UNIX98_PTYS=y 530CONFIG_UNIX98_PTYS=y
527CONFIG_LEGACY_PTYS=y 531CONFIG_LEGACY_PTYS=y
528CONFIG_LEGACY_PTY_COUNT=256 532CONFIG_LEGACY_PTY_COUNT=256
@@ -579,10 +583,6 @@ CONFIG_LEGACY_PTY_COUNT=256
579# 583#
580 584
581# 585#
582# Multimedia Capabilities Port drivers
583#
584
585#
586# Multimedia devices 586# Multimedia devices
587# 587#
588# CONFIG_VIDEO_DEV is not set 588# CONFIG_VIDEO_DEV is not set
@@ -607,6 +607,7 @@ CONFIG_LEGACY_PTY_COUNT=256
607# 607#
608CONFIG_USB_ARCH_HAS_HCD=y 608CONFIG_USB_ARCH_HAS_HCD=y
609CONFIG_USB_ARCH_HAS_OHCI=y 609CONFIG_USB_ARCH_HAS_OHCI=y
610CONFIG_USB_ARCH_HAS_EHCI=y
610# CONFIG_USB is not set 611# CONFIG_USB is not set
611 612
612# 613#
@@ -624,12 +625,29 @@ CONFIG_USB_ARCH_HAS_OHCI=y
624# CONFIG_MMC is not set 625# CONFIG_MMC is not set
625 626
626# 627#
628# LED devices
629#
630# CONFIG_NEW_LEDS is not set
631
632#
633# LED drivers
634#
635
636#
637# LED Triggers
638#
639
640#
627# InfiniBand support 641# InfiniBand support
628# 642#
629# CONFIG_INFINIBAND is not set 643# CONFIG_INFINIBAND is not set
630 644
631# 645#
632# SN Devices 646# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
647#
648
649#
650# Real Time Clock
633# 651#
634 652
635# 653#
@@ -672,7 +690,6 @@ CONFIG_SYSFS=y
672# CONFIG_TMPFS is not set 690# CONFIG_TMPFS is not set
673# CONFIG_HUGETLB_PAGE is not set 691# CONFIG_HUGETLB_PAGE is not set
674CONFIG_RAMFS=y 692CONFIG_RAMFS=y
675CONFIG_RELAYFS_FS=m
676 693
677# 694#
678# Miscellaneous filesystems 695# Miscellaneous filesystems
@@ -718,6 +735,7 @@ CONFIG_MSDOS_PARTITION=y
718# CONFIG_MAGIC_SYSRQ is not set 735# CONFIG_MAGIC_SYSRQ is not set
719# CONFIG_DEBUG_KERNEL is not set 736# CONFIG_DEBUG_KERNEL is not set
720CONFIG_LOG_BUF_SHIFT=14 737CONFIG_LOG_BUF_SHIFT=14
738# CONFIG_DEBUG_FS is not set
721CONFIG_CROSSCOMPILE=y 739CONFIG_CROSSCOMPILE=y
722CONFIG_CMDLINE="" 740CONFIG_CMDLINE=""
723 741
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig
index 53fbef1ac25d..38b1e026e10d 100644
--- a/arch/mips/configs/jmr3927_defconfig
+++ b/arch/mips/configs/jmr3927_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:13 2006 4# Mon Apr 24 14:51:07 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_TOSHIBA_JMR3927=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -111,7 +113,6 @@ CONFIG_PAGE_SIZE_4KB=y
111# CONFIG_PAGE_SIZE_16KB is not set 113# CONFIG_PAGE_SIZE_16KB is not set
112# CONFIG_PAGE_SIZE_64KB is not set 114# CONFIG_PAGE_SIZE_64KB is not set
113# CONFIG_MIPS_MT is not set 115# CONFIG_MIPS_MT is not set
114# CONFIG_CPU_ADVANCED is not set
115CONFIG_CPU_HAS_SYNC=y 116CONFIG_CPU_HAS_SYNC=y
116CONFIG_GENERIC_HARDIRQS=y 117CONFIG_GENERIC_HARDIRQS=y
117CONFIG_GENERIC_IRQ_PROBE=y 118CONFIG_GENERIC_IRQ_PROBE=y
@@ -133,7 +134,6 @@ CONFIG_RTC_DS1742=y
133# Code maturity level options 134# Code maturity level options
134# 135#
135CONFIG_EXPERIMENTAL=y 136CONFIG_EXPERIMENTAL=y
136CONFIG_CLEAN_COMPILE=y
137CONFIG_BROKEN_ON_SMP=y 137CONFIG_BROKEN_ON_SMP=y
138CONFIG_INIT_ENV_ARG_LIMIT=32 138CONFIG_INIT_ENV_ARG_LIMIT=32
139 139
@@ -149,6 +149,7 @@ CONFIG_SYSVIPC=y
149CONFIG_SYSCTL=y 149CONFIG_SYSCTL=y
150# CONFIG_AUDIT is not set 150# CONFIG_AUDIT is not set
151# CONFIG_IKCONFIG is not set 151# CONFIG_IKCONFIG is not set
152CONFIG_RELAY=y
152CONFIG_INITRAMFS_SOURCE="" 153CONFIG_INITRAMFS_SOURCE=""
153# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 154# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
154CONFIG_EMBEDDED=y 155CONFIG_EMBEDDED=y
@@ -162,10 +163,6 @@ CONFIG_BASE_FULL=y
162CONFIG_FUTEX=y 163CONFIG_FUTEX=y
163CONFIG_EPOLL=y 164CONFIG_EPOLL=y
164CONFIG_SHMEM=y 165CONFIG_SHMEM=y
165CONFIG_CC_ALIGN_FUNCTIONS=0
166CONFIG_CC_ALIGN_LABELS=0
167CONFIG_CC_ALIGN_LOOPS=0
168CONFIG_CC_ALIGN_JUMPS=0
169CONFIG_SLAB=y 166CONFIG_SLAB=y
170# CONFIG_TINY_SHMEM is not set 167# CONFIG_TINY_SHMEM is not set
171CONFIG_BASE_SMALL=0 168CONFIG_BASE_SMALL=0
@@ -180,6 +177,8 @@ CONFIG_BASE_SMALL=0
180# Block layer 177# Block layer
181# 178#
182# CONFIG_LBD is not set 179# CONFIG_LBD is not set
180# CONFIG_BLK_DEV_IO_TRACE is not set
181# CONFIG_LSF is not set
183 182
184# 183#
185# IO Schedulers 184# IO Schedulers
@@ -199,7 +198,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
199# 198#
200CONFIG_HW_HAS_PCI=y 199CONFIG_HW_HAS_PCI=y
201CONFIG_PCI=y 200CONFIG_PCI=y
202CONFIG_PCI_LEGACY_PROC=y
203CONFIG_MMU=y 201CONFIG_MMU=y
204 202
205# 203#
@@ -227,6 +225,7 @@ CONFIG_NET=y
227# 225#
228# Networking options 226# Networking options
229# 227#
228# CONFIG_NETDEBUG is not set
230CONFIG_PACKET=y 229CONFIG_PACKET=y
231# CONFIG_PACKET_MMAP is not set 230# CONFIG_PACKET_MMAP is not set
232CONFIG_UNIX=y 231CONFIG_UNIX=y
@@ -248,12 +247,15 @@ CONFIG_IP_PNP_BOOTP=y
248# CONFIG_INET_AH is not set 247# CONFIG_INET_AH is not set
249# CONFIG_INET_ESP is not set 248# CONFIG_INET_ESP is not set
250# CONFIG_INET_IPCOMP is not set 249# CONFIG_INET_IPCOMP is not set
251CONFIG_INET_TUNNEL=y 250# CONFIG_INET_XFRM_TUNNEL is not set
251# CONFIG_INET_TUNNEL is not set
252CONFIG_INET_DIAG=y 252CONFIG_INET_DIAG=y
253CONFIG_INET_TCP_DIAG=y 253CONFIG_INET_TCP_DIAG=y
254# CONFIG_TCP_CONG_ADVANCED is not set 254# CONFIG_TCP_CONG_ADVANCED is not set
255CONFIG_TCP_CONG_BIC=y 255CONFIG_TCP_CONG_BIC=y
256# CONFIG_IPV6 is not set 256# CONFIG_IPV6 is not set
257# CONFIG_INET6_XFRM_TUNNEL is not set
258# CONFIG_INET6_TUNNEL is not set
257# CONFIG_NETFILTER is not set 259# CONFIG_NETFILTER is not set
258 260
259# 261#
@@ -265,6 +267,11 @@ CONFIG_TCP_CONG_BIC=y
265# SCTP Configuration (EXPERIMENTAL) 267# SCTP Configuration (EXPERIMENTAL)
266# 268#
267# CONFIG_IP_SCTP is not set 269# CONFIG_IP_SCTP is not set
270
271#
272# TIPC Configuration (EXPERIMENTAL)
273#
274# CONFIG_TIPC is not set
268# CONFIG_ATM is not set 275# CONFIG_ATM is not set
269# CONFIG_BRIDGE is not set 276# CONFIG_BRIDGE is not set
270# CONFIG_VLAN_8021Q is not set 277# CONFIG_VLAN_8021Q is not set
@@ -274,11 +281,6 @@ CONFIG_TCP_CONG_BIC=y
274# CONFIG_ATALK is not set 281# CONFIG_ATALK is not set
275# CONFIG_X25 is not set 282# CONFIG_X25 is not set
276# CONFIG_LAPB is not set 283# CONFIG_LAPB is not set
277
278#
279# TIPC Configuration (EXPERIMENTAL)
280#
281# CONFIG_TIPC is not set
282# CONFIG_NET_DIVERT is not set 284# CONFIG_NET_DIVERT is not set
283# CONFIG_ECONET is not set 285# CONFIG_ECONET is not set
284# CONFIG_WAN_ROUTER is not set 286# CONFIG_WAN_ROUTER is not set
@@ -299,6 +301,9 @@ CONFIG_IEEE80211=y
299# CONFIG_IEEE80211_DEBUG is not set 301# CONFIG_IEEE80211_DEBUG is not set
300CONFIG_IEEE80211_CRYPT_WEP=y 302CONFIG_IEEE80211_CRYPT_WEP=y
301CONFIG_IEEE80211_CRYPT_CCMP=y 303CONFIG_IEEE80211_CRYPT_CCMP=y
304CONFIG_IEEE80211_SOFTMAC=y
305# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
306CONFIG_WIRELESS_EXT=y
302 307
303# 308#
304# Device Drivers 309# Device Drivers
@@ -343,7 +348,7 @@ CONFIG_PROC_EVENTS=y
343# CONFIG_BLK_DEV_NBD is not set 348# CONFIG_BLK_DEV_NBD is not set
344# CONFIG_BLK_DEV_SX8 is not set 349# CONFIG_BLK_DEV_SX8 is not set
345# CONFIG_BLK_DEV_RAM is not set 350# CONFIG_BLK_DEV_RAM is not set
346CONFIG_BLK_DEV_RAM_COUNT=16 351# CONFIG_BLK_DEV_INITRD is not set
347CONFIG_CDROM_PKTCDVD=y 352CONFIG_CDROM_PKTCDVD=y
348CONFIG_CDROM_PKTCDVD_BUFFERS=8 353CONFIG_CDROM_PKTCDVD_BUFFERS=8
349# CONFIG_CDROM_PKTCDVD_WCACHE is not set 354# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -551,7 +556,12 @@ CONFIG_SERIAL_NONSTANDARD=y
551# 556#
552# Non-8250 serial port support 557# Non-8250 serial port support
553# 558#
559CONFIG_SERIAL_CORE=y
560CONFIG_SERIAL_TXX9=y
554CONFIG_HAS_TXX9_SERIAL=y 561CONFIG_HAS_TXX9_SERIAL=y
562# CONFIG_SERIAL_TXX9_CONSOLE is not set
563# CONFIG_SERIAL_TXX9_STDSERIAL is not set
564# CONFIG_SERIAL_JSM is not set
555# CONFIG_UNIX98_PTYS is not set 565# CONFIG_UNIX98_PTYS is not set
556CONFIG_LEGACY_PTYS=y 566CONFIG_LEGACY_PTYS=y
557CONFIG_LEGACY_PTY_COUNT=256 567CONFIG_LEGACY_PTY_COUNT=256
@@ -610,10 +620,6 @@ CONFIG_LEGACY_PTY_COUNT=256
610# 620#
611 621
612# 622#
613# Multimedia Capabilities Port drivers
614#
615
616#
617# Multimedia devices 623# Multimedia devices
618# 624#
619# CONFIG_VIDEO_DEV is not set 625# CONFIG_VIDEO_DEV is not set
@@ -631,6 +637,7 @@ CONFIG_FB=y
631# CONFIG_FB_CFB_COPYAREA is not set 637# CONFIG_FB_CFB_COPYAREA is not set
632# CONFIG_FB_CFB_IMAGEBLIT is not set 638# CONFIG_FB_CFB_IMAGEBLIT is not set
633# CONFIG_FB_MACMODES is not set 639# CONFIG_FB_MACMODES is not set
640CONFIG_FB_FIRMWARE_EDID=y
634# CONFIG_FB_MODE_HELPERS is not set 641# CONFIG_FB_MODE_HELPERS is not set
635# CONFIG_FB_TILEBLITTING is not set 642# CONFIG_FB_TILEBLITTING is not set
636# CONFIG_FB_CIRRUS is not set 643# CONFIG_FB_CIRRUS is not set
@@ -642,7 +649,6 @@ CONFIG_FB=y
642# CONFIG_FB_NVIDIA is not set 649# CONFIG_FB_NVIDIA is not set
643# CONFIG_FB_RIVA is not set 650# CONFIG_FB_RIVA is not set
644# CONFIG_FB_MATROX is not set 651# CONFIG_FB_MATROX is not set
645# CONFIG_FB_RADEON_OLD is not set
646# CONFIG_FB_RADEON is not set 652# CONFIG_FB_RADEON is not set
647# CONFIG_FB_ATY128 is not set 653# CONFIG_FB_ATY128 is not set
648# CONFIG_FB_ATY is not set 654# CONFIG_FB_ATY is not set
@@ -679,6 +685,7 @@ CONFIG_DUMMY_CONSOLE=y
679# 685#
680CONFIG_USB_ARCH_HAS_HCD=y 686CONFIG_USB_ARCH_HAS_HCD=y
681CONFIG_USB_ARCH_HAS_OHCI=y 687CONFIG_USB_ARCH_HAS_OHCI=y
688CONFIG_USB_ARCH_HAS_EHCI=y
682# CONFIG_USB is not set 689# CONFIG_USB is not set
683 690
684# 691#
@@ -696,13 +703,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
696# CONFIG_MMC is not set 703# CONFIG_MMC is not set
697 704
698# 705#
706# LED devices
707#
708# CONFIG_NEW_LEDS is not set
709
710#
711# LED drivers
712#
713
714#
715# LED Triggers
716#
717
718#
699# InfiniBand support 719# InfiniBand support
700# 720#
701# CONFIG_INFINIBAND is not set 721# CONFIG_INFINIBAND is not set
702 722
703# 723#
704# SN Devices 724# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
725#
726
727#
728# Real Time Clock
705# 729#
730# CONFIG_RTC_CLASS is not set
706 731
707# 732#
708# File systems 733# File systems
@@ -745,7 +770,6 @@ CONFIG_SYSFS=y
745# CONFIG_TMPFS is not set 770# CONFIG_TMPFS is not set
746# CONFIG_HUGETLB_PAGE is not set 771# CONFIG_HUGETLB_PAGE is not set
747CONFIG_RAMFS=y 772CONFIG_RAMFS=y
748CONFIG_RELAYFS_FS=y
749# CONFIG_CONFIGFS_FS is not set 773# CONFIG_CONFIGFS_FS is not set
750 774
751# 775#
@@ -809,6 +833,8 @@ CONFIG_MSDOS_PARTITION=y
809# CONFIG_MAGIC_SYSRQ is not set 833# CONFIG_MAGIC_SYSRQ is not set
810# CONFIG_DEBUG_KERNEL is not set 834# CONFIG_DEBUG_KERNEL is not set
811CONFIG_LOG_BUF_SHIFT=14 835CONFIG_LOG_BUF_SHIFT=14
836# CONFIG_DEBUG_FS is not set
837# CONFIG_UNWIND_INFO is not set
812CONFIG_CROSSCOMPILE=y 838CONFIG_CROSSCOMPILE=y
813CONFIG_CMDLINE="" 839CONFIG_CMDLINE=""
814 840
diff --git a/arch/mips/configs/lasat200_defconfig b/arch/mips/configs/lasat200_defconfig
index ef0fa9fc79d6..4d25990a0a05 100644
--- a/arch/mips/configs/lasat200_defconfig
+++ b/arch/mips/configs/lasat200_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:14 2006 4# Mon Apr 24 14:51:07 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -68,6 +68,8 @@ CONFIG_PICVUE_PROC=y
68CONFIG_DS1603=y 68CONFIG_DS1603=y
69CONFIG_LASAT_SYSCTL=y 69CONFIG_LASAT_SYSCTL=y
70CONFIG_RWSEM_GENERIC_SPINLOCK=y 70CONFIG_RWSEM_GENERIC_SPINLOCK=y
71CONFIG_GENERIC_FIND_NEXT_BIT=y
72CONFIG_GENERIC_HWEIGHT=y
71CONFIG_GENERIC_CALIBRATE_DELAY=y 73CONFIG_GENERIC_CALIBRATE_DELAY=y
72CONFIG_DMA_NONCOHERENT=y 74CONFIG_DMA_NONCOHERENT=y
73CONFIG_DMA_NEED_PCI_MAP_STATE=y 75CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -119,7 +121,6 @@ CONFIG_BOARD_SCACHE=y
119CONFIG_R5000_CPU_SCACHE=y 121CONFIG_R5000_CPU_SCACHE=y
120# CONFIG_MIPS_MT is not set 122# CONFIG_MIPS_MT is not set
121# CONFIG_64BIT_PHYS_ADDR is not set 123# CONFIG_64BIT_PHYS_ADDR is not set
122# CONFIG_CPU_ADVANCED is not set
123CONFIG_CPU_HAS_LLSC=y 124CONFIG_CPU_HAS_LLSC=y
124CONFIG_CPU_HAS_SYNC=y 125CONFIG_CPU_HAS_SYNC=y
125CONFIG_GENERIC_HARDIRQS=y 126CONFIG_GENERIC_HARDIRQS=y
@@ -141,7 +142,6 @@ CONFIG_PREEMPT_NONE=y
141# Code maturity level options 142# Code maturity level options
142# 143#
143CONFIG_EXPERIMENTAL=y 144CONFIG_EXPERIMENTAL=y
144CONFIG_CLEAN_COMPILE=y
145CONFIG_BROKEN_ON_SMP=y 145CONFIG_BROKEN_ON_SMP=y
146CONFIG_INIT_ENV_ARG_LIMIT=32 146CONFIG_INIT_ENV_ARG_LIMIT=32
147 147
@@ -157,6 +157,7 @@ CONFIG_SYSVIPC=y
157CONFIG_SYSCTL=y 157CONFIG_SYSCTL=y
158# CONFIG_AUDIT is not set 158# CONFIG_AUDIT is not set
159# CONFIG_IKCONFIG is not set 159# CONFIG_IKCONFIG is not set
160CONFIG_RELAY=y
160CONFIG_INITRAMFS_SOURCE="" 161CONFIG_INITRAMFS_SOURCE=""
161# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 162# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
162CONFIG_EMBEDDED=y 163CONFIG_EMBEDDED=y
@@ -170,10 +171,6 @@ CONFIG_BASE_FULL=y
170CONFIG_FUTEX=y 171CONFIG_FUTEX=y
171CONFIG_EPOLL=y 172CONFIG_EPOLL=y
172CONFIG_SHMEM=y 173CONFIG_SHMEM=y
173CONFIG_CC_ALIGN_FUNCTIONS=0
174CONFIG_CC_ALIGN_LABELS=0
175CONFIG_CC_ALIGN_LOOPS=0
176CONFIG_CC_ALIGN_JUMPS=0
177CONFIG_SLAB=y 174CONFIG_SLAB=y
178# CONFIG_TINY_SHMEM is not set 175# CONFIG_TINY_SHMEM is not set
179CONFIG_BASE_SMALL=0 176CONFIG_BASE_SMALL=0
@@ -186,7 +183,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
186CONFIG_MODULES=y 183CONFIG_MODULES=y
187CONFIG_MODULE_UNLOAD=y 184CONFIG_MODULE_UNLOAD=y
188# CONFIG_MODULE_FORCE_UNLOAD is not set 185# CONFIG_MODULE_FORCE_UNLOAD is not set
189CONFIG_OBSOLETE_MODPARM=y
190CONFIG_MODVERSIONS=y 186CONFIG_MODVERSIONS=y
191CONFIG_MODULE_SRCVERSION_ALL=y 187CONFIG_MODULE_SRCVERSION_ALL=y
192CONFIG_KMOD=y 188CONFIG_KMOD=y
@@ -195,6 +191,8 @@ CONFIG_KMOD=y
195# Block layer 191# Block layer
196# 192#
197# CONFIG_LBD is not set 193# CONFIG_LBD is not set
194# CONFIG_BLK_DEV_IO_TRACE is not set
195# CONFIG_LSF is not set
198 196
199# 197#
200# IO Schedulers 198# IO Schedulers
@@ -214,7 +212,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
214# 212#
215CONFIG_HW_HAS_PCI=y 213CONFIG_HW_HAS_PCI=y
216CONFIG_PCI=y 214CONFIG_PCI=y
217CONFIG_PCI_LEGACY_PROC=y
218CONFIG_MMU=y 215CONFIG_MMU=y
219 216
220# 217#
@@ -242,6 +239,7 @@ CONFIG_NET=y
242# 239#
243# Networking options 240# Networking options
244# 241#
242# CONFIG_NETDEBUG is not set
245# CONFIG_PACKET is not set 243# CONFIG_PACKET is not set
246CONFIG_UNIX=y 244CONFIG_UNIX=y
247CONFIG_XFRM=y 245CONFIG_XFRM=y
@@ -259,12 +257,15 @@ CONFIG_IP_FIB_HASH=y
259# CONFIG_INET_AH is not set 257# CONFIG_INET_AH is not set
260# CONFIG_INET_ESP is not set 258# CONFIG_INET_ESP is not set
261# CONFIG_INET_IPCOMP is not set 259# CONFIG_INET_IPCOMP is not set
262CONFIG_INET_TUNNEL=m 260# CONFIG_INET_XFRM_TUNNEL is not set
261# CONFIG_INET_TUNNEL is not set
263CONFIG_INET_DIAG=y 262CONFIG_INET_DIAG=y
264CONFIG_INET_TCP_DIAG=y 263CONFIG_INET_TCP_DIAG=y
265# CONFIG_TCP_CONG_ADVANCED is not set 264# CONFIG_TCP_CONG_ADVANCED is not set
266CONFIG_TCP_CONG_BIC=y 265CONFIG_TCP_CONG_BIC=y
267# CONFIG_IPV6 is not set 266# CONFIG_IPV6 is not set
267# CONFIG_INET6_XFRM_TUNNEL is not set
268# CONFIG_INET6_TUNNEL is not set
268# CONFIG_NETFILTER is not set 269# CONFIG_NETFILTER is not set
269 270
270# 271#
@@ -276,6 +277,11 @@ CONFIG_TCP_CONG_BIC=y
276# SCTP Configuration (EXPERIMENTAL) 277# SCTP Configuration (EXPERIMENTAL)
277# 278#
278# CONFIG_IP_SCTP is not set 279# CONFIG_IP_SCTP is not set
280
281#
282# TIPC Configuration (EXPERIMENTAL)
283#
284# CONFIG_TIPC is not set
279# CONFIG_ATM is not set 285# CONFIG_ATM is not set
280# CONFIG_BRIDGE is not set 286# CONFIG_BRIDGE is not set
281# CONFIG_VLAN_8021Q is not set 287# CONFIG_VLAN_8021Q is not set
@@ -285,11 +291,6 @@ CONFIG_TCP_CONG_BIC=y
285# CONFIG_ATALK is not set 291# CONFIG_ATALK is not set
286# CONFIG_X25 is not set 292# CONFIG_X25 is not set
287# CONFIG_LAPB is not set 293# CONFIG_LAPB is not set
288
289#
290# TIPC Configuration (EXPERIMENTAL)
291#
292# CONFIG_TIPC is not set
293# CONFIG_NET_DIVERT is not set 294# CONFIG_NET_DIVERT is not set
294# CONFIG_ECONET is not set 295# CONFIG_ECONET is not set
295# CONFIG_WAN_ROUTER is not set 296# CONFIG_WAN_ROUTER is not set
@@ -310,6 +311,9 @@ CONFIG_IEEE80211=m
310# CONFIG_IEEE80211_DEBUG is not set 311# CONFIG_IEEE80211_DEBUG is not set
311CONFIG_IEEE80211_CRYPT_WEP=m 312CONFIG_IEEE80211_CRYPT_WEP=m
312CONFIG_IEEE80211_CRYPT_CCMP=m 313CONFIG_IEEE80211_CRYPT_CCMP=m
314CONFIG_IEEE80211_SOFTMAC=m
315# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
316CONFIG_WIRELESS_EXT=y
313 317
314# 318#
315# Device Drivers 319# Device Drivers
@@ -366,7 +370,6 @@ CONFIG_MTD_CFI_I2=y
366# CONFIG_MTD_CFI_I8 is not set 370# CONFIG_MTD_CFI_I8 is not set
367# CONFIG_MTD_CFI_INTELEXT is not set 371# CONFIG_MTD_CFI_INTELEXT is not set
368CONFIG_MTD_CFI_AMDSTD=y 372CONFIG_MTD_CFI_AMDSTD=y
369CONFIG_MTD_CFI_AMDSTD_RETRY=0
370# CONFIG_MTD_CFI_STAA is not set 373# CONFIG_MTD_CFI_STAA is not set
371CONFIG_MTD_CFI_UTIL=y 374CONFIG_MTD_CFI_UTIL=y
372# CONFIG_MTD_RAM is not set 375# CONFIG_MTD_RAM is not set
@@ -389,7 +392,6 @@ CONFIG_MTD_LASAT=y
389# CONFIG_MTD_SLRAM is not set 392# CONFIG_MTD_SLRAM is not set
390# CONFIG_MTD_PHRAM is not set 393# CONFIG_MTD_PHRAM is not set
391# CONFIG_MTD_MTDRAM is not set 394# CONFIG_MTD_MTDRAM is not set
392# CONFIG_MTD_BLKMTD is not set
393# CONFIG_MTD_BLOCK2MTD is not set 395# CONFIG_MTD_BLOCK2MTD is not set
394 396
395# 397#
@@ -430,7 +432,7 @@ CONFIG_MTD_LASAT=y
430# CONFIG_BLK_DEV_NBD is not set 432# CONFIG_BLK_DEV_NBD is not set
431# CONFIG_BLK_DEV_SX8 is not set 433# CONFIG_BLK_DEV_SX8 is not set
432# CONFIG_BLK_DEV_RAM is not set 434# CONFIG_BLK_DEV_RAM is not set
433CONFIG_BLK_DEV_RAM_COUNT=16 435# CONFIG_BLK_DEV_INITRD is not set
434CONFIG_CDROM_PKTCDVD=m 436CONFIG_CDROM_PKTCDVD=m
435CONFIG_CDROM_PKTCDVD_BUFFERS=8 437CONFIG_CDROM_PKTCDVD_BUFFERS=8
436# CONFIG_CDROM_PKTCDVD_WCACHE is not set 438# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -672,6 +674,7 @@ CONFIG_HW_CONSOLE=y
672# 674#
673CONFIG_SERIAL_8250=y 675CONFIG_SERIAL_8250=y
674CONFIG_SERIAL_8250_CONSOLE=y 676CONFIG_SERIAL_8250_CONSOLE=y
677CONFIG_SERIAL_8250_PCI=y
675CONFIG_SERIAL_8250_NR_UARTS=4 678CONFIG_SERIAL_8250_NR_UARTS=4
676CONFIG_SERIAL_8250_RUNTIME_UARTS=4 679CONFIG_SERIAL_8250_RUNTIME_UARTS=4
677# CONFIG_SERIAL_8250_EXTENDED is not set 680# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -681,6 +684,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
681# 684#
682CONFIG_SERIAL_CORE=y 685CONFIG_SERIAL_CORE=y
683CONFIG_SERIAL_CORE_CONSOLE=y 686CONFIG_SERIAL_CORE_CONSOLE=y
687# CONFIG_SERIAL_JSM is not set
684CONFIG_UNIX98_PTYS=y 688CONFIG_UNIX98_PTYS=y
685CONFIG_LEGACY_PTYS=y 689CONFIG_LEGACY_PTYS=y
686CONFIG_LEGACY_PTY_COUNT=256 690CONFIG_LEGACY_PTY_COUNT=256
@@ -739,10 +743,6 @@ CONFIG_LEGACY_PTY_COUNT=256
739# 743#
740 744
741# 745#
742# Multimedia Capabilities Port drivers
743#
744
745#
746# Multimedia devices 746# Multimedia devices
747# 747#
748# CONFIG_VIDEO_DEV is not set 748# CONFIG_VIDEO_DEV is not set
@@ -773,6 +773,7 @@ CONFIG_DUMMY_CONSOLE=y
773# 773#
774CONFIG_USB_ARCH_HAS_HCD=y 774CONFIG_USB_ARCH_HAS_HCD=y
775CONFIG_USB_ARCH_HAS_OHCI=y 775CONFIG_USB_ARCH_HAS_OHCI=y
776CONFIG_USB_ARCH_HAS_EHCI=y
776# CONFIG_USB is not set 777# CONFIG_USB is not set
777 778
778# 779#
@@ -790,13 +791,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
790# CONFIG_MMC is not set 791# CONFIG_MMC is not set
791 792
792# 793#
794# LED devices
795#
796# CONFIG_NEW_LEDS is not set
797
798#
799# LED drivers
800#
801
802#
803# LED Triggers
804#
805
806#
793# InfiniBand support 807# InfiniBand support
794# 808#
795# CONFIG_INFINIBAND is not set 809# CONFIG_INFINIBAND is not set
796 810
797# 811#
798# SN Devices 812# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
813#
814
815#
816# Real Time Clock
799# 817#
818# CONFIG_RTC_CLASS is not set
800 819
801# 820#
802# File systems 821# File systems
@@ -847,7 +866,6 @@ CONFIG_SYSFS=y
847# CONFIG_TMPFS is not set 866# CONFIG_TMPFS is not set
848# CONFIG_HUGETLB_PAGE is not set 867# CONFIG_HUGETLB_PAGE is not set
849CONFIG_RAMFS=y 868CONFIG_RAMFS=y
850CONFIG_RELAYFS_FS=m
851# CONFIG_CONFIGFS_FS is not set 869# CONFIG_CONFIGFS_FS is not set
852 870
853# 871#
@@ -914,6 +932,7 @@ CONFIG_MSDOS_PARTITION=y
914# CONFIG_MAGIC_SYSRQ is not set 932# CONFIG_MAGIC_SYSRQ is not set
915# CONFIG_DEBUG_KERNEL is not set 933# CONFIG_DEBUG_KERNEL is not set
916CONFIG_LOG_BUF_SHIFT=14 934CONFIG_LOG_BUF_SHIFT=14
935# CONFIG_DEBUG_FS is not set
917CONFIG_CROSSCOMPILE=y 936CONFIG_CROSSCOMPILE=y
918CONFIG_CMDLINE="" 937CONFIG_CMDLINE=""
919 938
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig
index 367d279efdd9..977f52be51dc 100644
--- a/arch/mips/configs/malta_defconfig
+++ b/arch/mips/configs/malta_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:15 2006 4# Mon Apr 24 14:51:08 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_MALTA=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_ARCH_MAY_HAVE_PC_FDC=y 70CONFIG_ARCH_MAY_HAVE_PC_FDC=y
69CONFIG_DMA_NONCOHERENT=y 71CONFIG_DMA_NONCOHERENT=y
@@ -128,16 +130,21 @@ CONFIG_PAGE_SIZE_4KB=y
128# CONFIG_PAGE_SIZE_64KB is not set 130# CONFIG_PAGE_SIZE_64KB is not set
129CONFIG_CPU_HAS_PREFETCH=y 131CONFIG_CPU_HAS_PREFETCH=y
130CONFIG_MIPS_MT=y 132CONFIG_MIPS_MT=y
133# CONFIG_MIPS_MT_SMTC is not set
131# CONFIG_MIPS_MT_SMP is not set 134# CONFIG_MIPS_MT_SMP is not set
132CONFIG_MIPS_VPE_LOADER=y 135CONFIG_MIPS_VPE_LOADER=y
136CONFIG_MIPS_MT_FPAFF=y
133CONFIG_MIPS_VPE_LOADER_TOM=y 137CONFIG_MIPS_VPE_LOADER_TOM=y
134CONFIG_MIPS_VPE_APSP_API=y 138CONFIG_MIPS_VPE_APSP_API=y
139CONFIG_MIPS_APSP_KSPD=y
135# CONFIG_64BIT_PHYS_ADDR is not set 140# CONFIG_64BIT_PHYS_ADDR is not set
136# CONFIG_CPU_ADVANCED is not set
137CONFIG_CPU_HAS_LLSC=y 141CONFIG_CPU_HAS_LLSC=y
142# CONFIG_CPU_MIPSR2_IRQ_VI is not set
143# CONFIG_CPU_MIPSR2_IRQ_EI is not set
138CONFIG_CPU_HAS_SYNC=y 144CONFIG_CPU_HAS_SYNC=y
139CONFIG_GENERIC_HARDIRQS=y 145CONFIG_GENERIC_HARDIRQS=y
140CONFIG_GENERIC_IRQ_PROBE=y 146CONFIG_GENERIC_IRQ_PROBE=y
147CONFIG_CPU_SUPPORTS_HIGHMEM=y
141CONFIG_ARCH_FLATMEM_ENABLE=y 148CONFIG_ARCH_FLATMEM_ENABLE=y
142CONFIG_SELECT_MEMORY_MODEL=y 149CONFIG_SELECT_MEMORY_MODEL=y
143CONFIG_FLATMEM_MANUAL=y 150CONFIG_FLATMEM_MANUAL=y
@@ -155,7 +162,6 @@ CONFIG_PREEMPT_NONE=y
155# Code maturity level options 162# Code maturity level options
156# 163#
157CONFIG_EXPERIMENTAL=y 164CONFIG_EXPERIMENTAL=y
158CONFIG_CLEAN_COMPILE=y
159CONFIG_BROKEN_ON_SMP=y 165CONFIG_BROKEN_ON_SMP=y
160CONFIG_INIT_ENV_ARG_LIMIT=32 166CONFIG_INIT_ENV_ARG_LIMIT=32
161 167
@@ -171,6 +177,7 @@ CONFIG_SYSVIPC=y
171CONFIG_SYSCTL=y 177CONFIG_SYSCTL=y
172# CONFIG_AUDIT is not set 178# CONFIG_AUDIT is not set
173# CONFIG_IKCONFIG is not set 179# CONFIG_IKCONFIG is not set
180CONFIG_RELAY=y
174CONFIG_INITRAMFS_SOURCE="" 181CONFIG_INITRAMFS_SOURCE=""
175# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 182# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
176CONFIG_EMBEDDED=y 183CONFIG_EMBEDDED=y
@@ -184,10 +191,6 @@ CONFIG_BASE_FULL=y
184CONFIG_FUTEX=y 191CONFIG_FUTEX=y
185CONFIG_EPOLL=y 192CONFIG_EPOLL=y
186CONFIG_SHMEM=y 193CONFIG_SHMEM=y
187CONFIG_CC_ALIGN_FUNCTIONS=0
188CONFIG_CC_ALIGN_LABELS=0
189CONFIG_CC_ALIGN_LOOPS=0
190CONFIG_CC_ALIGN_JUMPS=0
191CONFIG_SLAB=y 194CONFIG_SLAB=y
192# CONFIG_TINY_SHMEM is not set 195# CONFIG_TINY_SHMEM is not set
193CONFIG_BASE_SMALL=0 196CONFIG_BASE_SMALL=0
@@ -199,7 +202,6 @@ CONFIG_BASE_SMALL=0
199CONFIG_MODULES=y 202CONFIG_MODULES=y
200CONFIG_MODULE_UNLOAD=y 203CONFIG_MODULE_UNLOAD=y
201# CONFIG_MODULE_FORCE_UNLOAD is not set 204# CONFIG_MODULE_FORCE_UNLOAD is not set
202CONFIG_OBSOLETE_MODPARM=y
203CONFIG_MODVERSIONS=y 205CONFIG_MODVERSIONS=y
204CONFIG_MODULE_SRCVERSION_ALL=y 206CONFIG_MODULE_SRCVERSION_ALL=y
205CONFIG_KMOD=y 207CONFIG_KMOD=y
@@ -208,6 +210,8 @@ CONFIG_KMOD=y
208# Block layer 210# Block layer
209# 211#
210# CONFIG_LBD is not set 212# CONFIG_LBD is not set
213# CONFIG_BLK_DEV_IO_TRACE is not set
214# CONFIG_LSF is not set
211 215
212# 216#
213# IO Schedulers 217# IO Schedulers
@@ -227,7 +231,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
227# 231#
228CONFIG_HW_HAS_PCI=y 232CONFIG_HW_HAS_PCI=y
229CONFIG_PCI=y 233CONFIG_PCI=y
230CONFIG_PCI_LEGACY_PROC=y
231CONFIG_MMU=y 234CONFIG_MMU=y
232 235
233# 236#
@@ -255,6 +258,7 @@ CONFIG_NET=y
255# 258#
256# Networking options 259# Networking options
257# 260#
261# CONFIG_NETDEBUG is not set
258CONFIG_PACKET=y 262CONFIG_PACKET=y
259CONFIG_PACKET_MMAP=y 263CONFIG_PACKET_MMAP=y
260CONFIG_UNIX=y 264CONFIG_UNIX=y
@@ -287,6 +291,7 @@ CONFIG_SYN_COOKIES=y
287CONFIG_INET_AH=m 291CONFIG_INET_AH=m
288CONFIG_INET_ESP=m 292CONFIG_INET_ESP=m
289CONFIG_INET_IPCOMP=m 293CONFIG_INET_IPCOMP=m
294CONFIG_INET_XFRM_TUNNEL=m
290CONFIG_INET_TUNNEL=m 295CONFIG_INET_TUNNEL=m
291CONFIG_INET_DIAG=y 296CONFIG_INET_DIAG=y
292CONFIG_INET_TCP_DIAG=y 297CONFIG_INET_TCP_DIAG=y
@@ -328,9 +333,12 @@ CONFIG_IP_VS_NQ=m
328CONFIG_IP_VS_FTP=m 333CONFIG_IP_VS_FTP=m
329CONFIG_IPV6=m 334CONFIG_IPV6=m
330CONFIG_IPV6_PRIVACY=y 335CONFIG_IPV6_PRIVACY=y
336CONFIG_IPV6_ROUTER_PREF=y
337CONFIG_IPV6_ROUTE_INFO=y
331CONFIG_INET6_AH=m 338CONFIG_INET6_AH=m
332CONFIG_INET6_ESP=m 339CONFIG_INET6_ESP=m
333CONFIG_INET6_IPCOMP=m 340CONFIG_INET6_IPCOMP=m
341CONFIG_INET6_XFRM_TUNNEL=m
334CONFIG_INET6_TUNNEL=m 342CONFIG_INET6_TUNNEL=m
335CONFIG_IPV6_TUNNEL=m 343CONFIG_IPV6_TUNNEL=m
336CONFIG_NETFILTER=y 344CONFIG_NETFILTER=y
@@ -354,11 +362,14 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
354CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 362CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
355CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 363CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
356CONFIG_NETFILTER_XT_MATCH_DCCP=m 364CONFIG_NETFILTER_XT_MATCH_DCCP=m
365CONFIG_NETFILTER_XT_MATCH_ESP=m
357CONFIG_NETFILTER_XT_MATCH_HELPER=m 366CONFIG_NETFILTER_XT_MATCH_HELPER=m
358CONFIG_NETFILTER_XT_MATCH_LENGTH=m 367CONFIG_NETFILTER_XT_MATCH_LENGTH=m
359CONFIG_NETFILTER_XT_MATCH_LIMIT=m 368CONFIG_NETFILTER_XT_MATCH_LIMIT=m
360CONFIG_NETFILTER_XT_MATCH_MAC=m 369CONFIG_NETFILTER_XT_MATCH_MAC=m
361CONFIG_NETFILTER_XT_MATCH_MARK=m 370CONFIG_NETFILTER_XT_MATCH_MARK=m
371CONFIG_NETFILTER_XT_MATCH_POLICY=m
372CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
362# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set 373# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
363CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 374CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
364CONFIG_NETFILTER_XT_MATCH_REALM=m 375CONFIG_NETFILTER_XT_MATCH_REALM=m
@@ -382,20 +393,19 @@ CONFIG_IP_NF_IRC=m
382CONFIG_IP_NF_TFTP=m 393CONFIG_IP_NF_TFTP=m
383CONFIG_IP_NF_AMANDA=m 394CONFIG_IP_NF_AMANDA=m
384CONFIG_IP_NF_PPTP=m 395CONFIG_IP_NF_PPTP=m
396CONFIG_IP_NF_H323=m
385CONFIG_IP_NF_QUEUE=m 397CONFIG_IP_NF_QUEUE=m
386CONFIG_IP_NF_IPTABLES=m 398CONFIG_IP_NF_IPTABLES=m
387CONFIG_IP_NF_MATCH_IPRANGE=m 399CONFIG_IP_NF_MATCH_IPRANGE=m
388CONFIG_IP_NF_MATCH_MULTIPORT=m
389CONFIG_IP_NF_MATCH_TOS=m 400CONFIG_IP_NF_MATCH_TOS=m
390CONFIG_IP_NF_MATCH_RECENT=m 401CONFIG_IP_NF_MATCH_RECENT=m
391CONFIG_IP_NF_MATCH_ECN=m 402CONFIG_IP_NF_MATCH_ECN=m
392CONFIG_IP_NF_MATCH_DSCP=m 403CONFIG_IP_NF_MATCH_DSCP=m
393CONFIG_IP_NF_MATCH_AH_ESP=m 404CONFIG_IP_NF_MATCH_AH=m
394CONFIG_IP_NF_MATCH_TTL=m 405CONFIG_IP_NF_MATCH_TTL=m
395CONFIG_IP_NF_MATCH_OWNER=m 406CONFIG_IP_NF_MATCH_OWNER=m
396CONFIG_IP_NF_MATCH_ADDRTYPE=m 407CONFIG_IP_NF_MATCH_ADDRTYPE=m
397CONFIG_IP_NF_MATCH_HASHLIMIT=m 408CONFIG_IP_NF_MATCH_HASHLIMIT=m
398CONFIG_IP_NF_MATCH_POLICY=m
399CONFIG_IP_NF_FILTER=m 409CONFIG_IP_NF_FILTER=m
400CONFIG_IP_NF_TARGET_REJECT=m 410CONFIG_IP_NF_TARGET_REJECT=m
401CONFIG_IP_NF_TARGET_LOG=m 411CONFIG_IP_NF_TARGET_LOG=m
@@ -413,6 +423,7 @@ CONFIG_IP_NF_NAT_FTP=m
413CONFIG_IP_NF_NAT_TFTP=m 423CONFIG_IP_NF_NAT_TFTP=m
414CONFIG_IP_NF_NAT_AMANDA=m 424CONFIG_IP_NF_NAT_AMANDA=m
415CONFIG_IP_NF_NAT_PPTP=m 425CONFIG_IP_NF_NAT_PPTP=m
426CONFIG_IP_NF_NAT_H323=m
416CONFIG_IP_NF_MANGLE=m 427CONFIG_IP_NF_MANGLE=m
417CONFIG_IP_NF_TARGET_TOS=m 428CONFIG_IP_NF_TARGET_TOS=m
418CONFIG_IP_NF_TARGET_ECN=m 429CONFIG_IP_NF_TARGET_ECN=m
@@ -433,12 +444,10 @@ CONFIG_IP6_NF_MATCH_RT=m
433CONFIG_IP6_NF_MATCH_OPTS=m 444CONFIG_IP6_NF_MATCH_OPTS=m
434CONFIG_IP6_NF_MATCH_FRAG=m 445CONFIG_IP6_NF_MATCH_FRAG=m
435CONFIG_IP6_NF_MATCH_HL=m 446CONFIG_IP6_NF_MATCH_HL=m
436CONFIG_IP6_NF_MATCH_MULTIPORT=m
437CONFIG_IP6_NF_MATCH_OWNER=m 447CONFIG_IP6_NF_MATCH_OWNER=m
438CONFIG_IP6_NF_MATCH_IPV6HEADER=m 448CONFIG_IP6_NF_MATCH_IPV6HEADER=m
439CONFIG_IP6_NF_MATCH_AHESP=m 449CONFIG_IP6_NF_MATCH_AH=m
440CONFIG_IP6_NF_MATCH_EUI64=m 450CONFIG_IP6_NF_MATCH_EUI64=m
441CONFIG_IP6_NF_MATCH_POLICY=m
442CONFIG_IP6_NF_FILTER=m 451CONFIG_IP6_NF_FILTER=m
443CONFIG_IP6_NF_TARGET_LOG=m 452CONFIG_IP6_NF_TARGET_LOG=m
444CONFIG_IP6_NF_TARGET_REJECT=m 453CONFIG_IP6_NF_TARGET_REJECT=m
@@ -484,6 +493,11 @@ CONFIG_IP_SCTP=m
484# CONFIG_SCTP_HMAC_NONE is not set 493# CONFIG_SCTP_HMAC_NONE is not set
485# CONFIG_SCTP_HMAC_SHA1 is not set 494# CONFIG_SCTP_HMAC_SHA1 is not set
486CONFIG_SCTP_HMAC_MD5=y 495CONFIG_SCTP_HMAC_MD5=y
496
497#
498# TIPC Configuration (EXPERIMENTAL)
499#
500# CONFIG_TIPC is not set
487# CONFIG_ATM is not set 501# CONFIG_ATM is not set
488CONFIG_BRIDGE=m 502CONFIG_BRIDGE=m
489CONFIG_VLAN_8021Q=m 503CONFIG_VLAN_8021Q=m
@@ -498,11 +512,6 @@ CONFIG_IPDDP_ENCAP=y
498CONFIG_IPDDP_DECAP=y 512CONFIG_IPDDP_DECAP=y
499# CONFIG_X25 is not set 513# CONFIG_X25 is not set
500# CONFIG_LAPB is not set 514# CONFIG_LAPB is not set
501
502#
503# TIPC Configuration (EXPERIMENTAL)
504#
505# CONFIG_TIPC is not set
506CONFIG_NET_DIVERT=y 515CONFIG_NET_DIVERT=y
507# CONFIG_ECONET is not set 516# CONFIG_ECONET is not set
508# CONFIG_WAN_ROUTER is not set 517# CONFIG_WAN_ROUTER is not set
@@ -562,6 +571,9 @@ CONFIG_IEEE80211=m
562# CONFIG_IEEE80211_DEBUG is not set 571# CONFIG_IEEE80211_DEBUG is not set
563CONFIG_IEEE80211_CRYPT_WEP=m 572CONFIG_IEEE80211_CRYPT_WEP=m
564CONFIG_IEEE80211_CRYPT_CCMP=m 573CONFIG_IEEE80211_CRYPT_CCMP=m
574CONFIG_IEEE80211_SOFTMAC=m
575# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
576CONFIG_WIRELESS_EXT=y
565 577
566# 578#
567# Device Drivers 579# Device Drivers
@@ -734,7 +746,6 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
734# CONFIG_SCSI_INIA100 is not set 746# CONFIG_SCSI_INIA100 is not set
735# CONFIG_SCSI_SYM53C8XX_2 is not set 747# CONFIG_SCSI_SYM53C8XX_2 is not set
736# CONFIG_SCSI_IPR is not set 748# CONFIG_SCSI_IPR is not set
737# CONFIG_SCSI_QLOGIC_FC is not set
738# CONFIG_SCSI_QLOGIC_1280 is not set 749# CONFIG_SCSI_QLOGIC_1280 is not set
739# CONFIG_SCSI_QLA_FC is not set 750# CONFIG_SCSI_QLA_FC is not set
740# CONFIG_SCSI_LPFC is not set 751# CONFIG_SCSI_LPFC is not set
@@ -753,6 +764,7 @@ CONFIG_MD_RAID0=m
753CONFIG_MD_RAID1=m 764CONFIG_MD_RAID1=m
754CONFIG_MD_RAID10=m 765CONFIG_MD_RAID10=m
755CONFIG_MD_RAID5=m 766CONFIG_MD_RAID5=m
767CONFIG_MD_RAID5_RESHAPE=y
756CONFIG_MD_RAID6=m 768CONFIG_MD_RAID6=m
757CONFIG_MD_MULTIPATH=m 769CONFIG_MD_MULTIPATH=m
758CONFIG_MD_FAULTY=m 770CONFIG_MD_FAULTY=m
@@ -956,6 +968,7 @@ CONFIG_HW_CONSOLE=y
956# 968#
957CONFIG_SERIAL_8250=y 969CONFIG_SERIAL_8250=y
958CONFIG_SERIAL_8250_CONSOLE=y 970CONFIG_SERIAL_8250_CONSOLE=y
971CONFIG_SERIAL_8250_PCI=y
959CONFIG_SERIAL_8250_NR_UARTS=4 972CONFIG_SERIAL_8250_NR_UARTS=4
960CONFIG_SERIAL_8250_RUNTIME_UARTS=4 973CONFIG_SERIAL_8250_RUNTIME_UARTS=4
961# CONFIG_SERIAL_8250_EXTENDED is not set 974# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -965,6 +978,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
965# 978#
966CONFIG_SERIAL_CORE=y 979CONFIG_SERIAL_CORE=y
967CONFIG_SERIAL_CORE_CONSOLE=y 980CONFIG_SERIAL_CORE_CONSOLE=y
981# CONFIG_SERIAL_JSM is not set
968CONFIG_UNIX98_PTYS=y 982CONFIG_UNIX98_PTYS=y
969CONFIG_LEGACY_PTYS=y 983CONFIG_LEGACY_PTYS=y
970CONFIG_LEGACY_PTY_COUNT=256 984CONFIG_LEGACY_PTY_COUNT=256
@@ -1022,10 +1036,6 @@ CONFIG_RTC=y
1022# 1036#
1023 1037
1024# 1038#
1025# Multimedia Capabilities Port drivers
1026#
1027
1028#
1029# Multimedia devices 1039# Multimedia devices
1030# 1040#
1031# CONFIG_VIDEO_DEV is not set 1041# CONFIG_VIDEO_DEV is not set
@@ -1056,6 +1066,7 @@ CONFIG_DUMMY_CONSOLE=y
1056# 1066#
1057CONFIG_USB_ARCH_HAS_HCD=y 1067CONFIG_USB_ARCH_HAS_HCD=y
1058CONFIG_USB_ARCH_HAS_OHCI=y 1068CONFIG_USB_ARCH_HAS_OHCI=y
1069CONFIG_USB_ARCH_HAS_EHCI=y
1059# CONFIG_USB is not set 1070# CONFIG_USB is not set
1060 1071
1061# 1072#
@@ -1073,13 +1084,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1073# CONFIG_MMC is not set 1084# CONFIG_MMC is not set
1074 1085
1075# 1086#
1087# LED devices
1088#
1089# CONFIG_NEW_LEDS is not set
1090
1091#
1092# LED drivers
1093#
1094
1095#
1096# LED Triggers
1097#
1098
1099#
1076# InfiniBand support 1100# InfiniBand support
1077# 1101#
1078# CONFIG_INFINIBAND is not set 1102# CONFIG_INFINIBAND is not set
1079 1103
1080# 1104#
1081# SN Devices 1105# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1106#
1107
1108#
1109# Real Time Clock
1082# 1110#
1111# CONFIG_RTC_CLASS is not set
1083 1112
1084# 1113#
1085# File systems 1114# File systems
@@ -1154,7 +1183,6 @@ CONFIG_SYSFS=y
1154# CONFIG_TMPFS is not set 1183# CONFIG_TMPFS is not set
1155# CONFIG_HUGETLB_PAGE is not set 1184# CONFIG_HUGETLB_PAGE is not set
1156CONFIG_RAMFS=y 1185CONFIG_RAMFS=y
1157CONFIG_RELAYFS_FS=m
1158# CONFIG_CONFIGFS_FS is not set 1186# CONFIG_CONFIGFS_FS is not set
1159 1187
1160# 1188#
@@ -1174,7 +1202,6 @@ CONFIG_VXFS_FS=m
1174# CONFIG_QNX4FS_FS is not set 1202# CONFIG_QNX4FS_FS is not set
1175CONFIG_SYSV_FS=m 1203CONFIG_SYSV_FS=m
1176CONFIG_UFS_FS=m 1204CONFIG_UFS_FS=m
1177# CONFIG_UFS_FS_WRITE is not set
1178 1205
1179# 1206#
1180# Network File Systems 1207# Network File Systems
@@ -1266,6 +1293,7 @@ CONFIG_NLS_UTF8=m
1266# CONFIG_MAGIC_SYSRQ is not set 1293# CONFIG_MAGIC_SYSRQ is not set
1267# CONFIG_DEBUG_KERNEL is not set 1294# CONFIG_DEBUG_KERNEL is not set
1268CONFIG_LOG_BUF_SHIFT=14 1295CONFIG_LOG_BUF_SHIFT=14
1296# CONFIG_DEBUG_FS is not set
1269CONFIG_CROSSCOMPILE=y 1297CONFIG_CROSSCOMPILE=y
1270CONFIG_CMDLINE="" 1298CONFIG_CMDLINE=""
1271 1299
diff --git a/arch/mips/configs/mipssim_defconfig b/arch/mips/configs/mipssim_defconfig
index fe78961762b8..00560e0143f1 100644
--- a/arch/mips/configs/mipssim_defconfig
+++ b/arch/mips/configs/mipssim_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:16 2006 4# Mon Apr 24 14:51:09 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_SIM=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -114,16 +116,19 @@ CONFIG_PAGE_SIZE_4KB=y
114# CONFIG_PAGE_SIZE_64KB is not set 116# CONFIG_PAGE_SIZE_64KB is not set
115CONFIG_CPU_HAS_PREFETCH=y 117CONFIG_CPU_HAS_PREFETCH=y
116CONFIG_MIPS_MT=y 118CONFIG_MIPS_MT=y
119# CONFIG_MIPS_MT_SMTC is not set
117# CONFIG_MIPS_MT_SMP is not set 120# CONFIG_MIPS_MT_SMP is not set
118CONFIG_MIPS_VPE_LOADER=y 121CONFIG_MIPS_VPE_LOADER=y
122CONFIG_MIPS_MT_FPAFF=y
119CONFIG_MIPS_VPE_LOADER_TOM=y 123CONFIG_MIPS_VPE_LOADER_TOM=y
120CONFIG_MIPS_VPE_APSP_API=y 124CONFIG_MIPS_VPE_APSP_API=y
125CONFIG_MIPS_APSP_KSPD=y
121# CONFIG_64BIT_PHYS_ADDR is not set 126# CONFIG_64BIT_PHYS_ADDR is not set
122# CONFIG_CPU_ADVANCED is not set
123CONFIG_CPU_HAS_LLSC=y 127CONFIG_CPU_HAS_LLSC=y
124CONFIG_CPU_HAS_SYNC=y 128CONFIG_CPU_HAS_SYNC=y
125CONFIG_GENERIC_HARDIRQS=y 129CONFIG_GENERIC_HARDIRQS=y
126CONFIG_GENERIC_IRQ_PROBE=y 130CONFIG_GENERIC_IRQ_PROBE=y
131CONFIG_CPU_SUPPORTS_HIGHMEM=y
127CONFIG_ARCH_FLATMEM_ENABLE=y 132CONFIG_ARCH_FLATMEM_ENABLE=y
128CONFIG_SELECT_MEMORY_MODEL=y 133CONFIG_SELECT_MEMORY_MODEL=y
129CONFIG_FLATMEM_MANUAL=y 134CONFIG_FLATMEM_MANUAL=y
@@ -141,7 +146,6 @@ CONFIG_PREEMPT_NONE=y
141# Code maturity level options 146# Code maturity level options
142# 147#
143CONFIG_EXPERIMENTAL=y 148CONFIG_EXPERIMENTAL=y
144CONFIG_CLEAN_COMPILE=y
145CONFIG_BROKEN_ON_SMP=y 149CONFIG_BROKEN_ON_SMP=y
146CONFIG_INIT_ENV_ARG_LIMIT=32 150CONFIG_INIT_ENV_ARG_LIMIT=32
147 151
@@ -157,6 +161,7 @@ CONFIG_SYSVIPC=y
157CONFIG_SYSCTL=y 161CONFIG_SYSCTL=y
158# CONFIG_AUDIT is not set 162# CONFIG_AUDIT is not set
159# CONFIG_IKCONFIG is not set 163# CONFIG_IKCONFIG is not set
164# CONFIG_RELAY is not set
160CONFIG_INITRAMFS_SOURCE="" 165CONFIG_INITRAMFS_SOURCE=""
161# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 166# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
162CONFIG_EMBEDDED=y 167CONFIG_EMBEDDED=y
@@ -171,10 +176,6 @@ CONFIG_BASE_FULL=y
171CONFIG_FUTEX=y 176CONFIG_FUTEX=y
172CONFIG_EPOLL=y 177CONFIG_EPOLL=y
173CONFIG_SHMEM=y 178CONFIG_SHMEM=y
174CONFIG_CC_ALIGN_FUNCTIONS=0
175CONFIG_CC_ALIGN_LABELS=0
176CONFIG_CC_ALIGN_LOOPS=0
177CONFIG_CC_ALIGN_JUMPS=0
178CONFIG_SLAB=y 179CONFIG_SLAB=y
179# CONFIG_TINY_SHMEM is not set 180# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 181CONFIG_BASE_SMALL=0
@@ -186,7 +187,6 @@ CONFIG_BASE_SMALL=0
186CONFIG_MODULES=y 187CONFIG_MODULES=y
187CONFIG_MODULE_UNLOAD=y 188CONFIG_MODULE_UNLOAD=y
188# CONFIG_MODULE_FORCE_UNLOAD is not set 189# CONFIG_MODULE_FORCE_UNLOAD is not set
189CONFIG_OBSOLETE_MODPARM=y
190CONFIG_MODVERSIONS=y 190CONFIG_MODVERSIONS=y
191CONFIG_MODULE_SRCVERSION_ALL=y 191CONFIG_MODULE_SRCVERSION_ALL=y
192CONFIG_KMOD=y 192CONFIG_KMOD=y
@@ -195,6 +195,7 @@ CONFIG_KMOD=y
195# Block layer 195# Block layer
196# 196#
197# CONFIG_LBD is not set 197# CONFIG_LBD is not set
198# CONFIG_LSF is not set
198 199
199# 200#
200# IO Schedulers 201# IO Schedulers
@@ -238,6 +239,7 @@ CONFIG_NET=y
238# 239#
239# Networking options 240# Networking options
240# 241#
242# CONFIG_NETDEBUG is not set
241CONFIG_PACKET=y 243CONFIG_PACKET=y
242CONFIG_PACKET_MMAP=y 244CONFIG_PACKET_MMAP=y
243CONFIG_UNIX=y 245CONFIG_UNIX=y
@@ -268,12 +270,15 @@ CONFIG_SYN_COOKIES=y
268# CONFIG_INET_AH is not set 270# CONFIG_INET_AH is not set
269# CONFIG_INET_ESP is not set 271# CONFIG_INET_ESP is not set
270# CONFIG_INET_IPCOMP is not set 272# CONFIG_INET_IPCOMP is not set
273# CONFIG_INET_XFRM_TUNNEL is not set
271# CONFIG_INET_TUNNEL is not set 274# CONFIG_INET_TUNNEL is not set
272CONFIG_INET_DIAG=y 275CONFIG_INET_DIAG=y
273CONFIG_INET_TCP_DIAG=y 276CONFIG_INET_TCP_DIAG=y
274# CONFIG_TCP_CONG_ADVANCED is not set 277# CONFIG_TCP_CONG_ADVANCED is not set
275CONFIG_TCP_CONG_BIC=y 278CONFIG_TCP_CONG_BIC=y
276# CONFIG_IPV6 is not set 279# CONFIG_IPV6 is not set
280# CONFIG_INET6_XFRM_TUNNEL is not set
281# CONFIG_INET6_TUNNEL is not set
277# CONFIG_NETFILTER is not set 282# CONFIG_NETFILTER is not set
278 283
279# 284#
@@ -290,6 +295,11 @@ CONFIG_IP_SCTP=m
290# CONFIG_SCTP_HMAC_NONE is not set 295# CONFIG_SCTP_HMAC_NONE is not set
291# CONFIG_SCTP_HMAC_SHA1 is not set 296# CONFIG_SCTP_HMAC_SHA1 is not set
292CONFIG_SCTP_HMAC_MD5=y 297CONFIG_SCTP_HMAC_MD5=y
298
299#
300# TIPC Configuration (EXPERIMENTAL)
301#
302# CONFIG_TIPC is not set
293# CONFIG_ATM is not set 303# CONFIG_ATM is not set
294# CONFIG_BRIDGE is not set 304# CONFIG_BRIDGE is not set
295# CONFIG_VLAN_8021Q is not set 305# CONFIG_VLAN_8021Q is not set
@@ -299,11 +309,6 @@ CONFIG_SCTP_HMAC_MD5=y
299# CONFIG_ATALK is not set 309# CONFIG_ATALK is not set
300# CONFIG_X25 is not set 310# CONFIG_X25 is not set
301# CONFIG_LAPB is not set 311# CONFIG_LAPB is not set
302
303#
304# TIPC Configuration (EXPERIMENTAL)
305#
306# CONFIG_TIPC is not set
307CONFIG_NET_DIVERT=y 312CONFIG_NET_DIVERT=y
308# CONFIG_ECONET is not set 313# CONFIG_ECONET is not set
309# CONFIG_WAN_ROUTER is not set 314# CONFIG_WAN_ROUTER is not set
@@ -397,7 +402,7 @@ CONFIG_BLK_DEV_LOOP=y
397# CONFIG_BLK_DEV_CRYPTOLOOP is not set 402# CONFIG_BLK_DEV_CRYPTOLOOP is not set
398CONFIG_BLK_DEV_NBD=y 403CONFIG_BLK_DEV_NBD=y
399# CONFIG_BLK_DEV_RAM is not set 404# CONFIG_BLK_DEV_RAM is not set
400CONFIG_BLK_DEV_RAM_COUNT=16 405# CONFIG_BLK_DEV_INITRD is not set
401# CONFIG_CDROM_PKTCDVD is not set 406# CONFIG_CDROM_PKTCDVD is not set
402# CONFIG_ATA_OVER_ETH is not set 407# CONFIG_ATA_OVER_ETH is not set
403 408
@@ -532,7 +537,7 @@ CONFIG_SERIO_SERPORT=y
532CONFIG_SERIAL_8250=y 537CONFIG_SERIAL_8250=y
533CONFIG_SERIAL_8250_CONSOLE=y 538CONFIG_SERIAL_8250_CONSOLE=y
534CONFIG_SERIAL_8250_NR_UARTS=1 539CONFIG_SERIAL_8250_NR_UARTS=1
535CONFIG_SERIAL_8250_RUNTIME_UARTS=4 540CONFIG_SERIAL_8250_RUNTIME_UARTS=1
536# CONFIG_SERIAL_8250_EXTENDED is not set 541# CONFIG_SERIAL_8250_EXTENDED is not set
537 542
538# 543#
@@ -596,10 +601,6 @@ CONFIG_LEGACY_PTY_COUNT=256
596# 601#
597 602
598# 603#
599# Multimedia Capabilities Port drivers
600#
601
602#
603# Multimedia devices 604# Multimedia devices
604# 605#
605# CONFIG_VIDEO_DEV is not set 606# CONFIG_VIDEO_DEV is not set
@@ -624,6 +625,7 @@ CONFIG_LEGACY_PTY_COUNT=256
624# 625#
625# CONFIG_USB_ARCH_HAS_HCD is not set 626# CONFIG_USB_ARCH_HAS_HCD is not set
626# CONFIG_USB_ARCH_HAS_OHCI is not set 627# CONFIG_USB_ARCH_HAS_OHCI is not set
628# CONFIG_USB_ARCH_HAS_EHCI is not set
627 629
628# 630#
629# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 631# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -640,12 +642,30 @@ CONFIG_LEGACY_PTY_COUNT=256
640# CONFIG_MMC is not set 642# CONFIG_MMC is not set
641 643
642# 644#
645# LED devices
646#
647# CONFIG_NEW_LEDS is not set
648
649#
650# LED drivers
651#
652
653#
654# LED Triggers
655#
656
657#
643# InfiniBand support 658# InfiniBand support
644# 659#
645 660
646# 661#
647# SN Devices 662# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
663#
664
665#
666# Real Time Clock
648# 667#
668# CONFIG_RTC_CLASS is not set
649 669
650# 670#
651# File systems 671# File systems
@@ -690,8 +710,6 @@ CONFIG_PROC_FS=y
690# CONFIG_TMPFS is not set 710# CONFIG_TMPFS is not set
691# CONFIG_HUGETLB_PAGE is not set 711# CONFIG_HUGETLB_PAGE is not set
692CONFIG_RAMFS=y 712CONFIG_RAMFS=y
693# CONFIG_RELAYFS_FS is not set
694# CONFIG_CONFIGFS_FS is not set
695 713
696# 714#
697# Miscellaneous filesystems 715# Miscellaneous filesystems
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig
index e4620e7f0a5e..286a018375b2 100644
--- a/arch/mips/configs/mpc30x_defconfig
+++ b/arch/mips/configs/mpc30x_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:17 2006 4# Mon Apr 24 14:51:09 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -72,6 +72,8 @@ CONFIG_VICTOR_MPC30X=y
72CONFIG_PCI_VR41XX=y 72CONFIG_PCI_VR41XX=y
73CONFIG_VRC4173=y 73CONFIG_VRC4173=y
74CONFIG_RWSEM_GENERIC_SPINLOCK=y 74CONFIG_RWSEM_GENERIC_SPINLOCK=y
75CONFIG_GENERIC_FIND_NEXT_BIT=y
76CONFIG_GENERIC_HWEIGHT=y
75CONFIG_GENERIC_CALIBRATE_DELAY=y 77CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_DMA_NONCOHERENT=y 78CONFIG_DMA_NONCOHERENT=y
77CONFIG_DMA_NEED_PCI_MAP_STATE=y 79CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -90,7 +92,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
90# CONFIG_CPU_MIPS64_R2 is not set 92# CONFIG_CPU_MIPS64_R2 is not set
91# CONFIG_CPU_R3000 is not set 93# CONFIG_CPU_R3000 is not set
92# CONFIG_CPU_TX39XX is not set 94# CONFIG_CPU_TX39XX is not set
93# CONFIG_CPU_VR41XX is not set 95CONFIG_CPU_VR41XX=y
94# CONFIG_CPU_R4300 is not set 96# CONFIG_CPU_R4300 is not set
95# CONFIG_CPU_R4X00 is not set 97# CONFIG_CPU_R4X00 is not set
96# CONFIG_CPU_TX49XX is not set 98# CONFIG_CPU_TX49XX is not set
@@ -103,18 +105,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
103# CONFIG_CPU_RM7000 is not set 105# CONFIG_CPU_RM7000 is not set
104# CONFIG_CPU_RM9000 is not set 106# CONFIG_CPU_RM9000 is not set
105# CONFIG_CPU_SB1 is not set 107# CONFIG_CPU_SB1 is not set
108CONFIG_SYS_HAS_CPU_VR41XX=y
109CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
110CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
111CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
106 112
107# 113#
108# Kernel type 114# Kernel type
109# 115#
110# CONFIG_32BIT is not set 116CONFIG_32BIT=y
111# CONFIG_64BIT is not set 117# CONFIG_64BIT is not set
112CONFIG_PAGE_SIZE_4KB=y 118CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_8KB is not set 119# CONFIG_PAGE_SIZE_8KB is not set
114# CONFIG_PAGE_SIZE_16KB is not set 120# CONFIG_PAGE_SIZE_16KB is not set
115# CONFIG_PAGE_SIZE_64KB is not set 121# CONFIG_PAGE_SIZE_64KB is not set
116# CONFIG_MIPS_MT is not set 122# CONFIG_MIPS_MT is not set
117CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 123CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 124CONFIG_GENERIC_HARDIRQS=y
120CONFIG_GENERIC_IRQ_PROBE=y 125CONFIG_GENERIC_IRQ_PROBE=y
@@ -135,7 +140,6 @@ CONFIG_PREEMPT_NONE=y
135# Code maturity level options 140# Code maturity level options
136# 141#
137CONFIG_EXPERIMENTAL=y 142CONFIG_EXPERIMENTAL=y
138CONFIG_CLEAN_COMPILE=y
139CONFIG_BROKEN_ON_SMP=y 143CONFIG_BROKEN_ON_SMP=y
140CONFIG_INIT_ENV_ARG_LIMIT=32 144CONFIG_INIT_ENV_ARG_LIMIT=32
141 145
@@ -151,6 +155,7 @@ CONFIG_SYSVIPC=y
151CONFIG_SYSCTL=y 155CONFIG_SYSCTL=y
152# CONFIG_AUDIT is not set 156# CONFIG_AUDIT is not set
153# CONFIG_IKCONFIG is not set 157# CONFIG_IKCONFIG is not set
158CONFIG_RELAY=y
154CONFIG_INITRAMFS_SOURCE="" 159CONFIG_INITRAMFS_SOURCE=""
155# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 160# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
156CONFIG_EMBEDDED=y 161CONFIG_EMBEDDED=y
@@ -164,10 +169,6 @@ CONFIG_BASE_FULL=y
164CONFIG_FUTEX=y 169CONFIG_FUTEX=y
165CONFIG_EPOLL=y 170CONFIG_EPOLL=y
166CONFIG_SHMEM=y 171CONFIG_SHMEM=y
167CONFIG_CC_ALIGN_FUNCTIONS=0
168CONFIG_CC_ALIGN_LABELS=0
169CONFIG_CC_ALIGN_LOOPS=0
170CONFIG_CC_ALIGN_JUMPS=0
171CONFIG_SLAB=y 172CONFIG_SLAB=y
172# CONFIG_TINY_SHMEM is not set 173# CONFIG_TINY_SHMEM is not set
173CONFIG_BASE_SMALL=0 174CONFIG_BASE_SMALL=0
@@ -179,7 +180,6 @@ CONFIG_BASE_SMALL=0
179CONFIG_MODULES=y 180CONFIG_MODULES=y
180CONFIG_MODULE_UNLOAD=y 181CONFIG_MODULE_UNLOAD=y
181# CONFIG_MODULE_FORCE_UNLOAD is not set 182# CONFIG_MODULE_FORCE_UNLOAD is not set
182CONFIG_OBSOLETE_MODPARM=y
183CONFIG_MODVERSIONS=y 183CONFIG_MODVERSIONS=y
184CONFIG_MODULE_SRCVERSION_ALL=y 184CONFIG_MODULE_SRCVERSION_ALL=y
185CONFIG_KMOD=y 185CONFIG_KMOD=y
@@ -187,6 +187,9 @@ CONFIG_KMOD=y
187# 187#
188# Block layer 188# Block layer
189# 189#
190# CONFIG_LBD is not set
191# CONFIG_BLK_DEV_IO_TRACE is not set
192# CONFIG_LSF is not set
190 193
191# 194#
192# IO Schedulers 195# IO Schedulers
@@ -206,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
206# 209#
207CONFIG_HW_HAS_PCI=y 210CONFIG_HW_HAS_PCI=y
208CONFIG_PCI=y 211CONFIG_PCI=y
209CONFIG_PCI_LEGACY_PROC=y
210CONFIG_MMU=y 212CONFIG_MMU=y
211 213
212# 214#
@@ -225,6 +227,7 @@ CONFIG_PCMCIA_IOCTL=y
225# CONFIG_YENTA is not set 227# CONFIG_YENTA is not set
226# CONFIG_PD6729 is not set 228# CONFIG_PD6729 is not set
227# CONFIG_I82092 is not set 229# CONFIG_I82092 is not set
230# CONFIG_PCMCIA_VRC4173 is not set
228 231
229# 232#
230# PCI Hotplug Support 233# PCI Hotplug Support
@@ -236,6 +239,7 @@ CONFIG_PCMCIA_IOCTL=y
236# 239#
237CONFIG_BINFMT_ELF=y 240CONFIG_BINFMT_ELF=y
238# CONFIG_BINFMT_MISC is not set 241# CONFIG_BINFMT_MISC is not set
242CONFIG_TRAD_SIGNALS=y
239 243
240# 244#
241# Networking 245# Networking
@@ -245,6 +249,7 @@ CONFIG_NET=y
245# 249#
246# Networking options 250# Networking options
247# 251#
252# CONFIG_NETDEBUG is not set
248CONFIG_PACKET=y 253CONFIG_PACKET=y
249CONFIG_PACKET_MMAP=y 254CONFIG_PACKET_MMAP=y
250CONFIG_UNIX=y 255CONFIG_UNIX=y
@@ -264,12 +269,15 @@ CONFIG_IP_FIB_HASH=y
264# CONFIG_INET_AH is not set 269# CONFIG_INET_AH is not set
265# CONFIG_INET_ESP is not set 270# CONFIG_INET_ESP is not set
266# CONFIG_INET_IPCOMP is not set 271# CONFIG_INET_IPCOMP is not set
267CONFIG_INET_TUNNEL=m 272# CONFIG_INET_XFRM_TUNNEL is not set
273# CONFIG_INET_TUNNEL is not set
268CONFIG_INET_DIAG=y 274CONFIG_INET_DIAG=y
269CONFIG_INET_TCP_DIAG=y 275CONFIG_INET_TCP_DIAG=y
270# CONFIG_TCP_CONG_ADVANCED is not set 276# CONFIG_TCP_CONG_ADVANCED is not set
271CONFIG_TCP_CONG_BIC=y 277CONFIG_TCP_CONG_BIC=y
272# CONFIG_IPV6 is not set 278# CONFIG_IPV6 is not set
279# CONFIG_INET6_XFRM_TUNNEL is not set
280# CONFIG_INET6_TUNNEL is not set
273# CONFIG_NETFILTER is not set 281# CONFIG_NETFILTER is not set
274 282
275# 283#
@@ -281,6 +289,11 @@ CONFIG_TCP_CONG_BIC=y
281# SCTP Configuration (EXPERIMENTAL) 289# SCTP Configuration (EXPERIMENTAL)
282# 290#
283# CONFIG_IP_SCTP is not set 291# CONFIG_IP_SCTP is not set
292
293#
294# TIPC Configuration (EXPERIMENTAL)
295#
296# CONFIG_TIPC is not set
284# CONFIG_ATM is not set 297# CONFIG_ATM is not set
285# CONFIG_BRIDGE is not set 298# CONFIG_BRIDGE is not set
286# CONFIG_VLAN_8021Q is not set 299# CONFIG_VLAN_8021Q is not set
@@ -290,11 +303,6 @@ CONFIG_TCP_CONG_BIC=y
290# CONFIG_ATALK is not set 303# CONFIG_ATALK is not set
291# CONFIG_X25 is not set 304# CONFIG_X25 is not set
292# CONFIG_LAPB is not set 305# CONFIG_LAPB is not set
293
294#
295# TIPC Configuration (EXPERIMENTAL)
296#
297# CONFIG_TIPC is not set
298# CONFIG_NET_DIVERT is not set 306# CONFIG_NET_DIVERT is not set
299# CONFIG_ECONET is not set 307# CONFIG_ECONET is not set
300# CONFIG_WAN_ROUTER is not set 308# CONFIG_WAN_ROUTER is not set
@@ -316,6 +324,9 @@ CONFIG_IEEE80211=m
316CONFIG_IEEE80211_CRYPT_WEP=m 324CONFIG_IEEE80211_CRYPT_WEP=m
317CONFIG_IEEE80211_CRYPT_CCMP=m 325CONFIG_IEEE80211_CRYPT_CCMP=m
318CONFIG_IEEE80211_CRYPT_TKIP=m 326CONFIG_IEEE80211_CRYPT_TKIP=m
327CONFIG_IEEE80211_SOFTMAC=m
328# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
329CONFIG_WIRELESS_EXT=y
319 330
320# 331#
321# Device Drivers 332# Device Drivers
@@ -360,7 +371,7 @@ CONFIG_CONNECTOR=m
360# CONFIG_BLK_DEV_SX8 is not set 371# CONFIG_BLK_DEV_SX8 is not set
361# CONFIG_BLK_DEV_UB is not set 372# CONFIG_BLK_DEV_UB is not set
362# CONFIG_BLK_DEV_RAM is not set 373# CONFIG_BLK_DEV_RAM is not set
363CONFIG_BLK_DEV_RAM_COUNT=16 374# CONFIG_BLK_DEV_INITRD is not set
364# CONFIG_CDROM_PKTCDVD is not set 375# CONFIG_CDROM_PKTCDVD is not set
365CONFIG_ATA_OVER_ETH=m 376CONFIG_ATA_OVER_ETH=m
366 377
@@ -475,6 +486,7 @@ CONFIG_MII=m
475# Wireless LAN (non-hamradio) 486# Wireless LAN (non-hamradio)
476# 487#
477CONFIG_NET_RADIO=y 488CONFIG_NET_RADIO=y
489# CONFIG_NET_WIRELESS_RTNETLINK is not set
478 490
479# 491#
480# Obsolete Wireless cards support (pre-802.11) 492# Obsolete Wireless cards support (pre-802.11)
@@ -513,6 +525,7 @@ CONFIG_PCMCIA_HERMES=m
513# 525#
514# CONFIG_PRISM54 is not set 526# CONFIG_PRISM54 is not set
515# CONFIG_HOSTAP is not set 527# CONFIG_HOSTAP is not set
528# CONFIG_BCM43XX is not set
516CONFIG_NET_WIRELESS=y 529CONFIG_NET_WIRELESS=y
517 530
518# 531#
@@ -604,6 +617,8 @@ CONFIG_HW_CONSOLE=y
604# 617#
605# Non-8250 serial port support 618# Non-8250 serial port support
606# 619#
620# CONFIG_SERIAL_VR41XX is not set
621# CONFIG_SERIAL_JSM is not set
607CONFIG_UNIX98_PTYS=y 622CONFIG_UNIX98_PTYS=y
608CONFIG_LEGACY_PTYS=y 623CONFIG_LEGACY_PTYS=y
609CONFIG_LEGACY_PTY_COUNT=256 624CONFIG_LEGACY_PTY_COUNT=256
@@ -634,6 +649,7 @@ CONFIG_LEGACY_PTY_COUNT=256
634# CONFIG_SYNCLINK_CS is not set 649# CONFIG_SYNCLINK_CS is not set
635# CONFIG_CARDMAN_4000 is not set 650# CONFIG_CARDMAN_4000 is not set
636# CONFIG_CARDMAN_4040 is not set 651# CONFIG_CARDMAN_4040 is not set
652# CONFIG_GPIO_VR41XX is not set
637# CONFIG_RAW_DRIVER is not set 653# CONFIG_RAW_DRIVER is not set
638 654
639# 655#
@@ -669,10 +685,6 @@ CONFIG_LEGACY_PTY_COUNT=256
669# 685#
670 686
671# 687#
672# Multimedia Capabilities Port drivers
673#
674
675#
676# Multimedia devices 688# Multimedia devices
677# 689#
678# CONFIG_VIDEO_DEV is not set 690# CONFIG_VIDEO_DEV is not set
@@ -681,6 +693,7 @@ CONFIG_LEGACY_PTY_COUNT=256
681# Digital Video Broadcasting Devices 693# Digital Video Broadcasting Devices
682# 694#
683# CONFIG_DVB is not set 695# CONFIG_DVB is not set
696# CONFIG_USB_DABUSB is not set
684 697
685# 698#
686# Graphics support 699# Graphics support
@@ -703,6 +716,7 @@ CONFIG_DUMMY_CONSOLE=y
703# 716#
704CONFIG_USB_ARCH_HAS_HCD=y 717CONFIG_USB_ARCH_HAS_HCD=y
705CONFIG_USB_ARCH_HAS_OHCI=y 718CONFIG_USB_ARCH_HAS_OHCI=y
719CONFIG_USB_ARCH_HAS_EHCI=y
706CONFIG_USB=m 720CONFIG_USB=m
707# CONFIG_USB_DEBUG is not set 721# CONFIG_USB_DEBUG is not set
708 722
@@ -756,9 +770,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
756# CONFIG_USB_ACECAD is not set 770# CONFIG_USB_ACECAD is not set
757# CONFIG_USB_KBTAB is not set 771# CONFIG_USB_KBTAB is not set
758# CONFIG_USB_POWERMATE is not set 772# CONFIG_USB_POWERMATE is not set
759# CONFIG_USB_MTOUCH is not set 773# CONFIG_USB_TOUCHSCREEN is not set
760# CONFIG_USB_ITMTOUCH is not set
761# CONFIG_USB_EGALAX is not set
762# CONFIG_USB_YEALINK is not set 774# CONFIG_USB_YEALINK is not set
763# CONFIG_USB_XPAD is not set 775# CONFIG_USB_XPAD is not set
764# CONFIG_USB_ATI_REMOTE is not set 776# CONFIG_USB_ATI_REMOTE is not set
@@ -772,15 +784,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
772# CONFIG_USB_MDC800 is not set 784# CONFIG_USB_MDC800 is not set
773 785
774# 786#
775# USB Multimedia devices
776#
777# CONFIG_USB_DABUSB is not set
778
779#
780# Video4Linux support is needed for USB Multimedia device support
781#
782
783#
784# USB Network Adapters 787# USB Network Adapters
785# 788#
786# CONFIG_USB_CATC is not set 789# CONFIG_USB_CATC is not set
@@ -832,13 +835,31 @@ CONFIG_USB_PEGASUS=m
832# CONFIG_MMC is not set 835# CONFIG_MMC is not set
833 836
834# 837#
838# LED devices
839#
840# CONFIG_NEW_LEDS is not set
841
842#
843# LED drivers
844#
845
846#
847# LED Triggers
848#
849
850#
835# InfiniBand support 851# InfiniBand support
836# 852#
837# CONFIG_INFINIBAND is not set 853# CONFIG_INFINIBAND is not set
838 854
839# 855#
840# SN Devices 856# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
857#
858
859#
860# Real Time Clock
841# 861#
862# CONFIG_RTC_CLASS is not set
842 863
843# 864#
844# File systems 865# File systems
@@ -883,7 +904,6 @@ CONFIG_SYSFS=y
883# CONFIG_TMPFS is not set 904# CONFIG_TMPFS is not set
884# CONFIG_HUGETLB_PAGE is not set 905# CONFIG_HUGETLB_PAGE is not set
885CONFIG_RAMFS=y 906CONFIG_RAMFS=y
886CONFIG_RELAYFS_FS=m
887# CONFIG_CONFIGFS_FS is not set 907# CONFIG_CONFIGFS_FS is not set
888 908
889# 909#
@@ -946,6 +966,7 @@ CONFIG_MSDOS_PARTITION=y
946# CONFIG_MAGIC_SYSRQ is not set 966# CONFIG_MAGIC_SYSRQ is not set
947# CONFIG_DEBUG_KERNEL is not set 967# CONFIG_DEBUG_KERNEL is not set
948CONFIG_LOG_BUF_SHIFT=14 968CONFIG_LOG_BUF_SHIFT=14
969# CONFIG_DEBUG_FS is not set
949CONFIG_CROSSCOMPILE=y 970CONFIG_CROSSCOMPILE=y
950CONFIG_CMDLINE="mem=32M console=ttyVR0,19200" 971CONFIG_CMDLINE="mem=32M console=ttyVR0,19200"
951 972
diff --git a/arch/mips/configs/ocelot_3_defconfig b/arch/mips/configs/ocelot_3_defconfig
index 925d8adef88d..1ce4310fd92a 100644
--- a/arch/mips/configs/ocelot_3_defconfig
+++ b/arch/mips/configs/ocelot_3_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:18 2006 4# Mon Apr 24 14:51:10 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MOMENCO_OCELOT_3=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -120,7 +122,6 @@ CONFIG_RM7000_CPU_SCACHE=y
120CONFIG_CPU_HAS_PREFETCH=y 122CONFIG_CPU_HAS_PREFETCH=y
121# CONFIG_MIPS_MT is not set 123# CONFIG_MIPS_MT is not set
122# CONFIG_64BIT_PHYS_ADDR is not set 124# CONFIG_64BIT_PHYS_ADDR is not set
123# CONFIG_CPU_ADVANCED is not set
124CONFIG_CPU_HAS_LLSC=y 125CONFIG_CPU_HAS_LLSC=y
125CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
126CONFIG_GENERIC_HARDIRQS=y 127CONFIG_GENERIC_HARDIRQS=y
@@ -144,7 +145,6 @@ CONFIG_PREEMPT_NONE=y
144# Code maturity level options 145# Code maturity level options
145# 146#
146CONFIG_EXPERIMENTAL=y 147CONFIG_EXPERIMENTAL=y
147CONFIG_CLEAN_COMPILE=y
148CONFIG_BROKEN_ON_SMP=y 148CONFIG_BROKEN_ON_SMP=y
149CONFIG_INIT_ENV_ARG_LIMIT=32 149CONFIG_INIT_ENV_ARG_LIMIT=32
150 150
@@ -161,6 +161,7 @@ CONFIG_SYSCTL=y
161# CONFIG_AUDIT is not set 161# CONFIG_AUDIT is not set
162CONFIG_IKCONFIG=y 162CONFIG_IKCONFIG=y
163CONFIG_IKCONFIG_PROC=y 163CONFIG_IKCONFIG_PROC=y
164CONFIG_RELAY=y
164CONFIG_INITRAMFS_SOURCE="" 165CONFIG_INITRAMFS_SOURCE=""
165# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 166# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
166CONFIG_EMBEDDED=y 167CONFIG_EMBEDDED=y
@@ -174,10 +175,6 @@ CONFIG_BASE_FULL=y
174CONFIG_FUTEX=y 175CONFIG_FUTEX=y
175CONFIG_EPOLL=y 176CONFIG_EPOLL=y
176CONFIG_SHMEM=y 177CONFIG_SHMEM=y
177CONFIG_CC_ALIGN_FUNCTIONS=0
178CONFIG_CC_ALIGN_LABELS=0
179CONFIG_CC_ALIGN_LOOPS=0
180CONFIG_CC_ALIGN_JUMPS=0
181CONFIG_SLAB=y 178CONFIG_SLAB=y
182# CONFIG_TINY_SHMEM is not set 179# CONFIG_TINY_SHMEM is not set
183CONFIG_BASE_SMALL=0 180CONFIG_BASE_SMALL=0
@@ -189,7 +186,6 @@ CONFIG_BASE_SMALL=0
189CONFIG_MODULES=y 186CONFIG_MODULES=y
190CONFIG_MODULE_UNLOAD=y 187CONFIG_MODULE_UNLOAD=y
191# CONFIG_MODULE_FORCE_UNLOAD is not set 188# CONFIG_MODULE_FORCE_UNLOAD is not set
192CONFIG_OBSOLETE_MODPARM=y
193CONFIG_MODVERSIONS=y 189CONFIG_MODVERSIONS=y
194# CONFIG_MODULE_SRCVERSION_ALL is not set 190# CONFIG_MODULE_SRCVERSION_ALL is not set
195CONFIG_KMOD=y 191CONFIG_KMOD=y
@@ -198,6 +194,8 @@ CONFIG_KMOD=y
198# Block layer 194# Block layer
199# 195#
200# CONFIG_LBD is not set 196# CONFIG_LBD is not set
197# CONFIG_BLK_DEV_IO_TRACE is not set
198# CONFIG_LSF is not set
201 199
202# 200#
203# IO Schedulers 201# IO Schedulers
@@ -217,7 +215,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
217# 215#
218CONFIG_HW_HAS_PCI=y 216CONFIG_HW_HAS_PCI=y
219CONFIG_PCI=y 217CONFIG_PCI=y
220CONFIG_PCI_LEGACY_PROC=y
221CONFIG_MMU=y 218CONFIG_MMU=y
222 219
223# 220#
@@ -245,6 +242,7 @@ CONFIG_NET=y
245# 242#
246# Networking options 243# Networking options
247# 244#
245# CONFIG_NETDEBUG is not set
248CONFIG_PACKET=y 246CONFIG_PACKET=y
249# CONFIG_PACKET_MMAP is not set 247# CONFIG_PACKET_MMAP is not set
250CONFIG_UNIX=y 248CONFIG_UNIX=y
@@ -266,6 +264,7 @@ CONFIG_IP_PNP_BOOTP=y
266# CONFIG_INET_AH is not set 264# CONFIG_INET_AH is not set
267# CONFIG_INET_ESP is not set 265# CONFIG_INET_ESP is not set
268# CONFIG_INET_IPCOMP is not set 266# CONFIG_INET_IPCOMP is not set
267# CONFIG_INET_XFRM_TUNNEL is not set
269# CONFIG_INET_TUNNEL is not set 268# CONFIG_INET_TUNNEL is not set
270CONFIG_INET_DIAG=y 269CONFIG_INET_DIAG=y
271CONFIG_INET_TCP_DIAG=y 270CONFIG_INET_TCP_DIAG=y
@@ -278,9 +277,12 @@ CONFIG_TCP_CONG_BIC=y
278# CONFIG_IP_VS is not set 277# CONFIG_IP_VS is not set
279CONFIG_IPV6=m 278CONFIG_IPV6=m
280# CONFIG_IPV6_PRIVACY is not set 279# CONFIG_IPV6_PRIVACY is not set
280CONFIG_IPV6_ROUTER_PREF=y
281CONFIG_IPV6_ROUTE_INFO=y
281# CONFIG_INET6_AH is not set 282# CONFIG_INET6_AH is not set
282# CONFIG_INET6_ESP is not set 283# CONFIG_INET6_ESP is not set
283# CONFIG_INET6_IPCOMP is not set 284# CONFIG_INET6_IPCOMP is not set
285# CONFIG_INET6_XFRM_TUNNEL is not set
284# CONFIG_INET6_TUNNEL is not set 286# CONFIG_INET6_TUNNEL is not set
285# CONFIG_IPV6_TUNNEL is not set 287# CONFIG_IPV6_TUNNEL is not set
286CONFIG_NETFILTER=y 288CONFIG_NETFILTER=y
@@ -299,10 +301,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
299CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 301CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
300CONFIG_NETFILTER_XT_MATCH_COMMENT=m 302CONFIG_NETFILTER_XT_MATCH_COMMENT=m
301CONFIG_NETFILTER_XT_MATCH_DCCP=m 303CONFIG_NETFILTER_XT_MATCH_DCCP=m
304CONFIG_NETFILTER_XT_MATCH_ESP=m
302CONFIG_NETFILTER_XT_MATCH_LENGTH=m 305CONFIG_NETFILTER_XT_MATCH_LENGTH=m
303CONFIG_NETFILTER_XT_MATCH_LIMIT=m 306CONFIG_NETFILTER_XT_MATCH_LIMIT=m
304CONFIG_NETFILTER_XT_MATCH_MAC=m 307CONFIG_NETFILTER_XT_MATCH_MAC=m
305CONFIG_NETFILTER_XT_MATCH_MARK=m 308CONFIG_NETFILTER_XT_MATCH_MARK=m
309CONFIG_NETFILTER_XT_MATCH_POLICY=m
310CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
306CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 311CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
307CONFIG_NETFILTER_XT_MATCH_REALM=m 312CONFIG_NETFILTER_XT_MATCH_REALM=m
308CONFIG_NETFILTER_XT_MATCH_SCTP=m 313CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -332,6 +337,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
332# SCTP Configuration (EXPERIMENTAL) 337# SCTP Configuration (EXPERIMENTAL)
333# 338#
334# CONFIG_IP_SCTP is not set 339# CONFIG_IP_SCTP is not set
340
341#
342# TIPC Configuration (EXPERIMENTAL)
343#
344# CONFIG_TIPC is not set
335# CONFIG_ATM is not set 345# CONFIG_ATM is not set
336# CONFIG_BRIDGE is not set 346# CONFIG_BRIDGE is not set
337# CONFIG_VLAN_8021Q is not set 347# CONFIG_VLAN_8021Q is not set
@@ -341,11 +351,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
341# CONFIG_ATALK is not set 351# CONFIG_ATALK is not set
342# CONFIG_X25 is not set 352# CONFIG_X25 is not set
343# CONFIG_LAPB is not set 353# CONFIG_LAPB is not set
344
345#
346# TIPC Configuration (EXPERIMENTAL)
347#
348# CONFIG_TIPC is not set
349# CONFIG_NET_DIVERT is not set 354# CONFIG_NET_DIVERT is not set
350# CONFIG_ECONET is not set 355# CONFIG_ECONET is not set
351# CONFIG_WAN_ROUTER is not set 356# CONFIG_WAN_ROUTER is not set
@@ -367,6 +372,9 @@ CONFIG_IEEE80211=m
367# CONFIG_IEEE80211_DEBUG is not set 372# CONFIG_IEEE80211_DEBUG is not set
368CONFIG_IEEE80211_CRYPT_WEP=m 373CONFIG_IEEE80211_CRYPT_WEP=m
369CONFIG_IEEE80211_CRYPT_CCMP=m 374CONFIG_IEEE80211_CRYPT_CCMP=m
375CONFIG_IEEE80211_SOFTMAC=m
376# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
377CONFIG_WIRELESS_EXT=y
370 378
371# 379#
372# Device Drivers 380# Device Drivers
@@ -411,7 +419,7 @@ CONFIG_BLK_DEV_LOOP=y
411# CONFIG_BLK_DEV_NBD is not set 419# CONFIG_BLK_DEV_NBD is not set
412# CONFIG_BLK_DEV_SX8 is not set 420# CONFIG_BLK_DEV_SX8 is not set
413# CONFIG_BLK_DEV_RAM is not set 421# CONFIG_BLK_DEV_RAM is not set
414CONFIG_BLK_DEV_RAM_COUNT=16 422# CONFIG_BLK_DEV_INITRD is not set
415# CONFIG_CDROM_PKTCDVD is not set 423# CONFIG_CDROM_PKTCDVD is not set
416CONFIG_ATA_OVER_ETH=m 424CONFIG_ATA_OVER_ETH=m
417 425
@@ -475,7 +483,6 @@ CONFIG_ISCSI_TCP=m
475# CONFIG_SCSI_INIA100 is not set 483# CONFIG_SCSI_INIA100 is not set
476# CONFIG_SCSI_SYM53C8XX_2 is not set 484# CONFIG_SCSI_SYM53C8XX_2 is not set
477# CONFIG_SCSI_IPR is not set 485# CONFIG_SCSI_IPR is not set
478# CONFIG_SCSI_QLOGIC_FC is not set
479# CONFIG_SCSI_QLOGIC_1280 is not set 486# CONFIG_SCSI_QLOGIC_1280 is not set
480# CONFIG_SCSI_QLA_FC is not set 487# CONFIG_SCSI_QLA_FC is not set
481# CONFIG_SCSI_LPFC is not set 488# CONFIG_SCSI_LPFC is not set
@@ -690,6 +697,7 @@ CONFIG_HW_CONSOLE=y
690# 697#
691CONFIG_SERIAL_8250=y 698CONFIG_SERIAL_8250=y
692CONFIG_SERIAL_8250_CONSOLE=y 699CONFIG_SERIAL_8250_CONSOLE=y
700CONFIG_SERIAL_8250_PCI=y
693CONFIG_SERIAL_8250_NR_UARTS=4 701CONFIG_SERIAL_8250_NR_UARTS=4
694CONFIG_SERIAL_8250_RUNTIME_UARTS=4 702CONFIG_SERIAL_8250_RUNTIME_UARTS=4
695# CONFIG_SERIAL_8250_EXTENDED is not set 703# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -699,6 +707,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
699# 707#
700CONFIG_SERIAL_CORE=y 708CONFIG_SERIAL_CORE=y
701CONFIG_SERIAL_CORE_CONSOLE=y 709CONFIG_SERIAL_CORE_CONSOLE=y
710# CONFIG_SERIAL_JSM is not set
702CONFIG_UNIX98_PTYS=y 711CONFIG_UNIX98_PTYS=y
703CONFIG_LEGACY_PTYS=y 712CONFIG_LEGACY_PTYS=y
704CONFIG_LEGACY_PTY_COUNT=256 713CONFIG_LEGACY_PTY_COUNT=256
@@ -756,10 +765,6 @@ CONFIG_RTC=y
756# 765#
757 766
758# 767#
759# Multimedia Capabilities Port drivers
760#
761
762#
763# Multimedia devices 768# Multimedia devices
764# 769#
765# CONFIG_VIDEO_DEV is not set 770# CONFIG_VIDEO_DEV is not set
@@ -777,6 +782,7 @@ CONFIG_FB=y
777# CONFIG_FB_CFB_COPYAREA is not set 782# CONFIG_FB_CFB_COPYAREA is not set
778# CONFIG_FB_CFB_IMAGEBLIT is not set 783# CONFIG_FB_CFB_IMAGEBLIT is not set
779# CONFIG_FB_MACMODES is not set 784# CONFIG_FB_MACMODES is not set
785CONFIG_FB_FIRMWARE_EDID=y
780CONFIG_FB_MODE_HELPERS=y 786CONFIG_FB_MODE_HELPERS=y
781# CONFIG_FB_TILEBLITTING is not set 787# CONFIG_FB_TILEBLITTING is not set
782# CONFIG_FB_CIRRUS is not set 788# CONFIG_FB_CIRRUS is not set
@@ -788,7 +794,6 @@ CONFIG_FB_MODE_HELPERS=y
788# CONFIG_FB_NVIDIA is not set 794# CONFIG_FB_NVIDIA is not set
789# CONFIG_FB_RIVA is not set 795# CONFIG_FB_RIVA is not set
790# CONFIG_FB_MATROX is not set 796# CONFIG_FB_MATROX is not set
791# CONFIG_FB_RADEON_OLD is not set
792# CONFIG_FB_RADEON is not set 797# CONFIG_FB_RADEON is not set
793# CONFIG_FB_ATY128 is not set 798# CONFIG_FB_ATY128 is not set
794# CONFIG_FB_ATY is not set 799# CONFIG_FB_ATY is not set
@@ -832,6 +837,7 @@ CONFIG_LOGO_LINUX_CLUT224=y
832# 837#
833CONFIG_USB_ARCH_HAS_HCD=y 838CONFIG_USB_ARCH_HAS_HCD=y
834CONFIG_USB_ARCH_HAS_OHCI=y 839CONFIG_USB_ARCH_HAS_OHCI=y
840CONFIG_USB_ARCH_HAS_EHCI=y
835# CONFIG_USB is not set 841# CONFIG_USB is not set
836 842
837# 843#
@@ -849,13 +855,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
849# CONFIG_MMC is not set 855# CONFIG_MMC is not set
850 856
851# 857#
858# LED devices
859#
860# CONFIG_NEW_LEDS is not set
861
862#
863# LED drivers
864#
865
866#
867# LED Triggers
868#
869
870#
852# InfiniBand support 871# InfiniBand support
853# 872#
854# CONFIG_INFINIBAND is not set 873# CONFIG_INFINIBAND is not set
855 874
856# 875#
857# SN Devices 876# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
877#
878
879#
880# Real Time Clock
858# 881#
882# CONFIG_RTC_CLASS is not set
859 883
860# 884#
861# File systems 885# File systems
@@ -914,7 +938,6 @@ CONFIG_SYSFS=y
914CONFIG_TMPFS=y 938CONFIG_TMPFS=y
915# CONFIG_HUGETLB_PAGE is not set 939# CONFIG_HUGETLB_PAGE is not set
916CONFIG_RAMFS=y 940CONFIG_RAMFS=y
917CONFIG_RELAYFS_FS=m
918# CONFIG_CONFIGFS_FS is not set 941# CONFIG_CONFIGFS_FS is not set
919 942
920# 943#
@@ -1025,6 +1048,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1025# CONFIG_MAGIC_SYSRQ is not set 1048# CONFIG_MAGIC_SYSRQ is not set
1026# CONFIG_DEBUG_KERNEL is not set 1049# CONFIG_DEBUG_KERNEL is not set
1027CONFIG_LOG_BUF_SHIFT=14 1050CONFIG_LOG_BUF_SHIFT=14
1051# CONFIG_DEBUG_FS is not set
1028CONFIG_CROSSCOMPILE=y 1052CONFIG_CROSSCOMPILE=y
1029CONFIG_CMDLINE="ip=any root=nfs" 1053CONFIG_CMDLINE="ip=any root=nfs"
1030 1054
diff --git a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig
index ee1cf9b9eb9a..8a6aa5012f89 100644
--- a/arch/mips/configs/ocelot_c_defconfig
+++ b/arch/mips/configs/ocelot_c_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:19 2006 4# Mon Apr 24 14:51:10 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MOMENCO_OCELOT_C=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -139,7 +141,6 @@ CONFIG_PREEMPT_NONE=y
139# Code maturity level options 141# Code maturity level options
140# 142#
141CONFIG_EXPERIMENTAL=y 143CONFIG_EXPERIMENTAL=y
142CONFIG_CLEAN_COMPILE=y
143CONFIG_BROKEN_ON_SMP=y 144CONFIG_BROKEN_ON_SMP=y
144CONFIG_INIT_ENV_ARG_LIMIT=32 145CONFIG_INIT_ENV_ARG_LIMIT=32
145 146
@@ -155,6 +156,7 @@ CONFIG_SYSVIPC=y
155CONFIG_SYSCTL=y 156CONFIG_SYSCTL=y
156# CONFIG_AUDIT is not set 157# CONFIG_AUDIT is not set
157# CONFIG_IKCONFIG is not set 158# CONFIG_IKCONFIG is not set
159CONFIG_RELAY=y
158CONFIG_INITRAMFS_SOURCE="" 160CONFIG_INITRAMFS_SOURCE=""
159# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 161# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
160CONFIG_EMBEDDED=y 162CONFIG_EMBEDDED=y
@@ -168,10 +170,6 @@ CONFIG_BASE_FULL=y
168CONFIG_FUTEX=y 170CONFIG_FUTEX=y
169CONFIG_EPOLL=y 171CONFIG_EPOLL=y
170CONFIG_SHMEM=y 172CONFIG_SHMEM=y
171CONFIG_CC_ALIGN_FUNCTIONS=0
172CONFIG_CC_ALIGN_LABELS=0
173CONFIG_CC_ALIGN_LOOPS=0
174CONFIG_CC_ALIGN_JUMPS=0
175CONFIG_SLAB=y 173CONFIG_SLAB=y
176# CONFIG_TINY_SHMEM is not set 174# CONFIG_TINY_SHMEM is not set
177CONFIG_BASE_SMALL=0 175CONFIG_BASE_SMALL=0
@@ -185,6 +183,7 @@ CONFIG_BASE_SMALL=0
185# 183#
186# Block layer 184# Block layer
187# 185#
186# CONFIG_BLK_DEV_IO_TRACE is not set
188 187
189# 188#
190# IO Schedulers 189# IO Schedulers
@@ -204,7 +203,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
204# 203#
205CONFIG_HW_HAS_PCI=y 204CONFIG_HW_HAS_PCI=y
206CONFIG_PCI=y 205CONFIG_PCI=y
207CONFIG_PCI_LEGACY_PROC=y
208CONFIG_MMU=y 206CONFIG_MMU=y
209 207
210# 208#
@@ -222,6 +220,7 @@ CONFIG_MMU=y
222# 220#
223CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
224# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
223# CONFIG_BUILD_ELF64 is not set
225CONFIG_MIPS32_COMPAT=y 224CONFIG_MIPS32_COMPAT=y
226CONFIG_COMPAT=y 225CONFIG_COMPAT=y
227CONFIG_MIPS32_O32=y 226CONFIG_MIPS32_O32=y
@@ -236,6 +235,7 @@ CONFIG_NET=y
236# 235#
237# Networking options 236# Networking options
238# 237#
238# CONFIG_NETDEBUG is not set
239# CONFIG_PACKET is not set 239# CONFIG_PACKET is not set
240CONFIG_UNIX=y 240CONFIG_UNIX=y
241CONFIG_XFRM=y 241CONFIG_XFRM=y
@@ -256,12 +256,15 @@ CONFIG_IP_PNP_DHCP=y
256# CONFIG_INET_AH is not set 256# CONFIG_INET_AH is not set
257# CONFIG_INET_ESP is not set 257# CONFIG_INET_ESP is not set
258# CONFIG_INET_IPCOMP is not set 258# CONFIG_INET_IPCOMP is not set
259CONFIG_INET_TUNNEL=y 259# CONFIG_INET_XFRM_TUNNEL is not set
260# CONFIG_INET_TUNNEL is not set
260CONFIG_INET_DIAG=y 261CONFIG_INET_DIAG=y
261CONFIG_INET_TCP_DIAG=y 262CONFIG_INET_TCP_DIAG=y
262# CONFIG_TCP_CONG_ADVANCED is not set 263# CONFIG_TCP_CONG_ADVANCED is not set
263CONFIG_TCP_CONG_BIC=y 264CONFIG_TCP_CONG_BIC=y
264# CONFIG_IPV6 is not set 265# CONFIG_IPV6 is not set
266# CONFIG_INET6_XFRM_TUNNEL is not set
267# CONFIG_INET6_TUNNEL is not set
265# CONFIG_NETFILTER is not set 268# CONFIG_NETFILTER is not set
266 269
267# 270#
@@ -273,6 +276,11 @@ CONFIG_TCP_CONG_BIC=y
273# SCTP Configuration (EXPERIMENTAL) 276# SCTP Configuration (EXPERIMENTAL)
274# 277#
275# CONFIG_IP_SCTP is not set 278# CONFIG_IP_SCTP is not set
279
280#
281# TIPC Configuration (EXPERIMENTAL)
282#
283# CONFIG_TIPC is not set
276# CONFIG_ATM is not set 284# CONFIG_ATM is not set
277# CONFIG_BRIDGE is not set 285# CONFIG_BRIDGE is not set
278# CONFIG_VLAN_8021Q is not set 286# CONFIG_VLAN_8021Q is not set
@@ -282,11 +290,6 @@ CONFIG_TCP_CONG_BIC=y
282# CONFIG_ATALK is not set 290# CONFIG_ATALK is not set
283# CONFIG_X25 is not set 291# CONFIG_X25 is not set
284# CONFIG_LAPB is not set 292# CONFIG_LAPB is not set
285
286#
287# TIPC Configuration (EXPERIMENTAL)
288#
289# CONFIG_TIPC is not set
290# CONFIG_NET_DIVERT is not set 293# CONFIG_NET_DIVERT is not set
291# CONFIG_ECONET is not set 294# CONFIG_ECONET is not set
292# CONFIG_WAN_ROUTER is not set 295# CONFIG_WAN_ROUTER is not set
@@ -307,6 +310,9 @@ CONFIG_IEEE80211=y
307# CONFIG_IEEE80211_DEBUG is not set 310# CONFIG_IEEE80211_DEBUG is not set
308CONFIG_IEEE80211_CRYPT_WEP=y 311CONFIG_IEEE80211_CRYPT_WEP=y
309CONFIG_IEEE80211_CRYPT_CCMP=y 312CONFIG_IEEE80211_CRYPT_CCMP=y
313CONFIG_IEEE80211_SOFTMAC=y
314# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
315CONFIG_WIRELESS_EXT=y
310 316
311# 317#
312# Device Drivers 318# Device Drivers
@@ -351,7 +357,7 @@ CONFIG_PROC_EVENTS=y
351# CONFIG_BLK_DEV_NBD is not set 357# CONFIG_BLK_DEV_NBD is not set
352# CONFIG_BLK_DEV_SX8 is not set 358# CONFIG_BLK_DEV_SX8 is not set
353# CONFIG_BLK_DEV_RAM is not set 359# CONFIG_BLK_DEV_RAM is not set
354CONFIG_BLK_DEV_RAM_COUNT=16 360# CONFIG_BLK_DEV_INITRD is not set
355CONFIG_CDROM_PKTCDVD=y 361CONFIG_CDROM_PKTCDVD=y
356CONFIG_CDROM_PKTCDVD_BUFFERS=8 362CONFIG_CDROM_PKTCDVD_BUFFERS=8
357# CONFIG_CDROM_PKTCDVD_WCACHE is not set 363# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -542,6 +548,7 @@ CONFIG_HW_CONSOLE=y
542# 548#
543CONFIG_SERIAL_8250=y 549CONFIG_SERIAL_8250=y
544CONFIG_SERIAL_8250_CONSOLE=y 550CONFIG_SERIAL_8250_CONSOLE=y
551CONFIG_SERIAL_8250_PCI=y
545CONFIG_SERIAL_8250_NR_UARTS=4 552CONFIG_SERIAL_8250_NR_UARTS=4
546CONFIG_SERIAL_8250_RUNTIME_UARTS=4 553CONFIG_SERIAL_8250_RUNTIME_UARTS=4
547# CONFIG_SERIAL_8250_EXTENDED is not set 554# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -551,6 +558,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
551# 558#
552CONFIG_SERIAL_CORE=y 559CONFIG_SERIAL_CORE=y
553CONFIG_SERIAL_CORE_CONSOLE=y 560CONFIG_SERIAL_CORE_CONSOLE=y
561# CONFIG_SERIAL_JSM is not set
554CONFIG_UNIX98_PTYS=y 562CONFIG_UNIX98_PTYS=y
555CONFIG_LEGACY_PTYS=y 563CONFIG_LEGACY_PTYS=y
556CONFIG_LEGACY_PTY_COUNT=256 564CONFIG_LEGACY_PTY_COUNT=256
@@ -609,10 +617,6 @@ CONFIG_LEGACY_PTY_COUNT=256
609# 617#
610 618
611# 619#
612# Multimedia Capabilities Port drivers
613#
614
615#
616# Multimedia devices 620# Multimedia devices
617# 621#
618# CONFIG_VIDEO_DEV is not set 622# CONFIG_VIDEO_DEV is not set
@@ -643,6 +647,7 @@ CONFIG_DUMMY_CONSOLE=y
643# 647#
644CONFIG_USB_ARCH_HAS_HCD=y 648CONFIG_USB_ARCH_HAS_HCD=y
645CONFIG_USB_ARCH_HAS_OHCI=y 649CONFIG_USB_ARCH_HAS_OHCI=y
650CONFIG_USB_ARCH_HAS_EHCI=y
646# CONFIG_USB is not set 651# CONFIG_USB is not set
647 652
648# 653#
@@ -660,13 +665,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
660# CONFIG_MMC is not set 665# CONFIG_MMC is not set
661 666
662# 667#
668# LED devices
669#
670# CONFIG_NEW_LEDS is not set
671
672#
673# LED drivers
674#
675
676#
677# LED Triggers
678#
679
680#
663# InfiniBand support 681# InfiniBand support
664# 682#
665# CONFIG_INFINIBAND is not set 683# CONFIG_INFINIBAND is not set
666 684
667# 685#
668# SN Devices 686# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
687#
688
689#
690# Real Time Clock
669# 691#
692# CONFIG_RTC_CLASS is not set
670 693
671# 694#
672# File systems 695# File systems
@@ -711,7 +734,6 @@ CONFIG_SYSFS=y
711# CONFIG_TMPFS is not set 734# CONFIG_TMPFS is not set
712# CONFIG_HUGETLB_PAGE is not set 735# CONFIG_HUGETLB_PAGE is not set
713CONFIG_RAMFS=y 736CONFIG_RAMFS=y
714CONFIG_RELAYFS_FS=y
715# CONFIG_CONFIGFS_FS is not set 737# CONFIG_CONFIGFS_FS is not set
716 738
717# 739#
@@ -778,6 +800,8 @@ CONFIG_MSDOS_PARTITION=y
778# CONFIG_MAGIC_SYSRQ is not set 800# CONFIG_MAGIC_SYSRQ is not set
779# CONFIG_DEBUG_KERNEL is not set 801# CONFIG_DEBUG_KERNEL is not set
780CONFIG_LOG_BUF_SHIFT=14 802CONFIG_LOG_BUF_SHIFT=14
803# CONFIG_DEBUG_FS is not set
804# CONFIG_UNWIND_INFO is not set
781CONFIG_CROSSCOMPILE=y 805CONFIG_CROSSCOMPILE=y
782CONFIG_CMDLINE="" 806CONFIG_CMDLINE=""
783 807
diff --git a/arch/mips/configs/ocelot_defconfig b/arch/mips/configs/ocelot_defconfig
index d80ff278f2af..f9ee35eeb762 100644
--- a/arch/mips/configs/ocelot_defconfig
+++ b/arch/mips/configs/ocelot_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:20 2006 4# Mon Apr 24 14:51:11 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MOMENCO_OCELOT=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -121,7 +123,6 @@ CONFIG_RM7000_CPU_SCACHE=y
121CONFIG_CPU_HAS_PREFETCH=y 123CONFIG_CPU_HAS_PREFETCH=y
122# CONFIG_MIPS_MT is not set 124# CONFIG_MIPS_MT is not set
123# CONFIG_64BIT_PHYS_ADDR is not set 125# CONFIG_64BIT_PHYS_ADDR is not set
124# CONFIG_CPU_ADVANCED is not set
125CONFIG_CPU_HAS_LLSC=y 126CONFIG_CPU_HAS_LLSC=y
126CONFIG_CPU_HAS_SYNC=y 127CONFIG_CPU_HAS_SYNC=y
127CONFIG_GENERIC_HARDIRQS=y 128CONFIG_GENERIC_HARDIRQS=y
@@ -144,7 +145,6 @@ CONFIG_PREEMPT_NONE=y
144# Code maturity level options 145# Code maturity level options
145# 146#
146CONFIG_EXPERIMENTAL=y 147CONFIG_EXPERIMENTAL=y
147CONFIG_CLEAN_COMPILE=y
148CONFIG_BROKEN_ON_SMP=y 148CONFIG_BROKEN_ON_SMP=y
149CONFIG_INIT_ENV_ARG_LIMIT=32 149CONFIG_INIT_ENV_ARG_LIMIT=32
150 150
@@ -160,6 +160,7 @@ CONFIG_SYSVIPC=y
160CONFIG_SYSCTL=y 160CONFIG_SYSCTL=y
161# CONFIG_AUDIT is not set 161# CONFIG_AUDIT is not set
162# CONFIG_IKCONFIG is not set 162# CONFIG_IKCONFIG is not set
163CONFIG_RELAY=y
163CONFIG_INITRAMFS_SOURCE="" 164CONFIG_INITRAMFS_SOURCE=""
164# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 165# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
165CONFIG_EMBEDDED=y 166CONFIG_EMBEDDED=y
@@ -173,10 +174,6 @@ CONFIG_BASE_FULL=y
173CONFIG_FUTEX=y 174CONFIG_FUTEX=y
174CONFIG_EPOLL=y 175CONFIG_EPOLL=y
175CONFIG_SHMEM=y 176CONFIG_SHMEM=y
176CONFIG_CC_ALIGN_FUNCTIONS=0
177CONFIG_CC_ALIGN_LABELS=0
178CONFIG_CC_ALIGN_LOOPS=0
179CONFIG_CC_ALIGN_JUMPS=0
180CONFIG_SLAB=y 177CONFIG_SLAB=y
181# CONFIG_TINY_SHMEM is not set 178# CONFIG_TINY_SHMEM is not set
182CONFIG_BASE_SMALL=0 179CONFIG_BASE_SMALL=0
@@ -191,6 +188,8 @@ CONFIG_BASE_SMALL=0
191# Block layer 188# Block layer
192# 189#
193# CONFIG_LBD is not set 190# CONFIG_LBD is not set
191# CONFIG_BLK_DEV_IO_TRACE is not set
192# CONFIG_LSF is not set
194 193
195# 194#
196# IO Schedulers 195# IO Schedulers
@@ -236,6 +235,7 @@ CONFIG_NET=y
236# 235#
237# Networking options 236# Networking options
238# 237#
238# CONFIG_NETDEBUG is not set
239# CONFIG_PACKET is not set 239# CONFIG_PACKET is not set
240CONFIG_UNIX=y 240CONFIG_UNIX=y
241CONFIG_XFRM=y 241CONFIG_XFRM=y
@@ -256,12 +256,15 @@ CONFIG_IP_PNP_BOOTP=y
256# CONFIG_INET_AH is not set 256# CONFIG_INET_AH is not set
257# CONFIG_INET_ESP is not set 257# CONFIG_INET_ESP is not set
258# CONFIG_INET_IPCOMP is not set 258# CONFIG_INET_IPCOMP is not set
259CONFIG_INET_TUNNEL=y 259# CONFIG_INET_XFRM_TUNNEL is not set
260# CONFIG_INET_TUNNEL is not set
260CONFIG_INET_DIAG=y 261CONFIG_INET_DIAG=y
261CONFIG_INET_TCP_DIAG=y 262CONFIG_INET_TCP_DIAG=y
262# CONFIG_TCP_CONG_ADVANCED is not set 263# CONFIG_TCP_CONG_ADVANCED is not set
263CONFIG_TCP_CONG_BIC=y 264CONFIG_TCP_CONG_BIC=y
264# CONFIG_IPV6 is not set 265# CONFIG_IPV6 is not set
266# CONFIG_INET6_XFRM_TUNNEL is not set
267# CONFIG_INET6_TUNNEL is not set
265# CONFIG_NETFILTER is not set 268# CONFIG_NETFILTER is not set
266 269
267# 270#
@@ -273,6 +276,11 @@ CONFIG_TCP_CONG_BIC=y
273# SCTP Configuration (EXPERIMENTAL) 276# SCTP Configuration (EXPERIMENTAL)
274# 277#
275# CONFIG_IP_SCTP is not set 278# CONFIG_IP_SCTP is not set
279
280#
281# TIPC Configuration (EXPERIMENTAL)
282#
283# CONFIG_TIPC is not set
276# CONFIG_ATM is not set 284# CONFIG_ATM is not set
277# CONFIG_BRIDGE is not set 285# CONFIG_BRIDGE is not set
278# CONFIG_VLAN_8021Q is not set 286# CONFIG_VLAN_8021Q is not set
@@ -282,11 +290,6 @@ CONFIG_TCP_CONG_BIC=y
282# CONFIG_ATALK is not set 290# CONFIG_ATALK is not set
283# CONFIG_X25 is not set 291# CONFIG_X25 is not set
284# CONFIG_LAPB is not set 292# CONFIG_LAPB is not set
285
286#
287# TIPC Configuration (EXPERIMENTAL)
288#
289# CONFIG_TIPC is not set
290# CONFIG_NET_DIVERT is not set 293# CONFIG_NET_DIVERT is not set
291# CONFIG_ECONET is not set 294# CONFIG_ECONET is not set
292# CONFIG_WAN_ROUTER is not set 295# CONFIG_WAN_ROUTER is not set
@@ -307,6 +310,9 @@ CONFIG_IEEE80211=y
307# CONFIG_IEEE80211_DEBUG is not set 310# CONFIG_IEEE80211_DEBUG is not set
308CONFIG_IEEE80211_CRYPT_WEP=y 311CONFIG_IEEE80211_CRYPT_WEP=y
309CONFIG_IEEE80211_CRYPT_CCMP=y 312CONFIG_IEEE80211_CRYPT_CCMP=y
313CONFIG_IEEE80211_SOFTMAC=y
314# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
315CONFIG_WIRELESS_EXT=y
310 316
311# 317#
312# Device Drivers 318# Device Drivers
@@ -346,7 +352,7 @@ CONFIG_PROC_EVENTS=y
346# CONFIG_BLK_DEV_LOOP is not set 352# CONFIG_BLK_DEV_LOOP is not set
347# CONFIG_BLK_DEV_NBD is not set 353# CONFIG_BLK_DEV_NBD is not set
348# CONFIG_BLK_DEV_RAM is not set 354# CONFIG_BLK_DEV_RAM is not set
349CONFIG_BLK_DEV_RAM_COUNT=16 355# CONFIG_BLK_DEV_INITRD is not set
350CONFIG_CDROM_PKTCDVD=y 356CONFIG_CDROM_PKTCDVD=y
351CONFIG_CDROM_PKTCDVD_BUFFERS=8 357CONFIG_CDROM_PKTCDVD_BUFFERS=8
352# CONFIG_CDROM_PKTCDVD_WCACHE is not set 358# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -563,10 +569,6 @@ CONFIG_LEGACY_PTY_COUNT=256
563# 569#
564 570
565# 571#
566# Multimedia Capabilities Port drivers
567#
568
569#
570# Multimedia devices 572# Multimedia devices
571# 573#
572# CONFIG_VIDEO_DEV is not set 574# CONFIG_VIDEO_DEV is not set
@@ -597,6 +599,7 @@ CONFIG_DUMMY_CONSOLE=y
597# 599#
598# CONFIG_USB_ARCH_HAS_HCD is not set 600# CONFIG_USB_ARCH_HAS_HCD is not set
599# CONFIG_USB_ARCH_HAS_OHCI is not set 601# CONFIG_USB_ARCH_HAS_OHCI is not set
602# CONFIG_USB_ARCH_HAS_EHCI is not set
600 603
601# 604#
602# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 605# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -613,12 +616,30 @@ CONFIG_DUMMY_CONSOLE=y
613# CONFIG_MMC is not set 616# CONFIG_MMC is not set
614 617
615# 618#
619# LED devices
620#
621# CONFIG_NEW_LEDS is not set
622
623#
624# LED drivers
625#
626
627#
628# LED Triggers
629#
630
631#
616# InfiniBand support 632# InfiniBand support
617# 633#
618 634
619# 635#
620# SN Devices 636# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
637#
638
639#
640# Real Time Clock
621# 641#
642# CONFIG_RTC_CLASS is not set
622 643
623# 644#
624# File systems 645# File systems
@@ -663,7 +684,6 @@ CONFIG_SYSFS=y
663# CONFIG_TMPFS is not set 684# CONFIG_TMPFS is not set
664# CONFIG_HUGETLB_PAGE is not set 685# CONFIG_HUGETLB_PAGE is not set
665CONFIG_RAMFS=y 686CONFIG_RAMFS=y
666CONFIG_RELAYFS_FS=y
667# CONFIG_CONFIGFS_FS is not set 687# CONFIG_CONFIGFS_FS is not set
668 688
669# 689#
@@ -730,6 +750,8 @@ CONFIG_MSDOS_PARTITION=y
730# CONFIG_MAGIC_SYSRQ is not set 750# CONFIG_MAGIC_SYSRQ is not set
731# CONFIG_DEBUG_KERNEL is not set 751# CONFIG_DEBUG_KERNEL is not set
732CONFIG_LOG_BUF_SHIFT=14 752CONFIG_LOG_BUF_SHIFT=14
753# CONFIG_DEBUG_FS is not set
754# CONFIG_UNWIND_INFO is not set
733CONFIG_CROSSCOMPILE=y 755CONFIG_CROSSCOMPILE=y
734CONFIG_CMDLINE="" 756CONFIG_CMDLINE=""
735 757
diff --git a/arch/mips/configs/ocelot_g_defconfig b/arch/mips/configs/ocelot_g_defconfig
index c0f508d180c4..b48bdee2411f 100644
--- a/arch/mips/configs/ocelot_g_defconfig
+++ b/arch/mips/configs/ocelot_g_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:21 2006 4# Mon Apr 24 14:51:11 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MOMENCO_OCELOT_G=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -142,7 +144,6 @@ CONFIG_PREEMPT_NONE=y
142# Code maturity level options 144# Code maturity level options
143# 145#
144CONFIG_EXPERIMENTAL=y 146CONFIG_EXPERIMENTAL=y
145CONFIG_CLEAN_COMPILE=y
146CONFIG_BROKEN_ON_SMP=y 147CONFIG_BROKEN_ON_SMP=y
147CONFIG_INIT_ENV_ARG_LIMIT=32 148CONFIG_INIT_ENV_ARG_LIMIT=32
148 149
@@ -158,6 +159,7 @@ CONFIG_SYSVIPC=y
158CONFIG_SYSCTL=y 159CONFIG_SYSCTL=y
159# CONFIG_AUDIT is not set 160# CONFIG_AUDIT is not set
160# CONFIG_IKCONFIG is not set 161# CONFIG_IKCONFIG is not set
162CONFIG_RELAY=y
161CONFIG_INITRAMFS_SOURCE="" 163CONFIG_INITRAMFS_SOURCE=""
162# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 164# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
163CONFIG_EMBEDDED=y 165CONFIG_EMBEDDED=y
@@ -171,10 +173,6 @@ CONFIG_BASE_FULL=y
171CONFIG_FUTEX=y 173CONFIG_FUTEX=y
172CONFIG_EPOLL=y 174CONFIG_EPOLL=y
173CONFIG_SHMEM=y 175CONFIG_SHMEM=y
174CONFIG_CC_ALIGN_FUNCTIONS=0
175CONFIG_CC_ALIGN_LABELS=0
176CONFIG_CC_ALIGN_LOOPS=0
177CONFIG_CC_ALIGN_JUMPS=0
178CONFIG_SLAB=y 176CONFIG_SLAB=y
179# CONFIG_TINY_SHMEM is not set 177# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 178CONFIG_BASE_SMALL=0
@@ -188,6 +186,7 @@ CONFIG_BASE_SMALL=0
188# 186#
189# Block layer 187# Block layer
190# 188#
189# CONFIG_BLK_DEV_IO_TRACE is not set
191 190
192# 191#
193# IO Schedulers 192# IO Schedulers
@@ -207,7 +206,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
207# 206#
208CONFIG_HW_HAS_PCI=y 207CONFIG_HW_HAS_PCI=y
209CONFIG_PCI=y 208CONFIG_PCI=y
210CONFIG_PCI_LEGACY_PROC=y
211CONFIG_MMU=y 209CONFIG_MMU=y
212 210
213# 211#
@@ -225,6 +223,7 @@ CONFIG_MMU=y
225# 223#
226CONFIG_BINFMT_ELF=y 224CONFIG_BINFMT_ELF=y
227# CONFIG_BINFMT_MISC is not set 225# CONFIG_BINFMT_MISC is not set
226# CONFIG_BUILD_ELF64 is not set
228CONFIG_MIPS32_COMPAT=y 227CONFIG_MIPS32_COMPAT=y
229CONFIG_COMPAT=y 228CONFIG_COMPAT=y
230CONFIG_MIPS32_O32=y 229CONFIG_MIPS32_O32=y
@@ -239,6 +238,7 @@ CONFIG_NET=y
239# 238#
240# Networking options 239# Networking options
241# 240#
241# CONFIG_NETDEBUG is not set
242# CONFIG_PACKET is not set 242# CONFIG_PACKET is not set
243CONFIG_UNIX=y 243CONFIG_UNIX=y
244CONFIG_XFRM=y 244CONFIG_XFRM=y
@@ -259,12 +259,15 @@ CONFIG_IP_PNP_DHCP=y
259# CONFIG_INET_AH is not set 259# CONFIG_INET_AH is not set
260# CONFIG_INET_ESP is not set 260# CONFIG_INET_ESP is not set
261# CONFIG_INET_IPCOMP is not set 261# CONFIG_INET_IPCOMP is not set
262CONFIG_INET_TUNNEL=y 262# CONFIG_INET_XFRM_TUNNEL is not set
263# CONFIG_INET_TUNNEL is not set
263CONFIG_INET_DIAG=y 264CONFIG_INET_DIAG=y
264CONFIG_INET_TCP_DIAG=y 265CONFIG_INET_TCP_DIAG=y
265# CONFIG_TCP_CONG_ADVANCED is not set 266# CONFIG_TCP_CONG_ADVANCED is not set
266CONFIG_TCP_CONG_BIC=y 267CONFIG_TCP_CONG_BIC=y
267# CONFIG_IPV6 is not set 268# CONFIG_IPV6 is not set
269# CONFIG_INET6_XFRM_TUNNEL is not set
270# CONFIG_INET6_TUNNEL is not set
268# CONFIG_NETFILTER is not set 271# CONFIG_NETFILTER is not set
269 272
270# 273#
@@ -276,6 +279,11 @@ CONFIG_TCP_CONG_BIC=y
276# SCTP Configuration (EXPERIMENTAL) 279# SCTP Configuration (EXPERIMENTAL)
277# 280#
278# CONFIG_IP_SCTP is not set 281# CONFIG_IP_SCTP is not set
282
283#
284# TIPC Configuration (EXPERIMENTAL)
285#
286# CONFIG_TIPC is not set
279# CONFIG_ATM is not set 287# CONFIG_ATM is not set
280# CONFIG_BRIDGE is not set 288# CONFIG_BRIDGE is not set
281# CONFIG_VLAN_8021Q is not set 289# CONFIG_VLAN_8021Q is not set
@@ -285,11 +293,6 @@ CONFIG_TCP_CONG_BIC=y
285# CONFIG_ATALK is not set 293# CONFIG_ATALK is not set
286# CONFIG_X25 is not set 294# CONFIG_X25 is not set
287# CONFIG_LAPB is not set 295# CONFIG_LAPB is not set
288
289#
290# TIPC Configuration (EXPERIMENTAL)
291#
292# CONFIG_TIPC is not set
293# CONFIG_NET_DIVERT is not set 296# CONFIG_NET_DIVERT is not set
294# CONFIG_ECONET is not set 297# CONFIG_ECONET is not set
295# CONFIG_WAN_ROUTER is not set 298# CONFIG_WAN_ROUTER is not set
@@ -310,6 +313,9 @@ CONFIG_IEEE80211=y
310# CONFIG_IEEE80211_DEBUG is not set 313# CONFIG_IEEE80211_DEBUG is not set
311CONFIG_IEEE80211_CRYPT_WEP=y 314CONFIG_IEEE80211_CRYPT_WEP=y
312CONFIG_IEEE80211_CRYPT_CCMP=y 315CONFIG_IEEE80211_CRYPT_CCMP=y
316CONFIG_IEEE80211_SOFTMAC=y
317# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
318CONFIG_WIRELESS_EXT=y
313 319
314# 320#
315# Device Drivers 321# Device Drivers
@@ -354,7 +360,7 @@ CONFIG_PROC_EVENTS=y
354# CONFIG_BLK_DEV_NBD is not set 360# CONFIG_BLK_DEV_NBD is not set
355# CONFIG_BLK_DEV_SX8 is not set 361# CONFIG_BLK_DEV_SX8 is not set
356# CONFIG_BLK_DEV_RAM is not set 362# CONFIG_BLK_DEV_RAM is not set
357CONFIG_BLK_DEV_RAM_COUNT=16 363# CONFIG_BLK_DEV_INITRD is not set
358CONFIG_CDROM_PKTCDVD=y 364CONFIG_CDROM_PKTCDVD=y
359CONFIG_CDROM_PKTCDVD_BUFFERS=8 365CONFIG_CDROM_PKTCDVD_BUFFERS=8
360# CONFIG_CDROM_PKTCDVD_WCACHE is not set 366# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -545,6 +551,7 @@ CONFIG_HW_CONSOLE=y
545# 551#
546CONFIG_SERIAL_8250=y 552CONFIG_SERIAL_8250=y
547CONFIG_SERIAL_8250_CONSOLE=y 553CONFIG_SERIAL_8250_CONSOLE=y
554CONFIG_SERIAL_8250_PCI=y
548CONFIG_SERIAL_8250_NR_UARTS=4 555CONFIG_SERIAL_8250_NR_UARTS=4
549CONFIG_SERIAL_8250_RUNTIME_UARTS=4 556CONFIG_SERIAL_8250_RUNTIME_UARTS=4
550# CONFIG_SERIAL_8250_EXTENDED is not set 557# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -554,6 +561,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
554# 561#
555CONFIG_SERIAL_CORE=y 562CONFIG_SERIAL_CORE=y
556CONFIG_SERIAL_CORE_CONSOLE=y 563CONFIG_SERIAL_CORE_CONSOLE=y
564# CONFIG_SERIAL_JSM is not set
557CONFIG_UNIX98_PTYS=y 565CONFIG_UNIX98_PTYS=y
558CONFIG_LEGACY_PTYS=y 566CONFIG_LEGACY_PTYS=y
559CONFIG_LEGACY_PTY_COUNT=256 567CONFIG_LEGACY_PTY_COUNT=256
@@ -612,10 +620,6 @@ CONFIG_LEGACY_PTY_COUNT=256
612# 620#
613 621
614# 622#
615# Multimedia Capabilities Port drivers
616#
617
618#
619# Multimedia devices 623# Multimedia devices
620# 624#
621# CONFIG_VIDEO_DEV is not set 625# CONFIG_VIDEO_DEV is not set
@@ -646,6 +650,7 @@ CONFIG_DUMMY_CONSOLE=y
646# 650#
647CONFIG_USB_ARCH_HAS_HCD=y 651CONFIG_USB_ARCH_HAS_HCD=y
648CONFIG_USB_ARCH_HAS_OHCI=y 652CONFIG_USB_ARCH_HAS_OHCI=y
653CONFIG_USB_ARCH_HAS_EHCI=y
649# CONFIG_USB is not set 654# CONFIG_USB is not set
650 655
651# 656#
@@ -663,13 +668,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
663# CONFIG_MMC is not set 668# CONFIG_MMC is not set
664 669
665# 670#
671# LED devices
672#
673# CONFIG_NEW_LEDS is not set
674
675#
676# LED drivers
677#
678
679#
680# LED Triggers
681#
682
683#
666# InfiniBand support 684# InfiniBand support
667# 685#
668# CONFIG_INFINIBAND is not set 686# CONFIG_INFINIBAND is not set
669 687
670# 688#
671# SN Devices 689# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
690#
691
692#
693# Real Time Clock
672# 694#
695# CONFIG_RTC_CLASS is not set
673 696
674# 697#
675# File systems 698# File systems
@@ -714,7 +737,6 @@ CONFIG_SYSFS=y
714# CONFIG_TMPFS is not set 737# CONFIG_TMPFS is not set
715# CONFIG_HUGETLB_PAGE is not set 738# CONFIG_HUGETLB_PAGE is not set
716CONFIG_RAMFS=y 739CONFIG_RAMFS=y
717CONFIG_RELAYFS_FS=y
718# CONFIG_CONFIGFS_FS is not set 740# CONFIG_CONFIGFS_FS is not set
719 741
720# 742#
@@ -781,6 +803,8 @@ CONFIG_MSDOS_PARTITION=y
781# CONFIG_MAGIC_SYSRQ is not set 803# CONFIG_MAGIC_SYSRQ is not set
782# CONFIG_DEBUG_KERNEL is not set 804# CONFIG_DEBUG_KERNEL is not set
783CONFIG_LOG_BUF_SHIFT=14 805CONFIG_LOG_BUF_SHIFT=14
806# CONFIG_DEBUG_FS is not set
807# CONFIG_UNWIND_INFO is not set
784CONFIG_CROSSCOMPILE=y 808CONFIG_CROSSCOMPILE=y
785CONFIG_CMDLINE="" 809CONFIG_CMDLINE=""
786 810
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig
index 194b3c772bb7..01aac40634b4 100644
--- a/arch/mips/configs/pb1100_defconfig
+++ b/arch/mips/configs/pb1100_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:22 2006 4# Mon Apr 24 14:51:12 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_PB1100=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -116,11 +118,11 @@ CONFIG_PAGE_SIZE_4KB=y
116CONFIG_CPU_HAS_PREFETCH=y 118CONFIG_CPU_HAS_PREFETCH=y
117# CONFIG_MIPS_MT is not set 119# CONFIG_MIPS_MT is not set
118CONFIG_64BIT_PHYS_ADDR=y 120CONFIG_64BIT_PHYS_ADDR=y
119# CONFIG_CPU_ADVANCED is not set
120CONFIG_CPU_HAS_LLSC=y 121CONFIG_CPU_HAS_LLSC=y
121CONFIG_CPU_HAS_SYNC=y 122CONFIG_CPU_HAS_SYNC=y
122CONFIG_GENERIC_HARDIRQS=y 123CONFIG_GENERIC_HARDIRQS=y
123CONFIG_GENERIC_IRQ_PROBE=y 124CONFIG_GENERIC_IRQ_PROBE=y
125CONFIG_CPU_SUPPORTS_HIGHMEM=y
124CONFIG_ARCH_FLATMEM_ENABLE=y 126CONFIG_ARCH_FLATMEM_ENABLE=y
125CONFIG_SELECT_MEMORY_MODEL=y 127CONFIG_SELECT_MEMORY_MODEL=y
126CONFIG_FLATMEM_MANUAL=y 128CONFIG_FLATMEM_MANUAL=y
@@ -138,7 +140,6 @@ CONFIG_PREEMPT_NONE=y
138# Code maturity level options 140# Code maturity level options
139# 141#
140CONFIG_EXPERIMENTAL=y 142CONFIG_EXPERIMENTAL=y
141CONFIG_CLEAN_COMPILE=y
142CONFIG_BROKEN_ON_SMP=y 143CONFIG_BROKEN_ON_SMP=y
143CONFIG_INIT_ENV_ARG_LIMIT=32 144CONFIG_INIT_ENV_ARG_LIMIT=32
144 145
@@ -154,6 +155,7 @@ CONFIG_SYSVIPC=y
154CONFIG_SYSCTL=y 155CONFIG_SYSCTL=y
155# CONFIG_AUDIT is not set 156# CONFIG_AUDIT is not set
156# CONFIG_IKCONFIG is not set 157# CONFIG_IKCONFIG is not set
158CONFIG_RELAY=y
157CONFIG_INITRAMFS_SOURCE="" 159CONFIG_INITRAMFS_SOURCE=""
158# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 160# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
159CONFIG_EMBEDDED=y 161CONFIG_EMBEDDED=y
@@ -167,10 +169,6 @@ CONFIG_BASE_FULL=y
167CONFIG_FUTEX=y 169CONFIG_FUTEX=y
168CONFIG_EPOLL=y 170CONFIG_EPOLL=y
169CONFIG_SHMEM=y 171CONFIG_SHMEM=y
170CONFIG_CC_ALIGN_FUNCTIONS=0
171CONFIG_CC_ALIGN_LABELS=0
172CONFIG_CC_ALIGN_LOOPS=0
173CONFIG_CC_ALIGN_JUMPS=0
174CONFIG_SLAB=y 172CONFIG_SLAB=y
175# CONFIG_TINY_SHMEM is not set 173# CONFIG_TINY_SHMEM is not set
176CONFIG_BASE_SMALL=0 174CONFIG_BASE_SMALL=0
@@ -183,7 +181,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
183CONFIG_MODULES=y 181CONFIG_MODULES=y
184CONFIG_MODULE_UNLOAD=y 182CONFIG_MODULE_UNLOAD=y
185# CONFIG_MODULE_FORCE_UNLOAD is not set 183# CONFIG_MODULE_FORCE_UNLOAD is not set
186CONFIG_OBSOLETE_MODPARM=y
187CONFIG_MODVERSIONS=y 184CONFIG_MODVERSIONS=y
188CONFIG_MODULE_SRCVERSION_ALL=y 185CONFIG_MODULE_SRCVERSION_ALL=y
189CONFIG_KMOD=y 186CONFIG_KMOD=y
@@ -192,6 +189,8 @@ CONFIG_KMOD=y
192# Block layer 189# Block layer
193# 190#
194# CONFIG_LBD is not set 191# CONFIG_LBD is not set
192# CONFIG_BLK_DEV_IO_TRACE is not set
193# CONFIG_LSF is not set
195 194
196# 195#
197# IO Schedulers 196# IO Schedulers
@@ -247,6 +246,7 @@ CONFIG_NET=y
247# 246#
248# Networking options 247# Networking options
249# 248#
249# CONFIG_NETDEBUG is not set
250CONFIG_PACKET=y 250CONFIG_PACKET=y
251# CONFIG_PACKET_MMAP is not set 251# CONFIG_PACKET_MMAP is not set
252CONFIG_UNIX=y 252CONFIG_UNIX=y
@@ -269,7 +269,8 @@ CONFIG_IP_PNP_BOOTP=y
269# CONFIG_INET_AH is not set 269# CONFIG_INET_AH is not set
270# CONFIG_INET_ESP is not set 270# CONFIG_INET_ESP is not set
271# CONFIG_INET_IPCOMP is not set 271# CONFIG_INET_IPCOMP is not set
272CONFIG_INET_TUNNEL=m 272# CONFIG_INET_XFRM_TUNNEL is not set
273# CONFIG_INET_TUNNEL is not set
273CONFIG_INET_DIAG=y 274CONFIG_INET_DIAG=y
274CONFIG_INET_TCP_DIAG=y 275CONFIG_INET_TCP_DIAG=y
275# CONFIG_TCP_CONG_ADVANCED is not set 276# CONFIG_TCP_CONG_ADVANCED is not set
@@ -280,6 +281,8 @@ CONFIG_TCP_CONG_BIC=y
280# 281#
281# CONFIG_IP_VS is not set 282# CONFIG_IP_VS is not set
282# CONFIG_IPV6 is not set 283# CONFIG_IPV6 is not set
284# CONFIG_INET6_XFRM_TUNNEL is not set
285# CONFIG_INET6_TUNNEL is not set
283CONFIG_NETFILTER=y 286CONFIG_NETFILTER=y
284# CONFIG_NETFILTER_DEBUG is not set 287# CONFIG_NETFILTER_DEBUG is not set
285 288
@@ -296,10 +299,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
296CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 299CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
297CONFIG_NETFILTER_XT_MATCH_COMMENT=m 300CONFIG_NETFILTER_XT_MATCH_COMMENT=m
298CONFIG_NETFILTER_XT_MATCH_DCCP=m 301CONFIG_NETFILTER_XT_MATCH_DCCP=m
302CONFIG_NETFILTER_XT_MATCH_ESP=m
299CONFIG_NETFILTER_XT_MATCH_LENGTH=m 303CONFIG_NETFILTER_XT_MATCH_LENGTH=m
300CONFIG_NETFILTER_XT_MATCH_LIMIT=m 304CONFIG_NETFILTER_XT_MATCH_LIMIT=m
301CONFIG_NETFILTER_XT_MATCH_MAC=m 305CONFIG_NETFILTER_XT_MATCH_MAC=m
302CONFIG_NETFILTER_XT_MATCH_MARK=m 306CONFIG_NETFILTER_XT_MATCH_MARK=m
307CONFIG_NETFILTER_XT_MATCH_POLICY=m
308CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
303CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 309CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
304CONFIG_NETFILTER_XT_MATCH_REALM=m 310CONFIG_NETFILTER_XT_MATCH_REALM=m
305CONFIG_NETFILTER_XT_MATCH_SCTP=m 311CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -323,6 +329,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
323# SCTP Configuration (EXPERIMENTAL) 329# SCTP Configuration (EXPERIMENTAL)
324# 330#
325# CONFIG_IP_SCTP is not set 331# CONFIG_IP_SCTP is not set
332
333#
334# TIPC Configuration (EXPERIMENTAL)
335#
336# CONFIG_TIPC is not set
326# CONFIG_ATM is not set 337# CONFIG_ATM is not set
327# CONFIG_BRIDGE is not set 338# CONFIG_BRIDGE is not set
328# CONFIG_VLAN_8021Q is not set 339# CONFIG_VLAN_8021Q is not set
@@ -332,11 +343,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
332# CONFIG_ATALK is not set 343# CONFIG_ATALK is not set
333# CONFIG_X25 is not set 344# CONFIG_X25 is not set
334# CONFIG_LAPB is not set 345# CONFIG_LAPB is not set
335
336#
337# TIPC Configuration (EXPERIMENTAL)
338#
339# CONFIG_TIPC is not set
340# CONFIG_NET_DIVERT is not set 346# CONFIG_NET_DIVERT is not set
341# CONFIG_ECONET is not set 347# CONFIG_ECONET is not set
342# CONFIG_WAN_ROUTER is not set 348# CONFIG_WAN_ROUTER is not set
@@ -358,6 +364,9 @@ CONFIG_IEEE80211=m
358# CONFIG_IEEE80211_DEBUG is not set 364# CONFIG_IEEE80211_DEBUG is not set
359CONFIG_IEEE80211_CRYPT_WEP=m 365CONFIG_IEEE80211_CRYPT_WEP=m
360CONFIG_IEEE80211_CRYPT_CCMP=m 366CONFIG_IEEE80211_CRYPT_CCMP=m
367CONFIG_IEEE80211_SOFTMAC=m
368# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
369CONFIG_WIRELESS_EXT=y
361 370
362# 371#
363# Device Drivers 372# Device Drivers
@@ -414,7 +423,6 @@ CONFIG_MTD_CFI_I2=y
414# CONFIG_MTD_CFI_I8 is not set 423# CONFIG_MTD_CFI_I8 is not set
415# CONFIG_MTD_CFI_INTELEXT is not set 424# CONFIG_MTD_CFI_INTELEXT is not set
416CONFIG_MTD_CFI_AMDSTD=y 425CONFIG_MTD_CFI_AMDSTD=y
417CONFIG_MTD_CFI_AMDSTD_RETRY=0
418# CONFIG_MTD_CFI_STAA is not set 426# CONFIG_MTD_CFI_STAA is not set
419CONFIG_MTD_CFI_UTIL=y 427CONFIG_MTD_CFI_UTIL=y
420# CONFIG_MTD_RAM is not set 428# CONFIG_MTD_RAM is not set
@@ -436,7 +444,6 @@ CONFIG_MTD_ALCHEMY=y
436# CONFIG_MTD_SLRAM is not set 444# CONFIG_MTD_SLRAM is not set
437# CONFIG_MTD_PHRAM is not set 445# CONFIG_MTD_PHRAM is not set
438# CONFIG_MTD_MTDRAM is not set 446# CONFIG_MTD_MTDRAM is not set
439# CONFIG_MTD_BLKMTD is not set
440# CONFIG_MTD_BLOCK2MTD is not set 447# CONFIG_MTD_BLOCK2MTD is not set
441 448
442# 449#
@@ -473,7 +480,7 @@ CONFIG_BLK_DEV_LOOP=y
473# CONFIG_BLK_DEV_CRYPTOLOOP is not set 480# CONFIG_BLK_DEV_CRYPTOLOOP is not set
474# CONFIG_BLK_DEV_NBD is not set 481# CONFIG_BLK_DEV_NBD is not set
475# CONFIG_BLK_DEV_RAM is not set 482# CONFIG_BLK_DEV_RAM is not set
476CONFIG_BLK_DEV_RAM_COUNT=16 483# CONFIG_BLK_DEV_INITRD is not set
477CONFIG_CDROM_PKTCDVD=m 484CONFIG_CDROM_PKTCDVD=m
478CONFIG_CDROM_PKTCDVD_BUFFERS=8 485CONFIG_CDROM_PKTCDVD_BUFFERS=8
479# CONFIG_CDROM_PKTCDVD_WCACHE is not set 486# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -716,10 +723,6 @@ CONFIG_SYNCLINK_CS=m
716# 723#
717 724
718# 725#
719# Multimedia Capabilities Port drivers
720#
721
722#
723# Multimedia devices 726# Multimedia devices
724# 727#
725# CONFIG_VIDEO_DEV is not set 728# CONFIG_VIDEO_DEV is not set
@@ -750,6 +753,7 @@ CONFIG_DUMMY_CONSOLE=y
750# 753#
751CONFIG_USB_ARCH_HAS_HCD=y 754CONFIG_USB_ARCH_HAS_HCD=y
752CONFIG_USB_ARCH_HAS_OHCI=y 755CONFIG_USB_ARCH_HAS_OHCI=y
756# CONFIG_USB_ARCH_HAS_EHCI is not set
753# CONFIG_USB is not set 757# CONFIG_USB is not set
754 758
755# 759#
@@ -767,12 +771,30 @@ CONFIG_USB_ARCH_HAS_OHCI=y
767# CONFIG_MMC is not set 771# CONFIG_MMC is not set
768 772
769# 773#
774# LED devices
775#
776# CONFIG_NEW_LEDS is not set
777
778#
779# LED drivers
780#
781
782#
783# LED Triggers
784#
785
786#
770# InfiniBand support 787# InfiniBand support
771# 788#
772 789
773# 790#
774# SN Devices 791# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
792#
793
794#
795# Real Time Clock
775# 796#
797# CONFIG_RTC_CLASS is not set
776 798
777# 799#
778# File systems 800# File systems
@@ -830,7 +852,6 @@ CONFIG_SYSFS=y
830CONFIG_TMPFS=y 852CONFIG_TMPFS=y
831# CONFIG_HUGETLB_PAGE is not set 853# CONFIG_HUGETLB_PAGE is not set
832CONFIG_RAMFS=y 854CONFIG_RAMFS=y
833CONFIG_RELAYFS_FS=m
834# CONFIG_CONFIGFS_FS is not set 855# CONFIG_CONFIGFS_FS is not set
835 856
836# 857#
@@ -939,6 +960,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
939# CONFIG_MAGIC_SYSRQ is not set 960# CONFIG_MAGIC_SYSRQ is not set
940# CONFIG_DEBUG_KERNEL is not set 961# CONFIG_DEBUG_KERNEL is not set
941CONFIG_LOG_BUF_SHIFT=14 962CONFIG_LOG_BUF_SHIFT=14
963# CONFIG_DEBUG_FS is not set
942CONFIG_CROSSCOMPILE=y 964CONFIG_CROSSCOMPILE=y
943CONFIG_CMDLINE="" 965CONFIG_CMDLINE=""
944 966
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig
index 8985725e6a98..398c3c265b9f 100644
--- a/arch/mips/configs/pb1500_defconfig
+++ b/arch/mips/configs/pb1500_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:24 2006 4# Mon Apr 24 14:51:13 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_PB1500=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -115,11 +117,11 @@ CONFIG_PAGE_SIZE_4KB=y
115CONFIG_CPU_HAS_PREFETCH=y 117CONFIG_CPU_HAS_PREFETCH=y
116# CONFIG_MIPS_MT is not set 118# CONFIG_MIPS_MT is not set
117CONFIG_64BIT_PHYS_ADDR=y 119CONFIG_64BIT_PHYS_ADDR=y
118# CONFIG_CPU_ADVANCED is not set
119CONFIG_CPU_HAS_LLSC=y 120CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 121CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y 122CONFIG_GENERIC_HARDIRQS=y
122CONFIG_GENERIC_IRQ_PROBE=y 123CONFIG_GENERIC_IRQ_PROBE=y
124CONFIG_CPU_SUPPORTS_HIGHMEM=y
123CONFIG_ARCH_FLATMEM_ENABLE=y 125CONFIG_ARCH_FLATMEM_ENABLE=y
124CONFIG_SELECT_MEMORY_MODEL=y 126CONFIG_SELECT_MEMORY_MODEL=y
125CONFIG_FLATMEM_MANUAL=y 127CONFIG_FLATMEM_MANUAL=y
@@ -137,7 +139,6 @@ CONFIG_PREEMPT_NONE=y
137# Code maturity level options 139# Code maturity level options
138# 140#
139CONFIG_EXPERIMENTAL=y 141CONFIG_EXPERIMENTAL=y
140CONFIG_CLEAN_COMPILE=y
141CONFIG_BROKEN_ON_SMP=y 142CONFIG_BROKEN_ON_SMP=y
142CONFIG_INIT_ENV_ARG_LIMIT=32 143CONFIG_INIT_ENV_ARG_LIMIT=32
143 144
@@ -153,6 +154,7 @@ CONFIG_SYSVIPC=y
153CONFIG_SYSCTL=y 154CONFIG_SYSCTL=y
154# CONFIG_AUDIT is not set 155# CONFIG_AUDIT is not set
155# CONFIG_IKCONFIG is not set 156# CONFIG_IKCONFIG is not set
157CONFIG_RELAY=y
156CONFIG_INITRAMFS_SOURCE="" 158CONFIG_INITRAMFS_SOURCE=""
157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 159# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
158CONFIG_EMBEDDED=y 160CONFIG_EMBEDDED=y
@@ -166,10 +168,6 @@ CONFIG_BASE_FULL=y
166CONFIG_FUTEX=y 168CONFIG_FUTEX=y
167CONFIG_EPOLL=y 169CONFIG_EPOLL=y
168CONFIG_SHMEM=y 170CONFIG_SHMEM=y
169CONFIG_CC_ALIGN_FUNCTIONS=0
170CONFIG_CC_ALIGN_LABELS=0
171CONFIG_CC_ALIGN_LOOPS=0
172CONFIG_CC_ALIGN_JUMPS=0
173CONFIG_SLAB=y 171CONFIG_SLAB=y
174# CONFIG_TINY_SHMEM is not set 172# CONFIG_TINY_SHMEM is not set
175CONFIG_BASE_SMALL=0 173CONFIG_BASE_SMALL=0
@@ -182,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
182CONFIG_MODULES=y 180CONFIG_MODULES=y
183CONFIG_MODULE_UNLOAD=y 181CONFIG_MODULE_UNLOAD=y
184# CONFIG_MODULE_FORCE_UNLOAD is not set 182# CONFIG_MODULE_FORCE_UNLOAD is not set
185CONFIG_OBSOLETE_MODPARM=y
186CONFIG_MODVERSIONS=y 183CONFIG_MODVERSIONS=y
187CONFIG_MODULE_SRCVERSION_ALL=y 184CONFIG_MODULE_SRCVERSION_ALL=y
188CONFIG_KMOD=y 185CONFIG_KMOD=y
@@ -191,6 +188,8 @@ CONFIG_KMOD=y
191# Block layer 188# Block layer
192# 189#
193# CONFIG_LBD is not set 190# CONFIG_LBD is not set
191# CONFIG_BLK_DEV_IO_TRACE is not set
192# CONFIG_LSF is not set
194 193
195# 194#
196# IO Schedulers 195# IO Schedulers
@@ -210,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
210# 209#
211CONFIG_HW_HAS_PCI=y 210CONFIG_HW_HAS_PCI=y
212CONFIG_PCI=y 211CONFIG_PCI=y
213CONFIG_PCI_LEGACY_PROC=y
214CONFIG_MMU=y 212CONFIG_MMU=y
215 213
216# 214#
@@ -253,6 +251,7 @@ CONFIG_NET=y
253# 251#
254# Networking options 252# Networking options
255# 253#
254# CONFIG_NETDEBUG is not set
256CONFIG_PACKET=y 255CONFIG_PACKET=y
257# CONFIG_PACKET_MMAP is not set 256# CONFIG_PACKET_MMAP is not set
258CONFIG_UNIX=y 257CONFIG_UNIX=y
@@ -275,7 +274,8 @@ CONFIG_IP_PNP_BOOTP=y
275# CONFIG_INET_AH is not set 274# CONFIG_INET_AH is not set
276# CONFIG_INET_ESP is not set 275# CONFIG_INET_ESP is not set
277# CONFIG_INET_IPCOMP is not set 276# CONFIG_INET_IPCOMP is not set
278CONFIG_INET_TUNNEL=m 277# CONFIG_INET_XFRM_TUNNEL is not set
278# CONFIG_INET_TUNNEL is not set
279CONFIG_INET_DIAG=y 279CONFIG_INET_DIAG=y
280CONFIG_INET_TCP_DIAG=y 280CONFIG_INET_TCP_DIAG=y
281# CONFIG_TCP_CONG_ADVANCED is not set 281# CONFIG_TCP_CONG_ADVANCED is not set
@@ -286,6 +286,8 @@ CONFIG_TCP_CONG_BIC=y
286# 286#
287# CONFIG_IP_VS is not set 287# CONFIG_IP_VS is not set
288# CONFIG_IPV6 is not set 288# CONFIG_IPV6 is not set
289# CONFIG_INET6_XFRM_TUNNEL is not set
290# CONFIG_INET6_TUNNEL is not set
289CONFIG_NETFILTER=y 291CONFIG_NETFILTER=y
290# CONFIG_NETFILTER_DEBUG is not set 292# CONFIG_NETFILTER_DEBUG is not set
291 293
@@ -302,10 +304,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
302CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 304CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
303CONFIG_NETFILTER_XT_MATCH_COMMENT=m 305CONFIG_NETFILTER_XT_MATCH_COMMENT=m
304CONFIG_NETFILTER_XT_MATCH_DCCP=m 306CONFIG_NETFILTER_XT_MATCH_DCCP=m
307CONFIG_NETFILTER_XT_MATCH_ESP=m
305CONFIG_NETFILTER_XT_MATCH_LENGTH=m 308CONFIG_NETFILTER_XT_MATCH_LENGTH=m
306CONFIG_NETFILTER_XT_MATCH_LIMIT=m 309CONFIG_NETFILTER_XT_MATCH_LIMIT=m
307CONFIG_NETFILTER_XT_MATCH_MAC=m 310CONFIG_NETFILTER_XT_MATCH_MAC=m
308CONFIG_NETFILTER_XT_MATCH_MARK=m 311CONFIG_NETFILTER_XT_MATCH_MARK=m
312CONFIG_NETFILTER_XT_MATCH_POLICY=m
313CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
309CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 314CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
310CONFIG_NETFILTER_XT_MATCH_REALM=m 315CONFIG_NETFILTER_XT_MATCH_REALM=m
311CONFIG_NETFILTER_XT_MATCH_SCTP=m 316CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -329,6 +334,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
329# SCTP Configuration (EXPERIMENTAL) 334# SCTP Configuration (EXPERIMENTAL)
330# 335#
331# CONFIG_IP_SCTP is not set 336# CONFIG_IP_SCTP is not set
337
338#
339# TIPC Configuration (EXPERIMENTAL)
340#
341# CONFIG_TIPC is not set
332# CONFIG_ATM is not set 342# CONFIG_ATM is not set
333# CONFIG_BRIDGE is not set 343# CONFIG_BRIDGE is not set
334# CONFIG_VLAN_8021Q is not set 344# CONFIG_VLAN_8021Q is not set
@@ -338,11 +348,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
338# CONFIG_ATALK is not set 348# CONFIG_ATALK is not set
339# CONFIG_X25 is not set 349# CONFIG_X25 is not set
340# CONFIG_LAPB is not set 350# CONFIG_LAPB is not set
341
342#
343# TIPC Configuration (EXPERIMENTAL)
344#
345# CONFIG_TIPC is not set
346# CONFIG_NET_DIVERT is not set 351# CONFIG_NET_DIVERT is not set
347# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
348# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
@@ -364,6 +369,9 @@ CONFIG_IEEE80211=m
364# CONFIG_IEEE80211_DEBUG is not set 369# CONFIG_IEEE80211_DEBUG is not set
365CONFIG_IEEE80211_CRYPT_WEP=m 370CONFIG_IEEE80211_CRYPT_WEP=m
366CONFIG_IEEE80211_CRYPT_CCMP=m 371CONFIG_IEEE80211_CRYPT_CCMP=m
372CONFIG_IEEE80211_SOFTMAC=m
373# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
374CONFIG_WIRELESS_EXT=y
367 375
368# 376#
369# Device Drivers 377# Device Drivers
@@ -420,7 +428,6 @@ CONFIG_MTD_CFI_I2=y
420# CONFIG_MTD_CFI_I8 is not set 428# CONFIG_MTD_CFI_I8 is not set
421# CONFIG_MTD_CFI_INTELEXT is not set 429# CONFIG_MTD_CFI_INTELEXT is not set
422CONFIG_MTD_CFI_AMDSTD=y 430CONFIG_MTD_CFI_AMDSTD=y
423CONFIG_MTD_CFI_AMDSTD_RETRY=0
424# CONFIG_MTD_CFI_STAA is not set 431# CONFIG_MTD_CFI_STAA is not set
425CONFIG_MTD_CFI_UTIL=y 432CONFIG_MTD_CFI_UTIL=y
426# CONFIG_MTD_RAM is not set 433# CONFIG_MTD_RAM is not set
@@ -443,7 +450,6 @@ CONFIG_MTD_ALCHEMY=y
443# CONFIG_MTD_SLRAM is not set 450# CONFIG_MTD_SLRAM is not set
444# CONFIG_MTD_PHRAM is not set 451# CONFIG_MTD_PHRAM is not set
445# CONFIG_MTD_MTDRAM is not set 452# CONFIG_MTD_MTDRAM is not set
446# CONFIG_MTD_BLKMTD is not set
447# CONFIG_MTD_BLOCK2MTD is not set 453# CONFIG_MTD_BLOCK2MTD is not set
448 454
449# 455#
@@ -485,7 +491,7 @@ CONFIG_BLK_DEV_LOOP=y
485# CONFIG_BLK_DEV_NBD is not set 491# CONFIG_BLK_DEV_NBD is not set
486# CONFIG_BLK_DEV_SX8 is not set 492# CONFIG_BLK_DEV_SX8 is not set
487# CONFIG_BLK_DEV_RAM is not set 493# CONFIG_BLK_DEV_RAM is not set
488CONFIG_BLK_DEV_RAM_COUNT=16 494# CONFIG_BLK_DEV_INITRD is not set
489CONFIG_CDROM_PKTCDVD=m 495CONFIG_CDROM_PKTCDVD=m
490CONFIG_CDROM_PKTCDVD_BUFFERS=8 496CONFIG_CDROM_PKTCDVD_BUFFERS=8
491# CONFIG_CDROM_PKTCDVD_WCACHE is not set 497# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -750,6 +756,7 @@ CONFIG_SERIO_RAW=m
750# 756#
751CONFIG_SERIAL_8250=y 757CONFIG_SERIAL_8250=y
752CONFIG_SERIAL_8250_CONSOLE=y 758CONFIG_SERIAL_8250_CONSOLE=y
759CONFIG_SERIAL_8250_PCI=y
753# CONFIG_SERIAL_8250_CS is not set 760# CONFIG_SERIAL_8250_CS is not set
754CONFIG_SERIAL_8250_NR_UARTS=4 761CONFIG_SERIAL_8250_NR_UARTS=4
755CONFIG_SERIAL_8250_RUNTIME_UARTS=4 762CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -761,6 +768,7 @@ CONFIG_SERIAL_8250_AU1X00=y
761# 768#
762CONFIG_SERIAL_CORE=y 769CONFIG_SERIAL_CORE=y
763CONFIG_SERIAL_CORE_CONSOLE=y 770CONFIG_SERIAL_CORE_CONSOLE=y
771# CONFIG_SERIAL_JSM is not set
764CONFIG_UNIX98_PTYS=y 772CONFIG_UNIX98_PTYS=y
765CONFIG_LEGACY_PTYS=y 773CONFIG_LEGACY_PTYS=y
766CONFIG_LEGACY_PTY_COUNT=256 774CONFIG_LEGACY_PTY_COUNT=256
@@ -826,10 +834,6 @@ CONFIG_SYNCLINK_CS=m
826# 834#
827 835
828# 836#
829# Multimedia Capabilities Port drivers
830#
831
832#
833# Multimedia devices 837# Multimedia devices
834# 838#
835# CONFIG_VIDEO_DEV is not set 839# CONFIG_VIDEO_DEV is not set
@@ -854,6 +858,7 @@ CONFIG_SYNCLINK_CS=m
854# 858#
855CONFIG_USB_ARCH_HAS_HCD=y 859CONFIG_USB_ARCH_HAS_HCD=y
856CONFIG_USB_ARCH_HAS_OHCI=y 860CONFIG_USB_ARCH_HAS_OHCI=y
861CONFIG_USB_ARCH_HAS_EHCI=y
857# CONFIG_USB is not set 862# CONFIG_USB is not set
858 863
859# 864#
@@ -871,13 +876,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
871# CONFIG_MMC is not set 876# CONFIG_MMC is not set
872 877
873# 878#
879# LED devices
880#
881# CONFIG_NEW_LEDS is not set
882
883#
884# LED drivers
885#
886
887#
888# LED Triggers
889#
890
891#
874# InfiniBand support 892# InfiniBand support
875# 893#
876# CONFIG_INFINIBAND is not set 894# CONFIG_INFINIBAND is not set
877 895
878# 896#
879# SN Devices 897# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
898#
899
900#
901# Real Time Clock
880# 902#
903# CONFIG_RTC_CLASS is not set
881 904
882# 905#
883# File systems 906# File systems
@@ -935,7 +958,6 @@ CONFIG_SYSFS=y
935CONFIG_TMPFS=y 958CONFIG_TMPFS=y
936# CONFIG_HUGETLB_PAGE is not set 959# CONFIG_HUGETLB_PAGE is not set
937CONFIG_RAMFS=y 960CONFIG_RAMFS=y
938CONFIG_RELAYFS_FS=m
939# CONFIG_CONFIGFS_FS is not set 961# CONFIG_CONFIGFS_FS is not set
940 962
941# 963#
@@ -1044,6 +1066,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1044# CONFIG_MAGIC_SYSRQ is not set 1066# CONFIG_MAGIC_SYSRQ is not set
1045# CONFIG_DEBUG_KERNEL is not set 1067# CONFIG_DEBUG_KERNEL is not set
1046CONFIG_LOG_BUF_SHIFT=14 1068CONFIG_LOG_BUF_SHIFT=14
1069# CONFIG_DEBUG_FS is not set
1047CONFIG_CROSSCOMPILE=y 1070CONFIG_CROSSCOMPILE=y
1048CONFIG_CMDLINE="" 1071CONFIG_CMDLINE=""
1049 1072
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig
index adbf997b540e..ea282a53bb66 100644
--- a/arch/mips/configs/pb1550_defconfig
+++ b/arch/mips/configs/pb1550_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:25 2006 4# Mon Apr 24 14:51:13 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_PB1550=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -115,11 +117,11 @@ CONFIG_PAGE_SIZE_4KB=y
115CONFIG_CPU_HAS_PREFETCH=y 117CONFIG_CPU_HAS_PREFETCH=y
116# CONFIG_MIPS_MT is not set 118# CONFIG_MIPS_MT is not set
117CONFIG_64BIT_PHYS_ADDR=y 119CONFIG_64BIT_PHYS_ADDR=y
118# CONFIG_CPU_ADVANCED is not set
119CONFIG_CPU_HAS_LLSC=y 120CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 121CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y 122CONFIG_GENERIC_HARDIRQS=y
122CONFIG_GENERIC_IRQ_PROBE=y 123CONFIG_GENERIC_IRQ_PROBE=y
124CONFIG_CPU_SUPPORTS_HIGHMEM=y
123CONFIG_ARCH_FLATMEM_ENABLE=y 125CONFIG_ARCH_FLATMEM_ENABLE=y
124CONFIG_SELECT_MEMORY_MODEL=y 126CONFIG_SELECT_MEMORY_MODEL=y
125CONFIG_FLATMEM_MANUAL=y 127CONFIG_FLATMEM_MANUAL=y
@@ -137,7 +139,6 @@ CONFIG_PREEMPT_NONE=y
137# Code maturity level options 139# Code maturity level options
138# 140#
139CONFIG_EXPERIMENTAL=y 141CONFIG_EXPERIMENTAL=y
140CONFIG_CLEAN_COMPILE=y
141CONFIG_BROKEN_ON_SMP=y 142CONFIG_BROKEN_ON_SMP=y
142CONFIG_INIT_ENV_ARG_LIMIT=32 143CONFIG_INIT_ENV_ARG_LIMIT=32
143 144
@@ -153,6 +154,7 @@ CONFIG_SYSVIPC=y
153CONFIG_SYSCTL=y 154CONFIG_SYSCTL=y
154# CONFIG_AUDIT is not set 155# CONFIG_AUDIT is not set
155# CONFIG_IKCONFIG is not set 156# CONFIG_IKCONFIG is not set
157CONFIG_RELAY=y
156CONFIG_INITRAMFS_SOURCE="" 158CONFIG_INITRAMFS_SOURCE=""
157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 159# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
158CONFIG_EMBEDDED=y 160CONFIG_EMBEDDED=y
@@ -166,10 +168,6 @@ CONFIG_BASE_FULL=y
166CONFIG_FUTEX=y 168CONFIG_FUTEX=y
167CONFIG_EPOLL=y 169CONFIG_EPOLL=y
168CONFIG_SHMEM=y 170CONFIG_SHMEM=y
169CONFIG_CC_ALIGN_FUNCTIONS=0
170CONFIG_CC_ALIGN_LABELS=0
171CONFIG_CC_ALIGN_LOOPS=0
172CONFIG_CC_ALIGN_JUMPS=0
173CONFIG_SLAB=y 171CONFIG_SLAB=y
174# CONFIG_TINY_SHMEM is not set 172# CONFIG_TINY_SHMEM is not set
175CONFIG_BASE_SMALL=0 173CONFIG_BASE_SMALL=0
@@ -182,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
182CONFIG_MODULES=y 180CONFIG_MODULES=y
183CONFIG_MODULE_UNLOAD=y 181CONFIG_MODULE_UNLOAD=y
184# CONFIG_MODULE_FORCE_UNLOAD is not set 182# CONFIG_MODULE_FORCE_UNLOAD is not set
185CONFIG_OBSOLETE_MODPARM=y
186CONFIG_MODVERSIONS=y 183CONFIG_MODVERSIONS=y
187CONFIG_MODULE_SRCVERSION_ALL=y 184CONFIG_MODULE_SRCVERSION_ALL=y
188CONFIG_KMOD=y 185CONFIG_KMOD=y
@@ -191,6 +188,8 @@ CONFIG_KMOD=y
191# Block layer 188# Block layer
192# 189#
193# CONFIG_LBD is not set 190# CONFIG_LBD is not set
191# CONFIG_BLK_DEV_IO_TRACE is not set
192# CONFIG_LSF is not set
194 193
195# 194#
196# IO Schedulers 195# IO Schedulers
@@ -210,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
210# 209#
211CONFIG_HW_HAS_PCI=y 210CONFIG_HW_HAS_PCI=y
212CONFIG_PCI=y 211CONFIG_PCI=y
213CONFIG_PCI_LEGACY_PROC=y
214CONFIG_MMU=y 212CONFIG_MMU=y
215 213
216# 214#
@@ -253,6 +251,7 @@ CONFIG_NET=y
253# 251#
254# Networking options 252# Networking options
255# 253#
254# CONFIG_NETDEBUG is not set
256CONFIG_PACKET=y 255CONFIG_PACKET=y
257# CONFIG_PACKET_MMAP is not set 256# CONFIG_PACKET_MMAP is not set
258CONFIG_UNIX=y 257CONFIG_UNIX=y
@@ -275,7 +274,8 @@ CONFIG_IP_PNP_BOOTP=y
275# CONFIG_INET_AH is not set 274# CONFIG_INET_AH is not set
276# CONFIG_INET_ESP is not set 275# CONFIG_INET_ESP is not set
277# CONFIG_INET_IPCOMP is not set 276# CONFIG_INET_IPCOMP is not set
278CONFIG_INET_TUNNEL=m 277# CONFIG_INET_XFRM_TUNNEL is not set
278# CONFIG_INET_TUNNEL is not set
279CONFIG_INET_DIAG=y 279CONFIG_INET_DIAG=y
280CONFIG_INET_TCP_DIAG=y 280CONFIG_INET_TCP_DIAG=y
281# CONFIG_TCP_CONG_ADVANCED is not set 281# CONFIG_TCP_CONG_ADVANCED is not set
@@ -286,6 +286,8 @@ CONFIG_TCP_CONG_BIC=y
286# 286#
287# CONFIG_IP_VS is not set 287# CONFIG_IP_VS is not set
288# CONFIG_IPV6 is not set 288# CONFIG_IPV6 is not set
289# CONFIG_INET6_XFRM_TUNNEL is not set
290# CONFIG_INET6_TUNNEL is not set
289CONFIG_NETFILTER=y 291CONFIG_NETFILTER=y
290# CONFIG_NETFILTER_DEBUG is not set 292# CONFIG_NETFILTER_DEBUG is not set
291 293
@@ -302,10 +304,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
302CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 304CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
303CONFIG_NETFILTER_XT_MATCH_COMMENT=m 305CONFIG_NETFILTER_XT_MATCH_COMMENT=m
304CONFIG_NETFILTER_XT_MATCH_DCCP=m 306CONFIG_NETFILTER_XT_MATCH_DCCP=m
307CONFIG_NETFILTER_XT_MATCH_ESP=m
305CONFIG_NETFILTER_XT_MATCH_LENGTH=m 308CONFIG_NETFILTER_XT_MATCH_LENGTH=m
306CONFIG_NETFILTER_XT_MATCH_LIMIT=m 309CONFIG_NETFILTER_XT_MATCH_LIMIT=m
307CONFIG_NETFILTER_XT_MATCH_MAC=m 310CONFIG_NETFILTER_XT_MATCH_MAC=m
308CONFIG_NETFILTER_XT_MATCH_MARK=m 311CONFIG_NETFILTER_XT_MATCH_MARK=m
312CONFIG_NETFILTER_XT_MATCH_POLICY=m
313CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
309CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 314CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
310CONFIG_NETFILTER_XT_MATCH_REALM=m 315CONFIG_NETFILTER_XT_MATCH_REALM=m
311CONFIG_NETFILTER_XT_MATCH_SCTP=m 316CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -329,6 +334,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
329# SCTP Configuration (EXPERIMENTAL) 334# SCTP Configuration (EXPERIMENTAL)
330# 335#
331# CONFIG_IP_SCTP is not set 336# CONFIG_IP_SCTP is not set
337
338#
339# TIPC Configuration (EXPERIMENTAL)
340#
341# CONFIG_TIPC is not set
332# CONFIG_ATM is not set 342# CONFIG_ATM is not set
333# CONFIG_BRIDGE is not set 343# CONFIG_BRIDGE is not set
334# CONFIG_VLAN_8021Q is not set 344# CONFIG_VLAN_8021Q is not set
@@ -338,11 +348,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
338# CONFIG_ATALK is not set 348# CONFIG_ATALK is not set
339# CONFIG_X25 is not set 349# CONFIG_X25 is not set
340# CONFIG_LAPB is not set 350# CONFIG_LAPB is not set
341
342#
343# TIPC Configuration (EXPERIMENTAL)
344#
345# CONFIG_TIPC is not set
346# CONFIG_NET_DIVERT is not set 351# CONFIG_NET_DIVERT is not set
347# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
348# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
@@ -364,6 +369,9 @@ CONFIG_IEEE80211=m
364# CONFIG_IEEE80211_DEBUG is not set 369# CONFIG_IEEE80211_DEBUG is not set
365CONFIG_IEEE80211_CRYPT_WEP=m 370CONFIG_IEEE80211_CRYPT_WEP=m
366CONFIG_IEEE80211_CRYPT_CCMP=m 371CONFIG_IEEE80211_CRYPT_CCMP=m
372CONFIG_IEEE80211_SOFTMAC=m
373# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
374CONFIG_WIRELESS_EXT=y
367 375
368# 376#
369# Device Drivers 377# Device Drivers
@@ -420,7 +428,6 @@ CONFIG_MTD_CFI_I2=y
420# CONFIG_MTD_CFI_I8 is not set 428# CONFIG_MTD_CFI_I8 is not set
421# CONFIG_MTD_CFI_INTELEXT is not set 429# CONFIG_MTD_CFI_INTELEXT is not set
422CONFIG_MTD_CFI_AMDSTD=y 430CONFIG_MTD_CFI_AMDSTD=y
423CONFIG_MTD_CFI_AMDSTD_RETRY=0
424# CONFIG_MTD_CFI_STAA is not set 431# CONFIG_MTD_CFI_STAA is not set
425CONFIG_MTD_CFI_UTIL=y 432CONFIG_MTD_CFI_UTIL=y
426# CONFIG_MTD_RAM is not set 433# CONFIG_MTD_RAM is not set
@@ -443,7 +450,6 @@ CONFIG_MTD_ALCHEMY=y
443# CONFIG_MTD_SLRAM is not set 450# CONFIG_MTD_SLRAM is not set
444# CONFIG_MTD_PHRAM is not set 451# CONFIG_MTD_PHRAM is not set
445# CONFIG_MTD_MTDRAM is not set 452# CONFIG_MTD_MTDRAM is not set
446# CONFIG_MTD_BLKMTD is not set
447# CONFIG_MTD_BLOCK2MTD is not set 453# CONFIG_MTD_BLOCK2MTD is not set
448 454
449# 455#
@@ -485,7 +491,7 @@ CONFIG_BLK_DEV_LOOP=y
485# CONFIG_BLK_DEV_NBD is not set 491# CONFIG_BLK_DEV_NBD is not set
486# CONFIG_BLK_DEV_SX8 is not set 492# CONFIG_BLK_DEV_SX8 is not set
487# CONFIG_BLK_DEV_RAM is not set 493# CONFIG_BLK_DEV_RAM is not set
488CONFIG_BLK_DEV_RAM_COUNT=16 494# CONFIG_BLK_DEV_INITRD is not set
489CONFIG_CDROM_PKTCDVD=m 495CONFIG_CDROM_PKTCDVD=m
490CONFIG_CDROM_PKTCDVD_BUFFERS=8 496CONFIG_CDROM_PKTCDVD_BUFFERS=8
491# CONFIG_CDROM_PKTCDVD_WCACHE is not set 497# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -742,6 +748,7 @@ CONFIG_SERIO_RAW=m
742# 748#
743CONFIG_SERIAL_8250=y 749CONFIG_SERIAL_8250=y
744CONFIG_SERIAL_8250_CONSOLE=y 750CONFIG_SERIAL_8250_CONSOLE=y
751CONFIG_SERIAL_8250_PCI=y
745# CONFIG_SERIAL_8250_CS is not set 752# CONFIG_SERIAL_8250_CS is not set
746CONFIG_SERIAL_8250_NR_UARTS=4 753CONFIG_SERIAL_8250_NR_UARTS=4
747CONFIG_SERIAL_8250_RUNTIME_UARTS=4 754CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -753,6 +760,7 @@ CONFIG_SERIAL_8250_AU1X00=y
753# 760#
754CONFIG_SERIAL_CORE=y 761CONFIG_SERIAL_CORE=y
755CONFIG_SERIAL_CORE_CONSOLE=y 762CONFIG_SERIAL_CORE_CONSOLE=y
763# CONFIG_SERIAL_JSM is not set
756CONFIG_UNIX98_PTYS=y 764CONFIG_UNIX98_PTYS=y
757CONFIG_LEGACY_PTYS=y 765CONFIG_LEGACY_PTYS=y
758CONFIG_LEGACY_PTY_COUNT=256 766CONFIG_LEGACY_PTY_COUNT=256
@@ -818,10 +826,6 @@ CONFIG_SYNCLINK_CS=m
818# 826#
819 827
820# 828#
821# Multimedia Capabilities Port drivers
822#
823
824#
825# Multimedia devices 829# Multimedia devices
826# 830#
827# CONFIG_VIDEO_DEV is not set 831# CONFIG_VIDEO_DEV is not set
@@ -846,6 +850,7 @@ CONFIG_SYNCLINK_CS=m
846# 850#
847CONFIG_USB_ARCH_HAS_HCD=y 851CONFIG_USB_ARCH_HAS_HCD=y
848CONFIG_USB_ARCH_HAS_OHCI=y 852CONFIG_USB_ARCH_HAS_OHCI=y
853CONFIG_USB_ARCH_HAS_EHCI=y
849# CONFIG_USB is not set 854# CONFIG_USB is not set
850 855
851# 856#
@@ -863,13 +868,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
863# CONFIG_MMC is not set 868# CONFIG_MMC is not set
864 869
865# 870#
871# LED devices
872#
873# CONFIG_NEW_LEDS is not set
874
875#
876# LED drivers
877#
878
879#
880# LED Triggers
881#
882
883#
866# InfiniBand support 884# InfiniBand support
867# 885#
868# CONFIG_INFINIBAND is not set 886# CONFIG_INFINIBAND is not set
869 887
870# 888#
871# SN Devices 889# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
890#
891
892#
893# Real Time Clock
872# 894#
895# CONFIG_RTC_CLASS is not set
873 896
874# 897#
875# File systems 898# File systems
@@ -927,7 +950,6 @@ CONFIG_SYSFS=y
927CONFIG_TMPFS=y 950CONFIG_TMPFS=y
928# CONFIG_HUGETLB_PAGE is not set 951# CONFIG_HUGETLB_PAGE is not set
929CONFIG_RAMFS=y 952CONFIG_RAMFS=y
930CONFIG_RELAYFS_FS=m
931# CONFIG_CONFIGFS_FS is not set 953# CONFIG_CONFIGFS_FS is not set
932 954
933# 955#
@@ -1036,6 +1058,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1036# CONFIG_MAGIC_SYSRQ is not set 1058# CONFIG_MAGIC_SYSRQ is not set
1037# CONFIG_DEBUG_KERNEL is not set 1059# CONFIG_DEBUG_KERNEL is not set
1038CONFIG_LOG_BUF_SHIFT=14 1060CONFIG_LOG_BUF_SHIFT=14
1061# CONFIG_DEBUG_FS is not set
1039CONFIG_CROSSCOMPILE=y 1062CONFIG_CROSSCOMPILE=y
1040CONFIG_CMDLINE="" 1063CONFIG_CMDLINE=""
1041 1064
diff --git a/arch/mips/configs/pnx8550-jbs_defconfig b/arch/mips/configs/pnx8550-jbs_defconfig
index b5db700450ba..4c57e564db0b 100644
--- a/arch/mips/configs/pnx8550-jbs_defconfig
+++ b/arch/mips/configs/pnx8550-jbs_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:26 2006 4# Mon Apr 24 14:51:14 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_PNX8550_JBS=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -114,11 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y
114CONFIG_CPU_HAS_PREFETCH=y 116CONFIG_CPU_HAS_PREFETCH=y
115# CONFIG_MIPS_MT is not set 117# CONFIG_MIPS_MT is not set
116# CONFIG_64BIT_PHYS_ADDR is not set 118# CONFIG_64BIT_PHYS_ADDR is not set
117# CONFIG_CPU_ADVANCED is not set
118CONFIG_CPU_HAS_LLSC=y 119CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 120CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
121CONFIG_GENERIC_IRQ_PROBE=y 122CONFIG_GENERIC_IRQ_PROBE=y
123CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 124CONFIG_ARCH_FLATMEM_ENABLE=y
123CONFIG_SELECT_MEMORY_MODEL=y 125CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 126CONFIG_FLATMEM_MANUAL=y
@@ -136,7 +138,6 @@ CONFIG_PREEMPT_NONE=y
136# Code maturity level options 138# Code maturity level options
137# 139#
138CONFIG_EXPERIMENTAL=y 140CONFIG_EXPERIMENTAL=y
139CONFIG_CLEAN_COMPILE=y
140CONFIG_BROKEN_ON_SMP=y 141CONFIG_BROKEN_ON_SMP=y
141CONFIG_INIT_ENV_ARG_LIMIT=32 142CONFIG_INIT_ENV_ARG_LIMIT=32
142 143
@@ -153,6 +154,7 @@ CONFIG_SYSCTL=y
153# CONFIG_AUDIT is not set 154# CONFIG_AUDIT is not set
154CONFIG_IKCONFIG=y 155CONFIG_IKCONFIG=y
155CONFIG_IKCONFIG_PROC=y 156CONFIG_IKCONFIG_PROC=y
157# CONFIG_RELAY is not set
156CONFIG_INITRAMFS_SOURCE="" 158CONFIG_INITRAMFS_SOURCE=""
157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 159# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
158CONFIG_EMBEDDED=y 160CONFIG_EMBEDDED=y
@@ -167,10 +169,6 @@ CONFIG_BASE_FULL=y
167CONFIG_FUTEX=y 169CONFIG_FUTEX=y
168CONFIG_EPOLL=y 170CONFIG_EPOLL=y
169CONFIG_SHMEM=y 171CONFIG_SHMEM=y
170CONFIG_CC_ALIGN_FUNCTIONS=0
171CONFIG_CC_ALIGN_LABELS=0
172CONFIG_CC_ALIGN_LOOPS=0
173CONFIG_CC_ALIGN_JUMPS=0
174CONFIG_SLAB=y 172CONFIG_SLAB=y
175# CONFIG_TINY_SHMEM is not set 173# CONFIG_TINY_SHMEM is not set
176CONFIG_BASE_SMALL=0 174CONFIG_BASE_SMALL=0
@@ -181,7 +179,6 @@ CONFIG_BASE_SMALL=0
181# 179#
182CONFIG_MODULES=y 180CONFIG_MODULES=y
183# CONFIG_MODULE_UNLOAD is not set 181# CONFIG_MODULE_UNLOAD is not set
184CONFIG_OBSOLETE_MODPARM=y
185# CONFIG_MODVERSIONS is not set 182# CONFIG_MODVERSIONS is not set
186# CONFIG_MODULE_SRCVERSION_ALL is not set 183# CONFIG_MODULE_SRCVERSION_ALL is not set
187CONFIG_KMOD=y 184CONFIG_KMOD=y
@@ -190,6 +187,8 @@ CONFIG_KMOD=y
190# Block layer 187# Block layer
191# 188#
192# CONFIG_LBD is not set 189# CONFIG_LBD is not set
190# CONFIG_BLK_DEV_IO_TRACE is not set
191# CONFIG_LSF is not set
193 192
194# 193#
195# IO Schedulers 194# IO Schedulers
@@ -209,7 +208,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
209# 208#
210CONFIG_HW_HAS_PCI=y 209CONFIG_HW_HAS_PCI=y
211CONFIG_PCI=y 210CONFIG_PCI=y
212# CONFIG_PCI_LEGACY_PROC is not set
213# CONFIG_PCI_DEBUG is not set 211# CONFIG_PCI_DEBUG is not set
214CONFIG_MMU=y 212CONFIG_MMU=y
215 213
@@ -238,6 +236,7 @@ CONFIG_NET=y
238# 236#
239# Networking options 237# Networking options
240# 238#
239# CONFIG_NETDEBUG is not set
241CONFIG_PACKET=y 240CONFIG_PACKET=y
242# CONFIG_PACKET_MMAP is not set 241# CONFIG_PACKET_MMAP is not set
243CONFIG_UNIX=y 242CONFIG_UNIX=y
@@ -257,12 +256,15 @@ CONFIG_IP_PNP_BOOTP=y
257# CONFIG_INET_AH is not set 256# CONFIG_INET_AH is not set
258# CONFIG_INET_ESP is not set 257# CONFIG_INET_ESP is not set
259# CONFIG_INET_IPCOMP is not set 258# CONFIG_INET_IPCOMP is not set
259# CONFIG_INET_XFRM_TUNNEL is not set
260# CONFIG_INET_TUNNEL is not set 260# CONFIG_INET_TUNNEL is not set
261CONFIG_INET_DIAG=y 261CONFIG_INET_DIAG=y
262CONFIG_INET_TCP_DIAG=y 262CONFIG_INET_TCP_DIAG=y
263# CONFIG_TCP_CONG_ADVANCED is not set 263# CONFIG_TCP_CONG_ADVANCED is not set
264CONFIG_TCP_CONG_BIC=y 264CONFIG_TCP_CONG_BIC=y
265# CONFIG_IPV6 is not set 265# CONFIG_IPV6 is not set
266# CONFIG_INET6_XFRM_TUNNEL is not set
267# CONFIG_INET6_TUNNEL is not set
266# CONFIG_NETFILTER is not set 268# CONFIG_NETFILTER is not set
267 269
268# 270#
@@ -274,6 +276,11 @@ CONFIG_TCP_CONG_BIC=y
274# SCTP Configuration (EXPERIMENTAL) 276# SCTP Configuration (EXPERIMENTAL)
275# 277#
276# CONFIG_IP_SCTP is not set 278# CONFIG_IP_SCTP is not set
279
280#
281# TIPC Configuration (EXPERIMENTAL)
282#
283# CONFIG_TIPC is not set
277# CONFIG_ATM is not set 284# CONFIG_ATM is not set
278# CONFIG_BRIDGE is not set 285# CONFIG_BRIDGE is not set
279# CONFIG_VLAN_8021Q is not set 286# CONFIG_VLAN_8021Q is not set
@@ -283,11 +290,6 @@ CONFIG_TCP_CONG_BIC=y
283# CONFIG_ATALK is not set 290# CONFIG_ATALK is not set
284# CONFIG_X25 is not set 291# CONFIG_X25 is not set
285# CONFIG_LAPB is not set 292# CONFIG_LAPB is not set
286
287#
288# TIPC Configuration (EXPERIMENTAL)
289#
290# CONFIG_TIPC is not set
291# CONFIG_NET_DIVERT is not set 293# CONFIG_NET_DIVERT is not set
292# CONFIG_ECONET is not set 294# CONFIG_ECONET is not set
293# CONFIG_WAN_ROUTER is not set 295# CONFIG_WAN_ROUTER is not set
@@ -469,7 +471,6 @@ CONFIG_ISCSI_TCP=m
469# CONFIG_SCSI_INIA100 is not set 471# CONFIG_SCSI_INIA100 is not set
470# CONFIG_SCSI_SYM53C8XX_2 is not set 472# CONFIG_SCSI_SYM53C8XX_2 is not set
471# CONFIG_SCSI_IPR is not set 473# CONFIG_SCSI_IPR is not set
472# CONFIG_SCSI_QLOGIC_FC is not set
473# CONFIG_SCSI_QLOGIC_1280 is not set 474# CONFIG_SCSI_QLOGIC_1280 is not set
474# CONFIG_SCSI_QLA_FC is not set 475# CONFIG_SCSI_QLA_FC is not set
475# CONFIG_SCSI_LPFC is not set 476# CONFIG_SCSI_LPFC is not set
@@ -671,6 +672,7 @@ CONFIG_HW_CONSOLE=y
671# Non-8250 serial port support 672# Non-8250 serial port support
672# 673#
673# CONFIG_SERIAL_IP3106 is not set 674# CONFIG_SERIAL_IP3106 is not set
675# CONFIG_SERIAL_JSM is not set
674CONFIG_UNIX98_PTYS=y 676CONFIG_UNIX98_PTYS=y
675CONFIG_LEGACY_PTYS=y 677CONFIG_LEGACY_PTYS=y
676CONFIG_LEGACY_PTY_COUNT=256 678CONFIG_LEGACY_PTY_COUNT=256
@@ -723,6 +725,7 @@ CONFIG_LEGACY_PTY_COUNT=256
723# 725#
724CONFIG_HWMON=y 726CONFIG_HWMON=y
725# CONFIG_HWMON_VID is not set 727# CONFIG_HWMON_VID is not set
728# CONFIG_SENSORS_F71805F is not set
726# CONFIG_HWMON_DEBUG_CHIP is not set 729# CONFIG_HWMON_DEBUG_CHIP is not set
727 730
728# 731#
@@ -730,10 +733,6 @@ CONFIG_HWMON=y
730# 733#
731 734
732# 735#
733# Multimedia Capabilities Port drivers
734#
735
736#
737# Multimedia devices 736# Multimedia devices
738# 737#
739# CONFIG_VIDEO_DEV is not set 738# CONFIG_VIDEO_DEV is not set
@@ -742,6 +741,7 @@ CONFIG_HWMON=y
742# Digital Video Broadcasting Devices 741# Digital Video Broadcasting Devices
743# 742#
744# CONFIG_DVB is not set 743# CONFIG_DVB is not set
744# CONFIG_USB_DABUSB is not set
745 745
746# 746#
747# Graphics support 747# Graphics support
@@ -764,6 +764,7 @@ CONFIG_DUMMY_CONSOLE=y
764# 764#
765CONFIG_USB_ARCH_HAS_HCD=y 765CONFIG_USB_ARCH_HAS_HCD=y
766CONFIG_USB_ARCH_HAS_OHCI=y 766CONFIG_USB_ARCH_HAS_OHCI=y
767CONFIG_USB_ARCH_HAS_EHCI=y
767CONFIG_USB=y 768CONFIG_USB=y
768# CONFIG_USB_DEBUG is not set 769# CONFIG_USB_DEBUG is not set
769 770
@@ -827,9 +828,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
827# CONFIG_USB_ACECAD is not set 828# CONFIG_USB_ACECAD is not set
828# CONFIG_USB_KBTAB is not set 829# CONFIG_USB_KBTAB is not set
829# CONFIG_USB_POWERMATE is not set 830# CONFIG_USB_POWERMATE is not set
830# CONFIG_USB_MTOUCH is not set 831# CONFIG_USB_TOUCHSCREEN is not set
831# CONFIG_USB_ITMTOUCH is not set
832# CONFIG_USB_EGALAX is not set
833# CONFIG_USB_YEALINK is not set 832# CONFIG_USB_YEALINK is not set
834# CONFIG_USB_XPAD is not set 833# CONFIG_USB_XPAD is not set
835# CONFIG_USB_ATI_REMOTE is not set 834# CONFIG_USB_ATI_REMOTE is not set
@@ -844,15 +843,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
844# CONFIG_USB_MICROTEK is not set 843# CONFIG_USB_MICROTEK is not set
845 844
846# 845#
847# USB Multimedia devices
848#
849# CONFIG_USB_DABUSB is not set
850
851#
852# Video4Linux support is needed for USB Multimedia device support
853#
854
855#
856# USB Network Adapters 846# USB Network Adapters
857# 847#
858# CONFIG_USB_CATC is not set 848# CONFIG_USB_CATC is not set
@@ -902,13 +892,31 @@ CONFIG_USB_MON=y
902# CONFIG_MMC is not set 892# CONFIG_MMC is not set
903 893
904# 894#
895# LED devices
896#
897# CONFIG_NEW_LEDS is not set
898
899#
900# LED drivers
901#
902
903#
904# LED Triggers
905#
906
907#
905# InfiniBand support 908# InfiniBand support
906# 909#
907# CONFIG_INFINIBAND is not set 910# CONFIG_INFINIBAND is not set
908 911
909# 912#
910# SN Devices 913# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
914#
915
916#
917# Real Time Clock
911# 918#
919# CONFIG_RTC_CLASS is not set
912 920
913# 921#
914# File systems 922# File systems
@@ -956,7 +964,6 @@ CONFIG_SYSFS=y
956CONFIG_TMPFS=y 964CONFIG_TMPFS=y
957# CONFIG_HUGETLB_PAGE is not set 965# CONFIG_HUGETLB_PAGE is not set
958CONFIG_RAMFS=y 966CONFIG_RAMFS=y
959# CONFIG_RELAYFS_FS is not set
960# CONFIG_CONFIGFS_FS is not set 967# CONFIG_CONFIGFS_FS is not set
961 968
962# 969#
@@ -1067,6 +1074,7 @@ CONFIG_LOG_BUF_SHIFT=14
1067CONFIG_DETECT_SOFTLOCKUP=y 1074CONFIG_DETECT_SOFTLOCKUP=y
1068# CONFIG_SCHEDSTATS is not set 1075# CONFIG_SCHEDSTATS is not set
1069CONFIG_DEBUG_SLAB=y 1076CONFIG_DEBUG_SLAB=y
1077# CONFIG_DEBUG_SLAB_LEAK is not set
1070CONFIG_DEBUG_MUTEXES=y 1078CONFIG_DEBUG_MUTEXES=y
1071# CONFIG_DEBUG_SPINLOCK is not set 1079# CONFIG_DEBUG_SPINLOCK is not set
1072# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1080# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
diff --git a/arch/mips/configs/pnx8550-v2pci_defconfig b/arch/mips/configs/pnx8550-v2pci_defconfig
index 4187287f0763..3c8f35162fec 100644
--- a/arch/mips/configs/pnx8550-v2pci_defconfig
+++ b/arch/mips/configs/pnx8550-v2pci_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:28 2006 4# Mon Apr 24 14:51:14 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_PNX8550_V2PCI=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -114,12 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y
114CONFIG_CPU_HAS_PREFETCH=y 116CONFIG_CPU_HAS_PREFETCH=y
115# CONFIG_MIPS_MT is not set 117# CONFIG_MIPS_MT is not set
116# CONFIG_64BIT_PHYS_ADDR is not set 118# CONFIG_64BIT_PHYS_ADDR is not set
117CONFIG_CPU_ADVANCED=y
118CONFIG_CPU_HAS_LLSC=y 119CONFIG_CPU_HAS_LLSC=y
119# CONFIG_CPU_HAS_WB is not set
120CONFIG_CPU_HAS_SYNC=y 120CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
122CONFIG_GENERIC_IRQ_PROBE=y 122CONFIG_GENERIC_IRQ_PROBE=y
123CONFIG_CPU_SUPPORTS_HIGHMEM=y
123CONFIG_ARCH_FLATMEM_ENABLE=y 124CONFIG_ARCH_FLATMEM_ENABLE=y
124CONFIG_SELECT_MEMORY_MODEL=y 125CONFIG_SELECT_MEMORY_MODEL=y
125CONFIG_FLATMEM_MANUAL=y 126CONFIG_FLATMEM_MANUAL=y
@@ -137,7 +138,6 @@ CONFIG_PREEMPT_NONE=y
137# Code maturity level options 138# Code maturity level options
138# 139#
139CONFIG_EXPERIMENTAL=y 140CONFIG_EXPERIMENTAL=y
140CONFIG_CLEAN_COMPILE=y
141CONFIG_BROKEN_ON_SMP=y 141CONFIG_BROKEN_ON_SMP=y
142CONFIG_INIT_ENV_ARG_LIMIT=32 142CONFIG_INIT_ENV_ARG_LIMIT=32
143 143
@@ -154,6 +154,7 @@ CONFIG_SYSCTL=y
154# CONFIG_AUDIT is not set 154# CONFIG_AUDIT is not set
155CONFIG_IKCONFIG=y 155CONFIG_IKCONFIG=y
156CONFIG_IKCONFIG_PROC=y 156CONFIG_IKCONFIG_PROC=y
157# CONFIG_RELAY is not set
157CONFIG_INITRAMFS_SOURCE="" 158CONFIG_INITRAMFS_SOURCE=""
158# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 159# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
159CONFIG_EMBEDDED=y 160CONFIG_EMBEDDED=y
@@ -167,10 +168,6 @@ CONFIG_BASE_FULL=y
167CONFIG_FUTEX=y 168CONFIG_FUTEX=y
168CONFIG_EPOLL=y 169CONFIG_EPOLL=y
169CONFIG_SHMEM=y 170CONFIG_SHMEM=y
170CONFIG_CC_ALIGN_FUNCTIONS=0
171CONFIG_CC_ALIGN_LABELS=0
172CONFIG_CC_ALIGN_LOOPS=0
173CONFIG_CC_ALIGN_JUMPS=0
174CONFIG_SLAB=y 171CONFIG_SLAB=y
175# CONFIG_TINY_SHMEM is not set 172# CONFIG_TINY_SHMEM is not set
176CONFIG_BASE_SMALL=0 173CONFIG_BASE_SMALL=0
@@ -181,7 +178,6 @@ CONFIG_BASE_SMALL=0
181# 178#
182CONFIG_MODULES=y 179CONFIG_MODULES=y
183# CONFIG_MODULE_UNLOAD is not set 180# CONFIG_MODULE_UNLOAD is not set
184CONFIG_OBSOLETE_MODPARM=y
185# CONFIG_MODVERSIONS is not set 181# CONFIG_MODVERSIONS is not set
186# CONFIG_MODULE_SRCVERSION_ALL is not set 182# CONFIG_MODULE_SRCVERSION_ALL is not set
187CONFIG_KMOD=y 183CONFIG_KMOD=y
@@ -190,6 +186,8 @@ CONFIG_KMOD=y
190# Block layer 186# Block layer
191# 187#
192# CONFIG_LBD is not set 188# CONFIG_LBD is not set
189# CONFIG_BLK_DEV_IO_TRACE is not set
190# CONFIG_LSF is not set
193 191
194# 192#
195# IO Schedulers 193# IO Schedulers
@@ -209,7 +207,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
209# 207#
210CONFIG_HW_HAS_PCI=y 208CONFIG_HW_HAS_PCI=y
211CONFIG_PCI=y 209CONFIG_PCI=y
212# CONFIG_PCI_LEGACY_PROC is not set
213CONFIG_MMU=y 210CONFIG_MMU=y
214 211
215# 212#
@@ -237,6 +234,7 @@ CONFIG_NET=y
237# 234#
238# Networking options 235# Networking options
239# 236#
237# CONFIG_NETDEBUG is not set
240CONFIG_PACKET=y 238CONFIG_PACKET=y
241# CONFIG_PACKET_MMAP is not set 239# CONFIG_PACKET_MMAP is not set
242CONFIG_UNIX=y 240CONFIG_UNIX=y
@@ -256,6 +254,7 @@ CONFIG_IP_PNP=y
256# CONFIG_INET_AH is not set 254# CONFIG_INET_AH is not set
257# CONFIG_INET_ESP is not set 255# CONFIG_INET_ESP is not set
258# CONFIG_INET_IPCOMP is not set 256# CONFIG_INET_IPCOMP is not set
257# CONFIG_INET_XFRM_TUNNEL is not set
259# CONFIG_INET_TUNNEL is not set 258# CONFIG_INET_TUNNEL is not set
260CONFIG_INET_DIAG=y 259CONFIG_INET_DIAG=y
261CONFIG_INET_TCP_DIAG=y 260CONFIG_INET_TCP_DIAG=y
@@ -268,9 +267,12 @@ CONFIG_TCP_CONG_BIC=y
268# CONFIG_IP_VS is not set 267# CONFIG_IP_VS is not set
269CONFIG_IPV6=m 268CONFIG_IPV6=m
270# CONFIG_IPV6_PRIVACY is not set 269# CONFIG_IPV6_PRIVACY is not set
270CONFIG_IPV6_ROUTER_PREF=y
271CONFIG_IPV6_ROUTE_INFO=y
271# CONFIG_INET6_AH is not set 272# CONFIG_INET6_AH is not set
272# CONFIG_INET6_ESP is not set 273# CONFIG_INET6_ESP is not set
273# CONFIG_INET6_IPCOMP is not set 274# CONFIG_INET6_IPCOMP is not set
275# CONFIG_INET6_XFRM_TUNNEL is not set
274# CONFIG_INET6_TUNNEL is not set 276# CONFIG_INET6_TUNNEL is not set
275# CONFIG_IPV6_TUNNEL is not set 277# CONFIG_IPV6_TUNNEL is not set
276CONFIG_NETFILTER=y 278CONFIG_NETFILTER=y
@@ -287,10 +289,12 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
287CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 289CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
288CONFIG_NETFILTER_XT_MATCH_COMMENT=m 290CONFIG_NETFILTER_XT_MATCH_COMMENT=m
289CONFIG_NETFILTER_XT_MATCH_DCCP=m 291CONFIG_NETFILTER_XT_MATCH_DCCP=m
292CONFIG_NETFILTER_XT_MATCH_ESP=m
290CONFIG_NETFILTER_XT_MATCH_LENGTH=m 293CONFIG_NETFILTER_XT_MATCH_LENGTH=m
291CONFIG_NETFILTER_XT_MATCH_LIMIT=m 294CONFIG_NETFILTER_XT_MATCH_LIMIT=m
292CONFIG_NETFILTER_XT_MATCH_MAC=m 295CONFIG_NETFILTER_XT_MATCH_MAC=m
293CONFIG_NETFILTER_XT_MATCH_MARK=m 296CONFIG_NETFILTER_XT_MATCH_MARK=m
297CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
294CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 298CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
295CONFIG_NETFILTER_XT_MATCH_REALM=m 299CONFIG_NETFILTER_XT_MATCH_REALM=m
296CONFIG_NETFILTER_XT_MATCH_SCTP=m 300CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -320,6 +324,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
320# SCTP Configuration (EXPERIMENTAL) 324# SCTP Configuration (EXPERIMENTAL)
321# 325#
322# CONFIG_IP_SCTP is not set 326# CONFIG_IP_SCTP is not set
327
328#
329# TIPC Configuration (EXPERIMENTAL)
330#
331# CONFIG_TIPC is not set
323# CONFIG_ATM is not set 332# CONFIG_ATM is not set
324# CONFIG_BRIDGE is not set 333# CONFIG_BRIDGE is not set
325# CONFIG_VLAN_8021Q is not set 334# CONFIG_VLAN_8021Q is not set
@@ -329,11 +338,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
329# CONFIG_ATALK is not set 338# CONFIG_ATALK is not set
330# CONFIG_X25 is not set 339# CONFIG_X25 is not set
331# CONFIG_LAPB is not set 340# CONFIG_LAPB is not set
332
333#
334# TIPC Configuration (EXPERIMENTAL)
335#
336# CONFIG_TIPC is not set
337# CONFIG_NET_DIVERT is not set 341# CONFIG_NET_DIVERT is not set
338# CONFIG_ECONET is not set 342# CONFIG_ECONET is not set
339# CONFIG_WAN_ROUTER is not set 343# CONFIG_WAN_ROUTER is not set
@@ -521,7 +525,6 @@ CONFIG_AIC7XXX_DEBUG_MASK=0
521# CONFIG_SCSI_INIA100 is not set 525# CONFIG_SCSI_INIA100 is not set
522# CONFIG_SCSI_SYM53C8XX_2 is not set 526# CONFIG_SCSI_SYM53C8XX_2 is not set
523# CONFIG_SCSI_IPR is not set 527# CONFIG_SCSI_IPR is not set
524# CONFIG_SCSI_QLOGIC_FC is not set
525# CONFIG_SCSI_QLOGIC_1280 is not set 528# CONFIG_SCSI_QLOGIC_1280 is not set
526# CONFIG_SCSI_QLA_FC is not set 529# CONFIG_SCSI_QLA_FC is not set
527# CONFIG_SCSI_LPFC is not set 530# CONFIG_SCSI_LPFC is not set
@@ -757,6 +760,7 @@ CONFIG_SERIAL_NONSTANDARD=y
757# Non-8250 serial port support 760# Non-8250 serial port support
758# 761#
759# CONFIG_SERIAL_IP3106 is not set 762# CONFIG_SERIAL_IP3106 is not set
763# CONFIG_SERIAL_JSM is not set
760CONFIG_UNIX98_PTYS=y 764CONFIG_UNIX98_PTYS=y
761CONFIG_LEGACY_PTYS=y 765CONFIG_LEGACY_PTYS=y
762CONFIG_LEGACY_PTY_COUNT=256 766CONFIG_LEGACY_PTY_COUNT=256
@@ -816,7 +820,6 @@ CONFIG_I2C_ALGOBIT=m
816# CONFIG_I2C_PARPORT_LIGHT is not set 820# CONFIG_I2C_PARPORT_LIGHT is not set
817# CONFIG_I2C_PROSAVAGE is not set 821# CONFIG_I2C_PROSAVAGE is not set
818# CONFIG_I2C_SAVAGE4 is not set 822# CONFIG_I2C_SAVAGE4 is not set
819# CONFIG_SCx200_ACB is not set
820# CONFIG_I2C_SIS5595 is not set 823# CONFIG_I2C_SIS5595 is not set
821# CONFIG_I2C_SIS630 is not set 824# CONFIG_I2C_SIS630 is not set
822# CONFIG_I2C_SIS96X is not set 825# CONFIG_I2C_SIS96X is not set
@@ -835,9 +838,7 @@ CONFIG_I2C_ALGOBIT=m
835# CONFIG_SENSORS_PCF8574 is not set 838# CONFIG_SENSORS_PCF8574 is not set
836# CONFIG_SENSORS_PCA9539 is not set 839# CONFIG_SENSORS_PCA9539 is not set
837# CONFIG_SENSORS_PCF8591 is not set 840# CONFIG_SENSORS_PCF8591 is not set
838# CONFIG_SENSORS_RTC8564 is not set
839# CONFIG_SENSORS_MAX6875 is not set 841# CONFIG_SENSORS_MAX6875 is not set
840# CONFIG_RTC_X1205_I2C is not set
841# CONFIG_I2C_DEBUG_CORE is not set 842# CONFIG_I2C_DEBUG_CORE is not set
842# CONFIG_I2C_DEBUG_ALGO is not set 843# CONFIG_I2C_DEBUG_ALGO is not set
843# CONFIG_I2C_DEBUG_BUS is not set 844# CONFIG_I2C_DEBUG_BUS is not set
@@ -867,6 +868,7 @@ CONFIG_HWMON=y
867# CONFIG_SENSORS_ASB100 is not set 868# CONFIG_SENSORS_ASB100 is not set
868# CONFIG_SENSORS_ATXP1 is not set 869# CONFIG_SENSORS_ATXP1 is not set
869# CONFIG_SENSORS_DS1621 is not set 870# CONFIG_SENSORS_DS1621 is not set
871# CONFIG_SENSORS_F71805F is not set
870# CONFIG_SENSORS_FSCHER is not set 872# CONFIG_SENSORS_FSCHER is not set
871# CONFIG_SENSORS_FSCPOS is not set 873# CONFIG_SENSORS_FSCPOS is not set
872# CONFIG_SENSORS_GL518SM is not set 874# CONFIG_SENSORS_GL518SM is not set
@@ -901,10 +903,6 @@ CONFIG_HWMON=y
901# 903#
902 904
903# 905#
904# Multimedia Capabilities Port drivers
905#
906
907#
908# Multimedia devices 906# Multimedia devices
909# 907#
910# CONFIG_VIDEO_DEV is not set 908# CONFIG_VIDEO_DEV is not set
@@ -913,6 +911,7 @@ CONFIG_HWMON=y
913# Digital Video Broadcasting Devices 911# Digital Video Broadcasting Devices
914# 912#
915# CONFIG_DVB is not set 913# CONFIG_DVB is not set
914# CONFIG_USB_DABUSB is not set
916 915
917# 916#
918# Graphics support 917# Graphics support
@@ -922,6 +921,7 @@ CONFIG_FB=y
922# CONFIG_FB_CFB_COPYAREA is not set 921# CONFIG_FB_CFB_COPYAREA is not set
923# CONFIG_FB_CFB_IMAGEBLIT is not set 922# CONFIG_FB_CFB_IMAGEBLIT is not set
924# CONFIG_FB_MACMODES is not set 923# CONFIG_FB_MACMODES is not set
924CONFIG_FB_FIRMWARE_EDID=y
925# CONFIG_FB_MODE_HELPERS is not set 925# CONFIG_FB_MODE_HELPERS is not set
926# CONFIG_FB_TILEBLITTING is not set 926# CONFIG_FB_TILEBLITTING is not set
927# CONFIG_FB_CIRRUS is not set 927# CONFIG_FB_CIRRUS is not set
@@ -933,7 +933,6 @@ CONFIG_FB=y
933# CONFIG_FB_NVIDIA is not set 933# CONFIG_FB_NVIDIA is not set
934# CONFIG_FB_RIVA is not set 934# CONFIG_FB_RIVA is not set
935# CONFIG_FB_MATROX is not set 935# CONFIG_FB_MATROX is not set
936# CONFIG_FB_RADEON_OLD is not set
937# CONFIG_FB_RADEON is not set 936# CONFIG_FB_RADEON is not set
938# CONFIG_FB_ATY128 is not set 937# CONFIG_FB_ATY128 is not set
939# CONFIG_FB_ATY is not set 938# CONFIG_FB_ATY is not set
@@ -970,6 +969,7 @@ CONFIG_DUMMY_CONSOLE=y
970# 969#
971CONFIG_USB_ARCH_HAS_HCD=y 970CONFIG_USB_ARCH_HAS_HCD=y
972CONFIG_USB_ARCH_HAS_OHCI=y 971CONFIG_USB_ARCH_HAS_OHCI=y
972CONFIG_USB_ARCH_HAS_EHCI=y
973CONFIG_USB=y 973CONFIG_USB=y
974# CONFIG_USB_DEBUG is not set 974# CONFIG_USB_DEBUG is not set
975 975
@@ -1030,9 +1030,7 @@ CONFIG_USB_HIDDEV=y
1030# CONFIG_USB_ACECAD is not set 1030# CONFIG_USB_ACECAD is not set
1031# CONFIG_USB_KBTAB is not set 1031# CONFIG_USB_KBTAB is not set
1032# CONFIG_USB_POWERMATE is not set 1032# CONFIG_USB_POWERMATE is not set
1033# CONFIG_USB_MTOUCH is not set 1033# CONFIG_USB_TOUCHSCREEN is not set
1034# CONFIG_USB_ITMTOUCH is not set
1035# CONFIG_USB_EGALAX is not set
1036# CONFIG_USB_YEALINK is not set 1034# CONFIG_USB_YEALINK is not set
1037# CONFIG_USB_XPAD is not set 1035# CONFIG_USB_XPAD is not set
1038# CONFIG_USB_ATI_REMOTE is not set 1036# CONFIG_USB_ATI_REMOTE is not set
@@ -1047,15 +1045,6 @@ CONFIG_USB_HIDDEV=y
1047# CONFIG_USB_MICROTEK is not set 1045# CONFIG_USB_MICROTEK is not set
1048 1046
1049# 1047#
1050# USB Multimedia devices
1051#
1052# CONFIG_USB_DABUSB is not set
1053
1054#
1055# Video4Linux support is needed for USB Multimedia device support
1056#
1057
1058#
1059# USB Network Adapters 1048# USB Network Adapters
1060# 1049#
1061# CONFIG_USB_CATC is not set 1050# CONFIG_USB_CATC is not set
@@ -1106,13 +1095,31 @@ CONFIG_USB_MON=y
1106# CONFIG_MMC is not set 1095# CONFIG_MMC is not set
1107 1096
1108# 1097#
1098# LED devices
1099#
1100# CONFIG_NEW_LEDS is not set
1101
1102#
1103# LED drivers
1104#
1105
1106#
1107# LED Triggers
1108#
1109
1110#
1109# InfiniBand support 1111# InfiniBand support
1110# 1112#
1111# CONFIG_INFINIBAND is not set 1113# CONFIG_INFINIBAND is not set
1112 1114
1113# 1115#
1114# SN Devices 1116# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1117#
1118
1119#
1120# Real Time Clock
1115# 1121#
1122# CONFIG_RTC_CLASS is not set
1116 1123
1117# 1124#
1118# File systems 1125# File systems
@@ -1171,7 +1178,6 @@ CONFIG_SYSFS=y
1171CONFIG_TMPFS=y 1178CONFIG_TMPFS=y
1172# CONFIG_HUGETLB_PAGE is not set 1179# CONFIG_HUGETLB_PAGE is not set
1173CONFIG_RAMFS=y 1180CONFIG_RAMFS=y
1174# CONFIG_RELAYFS_FS is not set
1175# CONFIG_CONFIGFS_FS is not set 1181# CONFIG_CONFIGFS_FS is not set
1176 1182
1177# 1183#
@@ -1280,6 +1286,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1280# CONFIG_MAGIC_SYSRQ is not set 1286# CONFIG_MAGIC_SYSRQ is not set
1281# CONFIG_DEBUG_KERNEL is not set 1287# CONFIG_DEBUG_KERNEL is not set
1282CONFIG_LOG_BUF_SHIFT=14 1288CONFIG_LOG_BUF_SHIFT=14
1289# CONFIG_DEBUG_FS is not set
1283CONFIG_CROSSCOMPILE=y 1290CONFIG_CROSSCOMPILE=y
1284CONFIG_CMDLINE="" 1291CONFIG_CMDLINE=""
1285 1292
diff --git a/arch/mips/configs/qemu_defconfig b/arch/mips/configs/qemu_defconfig
index 31f5afabafa8..4bcc01dea041 100644
--- a/arch/mips/configs/qemu_defconfig
+++ b/arch/mips/configs/qemu_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.16-rc2 3# Linux kernel version: 2.6.17-rc2
4# Sun Feb 12 19:18:55 2006 4# Mon Apr 24 14:51:15 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_QEMU=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_COHERENT=y 70CONFIG_DMA_COHERENT=y
69CONFIG_GENERIC_ISA_DMA=y 71CONFIG_GENERIC_ISA_DMA=y
@@ -115,16 +117,17 @@ CONFIG_PAGE_SIZE_4KB=y
115CONFIG_CPU_HAS_PREFETCH=y 117CONFIG_CPU_HAS_PREFETCH=y
116# CONFIG_MIPS_MT is not set 118# CONFIG_MIPS_MT is not set
117# CONFIG_64BIT_PHYS_ADDR is not set 119# CONFIG_64BIT_PHYS_ADDR is not set
118# CONFIG_CPU_ADVANCED is not set
119CONFIG_CPU_HAS_LLSC=y 120CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 121CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y 122CONFIG_GENERIC_HARDIRQS=y
122CONFIG_GENERIC_IRQ_PROBE=y 123CONFIG_GENERIC_IRQ_PROBE=y
124CONFIG_CPU_SUPPORTS_HIGHMEM=y
123CONFIG_ARCH_FLATMEM_ENABLE=y 125CONFIG_ARCH_FLATMEM_ENABLE=y
124CONFIG_FLATMEM=y 126CONFIG_FLATMEM=y
125CONFIG_FLAT_NODE_MEM_MAP=y 127CONFIG_FLAT_NODE_MEM_MAP=y
126# CONFIG_SPARSEMEM_STATIC is not set 128# CONFIG_SPARSEMEM_STATIC is not set
127CONFIG_SPLIT_PTLOCK_CPUS=4 129CONFIG_SPLIT_PTLOCK_CPUS=4
130# CONFIG_SMP is not set
128CONFIG_PREEMPT_NONE=y 131CONFIG_PREEMPT_NONE=y
129# CONFIG_PREEMPT_VOLUNTARY is not set 132# CONFIG_PREEMPT_VOLUNTARY is not set
130# CONFIG_PREEMPT is not set 133# CONFIG_PREEMPT is not set
@@ -147,6 +150,7 @@ CONFIG_LOCALVERSION_AUTO=y
147CONFIG_SYSCTL=y 150CONFIG_SYSCTL=y
148# CONFIG_AUDIT is not set 151# CONFIG_AUDIT is not set
149# CONFIG_IKCONFIG is not set 152# CONFIG_IKCONFIG is not set
153CONFIG_RELAY=y
150CONFIG_INITRAMFS_SOURCE="" 154CONFIG_INITRAMFS_SOURCE=""
151CONFIG_EMBEDDED=y 155CONFIG_EMBEDDED=y
152CONFIG_KALLSYMS=y 156CONFIG_KALLSYMS=y
@@ -159,10 +163,6 @@ CONFIG_ELF_CORE=y
159# CONFIG_FUTEX is not set 163# CONFIG_FUTEX is not set
160# CONFIG_EPOLL is not set 164# CONFIG_EPOLL is not set
161# CONFIG_SHMEM is not set 165# CONFIG_SHMEM is not set
162CONFIG_CC_ALIGN_FUNCTIONS=0
163CONFIG_CC_ALIGN_LABELS=0
164CONFIG_CC_ALIGN_LOOPS=0
165CONFIG_CC_ALIGN_JUMPS=0
166CONFIG_SLAB=y 166CONFIG_SLAB=y
167CONFIG_TINY_SHMEM=y 167CONFIG_TINY_SHMEM=y
168CONFIG_BASE_SMALL=1 168CONFIG_BASE_SMALL=1
@@ -177,6 +177,8 @@ CONFIG_BASE_SMALL=1
177# Block layer 177# Block layer
178# 178#
179# CONFIG_LBD is not set 179# CONFIG_LBD is not set
180# CONFIG_BLK_DEV_IO_TRACE is not set
181# CONFIG_LSF is not set
180 182
181# 183#
182# IO Schedulers 184# IO Schedulers
@@ -196,6 +198,7 @@ CONFIG_DEFAULT_IOSCHED="noop"
196# 198#
197CONFIG_ISA=y 199CONFIG_ISA=y
198CONFIG_MMU=y 200CONFIG_MMU=y
201CONFIG_I8253=y
199 202
200# 203#
201# PCCARD (PCMCIA/CardBus) support 204# PCCARD (PCMCIA/CardBus) support
@@ -241,12 +244,15 @@ CONFIG_IP_PNP_BOOTP=y
241# CONFIG_INET_AH is not set 244# CONFIG_INET_AH is not set
242# CONFIG_INET_ESP is not set 245# CONFIG_INET_ESP is not set
243# CONFIG_INET_IPCOMP is not set 246# CONFIG_INET_IPCOMP is not set
247# CONFIG_INET_XFRM_TUNNEL is not set
244# CONFIG_INET_TUNNEL is not set 248# CONFIG_INET_TUNNEL is not set
245CONFIG_INET_DIAG=y 249CONFIG_INET_DIAG=y
246CONFIG_INET_TCP_DIAG=y 250CONFIG_INET_TCP_DIAG=y
247# CONFIG_TCP_CONG_ADVANCED is not set 251# CONFIG_TCP_CONG_ADVANCED is not set
248CONFIG_TCP_CONG_BIC=y 252CONFIG_TCP_CONG_BIC=y
249# CONFIG_IPV6 is not set 253# CONFIG_IPV6 is not set
254# CONFIG_INET6_XFRM_TUNNEL is not set
255# CONFIG_INET6_TUNNEL is not set
250# CONFIG_NETFILTER is not set 256# CONFIG_NETFILTER is not set
251# CONFIG_BRIDGE is not set 257# CONFIG_BRIDGE is not set
252# CONFIG_VLAN_8021Q is not set 258# CONFIG_VLAN_8021Q is not set
@@ -308,7 +314,7 @@ CONFIG_PROC_EVENTS=y
308# CONFIG_BLK_DEV_LOOP is not set 314# CONFIG_BLK_DEV_LOOP is not set
309# CONFIG_BLK_DEV_NBD is not set 315# CONFIG_BLK_DEV_NBD is not set
310# CONFIG_BLK_DEV_RAM is not set 316# CONFIG_BLK_DEV_RAM is not set
311CONFIG_BLK_DEV_RAM_COUNT=16 317# CONFIG_BLK_DEV_INITRD is not set
312# CONFIG_CDROM_PKTCDVD is not set 318# CONFIG_CDROM_PKTCDVD is not set
313# CONFIG_ATA_OVER_ETH is not set 319# CONFIG_ATA_OVER_ETH is not set
314 320
@@ -530,10 +536,6 @@ CONFIG_LEGACY_PTY_COUNT=256
530# 536#
531 537
532# 538#
533# Multimedia Capabilities Port drivers
534#
535
536#
537# Multimedia devices 539# Multimedia devices
538# 540#
539# CONFIG_VIDEO_DEV is not set 541# CONFIG_VIDEO_DEV is not set
@@ -552,6 +554,7 @@ CONFIG_LEGACY_PTY_COUNT=256
552# Console display driver support 554# Console display driver support
553# 555#
554CONFIG_VGA_CONSOLE=y 556CONFIG_VGA_CONSOLE=y
557# CONFIG_VGACON_SOFT_SCROLLBACK is not set
555# CONFIG_MDA_CONSOLE is not set 558# CONFIG_MDA_CONSOLE is not set
556CONFIG_DUMMY_CONSOLE=y 559CONFIG_DUMMY_CONSOLE=y
557 560
@@ -565,6 +568,7 @@ CONFIG_DUMMY_CONSOLE=y
565# 568#
566# CONFIG_USB_ARCH_HAS_HCD is not set 569# CONFIG_USB_ARCH_HAS_HCD is not set
567# CONFIG_USB_ARCH_HAS_OHCI is not set 570# CONFIG_USB_ARCH_HAS_OHCI is not set
571# CONFIG_USB_ARCH_HAS_EHCI is not set
568 572
569# 573#
570# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 574# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -581,15 +585,28 @@ CONFIG_DUMMY_CONSOLE=y
581# CONFIG_MMC is not set 585# CONFIG_MMC is not set
582 586
583# 587#
588# LED devices
589#
590# CONFIG_NEW_LEDS is not set
591
592#
593# LED drivers
594#
595
596#
597# LED Triggers
598#
599
600#
584# InfiniBand support 601# InfiniBand support
585# 602#
586 603
587# 604#
588# SN Devices 605# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
589# 606#
590 607
591# 608#
592# EDAC - error detection and reporting (RAS) 609# Real Time Clock
593# 610#
594 611
595# 612#
@@ -632,7 +649,6 @@ CONFIG_SYSFS=y
632# CONFIG_TMPFS is not set 649# CONFIG_TMPFS is not set
633# CONFIG_HUGETLB_PAGE is not set 650# CONFIG_HUGETLB_PAGE is not set
634CONFIG_RAMFS=y 651CONFIG_RAMFS=y
635CONFIG_RELAYFS_FS=y
636 652
637# 653#
638# Miscellaneous filesystems 654# Miscellaneous filesystems
@@ -680,6 +696,8 @@ CONFIG_MSDOS_PARTITION=y
680# CONFIG_MAGIC_SYSRQ is not set 696# CONFIG_MAGIC_SYSRQ is not set
681# CONFIG_DEBUG_KERNEL is not set 697# CONFIG_DEBUG_KERNEL is not set
682CONFIG_LOG_BUF_SHIFT=14 698CONFIG_LOG_BUF_SHIFT=14
699# CONFIG_DEBUG_FS is not set
700# CONFIG_UNWIND_INFO is not set
683CONFIG_CROSSCOMPILE=y 701CONFIG_CROSSCOMPILE=y
684CONFIG_CMDLINE="" 702CONFIG_CMDLINE=""
685 703
diff --git a/arch/mips/configs/rbhma4500_defconfig b/arch/mips/configs/rbhma4500_defconfig
index b126f763cf51..3d441932e43a 100644
--- a/arch/mips/configs/rbhma4500_defconfig
+++ b/arch/mips/configs/rbhma4500_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:30 2006 4# Mon Apr 24 14:51:16 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -71,6 +71,8 @@ CONFIG_TOSHIBA_RBTX4938_MPLEX_PIO58_61=y
71# CONFIG_TOSHIBA_RBTX4938_MPLEX_NAND is not set 71# CONFIG_TOSHIBA_RBTX4938_MPLEX_NAND is not set
72# CONFIG_TOSHIBA_RBTX4938_MPLEX_ATA is not set 72# CONFIG_TOSHIBA_RBTX4938_MPLEX_ATA is not set
73CONFIG_RWSEM_GENERIC_SPINLOCK=y 73CONFIG_RWSEM_GENERIC_SPINLOCK=y
74CONFIG_GENERIC_FIND_NEXT_BIT=y
75CONFIG_GENERIC_HWEIGHT=y
74CONFIG_GENERIC_CALIBRATE_DELAY=y 76CONFIG_GENERIC_CALIBRATE_DELAY=y
75CONFIG_DMA_NONCOHERENT=y 77CONFIG_DMA_NONCOHERENT=y
76CONFIG_DMA_NEED_PCI_MAP_STATE=y 78CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -121,10 +123,9 @@ CONFIG_PAGE_SIZE_4KB=y
121# CONFIG_PAGE_SIZE_8KB is not set 123# CONFIG_PAGE_SIZE_8KB is not set
122# CONFIG_PAGE_SIZE_16KB is not set 124# CONFIG_PAGE_SIZE_16KB is not set
123# CONFIG_PAGE_SIZE_64KB is not set 125# CONFIG_PAGE_SIZE_64KB is not set
126CONFIG_CPU_HAS_PREFETCH=y
124# CONFIG_MIPS_MT is not set 127# CONFIG_MIPS_MT is not set
125CONFIG_CPU_ADVANCED=y
126CONFIG_CPU_HAS_LLSC=y 128CONFIG_CPU_HAS_LLSC=y
127CONFIG_CPU_HAS_WB=y
128CONFIG_CPU_HAS_SYNC=y 129CONFIG_CPU_HAS_SYNC=y
129CONFIG_GENERIC_HARDIRQS=y 130CONFIG_GENERIC_HARDIRQS=y
130CONFIG_GENERIC_IRQ_PROBE=y 131CONFIG_GENERIC_IRQ_PROBE=y
@@ -145,7 +146,6 @@ CONFIG_PREEMPT_NONE=y
145# Code maturity level options 146# Code maturity level options
146# 147#
147CONFIG_EXPERIMENTAL=y 148CONFIG_EXPERIMENTAL=y
148CONFIG_CLEAN_COMPILE=y
149CONFIG_BROKEN_ON_SMP=y 149CONFIG_BROKEN_ON_SMP=y
150CONFIG_INIT_ENV_ARG_LIMIT=32 150CONFIG_INIT_ENV_ARG_LIMIT=32
151 151
@@ -162,6 +162,7 @@ CONFIG_SYSCTL=y
162# CONFIG_AUDIT is not set 162# CONFIG_AUDIT is not set
163CONFIG_IKCONFIG=y 163CONFIG_IKCONFIG=y
164CONFIG_IKCONFIG_PROC=y 164CONFIG_IKCONFIG_PROC=y
165CONFIG_RELAY=y
165CONFIG_INITRAMFS_SOURCE="" 166CONFIG_INITRAMFS_SOURCE=""
166# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 167# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
167CONFIG_EMBEDDED=y 168CONFIG_EMBEDDED=y
@@ -175,10 +176,6 @@ CONFIG_BASE_FULL=y
175# CONFIG_FUTEX is not set 176# CONFIG_FUTEX is not set
176# CONFIG_EPOLL is not set 177# CONFIG_EPOLL is not set
177CONFIG_SHMEM=y 178CONFIG_SHMEM=y
178CONFIG_CC_ALIGN_FUNCTIONS=0
179CONFIG_CC_ALIGN_LABELS=0
180CONFIG_CC_ALIGN_LOOPS=0
181CONFIG_CC_ALIGN_JUMPS=0
182CONFIG_SLAB=y 179CONFIG_SLAB=y
183# CONFIG_TINY_SHMEM is not set 180# CONFIG_TINY_SHMEM is not set
184CONFIG_BASE_SMALL=0 181CONFIG_BASE_SMALL=0
@@ -190,7 +187,6 @@ CONFIG_OBSOLETE_INTERMODULE=y
190# 187#
191CONFIG_MODULES=y 188CONFIG_MODULES=y
192# CONFIG_MODULE_UNLOAD is not set 189# CONFIG_MODULE_UNLOAD is not set
193CONFIG_OBSOLETE_MODPARM=y
194# CONFIG_MODVERSIONS is not set 190# CONFIG_MODVERSIONS is not set
195# CONFIG_MODULE_SRCVERSION_ALL is not set 191# CONFIG_MODULE_SRCVERSION_ALL is not set
196CONFIG_KMOD=y 192CONFIG_KMOD=y
@@ -199,6 +195,8 @@ CONFIG_KMOD=y
199# Block layer 195# Block layer
200# 196#
201# CONFIG_LBD is not set 197# CONFIG_LBD is not set
198# CONFIG_BLK_DEV_IO_TRACE is not set
199# CONFIG_LSF is not set
202 200
203# 201#
204# IO Schedulers 202# IO Schedulers
@@ -218,7 +216,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
218# 216#
219CONFIG_HW_HAS_PCI=y 217CONFIG_HW_HAS_PCI=y
220CONFIG_PCI=y 218CONFIG_PCI=y
221# CONFIG_PCI_LEGACY_PROC is not set
222CONFIG_ISA=y 219CONFIG_ISA=y
223CONFIG_MMU=y 220CONFIG_MMU=y
224 221
@@ -247,6 +244,7 @@ CONFIG_NET=y
247# 244#
248# Networking options 245# Networking options
249# 246#
247# CONFIG_NETDEBUG is not set
250CONFIG_PACKET=y 248CONFIG_PACKET=y
251# CONFIG_PACKET_MMAP is not set 249# CONFIG_PACKET_MMAP is not set
252CONFIG_UNIX=y 250CONFIG_UNIX=y
@@ -267,6 +265,7 @@ CONFIG_IP_PNP_BOOTP=y
267# CONFIG_INET_AH is not set 265# CONFIG_INET_AH is not set
268# CONFIG_INET_ESP is not set 266# CONFIG_INET_ESP is not set
269# CONFIG_INET_IPCOMP is not set 267# CONFIG_INET_IPCOMP is not set
268# CONFIG_INET_XFRM_TUNNEL is not set
270# CONFIG_INET_TUNNEL is not set 269# CONFIG_INET_TUNNEL is not set
271CONFIG_INET_DIAG=y 270CONFIG_INET_DIAG=y
272CONFIG_INET_TCP_DIAG=y 271CONFIG_INET_TCP_DIAG=y
@@ -279,9 +278,12 @@ CONFIG_TCP_CONG_BIC=y
279# CONFIG_IP_VS is not set 278# CONFIG_IP_VS is not set
280CONFIG_IPV6=m 279CONFIG_IPV6=m
281# CONFIG_IPV6_PRIVACY is not set 280# CONFIG_IPV6_PRIVACY is not set
281CONFIG_IPV6_ROUTER_PREF=y
282CONFIG_IPV6_ROUTE_INFO=y
282# CONFIG_INET6_AH is not set 283# CONFIG_INET6_AH is not set
283# CONFIG_INET6_ESP is not set 284# CONFIG_INET6_ESP is not set
284# CONFIG_INET6_IPCOMP is not set 285# CONFIG_INET6_IPCOMP is not set
286# CONFIG_INET6_XFRM_TUNNEL is not set
285# CONFIG_INET6_TUNNEL is not set 287# CONFIG_INET6_TUNNEL is not set
286# CONFIG_IPV6_TUNNEL is not set 288# CONFIG_IPV6_TUNNEL is not set
287CONFIG_NETFILTER=y 289CONFIG_NETFILTER=y
@@ -300,10 +302,12 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
300CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 302CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
301CONFIG_NETFILTER_XT_MATCH_COMMENT=m 303CONFIG_NETFILTER_XT_MATCH_COMMENT=m
302CONFIG_NETFILTER_XT_MATCH_DCCP=m 304CONFIG_NETFILTER_XT_MATCH_DCCP=m
305CONFIG_NETFILTER_XT_MATCH_ESP=m
303CONFIG_NETFILTER_XT_MATCH_LENGTH=m 306CONFIG_NETFILTER_XT_MATCH_LENGTH=m
304CONFIG_NETFILTER_XT_MATCH_LIMIT=m 307CONFIG_NETFILTER_XT_MATCH_LIMIT=m
305CONFIG_NETFILTER_XT_MATCH_MAC=m 308CONFIG_NETFILTER_XT_MATCH_MAC=m
306CONFIG_NETFILTER_XT_MATCH_MARK=m 309CONFIG_NETFILTER_XT_MATCH_MARK=m
310CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
307CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 311CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
308CONFIG_NETFILTER_XT_MATCH_REALM=m 312CONFIG_NETFILTER_XT_MATCH_REALM=m
309CONFIG_NETFILTER_XT_MATCH_SCTP=m 313CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -333,6 +337,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
333# SCTP Configuration (EXPERIMENTAL) 337# SCTP Configuration (EXPERIMENTAL)
334# 338#
335# CONFIG_IP_SCTP is not set 339# CONFIG_IP_SCTP is not set
340
341#
342# TIPC Configuration (EXPERIMENTAL)
343#
344# CONFIG_TIPC is not set
336# CONFIG_ATM is not set 345# CONFIG_ATM is not set
337# CONFIG_BRIDGE is not set 346# CONFIG_BRIDGE is not set
338# CONFIG_VLAN_8021Q is not set 347# CONFIG_VLAN_8021Q is not set
@@ -342,11 +351,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
342# CONFIG_ATALK is not set 351# CONFIG_ATALK is not set
343# CONFIG_X25 is not set 352# CONFIG_X25 is not set
344# CONFIG_LAPB is not set 353# CONFIG_LAPB is not set
345
346#
347# TIPC Configuration (EXPERIMENTAL)
348#
349# CONFIG_TIPC is not set
350# CONFIG_NET_DIVERT is not set 354# CONFIG_NET_DIVERT is not set
351# CONFIG_ECONET is not set 355# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 356# CONFIG_WAN_ROUTER is not set
@@ -369,6 +373,9 @@ CONFIG_IEEE80211=m
369CONFIG_IEEE80211_CRYPT_WEP=m 373CONFIG_IEEE80211_CRYPT_WEP=m
370CONFIG_IEEE80211_CRYPT_CCMP=m 374CONFIG_IEEE80211_CRYPT_CCMP=m
371CONFIG_IEEE80211_CRYPT_TKIP=m 375CONFIG_IEEE80211_CRYPT_TKIP=m
376CONFIG_IEEE80211_SOFTMAC=m
377# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
378CONFIG_WIRELESS_EXT=y
372 379
373# 380#
374# Device Drivers 381# Device Drivers
@@ -425,7 +432,6 @@ CONFIG_MTD_CFI_I2=y
425# CONFIG_MTD_CFI_I8 is not set 432# CONFIG_MTD_CFI_I8 is not set
426CONFIG_MTD_CFI_INTELEXT=y 433CONFIG_MTD_CFI_INTELEXT=y
427CONFIG_MTD_CFI_AMDSTD=y 434CONFIG_MTD_CFI_AMDSTD=y
428CONFIG_MTD_CFI_AMDSTD_RETRY=0
429# CONFIG_MTD_CFI_STAA is not set 435# CONFIG_MTD_CFI_STAA is not set
430CONFIG_MTD_CFI_UTIL=y 436CONFIG_MTD_CFI_UTIL=y
431# CONFIG_MTD_RAM is not set 437# CONFIG_MTD_RAM is not set
@@ -447,7 +453,6 @@ CONFIG_MTD_CFI_UTIL=y
447# CONFIG_MTD_SLRAM is not set 453# CONFIG_MTD_SLRAM is not set
448# CONFIG_MTD_PHRAM is not set 454# CONFIG_MTD_PHRAM is not set
449# CONFIG_MTD_MTDRAM is not set 455# CONFIG_MTD_MTDRAM is not set
450# CONFIG_MTD_BLKMTD is not set
451# CONFIG_MTD_BLOCK2MTD is not set 456# CONFIG_MTD_BLOCK2MTD is not set
452 457
453# 458#
@@ -702,6 +707,7 @@ CONFIG_NET_PCI=y
702# Wireless LAN (non-hamradio) 707# Wireless LAN (non-hamradio)
703# 708#
704CONFIG_NET_RADIO=y 709CONFIG_NET_RADIO=y
710# CONFIG_NET_WIRELESS_RTNETLINK is not set
705 711
706# 712#
707# Obsolete Wireless cards support (pre-802.11) 713# Obsolete Wireless cards support (pre-802.11)
@@ -715,6 +721,8 @@ CONFIG_NET_RADIO=y
715# 721#
716# CONFIG_IPW2100 is not set 722# CONFIG_IPW2100 is not set
717CONFIG_IPW2200=m 723CONFIG_IPW2200=m
724# CONFIG_IPW2200_MONITOR is not set
725# CONFIG_IPW_QOS is not set
718# CONFIG_IPW2200_DEBUG is not set 726# CONFIG_IPW2200_DEBUG is not set
719# CONFIG_HERMES is not set 727# CONFIG_HERMES is not set
720# CONFIG_ATMEL is not set 728# CONFIG_ATMEL is not set
@@ -724,6 +732,7 @@ CONFIG_IPW2200=m
724# 732#
725# CONFIG_PRISM54 is not set 733# CONFIG_PRISM54 is not set
726# CONFIG_HOSTAP is not set 734# CONFIG_HOSTAP is not set
735# CONFIG_BCM43XX is not set
727CONFIG_NET_WIRELESS=y 736CONFIG_NET_WIRELESS=y
728 737
729# 738#
@@ -821,7 +830,12 @@ CONFIG_HW_CONSOLE=y
821# 830#
822# Non-8250 serial port support 831# Non-8250 serial port support
823# 832#
833CONFIG_SERIAL_CORE=y
834CONFIG_SERIAL_TXX9=y
824CONFIG_HAS_TXX9_SERIAL=y 835CONFIG_HAS_TXX9_SERIAL=y
836# CONFIG_SERIAL_TXX9_CONSOLE is not set
837# CONFIG_SERIAL_TXX9_STDSERIAL is not set
838# CONFIG_SERIAL_JSM is not set
825CONFIG_UNIX98_PTYS=y 839CONFIG_UNIX98_PTYS=y
826CONFIG_LEGACY_PTYS=y 840CONFIG_LEGACY_PTYS=y
827CONFIG_LEGACY_PTY_COUNT=256 841CONFIG_LEGACY_PTY_COUNT=256
@@ -874,6 +888,7 @@ CONFIG_LEGACY_PTY_COUNT=256
874# 888#
875CONFIG_HWMON=y 889CONFIG_HWMON=y
876# CONFIG_HWMON_VID is not set 890# CONFIG_HWMON_VID is not set
891# CONFIG_SENSORS_F71805F is not set
877# CONFIG_HWMON_DEBUG_CHIP is not set 892# CONFIG_HWMON_DEBUG_CHIP is not set
878 893
879# 894#
@@ -881,10 +896,6 @@ CONFIG_HWMON=y
881# 896#
882 897
883# 898#
884# Multimedia Capabilities Port drivers
885#
886
887#
888# Multimedia devices 899# Multimedia devices
889# 900#
890# CONFIG_VIDEO_DEV is not set 901# CONFIG_VIDEO_DEV is not set
@@ -893,6 +904,7 @@ CONFIG_HWMON=y
893# Digital Video Broadcasting Devices 904# Digital Video Broadcasting Devices
894# 905#
895# CONFIG_DVB is not set 906# CONFIG_DVB is not set
907# CONFIG_USB_DABUSB is not set
896 908
897# 909#
898# Graphics support 910# Graphics support
@@ -902,6 +914,7 @@ CONFIG_FB_CFB_FILLRECT=y
902CONFIG_FB_CFB_COPYAREA=y 914CONFIG_FB_CFB_COPYAREA=y
903CONFIG_FB_CFB_IMAGEBLIT=y 915CONFIG_FB_CFB_IMAGEBLIT=y
904# CONFIG_FB_MACMODES is not set 916# CONFIG_FB_MACMODES is not set
917CONFIG_FB_FIRMWARE_EDID=y
905# CONFIG_FB_MODE_HELPERS is not set 918# CONFIG_FB_MODE_HELPERS is not set
906# CONFIG_FB_TILEBLITTING is not set 919# CONFIG_FB_TILEBLITTING is not set
907# CONFIG_FB_CIRRUS is not set 920# CONFIG_FB_CIRRUS is not set
@@ -913,7 +926,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
913# CONFIG_FB_NVIDIA is not set 926# CONFIG_FB_NVIDIA is not set
914# CONFIG_FB_RIVA is not set 927# CONFIG_FB_RIVA is not set
915# CONFIG_FB_MATROX is not set 928# CONFIG_FB_MATROX is not set
916# CONFIG_FB_RADEON_OLD is not set
917# CONFIG_FB_RADEON is not set 929# CONFIG_FB_RADEON is not set
918# CONFIG_FB_ATY128 is not set 930# CONFIG_FB_ATY128 is not set
919CONFIG_FB_ATY=y 931CONFIG_FB_ATY=y
@@ -934,6 +946,7 @@ CONFIG_FB_ATY_CT=y
934# Console display driver support 946# Console display driver support
935# 947#
936CONFIG_VGA_CONSOLE=y 948CONFIG_VGA_CONSOLE=y
949# CONFIG_VGACON_SOFT_SCROLLBACK is not set
937# CONFIG_MDA_CONSOLE is not set 950# CONFIG_MDA_CONSOLE is not set
938CONFIG_DUMMY_CONSOLE=y 951CONFIG_DUMMY_CONSOLE=y
939# CONFIG_FRAMEBUFFER_CONSOLE is not set 952# CONFIG_FRAMEBUFFER_CONSOLE is not set
@@ -954,6 +967,7 @@ CONFIG_DUMMY_CONSOLE=y
954# 967#
955CONFIG_USB_ARCH_HAS_HCD=y 968CONFIG_USB_ARCH_HAS_HCD=y
956CONFIG_USB_ARCH_HAS_OHCI=y 969CONFIG_USB_ARCH_HAS_OHCI=y
970CONFIG_USB_ARCH_HAS_EHCI=y
957CONFIG_USB=y 971CONFIG_USB=y
958# CONFIG_USB_DEBUG is not set 972# CONFIG_USB_DEBUG is not set
959 973
@@ -1003,9 +1017,7 @@ CONFIG_USB_HIDDEV=y
1003# CONFIG_USB_ACECAD is not set 1017# CONFIG_USB_ACECAD is not set
1004# CONFIG_USB_KBTAB is not set 1018# CONFIG_USB_KBTAB is not set
1005# CONFIG_USB_POWERMATE is not set 1019# CONFIG_USB_POWERMATE is not set
1006# CONFIG_USB_MTOUCH is not set 1020# CONFIG_USB_TOUCHSCREEN is not set
1007# CONFIG_USB_ITMTOUCH is not set
1008# CONFIG_USB_EGALAX is not set
1009CONFIG_USB_YEALINK=m 1021CONFIG_USB_YEALINK=m
1010# CONFIG_USB_XPAD is not set 1022# CONFIG_USB_XPAD is not set
1011# CONFIG_USB_ATI_REMOTE is not set 1023# CONFIG_USB_ATI_REMOTE is not set
@@ -1019,15 +1031,6 @@ CONFIG_USB_YEALINK=m
1019# CONFIG_USB_MDC800 is not set 1031# CONFIG_USB_MDC800 is not set
1020 1032
1021# 1033#
1022# USB Multimedia devices
1023#
1024# CONFIG_USB_DABUSB is not set
1025
1026#
1027# Video4Linux support is needed for USB Multimedia device support
1028#
1029
1030#
1031# USB Network Adapters 1034# USB Network Adapters
1032# 1035#
1033# CONFIG_USB_CATC is not set 1036# CONFIG_USB_CATC is not set
@@ -1078,13 +1081,31 @@ CONFIG_USB_MON=y
1078# CONFIG_MMC is not set 1081# CONFIG_MMC is not set
1079 1082
1080# 1083#
1084# LED devices
1085#
1086# CONFIG_NEW_LEDS is not set
1087
1088#
1089# LED drivers
1090#
1091
1092#
1093# LED Triggers
1094#
1095
1096#
1081# InfiniBand support 1097# InfiniBand support
1082# 1098#
1083# CONFIG_INFINIBAND is not set 1099# CONFIG_INFINIBAND is not set
1084 1100
1085# 1101#
1086# SN Devices 1102# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1103#
1104
1105#
1106# Real Time Clock
1087# 1107#
1108# CONFIG_RTC_CLASS is not set
1088 1109
1089# 1110#
1090# File systems 1111# File systems
@@ -1148,7 +1169,6 @@ CONFIG_SYSFS=y
1148CONFIG_TMPFS=y 1169CONFIG_TMPFS=y
1149# CONFIG_HUGETLB_PAGE is not set 1170# CONFIG_HUGETLB_PAGE is not set
1150CONFIG_RAMFS=y 1171CONFIG_RAMFS=y
1151CONFIG_RELAYFS_FS=m
1152# CONFIG_CONFIGFS_FS is not set 1172# CONFIG_CONFIGFS_FS is not set
1153 1173
1154# 1174#
@@ -1266,6 +1286,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1266# CONFIG_MAGIC_SYSRQ is not set 1286# CONFIG_MAGIC_SYSRQ is not set
1267# CONFIG_DEBUG_KERNEL is not set 1287# CONFIG_DEBUG_KERNEL is not set
1268CONFIG_LOG_BUF_SHIFT=14 1288CONFIG_LOG_BUF_SHIFT=14
1289# CONFIG_DEBUG_FS is not set
1269CONFIG_CROSSCOMPILE=y 1290CONFIG_CROSSCOMPILE=y
1270CONFIG_CMDLINE="" 1291CONFIG_CMDLINE=""
1271 1292
diff --git a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig
index 463ed3dbf6ae..edfb9679a25a 100644
--- a/arch/mips/configs/rm200_defconfig
+++ b/arch/mips/configs/rm200_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:31 2006 4# Mon Apr 24 14:51:16 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_SNI_RM200_PCI=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_ARC=y 70CONFIG_ARC=y
69CONFIG_ARCH_MAY_HAVE_PC_FDC=y 71CONFIG_ARCH_MAY_HAVE_PC_FDC=y
@@ -122,7 +124,6 @@ CONFIG_PAGE_SIZE_4KB=y
122# CONFIG_PAGE_SIZE_64KB is not set 124# CONFIG_PAGE_SIZE_64KB is not set
123# CONFIG_MIPS_MT is not set 125# CONFIG_MIPS_MT is not set
124# CONFIG_64BIT_PHYS_ADDR is not set 126# CONFIG_64BIT_PHYS_ADDR is not set
125# CONFIG_CPU_ADVANCED is not set
126CONFIG_CPU_HAS_LLSC=y 127CONFIG_CPU_HAS_LLSC=y
127CONFIG_CPU_HAS_SYNC=y 128CONFIG_CPU_HAS_SYNC=y
128CONFIG_GENERIC_HARDIRQS=y 129CONFIG_GENERIC_HARDIRQS=y
@@ -145,7 +146,6 @@ CONFIG_PREEMPT_VOLUNTARY=y
145# Code maturity level options 146# Code maturity level options
146# 147#
147CONFIG_EXPERIMENTAL=y 148CONFIG_EXPERIMENTAL=y
148CONFIG_CLEAN_COMPILE=y
149CONFIG_BROKEN_ON_SMP=y 149CONFIG_BROKEN_ON_SMP=y
150CONFIG_INIT_ENV_ARG_LIMIT=32 150CONFIG_INIT_ENV_ARG_LIMIT=32
151 151
@@ -163,6 +163,7 @@ CONFIG_SYSCTL=y
163# CONFIG_AUDIT is not set 163# CONFIG_AUDIT is not set
164CONFIG_IKCONFIG=y 164CONFIG_IKCONFIG=y
165CONFIG_IKCONFIG_PROC=y 165CONFIG_IKCONFIG_PROC=y
166CONFIG_RELAY=y
166CONFIG_INITRAMFS_SOURCE="" 167CONFIG_INITRAMFS_SOURCE=""
167# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 168# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
168CONFIG_EMBEDDED=y 169CONFIG_EMBEDDED=y
@@ -176,10 +177,6 @@ CONFIG_BASE_FULL=y
176CONFIG_FUTEX=y 177CONFIG_FUTEX=y
177CONFIG_EPOLL=y 178CONFIG_EPOLL=y
178CONFIG_SHMEM=y 179CONFIG_SHMEM=y
179CONFIG_CC_ALIGN_FUNCTIONS=0
180CONFIG_CC_ALIGN_LABELS=0
181CONFIG_CC_ALIGN_LOOPS=0
182CONFIG_CC_ALIGN_JUMPS=0
183CONFIG_SLAB=y 180CONFIG_SLAB=y
184# CONFIG_TINY_SHMEM is not set 181# CONFIG_TINY_SHMEM is not set
185CONFIG_BASE_SMALL=0 182CONFIG_BASE_SMALL=0
@@ -191,7 +188,6 @@ CONFIG_BASE_SMALL=0
191CONFIG_MODULES=y 188CONFIG_MODULES=y
192CONFIG_MODULE_UNLOAD=y 189CONFIG_MODULE_UNLOAD=y
193# CONFIG_MODULE_FORCE_UNLOAD is not set 190# CONFIG_MODULE_FORCE_UNLOAD is not set
194CONFIG_OBSOLETE_MODPARM=y
195CONFIG_MODVERSIONS=y 191CONFIG_MODVERSIONS=y
196# CONFIG_MODULE_SRCVERSION_ALL is not set 192# CONFIG_MODULE_SRCVERSION_ALL is not set
197CONFIG_KMOD=y 193CONFIG_KMOD=y
@@ -200,6 +196,8 @@ CONFIG_KMOD=y
200# Block layer 196# Block layer
201# 197#
202# CONFIG_LBD is not set 198# CONFIG_LBD is not set
199# CONFIG_BLK_DEV_IO_TRACE is not set
200# CONFIG_LSF is not set
203 201
204# 202#
205# IO Schedulers 203# IO Schedulers
@@ -220,10 +218,10 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
220CONFIG_HW_HAS_EISA=y 218CONFIG_HW_HAS_EISA=y
221CONFIG_HW_HAS_PCI=y 219CONFIG_HW_HAS_PCI=y
222CONFIG_PCI=y 220CONFIG_PCI=y
223CONFIG_PCI_LEGACY_PROC=y
224CONFIG_ISA=y 221CONFIG_ISA=y
225# CONFIG_EISA is not set 222# CONFIG_EISA is not set
226CONFIG_MMU=y 223CONFIG_MMU=y
224CONFIG_I8253=y
227 225
228# 226#
229# PCCARD (PCMCIA/CardBus) support 227# PCCARD (PCMCIA/CardBus) support
@@ -250,6 +248,7 @@ CONFIG_NET=y
250# 248#
251# Networking options 249# Networking options
252# 250#
251# CONFIG_NETDEBUG is not set
253CONFIG_PACKET=m 252CONFIG_PACKET=m
254CONFIG_PACKET_MMAP=y 253CONFIG_PACKET_MMAP=y
255CONFIG_UNIX=y 254CONFIG_UNIX=y
@@ -272,6 +271,7 @@ CONFIG_IP_PIMSM_V2=y
272# CONFIG_INET_AH is not set 271# CONFIG_INET_AH is not set
273# CONFIG_INET_ESP is not set 272# CONFIG_INET_ESP is not set
274# CONFIG_INET_IPCOMP is not set 273# CONFIG_INET_IPCOMP is not set
274# CONFIG_INET_XFRM_TUNNEL is not set
275CONFIG_INET_TUNNEL=m 275CONFIG_INET_TUNNEL=m
276CONFIG_INET_DIAG=y 276CONFIG_INET_DIAG=y
277CONFIG_INET_TCP_DIAG=y 277CONFIG_INET_TCP_DIAG=y
@@ -284,9 +284,12 @@ CONFIG_TCP_CONG_BIC=y
284# CONFIG_IP_VS is not set 284# CONFIG_IP_VS is not set
285CONFIG_IPV6=m 285CONFIG_IPV6=m
286CONFIG_IPV6_PRIVACY=y 286CONFIG_IPV6_PRIVACY=y
287CONFIG_IPV6_ROUTER_PREF=y
288CONFIG_IPV6_ROUTE_INFO=y
287CONFIG_INET6_AH=m 289CONFIG_INET6_AH=m
288CONFIG_INET6_ESP=m 290CONFIG_INET6_ESP=m
289CONFIG_INET6_IPCOMP=m 291CONFIG_INET6_IPCOMP=m
292CONFIG_INET6_XFRM_TUNNEL=m
290CONFIG_INET6_TUNNEL=m 293CONFIG_INET6_TUNNEL=m
291CONFIG_IPV6_TUNNEL=m 294CONFIG_IPV6_TUNNEL=m
292CONFIG_NETFILTER=y 295CONFIG_NETFILTER=y
@@ -309,11 +312,14 @@ CONFIG_NETFILTER_XT_MATCH_COMMENT=m
309CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 312CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
310CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 313CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
311CONFIG_NETFILTER_XT_MATCH_DCCP=m 314CONFIG_NETFILTER_XT_MATCH_DCCP=m
315CONFIG_NETFILTER_XT_MATCH_ESP=m
312CONFIG_NETFILTER_XT_MATCH_HELPER=m 316CONFIG_NETFILTER_XT_MATCH_HELPER=m
313CONFIG_NETFILTER_XT_MATCH_LENGTH=m 317CONFIG_NETFILTER_XT_MATCH_LENGTH=m
314CONFIG_NETFILTER_XT_MATCH_LIMIT=m 318CONFIG_NETFILTER_XT_MATCH_LIMIT=m
315CONFIG_NETFILTER_XT_MATCH_MAC=m 319CONFIG_NETFILTER_XT_MATCH_MAC=m
316CONFIG_NETFILTER_XT_MATCH_MARK=m 320CONFIG_NETFILTER_XT_MATCH_MARK=m
321CONFIG_NETFILTER_XT_MATCH_POLICY=m
322CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
317CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m 323CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
318CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 324CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
319CONFIG_NETFILTER_XT_MATCH_REALM=m 325CONFIG_NETFILTER_XT_MATCH_REALM=m
@@ -337,20 +343,19 @@ CONFIG_IP_NF_IRC=m
337CONFIG_IP_NF_TFTP=m 343CONFIG_IP_NF_TFTP=m
338CONFIG_IP_NF_AMANDA=m 344CONFIG_IP_NF_AMANDA=m
339CONFIG_IP_NF_PPTP=m 345CONFIG_IP_NF_PPTP=m
346CONFIG_IP_NF_H323=m
340CONFIG_IP_NF_QUEUE=m 347CONFIG_IP_NF_QUEUE=m
341CONFIG_IP_NF_IPTABLES=m 348CONFIG_IP_NF_IPTABLES=m
342CONFIG_IP_NF_MATCH_IPRANGE=m 349CONFIG_IP_NF_MATCH_IPRANGE=m
343CONFIG_IP_NF_MATCH_MULTIPORT=m
344CONFIG_IP_NF_MATCH_TOS=m 350CONFIG_IP_NF_MATCH_TOS=m
345CONFIG_IP_NF_MATCH_RECENT=m 351CONFIG_IP_NF_MATCH_RECENT=m
346CONFIG_IP_NF_MATCH_ECN=m 352CONFIG_IP_NF_MATCH_ECN=m
347CONFIG_IP_NF_MATCH_DSCP=m 353CONFIG_IP_NF_MATCH_DSCP=m
348CONFIG_IP_NF_MATCH_AH_ESP=m 354CONFIG_IP_NF_MATCH_AH=m
349CONFIG_IP_NF_MATCH_TTL=m 355CONFIG_IP_NF_MATCH_TTL=m
350CONFIG_IP_NF_MATCH_OWNER=m 356CONFIG_IP_NF_MATCH_OWNER=m
351CONFIG_IP_NF_MATCH_ADDRTYPE=m 357CONFIG_IP_NF_MATCH_ADDRTYPE=m
352CONFIG_IP_NF_MATCH_HASHLIMIT=m 358CONFIG_IP_NF_MATCH_HASHLIMIT=m
353CONFIG_IP_NF_MATCH_POLICY=m
354CONFIG_IP_NF_FILTER=m 359CONFIG_IP_NF_FILTER=m
355CONFIG_IP_NF_TARGET_REJECT=m 360CONFIG_IP_NF_TARGET_REJECT=m
356CONFIG_IP_NF_TARGET_LOG=m 361CONFIG_IP_NF_TARGET_LOG=m
@@ -368,6 +373,7 @@ CONFIG_IP_NF_NAT_FTP=m
368CONFIG_IP_NF_NAT_TFTP=m 373CONFIG_IP_NF_NAT_TFTP=m
369CONFIG_IP_NF_NAT_AMANDA=m 374CONFIG_IP_NF_NAT_AMANDA=m
370CONFIG_IP_NF_NAT_PPTP=m 375CONFIG_IP_NF_NAT_PPTP=m
376CONFIG_IP_NF_NAT_H323=m
371CONFIG_IP_NF_MANGLE=m 377CONFIG_IP_NF_MANGLE=m
372CONFIG_IP_NF_TARGET_TOS=m 378CONFIG_IP_NF_TARGET_TOS=m
373CONFIG_IP_NF_TARGET_ECN=m 379CONFIG_IP_NF_TARGET_ECN=m
@@ -388,12 +394,10 @@ CONFIG_IP6_NF_MATCH_RT=m
388CONFIG_IP6_NF_MATCH_OPTS=m 394CONFIG_IP6_NF_MATCH_OPTS=m
389CONFIG_IP6_NF_MATCH_FRAG=m 395CONFIG_IP6_NF_MATCH_FRAG=m
390CONFIG_IP6_NF_MATCH_HL=m 396CONFIG_IP6_NF_MATCH_HL=m
391CONFIG_IP6_NF_MATCH_MULTIPORT=m
392CONFIG_IP6_NF_MATCH_OWNER=m 397CONFIG_IP6_NF_MATCH_OWNER=m
393CONFIG_IP6_NF_MATCH_IPV6HEADER=m 398CONFIG_IP6_NF_MATCH_IPV6HEADER=m
394CONFIG_IP6_NF_MATCH_AHESP=m 399CONFIG_IP6_NF_MATCH_AH=m
395CONFIG_IP6_NF_MATCH_EUI64=m 400CONFIG_IP6_NF_MATCH_EUI64=m
396CONFIG_IP6_NF_MATCH_POLICY=m
397CONFIG_IP6_NF_FILTER=m 401CONFIG_IP6_NF_FILTER=m
398CONFIG_IP6_NF_TARGET_LOG=m 402CONFIG_IP6_NF_TARGET_LOG=m
399CONFIG_IP6_NF_TARGET_REJECT=m 403CONFIG_IP6_NF_TARGET_REJECT=m
@@ -439,21 +443,22 @@ CONFIG_BRIDGE_EBT_ULOG=m
439# SCTP Configuration (EXPERIMENTAL) 443# SCTP Configuration (EXPERIMENTAL)
440# 444#
441# CONFIG_IP_SCTP is not set 445# CONFIG_IP_SCTP is not set
446
447#
448# TIPC Configuration (EXPERIMENTAL)
449#
450# CONFIG_TIPC is not set
442# CONFIG_ATM is not set 451# CONFIG_ATM is not set
443CONFIG_BRIDGE=m 452CONFIG_BRIDGE=m
444# CONFIG_VLAN_8021Q is not set 453# CONFIG_VLAN_8021Q is not set
445CONFIG_DECNET=m 454CONFIG_DECNET=m
446# CONFIG_DECNET_ROUTER is not set 455# CONFIG_DECNET_ROUTER is not set
456CONFIG_LLC=m
447# CONFIG_LLC2 is not set 457# CONFIG_LLC2 is not set
448# CONFIG_IPX is not set 458# CONFIG_IPX is not set
449# CONFIG_ATALK is not set 459# CONFIG_ATALK is not set
450# CONFIG_X25 is not set 460# CONFIG_X25 is not set
451# CONFIG_LAPB is not set 461# CONFIG_LAPB is not set
452
453#
454# TIPC Configuration (EXPERIMENTAL)
455#
456# CONFIG_TIPC is not set
457# CONFIG_NET_DIVERT is not set 462# CONFIG_NET_DIVERT is not set
458# CONFIG_ECONET is not set 463# CONFIG_ECONET is not set
459# CONFIG_WAN_ROUTER is not set 464# CONFIG_WAN_ROUTER is not set
@@ -533,6 +538,9 @@ CONFIG_IEEE80211=m
533# CONFIG_IEEE80211_DEBUG is not set 538# CONFIG_IEEE80211_DEBUG is not set
534CONFIG_IEEE80211_CRYPT_WEP=m 539CONFIG_IEEE80211_CRYPT_WEP=m
535CONFIG_IEEE80211_CRYPT_CCMP=m 540CONFIG_IEEE80211_CRYPT_CCMP=m
541CONFIG_IEEE80211_SOFTMAC=m
542# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
543CONFIG_WIRELESS_EXT=y
536 544
537# 545#
538# Device Drivers 546# Device Drivers
@@ -620,6 +628,7 @@ CONFIG_BLK_DEV_UB=m
620CONFIG_BLK_DEV_RAM=m 628CONFIG_BLK_DEV_RAM=m
621CONFIG_BLK_DEV_RAM_COUNT=16 629CONFIG_BLK_DEV_RAM_COUNT=16
622CONFIG_BLK_DEV_RAM_SIZE=4096 630CONFIG_BLK_DEV_RAM_SIZE=4096
631# CONFIG_BLK_DEV_INITRD is not set
623CONFIG_CDROM_PKTCDVD=m 632CONFIG_CDROM_PKTCDVD=m
624CONFIG_CDROM_PKTCDVD_BUFFERS=8 633CONFIG_CDROM_PKTCDVD_BUFFERS=8
625# CONFIG_CDROM_PKTCDVD_WCACHE is not set 634# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -700,12 +709,11 @@ CONFIG_SCSI_SYM53C8XX_2=y
700CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 709CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
701CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 710CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
702CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 711CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
703# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set 712CONFIG_SCSI_SYM53C8XX_MMIO=y
704# CONFIG_SCSI_IPR is not set 713# CONFIG_SCSI_IPR is not set
705# CONFIG_SCSI_PAS16 is not set 714# CONFIG_SCSI_PAS16 is not set
706# CONFIG_SCSI_PSI240I is not set 715# CONFIG_SCSI_PSI240I is not set
707# CONFIG_SCSI_QLOGIC_FAS is not set 716# CONFIG_SCSI_QLOGIC_FAS is not set
708# CONFIG_SCSI_QLOGIC_FC is not set
709# CONFIG_SCSI_QLOGIC_1280 is not set 717# CONFIG_SCSI_QLOGIC_1280 is not set
710# CONFIG_SCSI_QLA_FC is not set 718# CONFIG_SCSI_QLA_FC is not set
711# CONFIG_SCSI_LPFC is not set 719# CONFIG_SCSI_LPFC is not set
@@ -731,6 +739,7 @@ CONFIG_MD_RAID0=m
731CONFIG_MD_RAID1=m 739CONFIG_MD_RAID1=m
732CONFIG_MD_RAID10=m 740CONFIG_MD_RAID10=m
733CONFIG_MD_RAID5=m 741CONFIG_MD_RAID5=m
742CONFIG_MD_RAID5_RESHAPE=y
734# CONFIG_MD_RAID6 is not set 743# CONFIG_MD_RAID6 is not set
735CONFIG_MD_MULTIPATH=m 744CONFIG_MD_MULTIPATH=m
736CONFIG_MD_FAULTY=m 745CONFIG_MD_FAULTY=m
@@ -965,6 +974,7 @@ CONFIG_HW_CONSOLE=y
965# Serial drivers 974# Serial drivers
966# 975#
967CONFIG_SERIAL_8250=m 976CONFIG_SERIAL_8250=m
977CONFIG_SERIAL_8250_PCI=m
968CONFIG_SERIAL_8250_NR_UARTS=4 978CONFIG_SERIAL_8250_NR_UARTS=4
969CONFIG_SERIAL_8250_RUNTIME_UARTS=4 979CONFIG_SERIAL_8250_RUNTIME_UARTS=4
970CONFIG_SERIAL_8250_EXTENDED=y 980CONFIG_SERIAL_8250_EXTENDED=y
@@ -977,6 +987,7 @@ CONFIG_SERIAL_8250_RSA=y
977# Non-8250 serial port support 987# Non-8250 serial port support
978# 988#
979CONFIG_SERIAL_CORE=m 989CONFIG_SERIAL_CORE=m
990# CONFIG_SERIAL_JSM is not set
980CONFIG_UNIX98_PTYS=y 991CONFIG_UNIX98_PTYS=y
981CONFIG_LEGACY_PTYS=y 992CONFIG_LEGACY_PTYS=y
982CONFIG_LEGACY_PTY_COUNT=256 993CONFIG_LEGACY_PTY_COUNT=256
@@ -1027,12 +1038,19 @@ CONFIG_RTC=m
1027# Dallas's 1-wire bus 1038# Dallas's 1-wire bus
1028# 1039#
1029CONFIG_W1=m 1040CONFIG_W1=m
1030CONFIG_W1_MATROX=m 1041
1031CONFIG_W1_DS9490=m 1042#
1032# CONFIG_W1_DS9490_BRIDGE is not set 1043# 1-wire Bus Masters
1033CONFIG_W1_THERM=m 1044#
1034CONFIG_W1_SMEM=m 1045# CONFIG_W1_MASTER_MATROX is not set
1035# CONFIG_W1_DS2433 is not set 1046# CONFIG_W1_MASTER_DS9490 is not set
1047
1048#
1049# 1-wire Slaves
1050#
1051# CONFIG_W1_SLAVE_THERM is not set
1052# CONFIG_W1_SLAVE_SMEM is not set
1053# CONFIG_W1_SLAVE_DS2433 is not set
1036 1054
1037# 1055#
1038# Hardware Monitoring support 1056# Hardware Monitoring support
@@ -1045,10 +1063,6 @@ CONFIG_W1_SMEM=m
1045# 1063#
1046 1064
1047# 1065#
1048# Multimedia Capabilities Port drivers
1049#
1050
1051#
1052# Multimedia devices 1066# Multimedia devices
1053# 1067#
1054# CONFIG_VIDEO_DEV is not set 1068# CONFIG_VIDEO_DEV is not set
@@ -1057,6 +1071,7 @@ CONFIG_W1_SMEM=m
1057# Digital Video Broadcasting Devices 1071# Digital Video Broadcasting Devices
1058# 1072#
1059# CONFIG_DVB is not set 1073# CONFIG_DVB is not set
1074CONFIG_USB_DABUSB=m
1060 1075
1061# 1076#
1062# Graphics support 1077# Graphics support
@@ -1067,6 +1082,7 @@ CONFIG_W1_SMEM=m
1067# Console display driver support 1082# Console display driver support
1068# 1083#
1069CONFIG_VGA_CONSOLE=y 1084CONFIG_VGA_CONSOLE=y
1085# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1070# CONFIG_MDA_CONSOLE is not set 1086# CONFIG_MDA_CONSOLE is not set
1071CONFIG_DUMMY_CONSOLE=y 1087CONFIG_DUMMY_CONSOLE=y
1072 1088
@@ -1080,6 +1096,7 @@ CONFIG_DUMMY_CONSOLE=y
1080# 1096#
1081CONFIG_USB_ARCH_HAS_HCD=y 1097CONFIG_USB_ARCH_HAS_HCD=y
1082CONFIG_USB_ARCH_HAS_OHCI=y 1098CONFIG_USB_ARCH_HAS_OHCI=y
1099CONFIG_USB_ARCH_HAS_EHCI=y
1083CONFIG_USB=m 1100CONFIG_USB=m
1084# CONFIG_USB_DEBUG is not set 1101# CONFIG_USB_DEBUG is not set
1085 1102
@@ -1151,9 +1168,7 @@ CONFIG_USB_WACOM=m
1151# CONFIG_USB_ACECAD is not set 1168# CONFIG_USB_ACECAD is not set
1152CONFIG_USB_KBTAB=m 1169CONFIG_USB_KBTAB=m
1153CONFIG_USB_POWERMATE=m 1170CONFIG_USB_POWERMATE=m
1154# CONFIG_USB_MTOUCH is not set 1171# CONFIG_USB_TOUCHSCREEN is not set
1155# CONFIG_USB_ITMTOUCH is not set
1156CONFIG_USB_EGALAX=m
1157CONFIG_USB_YEALINK=m 1172CONFIG_USB_YEALINK=m
1158CONFIG_USB_XPAD=m 1173CONFIG_USB_XPAD=m
1159# CONFIG_USB_ATI_REMOTE is not set 1174# CONFIG_USB_ATI_REMOTE is not set
@@ -1168,15 +1183,6 @@ CONFIG_USB_MDC800=m
1168CONFIG_USB_MICROTEK=m 1183CONFIG_USB_MICROTEK=m
1169 1184
1170# 1185#
1171# USB Multimedia devices
1172#
1173CONFIG_USB_DABUSB=m
1174
1175#
1176# Video4Linux support is needed for USB Multimedia device support
1177#
1178
1179#
1180# USB Network Adapters 1186# USB Network Adapters
1181# 1187#
1182CONFIG_USB_CATC=m 1188CONFIG_USB_CATC=m
@@ -1213,6 +1219,7 @@ CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
1213CONFIG_USB_SERIAL_CYPRESS_M8=m 1219CONFIG_USB_SERIAL_CYPRESS_M8=m
1214CONFIG_USB_SERIAL_EMPEG=m 1220CONFIG_USB_SERIAL_EMPEG=m
1215CONFIG_USB_SERIAL_FTDI_SIO=m 1221CONFIG_USB_SERIAL_FTDI_SIO=m
1222# CONFIG_USB_SERIAL_FUNSOFT is not set
1216CONFIG_USB_SERIAL_VISOR=m 1223CONFIG_USB_SERIAL_VISOR=m
1217CONFIG_USB_SERIAL_IPAQ=m 1224CONFIG_USB_SERIAL_IPAQ=m
1218CONFIG_USB_SERIAL_IR=m 1225CONFIG_USB_SERIAL_IR=m
@@ -1237,6 +1244,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
1237CONFIG_USB_SERIAL_KLSI=m 1244CONFIG_USB_SERIAL_KLSI=m
1238CONFIG_USB_SERIAL_KOBIL_SCT=m 1245CONFIG_USB_SERIAL_KOBIL_SCT=m
1239CONFIG_USB_SERIAL_MCT_U232=m 1246CONFIG_USB_SERIAL_MCT_U232=m
1247# CONFIG_USB_SERIAL_NAVMAN is not set
1240CONFIG_USB_SERIAL_PL2303=m 1248CONFIG_USB_SERIAL_PL2303=m
1241CONFIG_USB_SERIAL_HP4X=m 1249CONFIG_USB_SERIAL_HP4X=m
1242CONFIG_USB_SERIAL_SAFE=m 1250CONFIG_USB_SERIAL_SAFE=m
@@ -1281,13 +1289,31 @@ CONFIG_USB_TEST=m
1281# CONFIG_MMC is not set 1289# CONFIG_MMC is not set
1282 1290
1283# 1291#
1292# LED devices
1293#
1294# CONFIG_NEW_LEDS is not set
1295
1296#
1297# LED drivers
1298#
1299
1300#
1301# LED Triggers
1302#
1303
1304#
1284# InfiniBand support 1305# InfiniBand support
1285# 1306#
1286# CONFIG_INFINIBAND is not set 1307# CONFIG_INFINIBAND is not set
1287 1308
1288# 1309#
1289# SN Devices 1310# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1311#
1312
1313#
1314# Real Time Clock
1290# 1315#
1316# CONFIG_RTC_CLASS is not set
1291 1317
1292# 1318#
1293# File systems 1319# File systems
@@ -1358,7 +1384,6 @@ CONFIG_SYSFS=y
1358# CONFIG_TMPFS is not set 1384# CONFIG_TMPFS is not set
1359# CONFIG_HUGETLB_PAGE is not set 1385# CONFIG_HUGETLB_PAGE is not set
1360CONFIG_RAMFS=y 1386CONFIG_RAMFS=y
1361CONFIG_RELAYFS_FS=m
1362# CONFIG_CONFIGFS_FS is not set 1387# CONFIG_CONFIGFS_FS is not set
1363 1388
1364# 1389#
@@ -1379,7 +1404,6 @@ CONFIG_HPFS_FS=m
1379CONFIG_QNX4FS_FS=m 1404CONFIG_QNX4FS_FS=m
1380CONFIG_SYSV_FS=m 1405CONFIG_SYSV_FS=m
1381CONFIG_UFS_FS=m 1406CONFIG_UFS_FS=m
1382# CONFIG_UFS_FS_WRITE is not set
1383 1407
1384# 1408#
1385# Network File Systems 1409# Network File Systems
@@ -1500,6 +1524,7 @@ CONFIG_NLS_UTF8=m
1500# CONFIG_MAGIC_SYSRQ is not set 1524# CONFIG_MAGIC_SYSRQ is not set
1501# CONFIG_DEBUG_KERNEL is not set 1525# CONFIG_DEBUG_KERNEL is not set
1502CONFIG_LOG_BUF_SHIFT=14 1526CONFIG_LOG_BUF_SHIFT=14
1527# CONFIG_DEBUG_FS is not set
1503CONFIG_CROSSCOMPILE=y 1528CONFIG_CROSSCOMPILE=y
1504CONFIG_CMDLINE="" 1529CONFIG_CMDLINE=""
1505 1530
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig
index da68c3f72050..e388a3dae0a9 100644
--- a/arch/mips/configs/sb1250-swarm_defconfig
+++ b/arch/mips/configs/sb1250-swarm_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:32 2006 4# Mon Apr 24 14:51:17 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -81,6 +81,8 @@ CONFIG_SIBYTE_CFE=y
81# CONFIG_SIBYTE_SB1250_PROF is not set 81# CONFIG_SIBYTE_SB1250_PROF is not set
82# CONFIG_SIBYTE_TBPROF is not set 82# CONFIG_SIBYTE_TBPROF is not set
83CONFIG_RWSEM_GENERIC_SPINLOCK=y 83CONFIG_RWSEM_GENERIC_SPINLOCK=y
84CONFIG_GENERIC_FIND_NEXT_BIT=y
85CONFIG_GENERIC_HWEIGHT=y
84CONFIG_GENERIC_CALIBRATE_DELAY=y 86CONFIG_GENERIC_CALIBRATE_DELAY=y
85CONFIG_DMA_COHERENT=y 87CONFIG_DMA_COHERENT=y
86CONFIG_CPU_BIG_ENDIAN=y 88CONFIG_CPU_BIG_ENDIAN=y
@@ -158,7 +160,6 @@ CONFIG_PREEMPT_BKL=y
158# Code maturity level options 160# Code maturity level options
159# 161#
160CONFIG_EXPERIMENTAL=y 162CONFIG_EXPERIMENTAL=y
161CONFIG_CLEAN_COMPILE=y
162CONFIG_LOCK_KERNEL=y 163CONFIG_LOCK_KERNEL=y
163CONFIG_INIT_ENV_ARG_LIMIT=32 164CONFIG_INIT_ENV_ARG_LIMIT=32
164 165
@@ -175,6 +176,7 @@ CONFIG_SYSCTL=y
175# CONFIG_AUDIT is not set 176# CONFIG_AUDIT is not set
176# CONFIG_IKCONFIG is not set 177# CONFIG_IKCONFIG is not set
177CONFIG_CPUSETS=y 178CONFIG_CPUSETS=y
179CONFIG_RELAY=y
178CONFIG_INITRAMFS_SOURCE="" 180CONFIG_INITRAMFS_SOURCE=""
179# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 181# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
180CONFIG_EMBEDDED=y 182CONFIG_EMBEDDED=y
@@ -188,10 +190,6 @@ CONFIG_BASE_FULL=y
188CONFIG_FUTEX=y 190CONFIG_FUTEX=y
189CONFIG_EPOLL=y 191CONFIG_EPOLL=y
190CONFIG_SHMEM=y 192CONFIG_SHMEM=y
191CONFIG_CC_ALIGN_FUNCTIONS=0
192CONFIG_CC_ALIGN_LABELS=0
193CONFIG_CC_ALIGN_LOOPS=0
194CONFIG_CC_ALIGN_JUMPS=0
195CONFIG_SLAB=y 193CONFIG_SLAB=y
196# CONFIG_TINY_SHMEM is not set 194# CONFIG_TINY_SHMEM is not set
197CONFIG_BASE_SMALL=0 195CONFIG_BASE_SMALL=0
@@ -203,7 +201,6 @@ CONFIG_BASE_SMALL=0
203CONFIG_MODULES=y 201CONFIG_MODULES=y
204CONFIG_MODULE_UNLOAD=y 202CONFIG_MODULE_UNLOAD=y
205# CONFIG_MODULE_FORCE_UNLOAD is not set 203# CONFIG_MODULE_FORCE_UNLOAD is not set
206CONFIG_OBSOLETE_MODPARM=y
207CONFIG_MODVERSIONS=y 204CONFIG_MODVERSIONS=y
208CONFIG_MODULE_SRCVERSION_ALL=y 205CONFIG_MODULE_SRCVERSION_ALL=y
209CONFIG_KMOD=y 206CONFIG_KMOD=y
@@ -212,6 +209,7 @@ CONFIG_STOP_MACHINE=y
212# 209#
213# Block layer 210# Block layer
214# 211#
212# CONFIG_BLK_DEV_IO_TRACE is not set
215 213
216# 214#
217# IO Schedulers 215# IO Schedulers
@@ -231,7 +229,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
231# 229#
232CONFIG_HW_HAS_PCI=y 230CONFIG_HW_HAS_PCI=y
233CONFIG_PCI=y 231CONFIG_PCI=y
234CONFIG_PCI_LEGACY_PROC=y
235CONFIG_MMU=y 232CONFIG_MMU=y
236 233
237# 234#
@@ -249,6 +246,7 @@ CONFIG_MMU=y
249# 246#
250CONFIG_BINFMT_ELF=y 247CONFIG_BINFMT_ELF=y
251# CONFIG_BINFMT_MISC is not set 248# CONFIG_BINFMT_MISC is not set
249# CONFIG_BUILD_ELF64 is not set
252CONFIG_MIPS32_COMPAT=y 250CONFIG_MIPS32_COMPAT=y
253CONFIG_COMPAT=y 251CONFIG_COMPAT=y
254CONFIG_MIPS32_O32=y 252CONFIG_MIPS32_O32=y
@@ -263,6 +261,7 @@ CONFIG_NET=y
263# 261#
264# Networking options 262# Networking options
265# 263#
264# CONFIG_NETDEBUG is not set
266CONFIG_PACKET=y 265CONFIG_PACKET=y
267CONFIG_PACKET_MMAP=y 266CONFIG_PACKET_MMAP=y
268CONFIG_UNIX=y 267CONFIG_UNIX=y
@@ -284,12 +283,15 @@ CONFIG_IP_PNP_BOOTP=y
284# CONFIG_INET_AH is not set 283# CONFIG_INET_AH is not set
285# CONFIG_INET_ESP is not set 284# CONFIG_INET_ESP is not set
286# CONFIG_INET_IPCOMP is not set 285# CONFIG_INET_IPCOMP is not set
287CONFIG_INET_TUNNEL=m 286# CONFIG_INET_XFRM_TUNNEL is not set
287# CONFIG_INET_TUNNEL is not set
288CONFIG_INET_DIAG=y 288CONFIG_INET_DIAG=y
289CONFIG_INET_TCP_DIAG=y 289CONFIG_INET_TCP_DIAG=y
290# CONFIG_TCP_CONG_ADVANCED is not set 290# CONFIG_TCP_CONG_ADVANCED is not set
291CONFIG_TCP_CONG_BIC=y 291CONFIG_TCP_CONG_BIC=y
292# CONFIG_IPV6 is not set 292# CONFIG_IPV6 is not set
293# CONFIG_INET6_XFRM_TUNNEL is not set
294# CONFIG_INET6_TUNNEL is not set
293# CONFIG_NETFILTER is not set 295# CONFIG_NETFILTER is not set
294 296
295# 297#
@@ -301,6 +303,11 @@ CONFIG_TCP_CONG_BIC=y
301# SCTP Configuration (EXPERIMENTAL) 303# SCTP Configuration (EXPERIMENTAL)
302# 304#
303# CONFIG_IP_SCTP is not set 305# CONFIG_IP_SCTP is not set
306
307#
308# TIPC Configuration (EXPERIMENTAL)
309#
310# CONFIG_TIPC is not set
304# CONFIG_ATM is not set 311# CONFIG_ATM is not set
305# CONFIG_BRIDGE is not set 312# CONFIG_BRIDGE is not set
306# CONFIG_VLAN_8021Q is not set 313# CONFIG_VLAN_8021Q is not set
@@ -310,11 +317,6 @@ CONFIG_TCP_CONG_BIC=y
310# CONFIG_ATALK is not set 317# CONFIG_ATALK is not set
311# CONFIG_X25 is not set 318# CONFIG_X25 is not set
312# CONFIG_LAPB is not set 319# CONFIG_LAPB is not set
313
314#
315# TIPC Configuration (EXPERIMENTAL)
316#
317# CONFIG_TIPC is not set
318# CONFIG_NET_DIVERT is not set 320# CONFIG_NET_DIVERT is not set
319# CONFIG_ECONET is not set 321# CONFIG_ECONET is not set
320# CONFIG_WAN_ROUTER is not set 322# CONFIG_WAN_ROUTER is not set
@@ -335,6 +337,9 @@ CONFIG_IEEE80211=m
335# CONFIG_IEEE80211_DEBUG is not set 337# CONFIG_IEEE80211_DEBUG is not set
336CONFIG_IEEE80211_CRYPT_WEP=m 338CONFIG_IEEE80211_CRYPT_WEP=m
337CONFIG_IEEE80211_CRYPT_CCMP=m 339CONFIG_IEEE80211_CRYPT_CCMP=m
340CONFIG_IEEE80211_SOFTMAC=m
341# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
342CONFIG_WIRELESS_EXT=y
338 343
339# 344#
340# Device Drivers 345# Device Drivers
@@ -589,6 +594,7 @@ CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
589# 594#
590# Non-8250 serial port support 595# Non-8250 serial port support
591# 596#
597# CONFIG_SERIAL_JSM is not set
592CONFIG_UNIX98_PTYS=y 598CONFIG_UNIX98_PTYS=y
593CONFIG_LEGACY_PTYS=y 599CONFIG_LEGACY_PTYS=y
594CONFIG_LEGACY_PTY_COUNT=256 600CONFIG_LEGACY_PTY_COUNT=256
@@ -647,10 +653,6 @@ CONFIG_LEGACY_PTY_COUNT=256
647# 653#
648 654
649# 655#
650# Multimedia Capabilities Port drivers
651#
652
653#
654# Multimedia devices 656# Multimedia devices
655# 657#
656# CONFIG_VIDEO_DEV is not set 658# CONFIG_VIDEO_DEV is not set
@@ -675,6 +677,7 @@ CONFIG_LEGACY_PTY_COUNT=256
675# 677#
676CONFIG_USB_ARCH_HAS_HCD=y 678CONFIG_USB_ARCH_HAS_HCD=y
677CONFIG_USB_ARCH_HAS_OHCI=y 679CONFIG_USB_ARCH_HAS_OHCI=y
680CONFIG_USB_ARCH_HAS_EHCI=y
678# CONFIG_USB is not set 681# CONFIG_USB is not set
679 682
680# 683#
@@ -692,13 +695,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y
692# CONFIG_MMC is not set 695# CONFIG_MMC is not set
693 696
694# 697#
698# LED devices
699#
700# CONFIG_NEW_LEDS is not set
701
702#
703# LED drivers
704#
705
706#
707# LED Triggers
708#
709
710#
695# InfiniBand support 711# InfiniBand support
696# 712#
697# CONFIG_INFINIBAND is not set 713# CONFIG_INFINIBAND is not set
698 714
699# 715#
700# SN Devices 716# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
717#
718
719#
720# Real Time Clock
701# 721#
722# CONFIG_RTC_CLASS is not set
702 723
703# 724#
704# File systems 725# File systems
@@ -746,7 +767,6 @@ CONFIG_SYSFS=y
746# CONFIG_TMPFS is not set 767# CONFIG_TMPFS is not set
747# CONFIG_HUGETLB_PAGE is not set 768# CONFIG_HUGETLB_PAGE is not set
748CONFIG_RAMFS=y 769CONFIG_RAMFS=y
749CONFIG_RELAYFS_FS=m
750# CONFIG_CONFIGFS_FS is not set 770# CONFIG_CONFIGFS_FS is not set
751 771
752# 772#
@@ -812,6 +832,7 @@ CONFIG_MSDOS_PARTITION=y
812# CONFIG_MAGIC_SYSRQ is not set 832# CONFIG_MAGIC_SYSRQ is not set
813# CONFIG_DEBUG_KERNEL is not set 833# CONFIG_DEBUG_KERNEL is not set
814CONFIG_LOG_BUF_SHIFT=15 834CONFIG_LOG_BUF_SHIFT=15
835# CONFIG_DEBUG_FS is not set
815CONFIG_CROSSCOMPILE=y 836CONFIG_CROSSCOMPILE=y
816CONFIG_CMDLINE="" 837CONFIG_CMDLINE=""
817# CONFIG_SB1XXX_CORELIS is not set 838# CONFIG_SB1XXX_CORELIS is not set
diff --git a/arch/mips/configs/sead_defconfig b/arch/mips/configs/sead_defconfig
index 9a936d7b7c0c..6b8a6a416a25 100644
--- a/arch/mips/configs/sead_defconfig
+++ b/arch/mips/configs/sead_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:33 2006 4# Mon Apr 24 14:51:17 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_MIPS_SEAD=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -118,11 +120,11 @@ CONFIG_PAGE_SIZE_4KB=y
118CONFIG_CPU_HAS_PREFETCH=y 120CONFIG_CPU_HAS_PREFETCH=y
119# CONFIG_MIPS_MT is not set 121# CONFIG_MIPS_MT is not set
120# CONFIG_64BIT_PHYS_ADDR is not set 122# CONFIG_64BIT_PHYS_ADDR is not set
121# CONFIG_CPU_ADVANCED is not set
122CONFIG_CPU_HAS_LLSC=y 123CONFIG_CPU_HAS_LLSC=y
123CONFIG_CPU_HAS_SYNC=y 124CONFIG_CPU_HAS_SYNC=y
124CONFIG_GENERIC_HARDIRQS=y 125CONFIG_GENERIC_HARDIRQS=y
125CONFIG_GENERIC_IRQ_PROBE=y 126CONFIG_GENERIC_IRQ_PROBE=y
127CONFIG_CPU_SUPPORTS_HIGHMEM=y
126CONFIG_ARCH_FLATMEM_ENABLE=y 128CONFIG_ARCH_FLATMEM_ENABLE=y
127CONFIG_SELECT_MEMORY_MODEL=y 129CONFIG_SELECT_MEMORY_MODEL=y
128CONFIG_FLATMEM_MANUAL=y 130CONFIG_FLATMEM_MANUAL=y
@@ -140,7 +142,6 @@ CONFIG_PREEMPT_NONE=y
140# Code maturity level options 142# Code maturity level options
141# 143#
142CONFIG_EXPERIMENTAL=y 144CONFIG_EXPERIMENTAL=y
143CONFIG_CLEAN_COMPILE=y
144CONFIG_BROKEN_ON_SMP=y 145CONFIG_BROKEN_ON_SMP=y
145CONFIG_INIT_ENV_ARG_LIMIT=32 146CONFIG_INIT_ENV_ARG_LIMIT=32
146 147
@@ -154,6 +155,7 @@ CONFIG_SYSVIPC=y
154# CONFIG_BSD_PROCESS_ACCT is not set 155# CONFIG_BSD_PROCESS_ACCT is not set
155CONFIG_SYSCTL=y 156CONFIG_SYSCTL=y
156# CONFIG_IKCONFIG is not set 157# CONFIG_IKCONFIG is not set
158CONFIG_RELAY=y
157CONFIG_INITRAMFS_SOURCE="" 159CONFIG_INITRAMFS_SOURCE=""
158# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 160# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
159CONFIG_EMBEDDED=y 161CONFIG_EMBEDDED=y
@@ -167,10 +169,6 @@ CONFIG_BASE_FULL=y
167CONFIG_FUTEX=y 169CONFIG_FUTEX=y
168CONFIG_EPOLL=y 170CONFIG_EPOLL=y
169CONFIG_SHMEM=y 171CONFIG_SHMEM=y
170CONFIG_CC_ALIGN_FUNCTIONS=0
171CONFIG_CC_ALIGN_LABELS=0
172CONFIG_CC_ALIGN_LOOPS=0
173CONFIG_CC_ALIGN_JUMPS=0
174CONFIG_SLAB=y 172CONFIG_SLAB=y
175# CONFIG_TINY_SHMEM is not set 173# CONFIG_TINY_SHMEM is not set
176CONFIG_BASE_SMALL=0 174CONFIG_BASE_SMALL=0
@@ -185,6 +183,8 @@ CONFIG_BASE_SMALL=0
185# Block layer 183# Block layer
186# 184#
187# CONFIG_LBD is not set 185# CONFIG_LBD is not set
186# CONFIG_BLK_DEV_IO_TRACE is not set
187# CONFIG_LSF is not set
188 188
189# 189#
190# IO Schedulers 190# IO Schedulers
@@ -296,12 +296,6 @@ CONFIG_RAID_ATTRS=y
296# 296#
297 297
298# 298#
299# Network device support
300#
301# CONFIG_NETPOLL is not set
302# CONFIG_NET_POLL_CONTROLLER is not set
303
304#
305# ISDN subsystem 299# ISDN subsystem
306# 300#
307 301
@@ -397,10 +391,6 @@ CONFIG_LEGACY_PTY_COUNT=256
397# 391#
398 392
399# 393#
400# Multimedia Capabilities Port drivers
401#
402
403#
404# Multimedia devices 394# Multimedia devices
405# 395#
406# CONFIG_VIDEO_DEV is not set 396# CONFIG_VIDEO_DEV is not set
@@ -424,6 +414,7 @@ CONFIG_LEGACY_PTY_COUNT=256
424# 414#
425# CONFIG_USB_ARCH_HAS_HCD is not set 415# CONFIG_USB_ARCH_HAS_HCD is not set
426# CONFIG_USB_ARCH_HAS_OHCI is not set 416# CONFIG_USB_ARCH_HAS_OHCI is not set
417# CONFIG_USB_ARCH_HAS_EHCI is not set
427 418
428# 419#
429# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 420# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -440,12 +431,30 @@ CONFIG_LEGACY_PTY_COUNT=256
440# CONFIG_MMC is not set 431# CONFIG_MMC is not set
441 432
442# 433#
434# LED devices
435#
436# CONFIG_NEW_LEDS is not set
437
438#
439# LED drivers
440#
441
442#
443# LED Triggers
444#
445
446#
443# InfiniBand support 447# InfiniBand support
444# 448#
445 449
446# 450#
447# SN Devices 451# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
452#
453
454#
455# Real Time Clock
448# 456#
457# CONFIG_RTC_CLASS is not set
449 458
450# 459#
451# File systems 460# File systems
@@ -489,7 +498,6 @@ CONFIG_SYSFS=y
489# CONFIG_TMPFS is not set 498# CONFIG_TMPFS is not set
490# CONFIG_HUGETLB_PAGE is not set 499# CONFIG_HUGETLB_PAGE is not set
491CONFIG_RAMFS=y 500CONFIG_RAMFS=y
492CONFIG_RELAYFS_FS=y
493# CONFIG_CONFIGFS_FS is not set 501# CONFIG_CONFIGFS_FS is not set
494 502
495# 503#
@@ -543,6 +551,8 @@ CONFIG_PARTITION_ADVANCED=y
543# CONFIG_MAGIC_SYSRQ is not set 551# CONFIG_MAGIC_SYSRQ is not set
544# CONFIG_DEBUG_KERNEL is not set 552# CONFIG_DEBUG_KERNEL is not set
545CONFIG_LOG_BUF_SHIFT=14 553CONFIG_LOG_BUF_SHIFT=14
554# CONFIG_DEBUG_FS is not set
555# CONFIG_UNWIND_INFO is not set
546CONFIG_CROSSCOMPILE=y 556CONFIG_CROSSCOMPILE=y
547CONFIG_CMDLINE="" 557CONFIG_CMDLINE=""
548 558
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig
index c2dee0d1c72c..dba0bdcdcf29 100644
--- a/arch/mips/configs/tb0226_defconfig
+++ b/arch/mips/configs/tb0226_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:34 2006 4# Tue Apr 25 00:08:41 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -68,12 +68,14 @@ CONFIG_MACH_VR41XX=y
68# CONFIG_NEC_CMBVR4133 is not set 68# CONFIG_NEC_CMBVR4133 is not set
69CONFIG_TANBAC_TB022X=y 69CONFIG_TANBAC_TB022X=y
70CONFIG_TANBAC_TB0226=y 70CONFIG_TANBAC_TB0226=y
71CONFIG_TANBAC_TB0287=y 71# CONFIG_TANBAC_TB0287 is not set
72# CONFIG_VICTOR_MPC30X is not set 72# CONFIG_VICTOR_MPC30X is not set
73# CONFIG_ZAO_CAPCELLA is not set 73# CONFIG_ZAO_CAPCELLA is not set
74CONFIG_PCI_VR41XX=y 74CONFIG_PCI_VR41XX=y
75# CONFIG_VRC4173 is not set 75# CONFIG_VRC4173 is not set
76CONFIG_RWSEM_GENERIC_SPINLOCK=y 76CONFIG_RWSEM_GENERIC_SPINLOCK=y
77CONFIG_GENERIC_FIND_NEXT_BIT=y
78CONFIG_GENERIC_HWEIGHT=y
77CONFIG_GENERIC_CALIBRATE_DELAY=y 79CONFIG_GENERIC_CALIBRATE_DELAY=y
78CONFIG_DMA_NONCOHERENT=y 80CONFIG_DMA_NONCOHERENT=y
79CONFIG_DMA_NEED_PCI_MAP_STATE=y 81CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -92,7 +94,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
92# CONFIG_CPU_MIPS64_R2 is not set 94# CONFIG_CPU_MIPS64_R2 is not set
93# CONFIG_CPU_R3000 is not set 95# CONFIG_CPU_R3000 is not set
94# CONFIG_CPU_TX39XX is not set 96# CONFIG_CPU_TX39XX is not set
95# CONFIG_CPU_VR41XX is not set 97CONFIG_CPU_VR41XX=y
96# CONFIG_CPU_R4300 is not set 98# CONFIG_CPU_R4300 is not set
97# CONFIG_CPU_R4X00 is not set 99# CONFIG_CPU_R4X00 is not set
98# CONFIG_CPU_TX49XX is not set 100# CONFIG_CPU_TX49XX is not set
@@ -105,18 +107,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
105# CONFIG_CPU_RM7000 is not set 107# CONFIG_CPU_RM7000 is not set
106# CONFIG_CPU_RM9000 is not set 108# CONFIG_CPU_RM9000 is not set
107# CONFIG_CPU_SB1 is not set 109# CONFIG_CPU_SB1 is not set
110CONFIG_SYS_HAS_CPU_VR41XX=y
111CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
112CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
113CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
108 114
109# 115#
110# Kernel type 116# Kernel type
111# 117#
112# CONFIG_32BIT is not set 118CONFIG_32BIT=y
113# CONFIG_64BIT is not set 119# CONFIG_64BIT is not set
114CONFIG_PAGE_SIZE_4KB=y 120CONFIG_PAGE_SIZE_4KB=y
115# CONFIG_PAGE_SIZE_8KB is not set 121# CONFIG_PAGE_SIZE_8KB is not set
116# CONFIG_PAGE_SIZE_16KB is not set 122# CONFIG_PAGE_SIZE_16KB is not set
117# CONFIG_PAGE_SIZE_64KB is not set 123# CONFIG_PAGE_SIZE_64KB is not set
118# CONFIG_MIPS_MT is not set 124# CONFIG_MIPS_MT is not set
119CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 125CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y 126CONFIG_GENERIC_HARDIRQS=y
122CONFIG_GENERIC_IRQ_PROBE=y 127CONFIG_GENERIC_IRQ_PROBE=y
@@ -137,7 +142,6 @@ CONFIG_PREEMPT_NONE=y
137# Code maturity level options 142# Code maturity level options
138# 143#
139CONFIG_EXPERIMENTAL=y 144CONFIG_EXPERIMENTAL=y
140CONFIG_CLEAN_COMPILE=y
141CONFIG_BROKEN_ON_SMP=y 145CONFIG_BROKEN_ON_SMP=y
142CONFIG_INIT_ENV_ARG_LIMIT=32 146CONFIG_INIT_ENV_ARG_LIMIT=32
143 147
@@ -153,6 +157,7 @@ CONFIG_SYSVIPC=y
153CONFIG_SYSCTL=y 157CONFIG_SYSCTL=y
154# CONFIG_AUDIT is not set 158# CONFIG_AUDIT is not set
155# CONFIG_IKCONFIG is not set 159# CONFIG_IKCONFIG is not set
160# CONFIG_RELAY is not set
156CONFIG_INITRAMFS_SOURCE="" 161CONFIG_INITRAMFS_SOURCE=""
157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 162# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
158CONFIG_EMBEDDED=y 163CONFIG_EMBEDDED=y
@@ -166,10 +171,6 @@ CONFIG_BASE_FULL=y
166CONFIG_FUTEX=y 171CONFIG_FUTEX=y
167CONFIG_EPOLL=y 172CONFIG_EPOLL=y
168CONFIG_SHMEM=y 173CONFIG_SHMEM=y
169CONFIG_CC_ALIGN_FUNCTIONS=0
170CONFIG_CC_ALIGN_LABELS=0
171CONFIG_CC_ALIGN_LOOPS=0
172CONFIG_CC_ALIGN_JUMPS=0
173CONFIG_SLAB=y 174CONFIG_SLAB=y
174# CONFIG_TINY_SHMEM is not set 175# CONFIG_TINY_SHMEM is not set
175CONFIG_BASE_SMALL=0 176CONFIG_BASE_SMALL=0
@@ -181,7 +182,6 @@ CONFIG_BASE_SMALL=0
181CONFIG_MODULES=y 182CONFIG_MODULES=y
182CONFIG_MODULE_UNLOAD=y 183CONFIG_MODULE_UNLOAD=y
183# CONFIG_MODULE_FORCE_UNLOAD is not set 184# CONFIG_MODULE_FORCE_UNLOAD is not set
184CONFIG_OBSOLETE_MODPARM=y
185CONFIG_MODVERSIONS=y 185CONFIG_MODVERSIONS=y
186CONFIG_MODULE_SRCVERSION_ALL=y 186CONFIG_MODULE_SRCVERSION_ALL=y
187CONFIG_KMOD=y 187CONFIG_KMOD=y
@@ -189,6 +189,9 @@ CONFIG_KMOD=y
189# 189#
190# Block layer 190# Block layer
191# 191#
192# CONFIG_LBD is not set
193# CONFIG_BLK_DEV_IO_TRACE is not set
194# CONFIG_LSF is not set
192 195
193# 196#
194# IO Schedulers 197# IO Schedulers
@@ -208,7 +211,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
208# 211#
209CONFIG_HW_HAS_PCI=y 212CONFIG_HW_HAS_PCI=y
210CONFIG_PCI=y 213CONFIG_PCI=y
211# CONFIG_PCI_LEGACY_PROC is not set
212CONFIG_MMU=y 214CONFIG_MMU=y
213 215
214# 216#
@@ -226,6 +228,7 @@ CONFIG_MMU=y
226# 228#
227CONFIG_BINFMT_ELF=y 229CONFIG_BINFMT_ELF=y
228# CONFIG_BINFMT_MISC is not set 230# CONFIG_BINFMT_MISC is not set
231CONFIG_TRAD_SIGNALS=y
229 232
230# 233#
231# Networking 234# Networking
@@ -235,11 +238,10 @@ CONFIG_NET=y
235# 238#
236# Networking options 239# Networking options
237# 240#
241# CONFIG_NETDEBUG is not set
238CONFIG_PACKET=y 242CONFIG_PACKET=y
239# CONFIG_PACKET_MMAP is not set 243# CONFIG_PACKET_MMAP is not set
240CONFIG_UNIX=y 244CONFIG_UNIX=y
241CONFIG_XFRM=y
242CONFIG_XFRM_USER=m
243# CONFIG_NET_KEY is not set 245# CONFIG_NET_KEY is not set
244CONFIG_INET=y 246CONFIG_INET=y
245CONFIG_IP_MULTICAST=y 247CONFIG_IP_MULTICAST=y
@@ -263,12 +265,15 @@ CONFIG_SYN_COOKIES=y
263# CONFIG_INET_AH is not set 265# CONFIG_INET_AH is not set
264# CONFIG_INET_ESP is not set 266# CONFIG_INET_ESP is not set
265# CONFIG_INET_IPCOMP is not set 267# CONFIG_INET_IPCOMP is not set
266CONFIG_INET_TUNNEL=m 268# CONFIG_INET_XFRM_TUNNEL is not set
269# CONFIG_INET_TUNNEL is not set
267CONFIG_INET_DIAG=y 270CONFIG_INET_DIAG=y
268CONFIG_INET_TCP_DIAG=y 271CONFIG_INET_TCP_DIAG=y
269# CONFIG_TCP_CONG_ADVANCED is not set 272# CONFIG_TCP_CONG_ADVANCED is not set
270CONFIG_TCP_CONG_BIC=y 273CONFIG_TCP_CONG_BIC=y
271# CONFIG_IPV6 is not set 274# CONFIG_IPV6 is not set
275# CONFIG_INET6_XFRM_TUNNEL is not set
276# CONFIG_INET6_TUNNEL is not set
272# CONFIG_NETFILTER is not set 277# CONFIG_NETFILTER is not set
273 278
274# 279#
@@ -280,6 +285,11 @@ CONFIG_TCP_CONG_BIC=y
280# SCTP Configuration (EXPERIMENTAL) 285# SCTP Configuration (EXPERIMENTAL)
281# 286#
282# CONFIG_IP_SCTP is not set 287# CONFIG_IP_SCTP is not set
288
289#
290# TIPC Configuration (EXPERIMENTAL)
291#
292# CONFIG_TIPC is not set
283# CONFIG_ATM is not set 293# CONFIG_ATM is not set
284# CONFIG_BRIDGE is not set 294# CONFIG_BRIDGE is not set
285# CONFIG_VLAN_8021Q is not set 295# CONFIG_VLAN_8021Q is not set
@@ -289,11 +299,6 @@ CONFIG_TCP_CONG_BIC=y
289# CONFIG_ATALK is not set 299# CONFIG_ATALK is not set
290# CONFIG_X25 is not set 300# CONFIG_X25 is not set
291# CONFIG_LAPB is not set 301# CONFIG_LAPB is not set
292
293#
294# TIPC Configuration (EXPERIMENTAL)
295#
296# CONFIG_TIPC is not set
297# CONFIG_NET_DIVERT is not set 302# CONFIG_NET_DIVERT is not set
298# CONFIG_ECONET is not set 303# CONFIG_ECONET is not set
299# CONFIG_WAN_ROUTER is not set 304# CONFIG_WAN_ROUTER is not set
@@ -310,10 +315,7 @@ CONFIG_TCP_CONG_BIC=y
310# CONFIG_HAMRADIO is not set 315# CONFIG_HAMRADIO is not set
311# CONFIG_IRDA is not set 316# CONFIG_IRDA is not set
312# CONFIG_BT is not set 317# CONFIG_BT is not set
313CONFIG_IEEE80211=m 318# CONFIG_IEEE80211 is not set
314# CONFIG_IEEE80211_DEBUG is not set
315CONFIG_IEEE80211_CRYPT_WEP=m
316CONFIG_IEEE80211_CRYPT_CCMP=m
317 319
318# 320#
319# Device Drivers 321# Device Drivers
@@ -358,11 +360,12 @@ CONFIG_BLK_DEV_LOOP=m
358CONFIG_BLK_DEV_NBD=m 360CONFIG_BLK_DEV_NBD=m
359# CONFIG_BLK_DEV_SX8 is not set 361# CONFIG_BLK_DEV_SX8 is not set
360# CONFIG_BLK_DEV_UB is not set 362# CONFIG_BLK_DEV_UB is not set
361CONFIG_BLK_DEV_RAM=m 363CONFIG_BLK_DEV_RAM=y
362CONFIG_BLK_DEV_RAM_COUNT=16 364CONFIG_BLK_DEV_RAM_COUNT=16
363CONFIG_BLK_DEV_RAM_SIZE=4096 365CONFIG_BLK_DEV_RAM_SIZE=4096
366# CONFIG_BLK_DEV_INITRD is not set
364# CONFIG_CDROM_PKTCDVD is not set 367# CONFIG_CDROM_PKTCDVD is not set
365CONFIG_ATA_OVER_ETH=m 368# CONFIG_ATA_OVER_ETH is not set
366 369
367# 370#
368# ATA/ATAPI/MFM/RLL support 371# ATA/ATAPI/MFM/RLL support
@@ -397,14 +400,14 @@ CONFIG_SCSI_MULTI_LUN=y
397# SCSI Transport Attributes 400# SCSI Transport Attributes
398# 401#
399# CONFIG_SCSI_SPI_ATTRS is not set 402# CONFIG_SCSI_SPI_ATTRS is not set
400CONFIG_SCSI_FC_ATTRS=y 403# CONFIG_SCSI_FC_ATTRS is not set
401CONFIG_SCSI_ISCSI_ATTRS=m 404# CONFIG_SCSI_ISCSI_ATTRS is not set
402# CONFIG_SCSI_SAS_ATTRS is not set 405# CONFIG_SCSI_SAS_ATTRS is not set
403 406
404# 407#
405# SCSI low-level drivers 408# SCSI low-level drivers
406# 409#
407CONFIG_ISCSI_TCP=m 410# CONFIG_ISCSI_TCP is not set
408# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 411# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
409# CONFIG_SCSI_3W_9XXX is not set 412# CONFIG_SCSI_3W_9XXX is not set
410# CONFIG_SCSI_ACARD is not set 413# CONFIG_SCSI_ACARD is not set
@@ -424,7 +427,6 @@ CONFIG_ISCSI_TCP=m
424# CONFIG_SCSI_INIA100 is not set 427# CONFIG_SCSI_INIA100 is not set
425# CONFIG_SCSI_SYM53C8XX_2 is not set 428# CONFIG_SCSI_SYM53C8XX_2 is not set
426# CONFIG_SCSI_IPR is not set 429# CONFIG_SCSI_IPR is not set
427# CONFIG_SCSI_QLOGIC_FC is not set
428# CONFIG_SCSI_QLOGIC_1280 is not set 430# CONFIG_SCSI_QLOGIC_1280 is not set
429# CONFIG_SCSI_QLA_FC is not set 431# CONFIG_SCSI_QLA_FC is not set
430# CONFIG_SCSI_LPFC is not set 432# CONFIG_SCSI_LPFC is not set
@@ -507,8 +509,8 @@ CONFIG_NET_PCI=y
507# CONFIG_B44 is not set 509# CONFIG_B44 is not set
508# CONFIG_FORCEDETH is not set 510# CONFIG_FORCEDETH is not set
509# CONFIG_DGRS is not set 511# CONFIG_DGRS is not set
510CONFIG_EEPRO100=y 512# CONFIG_EEPRO100 is not set
511# CONFIG_E100 is not set 513CONFIG_E100=y
512# CONFIG_FEALNX is not set 514# CONFIG_FEALNX is not set
513# CONFIG_NATSEMI is not set 515# CONFIG_NATSEMI is not set
514# CONFIG_NE2K_PCI is not set 516# CONFIG_NE2K_PCI is not set
@@ -625,6 +627,11 @@ CONFIG_HW_CONSOLE=y
625# 627#
626# Non-8250 serial port support 628# Non-8250 serial port support
627# 629#
630CONFIG_SERIAL_CORE=y
631CONFIG_SERIAL_CORE_CONSOLE=y
632CONFIG_SERIAL_VR41XX=y
633CONFIG_SERIAL_VR41XX_CONSOLE=y
634# CONFIG_SERIAL_JSM is not set
628CONFIG_UNIX98_PTYS=y 635CONFIG_UNIX98_PTYS=y
629CONFIG_LEGACY_PTYS=y 636CONFIG_LEGACY_PTYS=y
630CONFIG_LEGACY_PTY_COUNT=256 637CONFIG_LEGACY_PTY_COUNT=256
@@ -685,10 +692,6 @@ CONFIG_GPIO_VR41XX=y
685# 692#
686 693
687# 694#
688# Multimedia Capabilities Port drivers
689#
690
691#
692# Multimedia devices 695# Multimedia devices
693# 696#
694# CONFIG_VIDEO_DEV is not set 697# CONFIG_VIDEO_DEV is not set
@@ -697,6 +700,7 @@ CONFIG_GPIO_VR41XX=y
697# Digital Video Broadcasting Devices 700# Digital Video Broadcasting Devices
698# 701#
699# CONFIG_DVB is not set 702# CONFIG_DVB is not set
703# CONFIG_USB_DABUSB is not set
700 704
701# 705#
702# Graphics support 706# Graphics support
@@ -719,6 +723,7 @@ CONFIG_DUMMY_CONSOLE=y
719# 723#
720CONFIG_USB_ARCH_HAS_HCD=y 724CONFIG_USB_ARCH_HAS_HCD=y
721CONFIG_USB_ARCH_HAS_OHCI=y 725CONFIG_USB_ARCH_HAS_OHCI=y
726CONFIG_USB_ARCH_HAS_EHCI=y
722CONFIG_USB=y 727CONFIG_USB=y
723# CONFIG_USB_DEBUG is not set 728# CONFIG_USB_DEBUG is not set
724 729
@@ -756,7 +761,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
756# 761#
757# may also be needed; see USB_STORAGE Help for more information 762# may also be needed; see USB_STORAGE Help for more information
758# 763#
759CONFIG_USB_STORAGE=m 764CONFIG_USB_STORAGE=y
760# CONFIG_USB_STORAGE_DEBUG is not set 765# CONFIG_USB_STORAGE_DEBUG is not set
761# CONFIG_USB_STORAGE_DATAFAB is not set 766# CONFIG_USB_STORAGE_DATAFAB is not set
762# CONFIG_USB_STORAGE_FREECOM is not set 767# CONFIG_USB_STORAGE_FREECOM is not set
@@ -783,9 +788,7 @@ CONFIG_USB_STORAGE=m
783# CONFIG_USB_ACECAD is not set 788# CONFIG_USB_ACECAD is not set
784# CONFIG_USB_KBTAB is not set 789# CONFIG_USB_KBTAB is not set
785# CONFIG_USB_POWERMATE is not set 790# CONFIG_USB_POWERMATE is not set
786# CONFIG_USB_MTOUCH is not set 791# CONFIG_USB_TOUCHSCREEN is not set
787# CONFIG_USB_ITMTOUCH is not set
788# CONFIG_USB_EGALAX is not set
789# CONFIG_USB_YEALINK is not set 792# CONFIG_USB_YEALINK is not set
790# CONFIG_USB_XPAD is not set 793# CONFIG_USB_XPAD is not set
791# CONFIG_USB_ATI_REMOTE is not set 794# CONFIG_USB_ATI_REMOTE is not set
@@ -800,15 +803,6 @@ CONFIG_USB_STORAGE=m
800# CONFIG_USB_MICROTEK is not set 803# CONFIG_USB_MICROTEK is not set
801 804
802# 805#
803# USB Multimedia devices
804#
805# CONFIG_USB_DABUSB is not set
806
807#
808# Video4Linux support is needed for USB Multimedia device support
809#
810
811#
812# USB Network Adapters 806# USB Network Adapters
813# 807#
814# CONFIG_USB_CATC is not set 808# CONFIG_USB_CATC is not set
@@ -816,7 +810,7 @@ CONFIG_USB_STORAGE=m
816# CONFIG_USB_PEGASUS is not set 810# CONFIG_USB_PEGASUS is not set
817# CONFIG_USB_RTL8150 is not set 811# CONFIG_USB_RTL8150 is not set
818# CONFIG_USB_USBNET is not set 812# CONFIG_USB_USBNET is not set
819CONFIG_USB_MON=y 813# CONFIG_USB_MON is not set
820 814
821# 815#
822# USB port drivers 816# USB port drivers
@@ -860,13 +854,48 @@ CONFIG_USB_MON=y
860# CONFIG_MMC is not set 854# CONFIG_MMC is not set
861 855
862# 856#
857# LED devices
858#
859# CONFIG_NEW_LEDS is not set
860
861#
862# LED drivers
863#
864
865#
866# LED Triggers
867#
868
869#
863# InfiniBand support 870# InfiniBand support
864# 871#
865# CONFIG_INFINIBAND is not set 872# CONFIG_INFINIBAND is not set
866 873
867# 874#
868# SN Devices 875# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
876#
877
878#
879# Real Time Clock
880#
881CONFIG_RTC_LIB=y
882CONFIG_RTC_CLASS=y
883CONFIG_RTC_HCTOSYS=y
884CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
885
886#
887# RTC interfaces
888#
889CONFIG_RTC_INTF_SYSFS=y
890CONFIG_RTC_INTF_PROC=y
891CONFIG_RTC_INTF_DEV=y
892
893#
894# RTC drivers
869# 895#
896# CONFIG_RTC_DRV_M48T86 is not set
897CONFIG_RTC_DRV_VR41XX=y
898# CONFIG_RTC_DRV_TEST is not set
870 899
871# 900#
872# File systems 901# File systems
@@ -911,7 +940,6 @@ CONFIG_SYSFS=y
911CONFIG_TMPFS=y 940CONFIG_TMPFS=y
912# CONFIG_HUGETLB_PAGE is not set 941# CONFIG_HUGETLB_PAGE is not set
913CONFIG_RAMFS=y 942CONFIG_RAMFS=y
914CONFIG_RELAYFS_FS=m
915# CONFIG_CONFIGFS_FS is not set 943# CONFIG_CONFIGFS_FS is not set
916 944
917# 945#
@@ -952,9 +980,7 @@ CONFIG_NFS_COMMON=y
952CONFIG_SUNRPC=y 980CONFIG_SUNRPC=y
953# CONFIG_RPCSEC_GSS_KRB5 is not set 981# CONFIG_RPCSEC_GSS_KRB5 is not set
954# CONFIG_RPCSEC_GSS_SPKM3 is not set 982# CONFIG_RPCSEC_GSS_SPKM3 is not set
955CONFIG_SMB_FS=m 983# CONFIG_SMB_FS is not set
956CONFIG_SMB_NLS_DEFAULT=y
957CONFIG_SMB_NLS_REMOTE="cp932"
958# CONFIG_CIFS is not set 984# CONFIG_CIFS is not set
959# CONFIG_NCP_FS is not set 985# CONFIG_NCP_FS is not set
960# CONFIG_CODA_FS is not set 986# CONFIG_CODA_FS is not set
@@ -970,46 +996,7 @@ CONFIG_MSDOS_PARTITION=y
970# 996#
971# Native Language Support 997# Native Language Support
972# 998#
973CONFIG_NLS=y 999# CONFIG_NLS is not set
974CONFIG_NLS_DEFAULT="iso8859-1"
975CONFIG_NLS_CODEPAGE_437=m
976# CONFIG_NLS_CODEPAGE_737 is not set
977# CONFIG_NLS_CODEPAGE_775 is not set
978# CONFIG_NLS_CODEPAGE_850 is not set
979# CONFIG_NLS_CODEPAGE_852 is not set
980# CONFIG_NLS_CODEPAGE_855 is not set
981# CONFIG_NLS_CODEPAGE_857 is not set
982# CONFIG_NLS_CODEPAGE_860 is not set
983# CONFIG_NLS_CODEPAGE_861 is not set
984# CONFIG_NLS_CODEPAGE_862 is not set
985# CONFIG_NLS_CODEPAGE_863 is not set
986# CONFIG_NLS_CODEPAGE_864 is not set
987# CONFIG_NLS_CODEPAGE_865 is not set
988# CONFIG_NLS_CODEPAGE_866 is not set
989# CONFIG_NLS_CODEPAGE_869 is not set
990# CONFIG_NLS_CODEPAGE_936 is not set
991# CONFIG_NLS_CODEPAGE_950 is not set
992CONFIG_NLS_CODEPAGE_932=m
993# CONFIG_NLS_CODEPAGE_949 is not set
994# CONFIG_NLS_CODEPAGE_874 is not set
995# CONFIG_NLS_ISO8859_8 is not set
996# CONFIG_NLS_CODEPAGE_1250 is not set
997# CONFIG_NLS_CODEPAGE_1251 is not set
998# CONFIG_NLS_ASCII is not set
999CONFIG_NLS_ISO8859_1=m
1000# CONFIG_NLS_ISO8859_2 is not set
1001# CONFIG_NLS_ISO8859_3 is not set
1002# CONFIG_NLS_ISO8859_4 is not set
1003# CONFIG_NLS_ISO8859_5 is not set
1004# CONFIG_NLS_ISO8859_6 is not set
1005# CONFIG_NLS_ISO8859_7 is not set
1006# CONFIG_NLS_ISO8859_9 is not set
1007# CONFIG_NLS_ISO8859_13 is not set
1008# CONFIG_NLS_ISO8859_14 is not set
1009# CONFIG_NLS_ISO8859_15 is not set
1010# CONFIG_NLS_KOI8_R is not set
1011# CONFIG_NLS_KOI8_U is not set
1012# CONFIG_NLS_UTF8 is not set
1013 1000
1014# 1001#
1015# Profiling support 1002# Profiling support
@@ -1023,44 +1010,20 @@ CONFIG_NLS_ISO8859_1=m
1023# CONFIG_MAGIC_SYSRQ is not set 1010# CONFIG_MAGIC_SYSRQ is not set
1024# CONFIG_DEBUG_KERNEL is not set 1011# CONFIG_DEBUG_KERNEL is not set
1025CONFIG_LOG_BUF_SHIFT=14 1012CONFIG_LOG_BUF_SHIFT=14
1013# CONFIG_DEBUG_FS is not set
1026CONFIG_CROSSCOMPILE=y 1014CONFIG_CROSSCOMPILE=y
1027CONFIG_CMDLINE="mem=32M console=ttyVR0,115200" 1015CONFIG_CMDLINE="mem=32M console=ttyVR0,115200"
1028 1016
1029# 1017#
1030# Security options 1018# Security options
1031# 1019#
1032CONFIG_KEYS=y 1020# CONFIG_KEYS is not set
1033CONFIG_KEYS_DEBUG_PROC_KEYS=y
1034# CONFIG_SECURITY is not set 1021# CONFIG_SECURITY is not set
1035 1022
1036# 1023#
1037# Cryptographic options 1024# Cryptographic options
1038# 1025#
1039CONFIG_CRYPTO=y 1026# CONFIG_CRYPTO is not set
1040CONFIG_CRYPTO_HMAC=y
1041CONFIG_CRYPTO_NULL=m
1042CONFIG_CRYPTO_MD4=m
1043CONFIG_CRYPTO_MD5=m
1044CONFIG_CRYPTO_SHA1=m
1045CONFIG_CRYPTO_SHA256=m
1046CONFIG_CRYPTO_SHA512=m
1047CONFIG_CRYPTO_WP512=m
1048CONFIG_CRYPTO_TGR192=m
1049CONFIG_CRYPTO_DES=m
1050CONFIG_CRYPTO_BLOWFISH=m
1051CONFIG_CRYPTO_TWOFISH=m
1052CONFIG_CRYPTO_SERPENT=m
1053CONFIG_CRYPTO_AES=m
1054CONFIG_CRYPTO_CAST5=m
1055CONFIG_CRYPTO_CAST6=m
1056CONFIG_CRYPTO_TEA=m
1057CONFIG_CRYPTO_ARC4=m
1058CONFIG_CRYPTO_KHAZAD=m
1059CONFIG_CRYPTO_ANUBIS=m
1060CONFIG_CRYPTO_DEFLATE=m
1061CONFIG_CRYPTO_MICHAEL_MIC=m
1062CONFIG_CRYPTO_CRC32C=m
1063# CONFIG_CRYPTO_TEST is not set
1064 1027
1065# 1028#
1066# Hardware crypto devices 1029# Hardware crypto devices
@@ -1069,9 +1032,8 @@ CONFIG_CRYPTO_CRC32C=m
1069# 1032#
1070# Library routines 1033# Library routines
1071# 1034#
1072CONFIG_CRC_CCITT=m 1035# CONFIG_CRC_CCITT is not set
1073CONFIG_CRC16=m 1036# CONFIG_CRC16 is not set
1074CONFIG_CRC32=m 1037# CONFIG_CRC32 is not set
1075CONFIG_LIBCRC32C=m 1038# CONFIG_LIBCRC32C is not set
1076CONFIG_ZLIB_INFLATE=m 1039CONFIG_ZLIB_INFLATE=m
1077CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/mips/configs/tb0229_defconfig b/arch/mips/configs/tb0229_defconfig
index be99261d7997..5a924c1a5803 100644
--- a/arch/mips/configs/tb0229_defconfig
+++ b/arch/mips/configs/tb0229_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:35 2006 4# Tue Apr 25 00:08:59 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -68,12 +68,14 @@ CONFIG_MACH_VR41XX=y
68# CONFIG_NEC_CMBVR4133 is not set 68# CONFIG_NEC_CMBVR4133 is not set
69CONFIG_TANBAC_TB022X=y 69CONFIG_TANBAC_TB022X=y
70# CONFIG_TANBAC_TB0226 is not set 70# CONFIG_TANBAC_TB0226 is not set
71CONFIG_TANBAC_TB0287=y 71# CONFIG_TANBAC_TB0287 is not set
72# CONFIG_VICTOR_MPC30X is not set 72# CONFIG_VICTOR_MPC30X is not set
73# CONFIG_ZAO_CAPCELLA is not set 73# CONFIG_ZAO_CAPCELLA is not set
74CONFIG_PCI_VR41XX=y 74CONFIG_PCI_VR41XX=y
75# CONFIG_VRC4173 is not set 75# CONFIG_VRC4173 is not set
76CONFIG_RWSEM_GENERIC_SPINLOCK=y 76CONFIG_RWSEM_GENERIC_SPINLOCK=y
77CONFIG_GENERIC_FIND_NEXT_BIT=y
78CONFIG_GENERIC_HWEIGHT=y
77CONFIG_GENERIC_CALIBRATE_DELAY=y 79CONFIG_GENERIC_CALIBRATE_DELAY=y
78CONFIG_DMA_NONCOHERENT=y 80CONFIG_DMA_NONCOHERENT=y
79CONFIG_DMA_NEED_PCI_MAP_STATE=y 81CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -92,7 +94,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
92# CONFIG_CPU_MIPS64_R2 is not set 94# CONFIG_CPU_MIPS64_R2 is not set
93# CONFIG_CPU_R3000 is not set 95# CONFIG_CPU_R3000 is not set
94# CONFIG_CPU_TX39XX is not set 96# CONFIG_CPU_TX39XX is not set
95# CONFIG_CPU_VR41XX is not set 97CONFIG_CPU_VR41XX=y
96# CONFIG_CPU_R4300 is not set 98# CONFIG_CPU_R4300 is not set
97# CONFIG_CPU_R4X00 is not set 99# CONFIG_CPU_R4X00 is not set
98# CONFIG_CPU_TX49XX is not set 100# CONFIG_CPU_TX49XX is not set
@@ -105,18 +107,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
105# CONFIG_CPU_RM7000 is not set 107# CONFIG_CPU_RM7000 is not set
106# CONFIG_CPU_RM9000 is not set 108# CONFIG_CPU_RM9000 is not set
107# CONFIG_CPU_SB1 is not set 109# CONFIG_CPU_SB1 is not set
110CONFIG_SYS_HAS_CPU_VR41XX=y
111CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
112CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
113CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
108 114
109# 115#
110# Kernel type 116# Kernel type
111# 117#
112# CONFIG_32BIT is not set 118CONFIG_32BIT=y
113# CONFIG_64BIT is not set 119# CONFIG_64BIT is not set
114CONFIG_PAGE_SIZE_4KB=y 120CONFIG_PAGE_SIZE_4KB=y
115# CONFIG_PAGE_SIZE_8KB is not set 121# CONFIG_PAGE_SIZE_8KB is not set
116# CONFIG_PAGE_SIZE_16KB is not set 122# CONFIG_PAGE_SIZE_16KB is not set
117# CONFIG_PAGE_SIZE_64KB is not set 123# CONFIG_PAGE_SIZE_64KB is not set
118# CONFIG_MIPS_MT is not set 124# CONFIG_MIPS_MT is not set
119CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 125CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y 126CONFIG_GENERIC_HARDIRQS=y
122CONFIG_GENERIC_IRQ_PROBE=y 127CONFIG_GENERIC_IRQ_PROBE=y
@@ -137,7 +142,6 @@ CONFIG_PREEMPT_NONE=y
137# Code maturity level options 142# Code maturity level options
138# 143#
139CONFIG_EXPERIMENTAL=y 144CONFIG_EXPERIMENTAL=y
140CONFIG_CLEAN_COMPILE=y
141CONFIG_BROKEN_ON_SMP=y 145CONFIG_BROKEN_ON_SMP=y
142CONFIG_INIT_ENV_ARG_LIMIT=32 146CONFIG_INIT_ENV_ARG_LIMIT=32
143 147
@@ -153,6 +157,7 @@ CONFIG_SYSVIPC=y
153CONFIG_SYSCTL=y 157CONFIG_SYSCTL=y
154# CONFIG_AUDIT is not set 158# CONFIG_AUDIT is not set
155# CONFIG_IKCONFIG is not set 159# CONFIG_IKCONFIG is not set
160# CONFIG_RELAY is not set
156CONFIG_INITRAMFS_SOURCE="" 161CONFIG_INITRAMFS_SOURCE=""
157# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 162# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
158CONFIG_EMBEDDED=y 163CONFIG_EMBEDDED=y
@@ -166,10 +171,6 @@ CONFIG_BASE_FULL=y
166CONFIG_FUTEX=y 171CONFIG_FUTEX=y
167CONFIG_EPOLL=y 172CONFIG_EPOLL=y
168CONFIG_SHMEM=y 173CONFIG_SHMEM=y
169CONFIG_CC_ALIGN_FUNCTIONS=0
170CONFIG_CC_ALIGN_LABELS=0
171CONFIG_CC_ALIGN_LOOPS=0
172CONFIG_CC_ALIGN_JUMPS=0
173CONFIG_SLAB=y 174CONFIG_SLAB=y
174# CONFIG_TINY_SHMEM is not set 175# CONFIG_TINY_SHMEM is not set
175CONFIG_BASE_SMALL=0 176CONFIG_BASE_SMALL=0
@@ -181,7 +182,6 @@ CONFIG_BASE_SMALL=0
181CONFIG_MODULES=y 182CONFIG_MODULES=y
182CONFIG_MODULE_UNLOAD=y 183CONFIG_MODULE_UNLOAD=y
183# CONFIG_MODULE_FORCE_UNLOAD is not set 184# CONFIG_MODULE_FORCE_UNLOAD is not set
184CONFIG_OBSOLETE_MODPARM=y
185CONFIG_MODVERSIONS=y 185CONFIG_MODVERSIONS=y
186CONFIG_MODULE_SRCVERSION_ALL=y 186CONFIG_MODULE_SRCVERSION_ALL=y
187CONFIG_KMOD=y 187CONFIG_KMOD=y
@@ -189,6 +189,9 @@ CONFIG_KMOD=y
189# 189#
190# Block layer 190# Block layer
191# 191#
192# CONFIG_LBD is not set
193# CONFIG_BLK_DEV_IO_TRACE is not set
194# CONFIG_LSF is not set
192 195
193# 196#
194# IO Schedulers 197# IO Schedulers
@@ -208,7 +211,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
208# 211#
209CONFIG_HW_HAS_PCI=y 212CONFIG_HW_HAS_PCI=y
210CONFIG_PCI=y 213CONFIG_PCI=y
211# CONFIG_PCI_LEGACY_PROC is not set
212CONFIG_MMU=y 214CONFIG_MMU=y
213 215
214# 216#
@@ -226,6 +228,7 @@ CONFIG_MMU=y
226# 228#
227CONFIG_BINFMT_ELF=y 229CONFIG_BINFMT_ELF=y
228# CONFIG_BINFMT_MISC is not set 230# CONFIG_BINFMT_MISC is not set
231CONFIG_TRAD_SIGNALS=y
229 232
230# 233#
231# Networking 234# Networking
@@ -235,11 +238,10 @@ CONFIG_NET=y
235# 238#
236# Networking options 239# Networking options
237# 240#
241# CONFIG_NETDEBUG is not set
238CONFIG_PACKET=y 242CONFIG_PACKET=y
239# CONFIG_PACKET_MMAP is not set 243# CONFIG_PACKET_MMAP is not set
240CONFIG_UNIX=y 244CONFIG_UNIX=y
241CONFIG_XFRM=y
242CONFIG_XFRM_USER=m
243# CONFIG_NET_KEY is not set 245# CONFIG_NET_KEY is not set
244CONFIG_INET=y 246CONFIG_INET=y
245CONFIG_IP_MULTICAST=y 247CONFIG_IP_MULTICAST=y
@@ -264,12 +266,15 @@ CONFIG_SYN_COOKIES=y
264# CONFIG_INET_AH is not set 266# CONFIG_INET_AH is not set
265# CONFIG_INET_ESP is not set 267# CONFIG_INET_ESP is not set
266# CONFIG_INET_IPCOMP is not set 268# CONFIG_INET_IPCOMP is not set
269# CONFIG_INET_XFRM_TUNNEL is not set
267CONFIG_INET_TUNNEL=m 270CONFIG_INET_TUNNEL=m
268CONFIG_INET_DIAG=y 271CONFIG_INET_DIAG=y
269CONFIG_INET_TCP_DIAG=y 272CONFIG_INET_TCP_DIAG=y
270# CONFIG_TCP_CONG_ADVANCED is not set 273# CONFIG_TCP_CONG_ADVANCED is not set
271CONFIG_TCP_CONG_BIC=y 274CONFIG_TCP_CONG_BIC=y
272# CONFIG_IPV6 is not set 275# CONFIG_IPV6 is not set
276# CONFIG_INET6_XFRM_TUNNEL is not set
277# CONFIG_INET6_TUNNEL is not set
273# CONFIG_NETFILTER is not set 278# CONFIG_NETFILTER is not set
274 279
275# 280#
@@ -281,6 +286,11 @@ CONFIG_TCP_CONG_BIC=y
281# SCTP Configuration (EXPERIMENTAL) 286# SCTP Configuration (EXPERIMENTAL)
282# 287#
283# CONFIG_IP_SCTP is not set 288# CONFIG_IP_SCTP is not set
289
290#
291# TIPC Configuration (EXPERIMENTAL)
292#
293# CONFIG_TIPC is not set
284# CONFIG_ATM is not set 294# CONFIG_ATM is not set
285# CONFIG_BRIDGE is not set 295# CONFIG_BRIDGE is not set
286# CONFIG_VLAN_8021Q is not set 296# CONFIG_VLAN_8021Q is not set
@@ -290,11 +300,6 @@ CONFIG_TCP_CONG_BIC=y
290# CONFIG_ATALK is not set 300# CONFIG_ATALK is not set
291# CONFIG_X25 is not set 301# CONFIG_X25 is not set
292# CONFIG_LAPB is not set 302# CONFIG_LAPB is not set
293
294#
295# TIPC Configuration (EXPERIMENTAL)
296#
297# CONFIG_TIPC is not set
298# CONFIG_NET_DIVERT is not set 303# CONFIG_NET_DIVERT is not set
299# CONFIG_ECONET is not set 304# CONFIG_ECONET is not set
300# CONFIG_WAN_ROUTER is not set 305# CONFIG_WAN_ROUTER is not set
@@ -311,10 +316,7 @@ CONFIG_TCP_CONG_BIC=y
311# CONFIG_HAMRADIO is not set 316# CONFIG_HAMRADIO is not set
312# CONFIG_IRDA is not set 317# CONFIG_IRDA is not set
313# CONFIG_BT is not set 318# CONFIG_BT is not set
314CONFIG_IEEE80211=m 319# CONFIG_IEEE80211 is not set
315# CONFIG_IEEE80211_DEBUG is not set
316CONFIG_IEEE80211_CRYPT_WEP=m
317CONFIG_IEEE80211_CRYPT_CCMP=m
318 320
319# 321#
320# Device Drivers 322# Device Drivers
@@ -325,12 +327,12 @@ CONFIG_IEEE80211_CRYPT_CCMP=m
325# 327#
326CONFIG_STANDALONE=y 328CONFIG_STANDALONE=y
327CONFIG_PREVENT_FIRMWARE_BUILD=y 329CONFIG_PREVENT_FIRMWARE_BUILD=y
328CONFIG_FW_LOADER=m 330# CONFIG_FW_LOADER is not set
329 331
330# 332#
331# Connector - unified userspace <-> kernelspace linker 333# Connector - unified userspace <-> kernelspace linker
332# 334#
333CONFIG_CONNECTOR=m 335# CONFIG_CONNECTOR is not set
334 336
335# 337#
336# Memory Technology Devices (MTD) 338# Memory Technology Devices (MTD)
@@ -363,10 +365,8 @@ CONFIG_BLK_DEV_RAM=y
363CONFIG_BLK_DEV_RAM_COUNT=16 365CONFIG_BLK_DEV_RAM_COUNT=16
364CONFIG_BLK_DEV_RAM_SIZE=4096 366CONFIG_BLK_DEV_RAM_SIZE=4096
365# CONFIG_BLK_DEV_INITRD is not set 367# CONFIG_BLK_DEV_INITRD is not set
366CONFIG_CDROM_PKTCDVD=m 368# CONFIG_CDROM_PKTCDVD is not set
367CONFIG_CDROM_PKTCDVD_BUFFERS=8 369# CONFIG_ATA_OVER_ETH is not set
368# CONFIG_CDROM_PKTCDVD_WCACHE is not set
369CONFIG_ATA_OVER_ETH=m
370 370
371# 371#
372# ATA/ATAPI/MFM/RLL support 372# ATA/ATAPI/MFM/RLL support
@@ -443,30 +443,7 @@ CONFIG_MII=y
443# 443#
444# CONFIG_NET_TULIP is not set 444# CONFIG_NET_TULIP is not set
445# CONFIG_HP100 is not set 445# CONFIG_HP100 is not set
446CONFIG_NET_PCI=y 446# CONFIG_NET_PCI is not set
447# CONFIG_PCNET32 is not set
448# CONFIG_AMD8111_ETH is not set
449# CONFIG_ADAPTEC_STARFIRE is not set
450# CONFIG_B44 is not set
451# CONFIG_FORCEDETH is not set
452# CONFIG_DGRS is not set
453CONFIG_EEPRO100=y
454# CONFIG_E100 is not set
455# CONFIG_FEALNX is not set
456# CONFIG_NATSEMI is not set
457# CONFIG_NE2K_PCI is not set
458# CONFIG_8139CP is not set
459CONFIG_8139TOO=y
460CONFIG_8139TOO_PIO=y
461# CONFIG_8139TOO_TUNE_TWISTER is not set
462# CONFIG_8139TOO_8129 is not set
463# CONFIG_8139_OLD_RX_RESET is not set
464# CONFIG_SIS900 is not set
465# CONFIG_EPIC100 is not set
466# CONFIG_SUNDANCE is not set
467# CONFIG_TLAN is not set
468# CONFIG_VIA_RHINE is not set
469# CONFIG_LAN_SAA9730 is not set
470 447
471# 448#
472# Ethernet (1000 Mbit) 449# Ethernet (1000 Mbit)
@@ -483,7 +460,6 @@ CONFIG_R8169=y
483# CONFIG_SKGE is not set 460# CONFIG_SKGE is not set
484# CONFIG_SKY2 is not set 461# CONFIG_SKY2 is not set
485# CONFIG_SK98LIN is not set 462# CONFIG_SK98LIN is not set
486# CONFIG_VIA_VELOCITY is not set
487# CONFIG_TIGON3 is not set 463# CONFIG_TIGON3 is not set
488# CONFIG_BNX2 is not set 464# CONFIG_BNX2 is not set
489 465
@@ -510,19 +486,8 @@ CONFIG_R8169=y
510# CONFIG_WAN is not set 486# CONFIG_WAN is not set
511# CONFIG_FDDI is not set 487# CONFIG_FDDI is not set
512# CONFIG_HIPPI is not set 488# CONFIG_HIPPI is not set
513CONFIG_PPP=m 489# CONFIG_PPP is not set
514CONFIG_PPP_MULTILINK=y 490# CONFIG_SLIP is not set
515CONFIG_PPP_FILTER=y
516CONFIG_PPP_ASYNC=m
517CONFIG_PPP_SYNC_TTY=m
518CONFIG_PPP_DEFLATE=m
519CONFIG_PPP_BSDCOMP=m
520CONFIG_PPP_MPPE=m
521CONFIG_PPPOE=m
522CONFIG_SLIP=m
523CONFIG_SLIP_COMPRESSED=y
524CONFIG_SLIP_SMART=y
525CONFIG_SLIP_MODE_SLIP6=y
526# CONFIG_SHAPER is not set 491# CONFIG_SHAPER is not set
527# CONFIG_NETCONSOLE is not set 492# CONFIG_NETCONSOLE is not set
528# CONFIG_NETPOLL is not set 493# CONFIG_NETPOLL is not set
@@ -583,6 +548,11 @@ CONFIG_HW_CONSOLE=y
583# 548#
584# Non-8250 serial port support 549# Non-8250 serial port support
585# 550#
551CONFIG_SERIAL_CORE=y
552CONFIG_SERIAL_CORE_CONSOLE=y
553CONFIG_SERIAL_VR41XX=y
554CONFIG_SERIAL_VR41XX_CONSOLE=y
555# CONFIG_SERIAL_JSM is not set
586CONFIG_UNIX98_PTYS=y 556CONFIG_UNIX98_PTYS=y
587CONFIG_LEGACY_PTYS=y 557CONFIG_LEGACY_PTYS=y
588CONFIG_LEGACY_PTY_COUNT=256 558CONFIG_LEGACY_PTY_COUNT=256
@@ -607,6 +577,7 @@ CONFIG_TANBAC_TB0219=y
607# Ftape, the floppy tape device driver 577# Ftape, the floppy tape device driver
608# 578#
609# CONFIG_DRM is not set 579# CONFIG_DRM is not set
580CONFIG_GPIO_VR41XX=y
610# CONFIG_RAW_DRIVER is not set 581# CONFIG_RAW_DRIVER is not set
611 582
612# 583#
@@ -642,10 +613,6 @@ CONFIG_TANBAC_TB0219=y
642# 613#
643 614
644# 615#
645# Multimedia Capabilities Port drivers
646#
647
648#
649# Multimedia devices 616# Multimedia devices
650# 617#
651# CONFIG_VIDEO_DEV is not set 618# CONFIG_VIDEO_DEV is not set
@@ -654,6 +621,7 @@ CONFIG_TANBAC_TB0219=y
654# Digital Video Broadcasting Devices 621# Digital Video Broadcasting Devices
655# 622#
656# CONFIG_DVB is not set 623# CONFIG_DVB is not set
624# CONFIG_USB_DABUSB is not set
657 625
658# 626#
659# Graphics support 627# Graphics support
@@ -676,6 +644,7 @@ CONFIG_DUMMY_CONSOLE=y
676# 644#
677CONFIG_USB_ARCH_HAS_HCD=y 645CONFIG_USB_ARCH_HAS_HCD=y
678CONFIG_USB_ARCH_HAS_OHCI=y 646CONFIG_USB_ARCH_HAS_OHCI=y
647CONFIG_USB_ARCH_HAS_EHCI=y
679CONFIG_USB=m 648CONFIG_USB=m
680# CONFIG_USB_DEBUG is not set 649# CONFIG_USB_DEBUG is not set
681 650
@@ -731,9 +700,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
731# CONFIG_USB_ACECAD is not set 700# CONFIG_USB_ACECAD is not set
732# CONFIG_USB_KBTAB is not set 701# CONFIG_USB_KBTAB is not set
733# CONFIG_USB_POWERMATE is not set 702# CONFIG_USB_POWERMATE is not set
734# CONFIG_USB_MTOUCH is not set 703# CONFIG_USB_TOUCHSCREEN is not set
735# CONFIG_USB_ITMTOUCH is not set
736# CONFIG_USB_EGALAX is not set
737# CONFIG_USB_YEALINK is not set 704# CONFIG_USB_YEALINK is not set
738# CONFIG_USB_XPAD is not set 705# CONFIG_USB_XPAD is not set
739# CONFIG_USB_ATI_REMOTE is not set 706# CONFIG_USB_ATI_REMOTE is not set
@@ -747,15 +714,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
747# CONFIG_USB_MDC800 is not set 714# CONFIG_USB_MDC800 is not set
748 715
749# 716#
750# USB Multimedia devices
751#
752# CONFIG_USB_DABUSB is not set
753
754#
755# Video4Linux support is needed for USB Multimedia device support
756#
757
758#
759# USB Network Adapters 717# USB Network Adapters
760# 718#
761# CONFIG_USB_CATC is not set 719# CONFIG_USB_CATC is not set
@@ -807,13 +765,48 @@ CONFIG_USB_MON=y
807# CONFIG_MMC is not set 765# CONFIG_MMC is not set
808 766
809# 767#
768# LED devices
769#
770# CONFIG_NEW_LEDS is not set
771
772#
773# LED drivers
774#
775
776#
777# LED Triggers
778#
779
780#
810# InfiniBand support 781# InfiniBand support
811# 782#
812# CONFIG_INFINIBAND is not set 783# CONFIG_INFINIBAND is not set
813 784
814# 785#
815# SN Devices 786# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
787#
788
789#
790# Real Time Clock
791#
792CONFIG_RTC_LIB=y
793CONFIG_RTC_CLASS=y
794CONFIG_RTC_HCTOSYS=y
795CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
796
797#
798# RTC interfaces
799#
800CONFIG_RTC_INTF_SYSFS=y
801CONFIG_RTC_INTF_PROC=y
802CONFIG_RTC_INTF_DEV=y
803
804#
805# RTC drivers
816# 806#
807# CONFIG_RTC_DRV_M48T86 is not set
808CONFIG_RTC_DRV_VR41XX=y
809# CONFIG_RTC_DRV_TEST is not set
817 810
818# 811#
819# File systems 812# File systems
@@ -821,32 +814,16 @@ CONFIG_USB_MON=y
821CONFIG_EXT2_FS=y 814CONFIG_EXT2_FS=y
822# CONFIG_EXT2_FS_XATTR is not set 815# CONFIG_EXT2_FS_XATTR is not set
823# CONFIG_EXT2_FS_XIP is not set 816# CONFIG_EXT2_FS_XIP is not set
824CONFIG_EXT3_FS=m 817# CONFIG_EXT3_FS is not set
825CONFIG_EXT3_FS_XATTR=y
826# CONFIG_EXT3_FS_POSIX_ACL is not set
827CONFIG_EXT3_FS_SECURITY=y
828CONFIG_JBD=m
829# CONFIG_JBD_DEBUG is not set
830CONFIG_FS_MBCACHE=y
831# CONFIG_REISERFS_FS is not set 818# CONFIG_REISERFS_FS is not set
832CONFIG_JFS_FS=m 819# CONFIG_JFS_FS is not set
833# CONFIG_JFS_POSIX_ACL is not set
834# CONFIG_JFS_SECURITY is not set
835# CONFIG_JFS_DEBUG is not set
836# CONFIG_JFS_STATISTICS is not set
837# CONFIG_FS_POSIX_ACL is not set 820# CONFIG_FS_POSIX_ACL is not set
838CONFIG_XFS_FS=y 821# CONFIG_XFS_FS is not set
839CONFIG_XFS_EXPORT=y
840CONFIG_XFS_QUOTA=y
841# CONFIG_XFS_SECURITY is not set
842CONFIG_XFS_POSIX_ACL=y
843# CONFIG_XFS_RT is not set
844# CONFIG_OCFS2_FS is not set 822# CONFIG_OCFS2_FS is not set
845# CONFIG_MINIX_FS is not set 823# CONFIG_MINIX_FS is not set
846CONFIG_ROMFS_FS=m 824CONFIG_ROMFS_FS=m
847CONFIG_INOTIFY=y 825CONFIG_INOTIFY=y
848# CONFIG_QUOTA is not set 826# CONFIG_QUOTA is not set
849CONFIG_QUOTACTL=y
850CONFIG_DNOTIFY=y 827CONFIG_DNOTIFY=y
851# CONFIG_AUTOFS_FS is not set 828# CONFIG_AUTOFS_FS is not set
852CONFIG_AUTOFS4_FS=y 829CONFIG_AUTOFS4_FS=y
@@ -855,20 +832,14 @@ CONFIG_FUSE_FS=m
855# 832#
856# CD-ROM/DVD Filesystems 833# CD-ROM/DVD Filesystems
857# 834#
858CONFIG_ISO9660_FS=y 835# CONFIG_ISO9660_FS is not set
859CONFIG_JOLIET=y
860CONFIG_ZISOFS=y
861CONFIG_ZISOFS_FS=y
862# CONFIG_UDF_FS is not set 836# CONFIG_UDF_FS is not set
863 837
864# 838#
865# DOS/FAT/NT Filesystems 839# DOS/FAT/NT Filesystems
866# 840#
867CONFIG_FAT_FS=m 841# CONFIG_MSDOS_FS is not set
868CONFIG_MSDOS_FS=m 842# CONFIG_VFAT_FS is not set
869CONFIG_VFAT_FS=m
870CONFIG_FAT_DEFAULT_CODEPAGE=437
871CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
872# CONFIG_NTFS_FS is not set 843# CONFIG_NTFS_FS is not set
873 844
874# 845#
@@ -880,7 +851,6 @@ CONFIG_SYSFS=y
880CONFIG_TMPFS=y 851CONFIG_TMPFS=y
881# CONFIG_HUGETLB_PAGE is not set 852# CONFIG_HUGETLB_PAGE is not set
882CONFIG_RAMFS=y 853CONFIG_RAMFS=y
883CONFIG_RELAYFS_FS=m
884# CONFIG_CONFIGFS_FS is not set 854# CONFIG_CONFIGFS_FS is not set
885 855
886# 856#
@@ -921,9 +891,7 @@ CONFIG_NFS_COMMON=y
921CONFIG_SUNRPC=y 891CONFIG_SUNRPC=y
922# CONFIG_RPCSEC_GSS_KRB5 is not set 892# CONFIG_RPCSEC_GSS_KRB5 is not set
923# CONFIG_RPCSEC_GSS_SPKM3 is not set 893# CONFIG_RPCSEC_GSS_SPKM3 is not set
924CONFIG_SMB_FS=m 894# CONFIG_SMB_FS is not set
925CONFIG_SMB_NLS_DEFAULT=y
926CONFIG_SMB_NLS_REMOTE="cp932"
927# CONFIG_CIFS is not set 895# CONFIG_CIFS is not set
928# CONFIG_NCP_FS is not set 896# CONFIG_NCP_FS is not set
929# CONFIG_CODA_FS is not set 897# CONFIG_CODA_FS is not set
@@ -939,46 +907,7 @@ CONFIG_MSDOS_PARTITION=y
939# 907#
940# Native Language Support 908# Native Language Support
941# 909#
942CONFIG_NLS=y 910# CONFIG_NLS is not set
943CONFIG_NLS_DEFAULT="iso8859-1"
944CONFIG_NLS_CODEPAGE_437=m
945# CONFIG_NLS_CODEPAGE_737 is not set
946# CONFIG_NLS_CODEPAGE_775 is not set
947# CONFIG_NLS_CODEPAGE_850 is not set
948# CONFIG_NLS_CODEPAGE_852 is not set
949# CONFIG_NLS_CODEPAGE_855 is not set
950# CONFIG_NLS_CODEPAGE_857 is not set
951# CONFIG_NLS_CODEPAGE_860 is not set
952# CONFIG_NLS_CODEPAGE_861 is not set
953# CONFIG_NLS_CODEPAGE_862 is not set
954# CONFIG_NLS_CODEPAGE_863 is not set
955# CONFIG_NLS_CODEPAGE_864 is not set
956# CONFIG_NLS_CODEPAGE_865 is not set
957# CONFIG_NLS_CODEPAGE_866 is not set
958# CONFIG_NLS_CODEPAGE_869 is not set
959# CONFIG_NLS_CODEPAGE_936 is not set
960# CONFIG_NLS_CODEPAGE_950 is not set
961CONFIG_NLS_CODEPAGE_932=m
962# CONFIG_NLS_CODEPAGE_949 is not set
963# CONFIG_NLS_CODEPAGE_874 is not set
964# CONFIG_NLS_ISO8859_8 is not set
965# CONFIG_NLS_CODEPAGE_1250 is not set
966# CONFIG_NLS_CODEPAGE_1251 is not set
967# CONFIG_NLS_ASCII is not set
968CONFIG_NLS_ISO8859_1=m
969# CONFIG_NLS_ISO8859_2 is not set
970# CONFIG_NLS_ISO8859_3 is not set
971# CONFIG_NLS_ISO8859_4 is not set
972# CONFIG_NLS_ISO8859_5 is not set
973# CONFIG_NLS_ISO8859_6 is not set
974# CONFIG_NLS_ISO8859_7 is not set
975# CONFIG_NLS_ISO8859_9 is not set
976# CONFIG_NLS_ISO8859_13 is not set
977# CONFIG_NLS_ISO8859_14 is not set
978# CONFIG_NLS_ISO8859_15 is not set
979# CONFIG_NLS_KOI8_R is not set
980# CONFIG_NLS_KOI8_U is not set
981# CONFIG_NLS_UTF8 is not set
982 911
983# 912#
984# Profiling support 913# Profiling support
@@ -992,44 +921,20 @@ CONFIG_NLS_ISO8859_1=m
992# CONFIG_MAGIC_SYSRQ is not set 921# CONFIG_MAGIC_SYSRQ is not set
993# CONFIG_DEBUG_KERNEL is not set 922# CONFIG_DEBUG_KERNEL is not set
994CONFIG_LOG_BUF_SHIFT=14 923CONFIG_LOG_BUF_SHIFT=14
924# CONFIG_DEBUG_FS is not set
995CONFIG_CROSSCOMPILE=y 925CONFIG_CROSSCOMPILE=y
996CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" 926CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs"
997 927
998# 928#
999# Security options 929# Security options
1000# 930#
1001CONFIG_KEYS=y 931# CONFIG_KEYS is not set
1002CONFIG_KEYS_DEBUG_PROC_KEYS=y
1003# CONFIG_SECURITY is not set 932# CONFIG_SECURITY is not set
1004 933
1005# 934#
1006# Cryptographic options 935# Cryptographic options
1007# 936#
1008CONFIG_CRYPTO=y 937# CONFIG_CRYPTO is not set
1009CONFIG_CRYPTO_HMAC=y
1010CONFIG_CRYPTO_NULL=m
1011CONFIG_CRYPTO_MD4=m
1012CONFIG_CRYPTO_MD5=m
1013CONFIG_CRYPTO_SHA1=m
1014CONFIG_CRYPTO_SHA256=m
1015CONFIG_CRYPTO_SHA512=m
1016CONFIG_CRYPTO_WP512=m
1017CONFIG_CRYPTO_TGR192=m
1018CONFIG_CRYPTO_DES=m
1019CONFIG_CRYPTO_BLOWFISH=m
1020CONFIG_CRYPTO_TWOFISH=m
1021CONFIG_CRYPTO_SERPENT=m
1022CONFIG_CRYPTO_AES=m
1023CONFIG_CRYPTO_CAST5=m
1024CONFIG_CRYPTO_CAST6=m
1025CONFIG_CRYPTO_TEA=m
1026CONFIG_CRYPTO_ARC4=m
1027CONFIG_CRYPTO_KHAZAD=m
1028CONFIG_CRYPTO_ANUBIS=m
1029CONFIG_CRYPTO_DEFLATE=m
1030CONFIG_CRYPTO_MICHAEL_MIC=m
1031CONFIG_CRYPTO_CRC32C=m
1032# CONFIG_CRYPTO_TEST is not set
1033 938
1034# 939#
1035# Hardware crypto devices 940# Hardware crypto devices
@@ -1038,9 +943,8 @@ CONFIG_CRYPTO_CRC32C=m
1038# 943#
1039# Library routines 944# Library routines
1040# 945#
1041CONFIG_CRC_CCITT=m 946# CONFIG_CRC_CCITT is not set
1042CONFIG_CRC16=m 947# CONFIG_CRC16 is not set
1043CONFIG_CRC32=y 948CONFIG_CRC32=y
1044CONFIG_LIBCRC32C=m 949# CONFIG_LIBCRC32C is not set
1045CONFIG_ZLIB_INFLATE=y 950CONFIG_ZLIB_INFLATE=m
1046CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/mips/configs/tb0287_defconfig b/arch/mips/configs/tb0287_defconfig
new file mode 100644
index 000000000000..9f215ea350dc
--- /dev/null
+++ b/arch/mips/configs/tb0287_defconfig
@@ -0,0 +1,1132 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-rc2
4# Tue Apr 25 00:09:17 2006
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11# CONFIG_MIPS_MTX1 is not set
12# CONFIG_MIPS_BOSPORUS is not set
13# CONFIG_MIPS_PB1000 is not set
14# CONFIG_MIPS_PB1100 is not set
15# CONFIG_MIPS_PB1500 is not set
16# CONFIG_MIPS_PB1550 is not set
17# CONFIG_MIPS_PB1200 is not set
18# CONFIG_MIPS_DB1000 is not set
19# CONFIG_MIPS_DB1100 is not set
20# CONFIG_MIPS_DB1500 is not set
21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set
27# CONFIG_MIPS_EV96100 is not set
28# CONFIG_MIPS_IVR is not set
29# CONFIG_MIPS_ITE8172 is not set
30# CONFIG_MACH_JAZZ is not set
31# CONFIG_LASAT is not set
32# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set
35# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set
38# CONFIG_MOMENCO_OCELOT_3 is not set
39# CONFIG_MOMENCO_OCELOT_C is not set
40# CONFIG_MOMENCO_OCELOT_G is not set
41# CONFIG_MIPS_XXS1500 is not set
42# CONFIG_PNX8550_V2PCI is not set
43# CONFIG_PNX8550_JBS is not set
44# CONFIG_DDB5074 is not set
45# CONFIG_DDB5476 is not set
46# CONFIG_DDB5477 is not set
47CONFIG_MACH_VR41XX=y
48# CONFIG_PMC_YOSEMITE is not set
49# CONFIG_QEMU is not set
50# CONFIG_SGI_IP22 is not set
51# CONFIG_SGI_IP27 is not set
52# CONFIG_SGI_IP32 is not set
53# CONFIG_SIBYTE_BIGSUR is not set
54# CONFIG_SIBYTE_SWARM is not set
55# CONFIG_SIBYTE_SENTOSA is not set
56# CONFIG_SIBYTE_RHONE is not set
57# CONFIG_SIBYTE_CARMEL is not set
58# CONFIG_SIBYTE_PTSWARM is not set
59# CONFIG_SIBYTE_LITTLESUR is not set
60# CONFIG_SIBYTE_CRHINE is not set
61# CONFIG_SIBYTE_CRHONE is not set
62# CONFIG_SNI_RM200_PCI is not set
63# CONFIG_TOSHIBA_JMR3927 is not set
64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set
66# CONFIG_CASIO_E55 is not set
67# CONFIG_IBM_WORKPAD is not set
68# CONFIG_NEC_CMBVR4133 is not set
69CONFIG_TANBAC_TB022X=y
70# CONFIG_TANBAC_TB0226 is not set
71CONFIG_TANBAC_TB0287=y
72# CONFIG_VICTOR_MPC30X is not set
73# CONFIG_ZAO_CAPCELLA is not set
74CONFIG_PCI_VR41XX=y
75# CONFIG_VRC4173 is not set
76CONFIG_RWSEM_GENERIC_SPINLOCK=y
77CONFIG_GENERIC_FIND_NEXT_BIT=y
78CONFIG_GENERIC_HWEIGHT=y
79CONFIG_GENERIC_CALIBRATE_DELAY=y
80CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
81CONFIG_DMA_NONCOHERENT=y
82CONFIG_DMA_NEED_PCI_MAP_STATE=y
83# CONFIG_CPU_BIG_ENDIAN is not set
84CONFIG_CPU_LITTLE_ENDIAN=y
85CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
86CONFIG_IRQ_CPU=y
87CONFIG_MIPS_L1_CACHE_SHIFT=5
88
89#
90# CPU selection
91#
92# CONFIG_CPU_MIPS32_R1 is not set
93# CONFIG_CPU_MIPS32_R2 is not set
94# CONFIG_CPU_MIPS64_R1 is not set
95# CONFIG_CPU_MIPS64_R2 is not set
96# CONFIG_CPU_R3000 is not set
97# CONFIG_CPU_TX39XX is not set
98CONFIG_CPU_VR41XX=y
99# CONFIG_CPU_R4300 is not set
100# CONFIG_CPU_R4X00 is not set
101# CONFIG_CPU_TX49XX is not set
102# CONFIG_CPU_R5000 is not set
103# CONFIG_CPU_R5432 is not set
104# CONFIG_CPU_R6000 is not set
105# CONFIG_CPU_NEVADA is not set
106# CONFIG_CPU_R8000 is not set
107# CONFIG_CPU_R10000 is not set
108# CONFIG_CPU_RM7000 is not set
109# CONFIG_CPU_RM9000 is not set
110# CONFIG_CPU_SB1 is not set
111CONFIG_SYS_HAS_CPU_VR41XX=y
112CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
113CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
114CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
115
116#
117# Kernel type
118#
119CONFIG_32BIT=y
120# CONFIG_64BIT is not set
121CONFIG_PAGE_SIZE_4KB=y
122# CONFIG_PAGE_SIZE_8KB is not set
123# CONFIG_PAGE_SIZE_16KB is not set
124# CONFIG_PAGE_SIZE_64KB is not set
125# CONFIG_MIPS_MT is not set
126CONFIG_CPU_HAS_SYNC=y
127CONFIG_GENERIC_HARDIRQS=y
128CONFIG_GENERIC_IRQ_PROBE=y
129CONFIG_ARCH_FLATMEM_ENABLE=y
130CONFIG_SELECT_MEMORY_MODEL=y
131CONFIG_FLATMEM_MANUAL=y
132# CONFIG_DISCONTIGMEM_MANUAL is not set
133# CONFIG_SPARSEMEM_MANUAL is not set
134CONFIG_FLATMEM=y
135CONFIG_FLAT_NODE_MEM_MAP=y
136# CONFIG_SPARSEMEM_STATIC is not set
137CONFIG_SPLIT_PTLOCK_CPUS=4
138CONFIG_PREEMPT_NONE=y
139# CONFIG_PREEMPT_VOLUNTARY is not set
140# CONFIG_PREEMPT is not set
141
142#
143# Code maturity level options
144#
145CONFIG_EXPERIMENTAL=y
146CONFIG_BROKEN_ON_SMP=y
147CONFIG_INIT_ENV_ARG_LIMIT=32
148
149#
150# General setup
151#
152CONFIG_LOCALVERSION=""
153CONFIG_LOCALVERSION_AUTO=y
154CONFIG_SWAP=y
155CONFIG_SYSVIPC=y
156# CONFIG_POSIX_MQUEUE is not set
157# CONFIG_BSD_PROCESS_ACCT is not set
158CONFIG_SYSCTL=y
159# CONFIG_AUDIT is not set
160# CONFIG_IKCONFIG is not set
161# CONFIG_RELAY is not set
162CONFIG_INITRAMFS_SOURCE=""
163# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
164CONFIG_EMBEDDED=y
165CONFIG_KALLSYMS=y
166# CONFIG_KALLSYMS_EXTRA_PASS is not set
167# CONFIG_HOTPLUG is not set
168CONFIG_PRINTK=y
169CONFIG_BUG=y
170CONFIG_ELF_CORE=y
171CONFIG_BASE_FULL=y
172CONFIG_FUTEX=y
173CONFIG_EPOLL=y
174CONFIG_SHMEM=y
175CONFIG_SLAB=y
176# CONFIG_TINY_SHMEM is not set
177CONFIG_BASE_SMALL=0
178# CONFIG_SLOB is not set
179
180#
181# Loadable module support
182#
183CONFIG_MODULES=y
184CONFIG_MODULE_UNLOAD=y
185# CONFIG_MODULE_FORCE_UNLOAD is not set
186CONFIG_MODVERSIONS=y
187CONFIG_MODULE_SRCVERSION_ALL=y
188CONFIG_KMOD=y
189
190#
191# Block layer
192#
193# CONFIG_LBD is not set
194# CONFIG_BLK_DEV_IO_TRACE is not set
195# CONFIG_LSF is not set
196
197#
198# IO Schedulers
199#
200CONFIG_IOSCHED_NOOP=y
201CONFIG_IOSCHED_AS=y
202CONFIG_IOSCHED_DEADLINE=y
203CONFIG_IOSCHED_CFQ=y
204CONFIG_DEFAULT_AS=y
205# CONFIG_DEFAULT_DEADLINE is not set
206# CONFIG_DEFAULT_CFQ is not set
207# CONFIG_DEFAULT_NOOP is not set
208CONFIG_DEFAULT_IOSCHED="anticipatory"
209
210#
211# Bus options (PCI, PCMCIA, EISA, ISA, TC)
212#
213CONFIG_HW_HAS_PCI=y
214CONFIG_PCI=y
215CONFIG_MMU=y
216
217#
218# PCCARD (PCMCIA/CardBus) support
219#
220# CONFIG_PCCARD is not set
221
222#
223# PCI Hotplug Support
224#
225# CONFIG_HOTPLUG_PCI is not set
226
227#
228# Executable file formats
229#
230CONFIG_BINFMT_ELF=y
231# CONFIG_BINFMT_MISC is not set
232CONFIG_TRAD_SIGNALS=y
233
234#
235# Networking
236#
237CONFIG_NET=y
238
239#
240# Networking options
241#
242# CONFIG_NETDEBUG is not set
243CONFIG_PACKET=y
244# CONFIG_PACKET_MMAP is not set
245CONFIG_UNIX=y
246# CONFIG_NET_KEY is not set
247CONFIG_INET=y
248CONFIG_IP_MULTICAST=y
249CONFIG_IP_ADVANCED_ROUTER=y
250CONFIG_ASK_IP_FIB_HASH=y
251# CONFIG_IP_FIB_TRIE is not set
252CONFIG_IP_FIB_HASH=y
253CONFIG_IP_MULTIPLE_TABLES=y
254CONFIG_IP_ROUTE_MULTIPATH=y
255# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
256CONFIG_IP_ROUTE_VERBOSE=y
257CONFIG_IP_PNP=y
258# CONFIG_IP_PNP_DHCP is not set
259CONFIG_IP_PNP_BOOTP=y
260# CONFIG_IP_PNP_RARP is not set
261CONFIG_NET_IPIP=m
262CONFIG_NET_IPGRE=m
263# CONFIG_NET_IPGRE_BROADCAST is not set
264# CONFIG_IP_MROUTE is not set
265# CONFIG_ARPD is not set
266CONFIG_SYN_COOKIES=y
267# CONFIG_INET_AH is not set
268# CONFIG_INET_ESP is not set
269# CONFIG_INET_IPCOMP is not set
270# CONFIG_INET_XFRM_TUNNEL is not set
271CONFIG_INET_TUNNEL=m
272CONFIG_INET_DIAG=y
273CONFIG_INET_TCP_DIAG=y
274CONFIG_TCP_CONG_ADVANCED=y
275
276#
277# TCP congestion control
278#
279CONFIG_TCP_CONG_BIC=y
280CONFIG_TCP_CONG_CUBIC=m
281CONFIG_TCP_CONG_WESTWOOD=m
282CONFIG_TCP_CONG_HTCP=m
283# CONFIG_TCP_CONG_HSTCP is not set
284# CONFIG_TCP_CONG_HYBLA is not set
285# CONFIG_TCP_CONG_VEGAS is not set
286# CONFIG_TCP_CONG_SCALABLE is not set
287# CONFIG_IPV6 is not set
288# CONFIG_INET6_XFRM_TUNNEL is not set
289# CONFIG_INET6_TUNNEL is not set
290# CONFIG_NETFILTER is not set
291
292#
293# DCCP Configuration (EXPERIMENTAL)
294#
295# CONFIG_IP_DCCP is not set
296
297#
298# SCTP Configuration (EXPERIMENTAL)
299#
300# CONFIG_IP_SCTP is not set
301
302#
303# TIPC Configuration (EXPERIMENTAL)
304#
305# CONFIG_TIPC is not set
306# CONFIG_ATM is not set
307# CONFIG_BRIDGE is not set
308# CONFIG_VLAN_8021Q is not set
309# CONFIG_DECNET is not set
310# CONFIG_LLC2 is not set
311# CONFIG_IPX is not set
312# CONFIG_ATALK is not set
313# CONFIG_X25 is not set
314# CONFIG_LAPB is not set
315# CONFIG_NET_DIVERT is not set
316# CONFIG_ECONET is not set
317# CONFIG_WAN_ROUTER is not set
318
319#
320# QoS and/or fair queueing
321#
322# CONFIG_NET_SCHED is not set
323
324#
325# Network testing
326#
327# CONFIG_NET_PKTGEN is not set
328# CONFIG_HAMRADIO is not set
329# CONFIG_IRDA is not set
330# CONFIG_BT is not set
331# CONFIG_IEEE80211 is not set
332
333#
334# Device Drivers
335#
336
337#
338# Generic Driver Options
339#
340CONFIG_STANDALONE=y
341CONFIG_PREVENT_FIRMWARE_BUILD=y
342# CONFIG_FW_LOADER is not set
343
344#
345# Connector - unified userspace <-> kernelspace linker
346#
347# CONFIG_CONNECTOR is not set
348
349#
350# Memory Technology Devices (MTD)
351#
352# CONFIG_MTD is not set
353
354#
355# Parallel port support
356#
357# CONFIG_PARPORT is not set
358
359#
360# Plug and Play support
361#
362
363#
364# Block devices
365#
366# CONFIG_BLK_CPQ_DA is not set
367# CONFIG_BLK_CPQ_CISS_DA is not set
368# CONFIG_BLK_DEV_DAC960 is not set
369# CONFIG_BLK_DEV_UMEM is not set
370# CONFIG_BLK_DEV_COW_COMMON is not set
371CONFIG_BLK_DEV_LOOP=m
372# CONFIG_BLK_DEV_CRYPTOLOOP is not set
373CONFIG_BLK_DEV_NBD=m
374# CONFIG_BLK_DEV_SX8 is not set
375# CONFIG_BLK_DEV_UB is not set
376CONFIG_BLK_DEV_RAM=y
377CONFIG_BLK_DEV_RAM_COUNT=16
378CONFIG_BLK_DEV_RAM_SIZE=4096
379# CONFIG_BLK_DEV_INITRD is not set
380# CONFIG_CDROM_PKTCDVD is not set
381# CONFIG_ATA_OVER_ETH is not set
382
383#
384# ATA/ATAPI/MFM/RLL support
385#
386CONFIG_IDE=y
387CONFIG_BLK_DEV_IDE=y
388
389#
390# Please see Documentation/ide.txt for help/info on IDE drives
391#
392# CONFIG_BLK_DEV_IDE_SATA is not set
393CONFIG_BLK_DEV_IDEDISK=y
394# CONFIG_IDEDISK_MULTI_MODE is not set
395# CONFIG_BLK_DEV_IDECD is not set
396# CONFIG_BLK_DEV_IDETAPE is not set
397# CONFIG_BLK_DEV_IDEFLOPPY is not set
398# CONFIG_BLK_DEV_IDESCSI is not set
399# CONFIG_IDE_TASK_IOCTL is not set
400
401#
402# IDE chipset support/bugfixes
403#
404CONFIG_IDE_GENERIC=y
405CONFIG_BLK_DEV_IDEPCI=y
406# CONFIG_IDEPCI_SHARE_IRQ is not set
407# CONFIG_BLK_DEV_OFFBOARD is not set
408# CONFIG_BLK_DEV_GENERIC is not set
409# CONFIG_BLK_DEV_OPTI621 is not set
410CONFIG_BLK_DEV_IDEDMA_PCI=y
411# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
412# CONFIG_IDEDMA_PCI_AUTO is not set
413# CONFIG_BLK_DEV_AEC62XX is not set
414# CONFIG_BLK_DEV_ALI15X3 is not set
415# CONFIG_BLK_DEV_AMD74XX is not set
416# CONFIG_BLK_DEV_CMD64X is not set
417# CONFIG_BLK_DEV_TRIFLEX is not set
418# CONFIG_BLK_DEV_CY82C693 is not set
419# CONFIG_BLK_DEV_CS5520 is not set
420# CONFIG_BLK_DEV_CS5530 is not set
421# CONFIG_BLK_DEV_HPT34X is not set
422# CONFIG_BLK_DEV_HPT366 is not set
423# CONFIG_BLK_DEV_SC1200 is not set
424# CONFIG_BLK_DEV_PIIX is not set
425# CONFIG_BLK_DEV_IT821X is not set
426# CONFIG_BLK_DEV_NS87415 is not set
427# CONFIG_BLK_DEV_PDC202XX_OLD is not set
428# CONFIG_BLK_DEV_PDC202XX_NEW is not set
429# CONFIG_BLK_DEV_SVWKS is not set
430CONFIG_BLK_DEV_SIIMAGE=y
431# CONFIG_BLK_DEV_SLC90E66 is not set
432# CONFIG_BLK_DEV_TRM290 is not set
433# CONFIG_BLK_DEV_VIA82CXXX is not set
434# CONFIG_IDE_ARM is not set
435CONFIG_BLK_DEV_IDEDMA=y
436# CONFIG_IDEDMA_IVB is not set
437# CONFIG_IDEDMA_AUTO is not set
438# CONFIG_BLK_DEV_HD is not set
439
440#
441# SCSI device support
442#
443# CONFIG_RAID_ATTRS is not set
444CONFIG_SCSI=y
445CONFIG_SCSI_PROC_FS=y
446
447#
448# SCSI support type (disk, tape, CD-ROM)
449#
450CONFIG_BLK_DEV_SD=y
451# CONFIG_CHR_DEV_ST is not set
452# CONFIG_CHR_DEV_OSST is not set
453# CONFIG_BLK_DEV_SR is not set
454# CONFIG_CHR_DEV_SG is not set
455# CONFIG_CHR_DEV_SCH is not set
456
457#
458# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
459#
460# CONFIG_SCSI_MULTI_LUN is not set
461# CONFIG_SCSI_CONSTANTS is not set
462# CONFIG_SCSI_LOGGING is not set
463
464#
465# SCSI Transport Attributes
466#
467# CONFIG_SCSI_SPI_ATTRS is not set
468# CONFIG_SCSI_FC_ATTRS is not set
469# CONFIG_SCSI_ISCSI_ATTRS is not set
470# CONFIG_SCSI_SAS_ATTRS is not set
471
472#
473# SCSI low-level drivers
474#
475# CONFIG_ISCSI_TCP is not set
476# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
477# CONFIG_SCSI_3W_9XXX is not set
478# CONFIG_SCSI_ACARD is not set
479# CONFIG_SCSI_AACRAID is not set
480# CONFIG_SCSI_AIC7XXX is not set
481# CONFIG_SCSI_AIC7XXX_OLD is not set
482# CONFIG_SCSI_AIC79XX is not set
483# CONFIG_SCSI_DPT_I2O is not set
484# CONFIG_MEGARAID_NEWGEN is not set
485# CONFIG_MEGARAID_LEGACY is not set
486# CONFIG_MEGARAID_SAS is not set
487# CONFIG_SCSI_SATA is not set
488# CONFIG_SCSI_DMX3191D is not set
489# CONFIG_SCSI_FUTURE_DOMAIN is not set
490# CONFIG_SCSI_IPS is not set
491# CONFIG_SCSI_INITIO is not set
492# CONFIG_SCSI_INIA100 is not set
493# CONFIG_SCSI_SYM53C8XX_2 is not set
494# CONFIG_SCSI_IPR is not set
495# CONFIG_SCSI_QLOGIC_1280 is not set
496# CONFIG_SCSI_QLA_FC is not set
497# CONFIG_SCSI_LPFC is not set
498# CONFIG_SCSI_DC395x is not set
499# CONFIG_SCSI_DC390T is not set
500# CONFIG_SCSI_NSP32 is not set
501# CONFIG_SCSI_DEBUG is not set
502
503#
504# Multi-device support (RAID and LVM)
505#
506# CONFIG_MD is not set
507
508#
509# Fusion MPT device support
510#
511# CONFIG_FUSION is not set
512# CONFIG_FUSION_SPI is not set
513# CONFIG_FUSION_FC is not set
514# CONFIG_FUSION_SAS is not set
515
516#
517# IEEE 1394 (FireWire) support
518#
519CONFIG_IEEE1394=m
520
521#
522# Subsystem Options
523#
524# CONFIG_IEEE1394_VERBOSEDEBUG is not set
525# CONFIG_IEEE1394_OUI_DB is not set
526CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y
527CONFIG_IEEE1394_CONFIG_ROM_IP1394=y
528# CONFIG_IEEE1394_EXPORT_FULL_API is not set
529
530#
531# Device Drivers
532#
533
534#
535# Texas Instruments PCILynx requires I2C
536#
537CONFIG_IEEE1394_OHCI1394=m
538
539#
540# Protocol Drivers
541#
542CONFIG_IEEE1394_VIDEO1394=m
543CONFIG_IEEE1394_SBP2=m
544# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
545CONFIG_IEEE1394_ETH1394=m
546CONFIG_IEEE1394_DV1394=m
547CONFIG_IEEE1394_RAWIO=m
548
549#
550# I2O device support
551#
552# CONFIG_I2O is not set
553
554#
555# Network device support
556#
557CONFIG_NETDEVICES=y
558CONFIG_DUMMY=m
559# CONFIG_BONDING is not set
560# CONFIG_EQUALIZER is not set
561# CONFIG_TUN is not set
562
563#
564# ARCnet devices
565#
566# CONFIG_ARCNET is not set
567
568#
569# PHY device support
570#
571# CONFIG_PHYLIB is not set
572
573#
574# Ethernet (10 or 100Mbit)
575#
576CONFIG_NET_ETHERNET=y
577CONFIG_MII=y
578# CONFIG_HAPPYMEAL is not set
579# CONFIG_SUNGEM is not set
580# CONFIG_CASSINI is not set
581# CONFIG_NET_VENDOR_3COM is not set
582# CONFIG_DM9000 is not set
583
584#
585# Tulip family network device support
586#
587# CONFIG_NET_TULIP is not set
588# CONFIG_HP100 is not set
589# CONFIG_NET_PCI is not set
590
591#
592# Ethernet (1000 Mbit)
593#
594# CONFIG_ACENIC is not set
595# CONFIG_DL2K is not set
596# CONFIG_E1000 is not set
597# CONFIG_NS83820 is not set
598# CONFIG_HAMACHI is not set
599# CONFIG_YELLOWFIN is not set
600CONFIG_R8169=y
601# CONFIG_R8169_NAPI is not set
602# CONFIG_SIS190 is not set
603# CONFIG_SKGE is not set
604# CONFIG_SKY2 is not set
605# CONFIG_SK98LIN is not set
606# CONFIG_TIGON3 is not set
607# CONFIG_BNX2 is not set
608
609#
610# Ethernet (10000 Mbit)
611#
612# CONFIG_CHELSIO_T1 is not set
613# CONFIG_IXGB is not set
614# CONFIG_S2IO is not set
615
616#
617# Token Ring devices
618#
619# CONFIG_TR is not set
620
621#
622# Wireless LAN (non-hamradio)
623#
624# CONFIG_NET_RADIO is not set
625
626#
627# Wan interfaces
628#
629# CONFIG_WAN is not set
630# CONFIG_FDDI is not set
631# CONFIG_HIPPI is not set
632# CONFIG_PPP is not set
633# CONFIG_SLIP is not set
634# CONFIG_NET_FC is not set
635# CONFIG_SHAPER is not set
636# CONFIG_NETCONSOLE is not set
637# CONFIG_NETPOLL is not set
638# CONFIG_NET_POLL_CONTROLLER is not set
639
640#
641# ISDN subsystem
642#
643# CONFIG_ISDN is not set
644
645#
646# Telephony Support
647#
648# CONFIG_PHONE is not set
649
650#
651# Input device support
652#
653CONFIG_INPUT=y
654
655#
656# Userland interfaces
657#
658# CONFIG_INPUT_MOUSEDEV is not set
659# CONFIG_INPUT_JOYDEV is not set
660# CONFIG_INPUT_TSDEV is not set
661# CONFIG_INPUT_EVDEV is not set
662# CONFIG_INPUT_EVBUG is not set
663
664#
665# Input Device Drivers
666#
667# CONFIG_INPUT_KEYBOARD is not set
668# CONFIG_INPUT_MOUSE is not set
669# CONFIG_INPUT_JOYSTICK is not set
670# CONFIG_INPUT_TOUCHSCREEN is not set
671# CONFIG_INPUT_MISC is not set
672
673#
674# Hardware I/O ports
675#
676# CONFIG_SERIO is not set
677# CONFIG_GAMEPORT is not set
678
679#
680# Character devices
681#
682CONFIG_VT=y
683CONFIG_VT_CONSOLE=y
684CONFIG_HW_CONSOLE=y
685# CONFIG_SERIAL_NONSTANDARD is not set
686
687#
688# Serial drivers
689#
690# CONFIG_SERIAL_8250 is not set
691
692#
693# Non-8250 serial port support
694#
695CONFIG_SERIAL_CORE=y
696CONFIG_SERIAL_CORE_CONSOLE=y
697CONFIG_SERIAL_VR41XX=y
698CONFIG_SERIAL_VR41XX_CONSOLE=y
699# CONFIG_SERIAL_JSM is not set
700CONFIG_UNIX98_PTYS=y
701CONFIG_LEGACY_PTYS=y
702CONFIG_LEGACY_PTY_COUNT=256
703
704#
705# IPMI
706#
707# CONFIG_IPMI_HANDLER is not set
708
709#
710# Watchdog Cards
711#
712# CONFIG_WATCHDOG is not set
713# CONFIG_RTC is not set
714# CONFIG_GEN_RTC is not set
715# CONFIG_DTLK is not set
716# CONFIG_R3964 is not set
717# CONFIG_APPLICOM is not set
718# CONFIG_TANBAC_TB0219 is not set
719
720#
721# Ftape, the floppy tape device driver
722#
723# CONFIG_DRM is not set
724CONFIG_GPIO_VR41XX=y
725# CONFIG_RAW_DRIVER is not set
726
727#
728# TPM devices
729#
730# CONFIG_TCG_TPM is not set
731# CONFIG_TELCLOCK is not set
732
733#
734# I2C support
735#
736# CONFIG_I2C is not set
737
738#
739# SPI support
740#
741# CONFIG_SPI is not set
742# CONFIG_SPI_MASTER is not set
743
744#
745# Dallas's 1-wire bus
746#
747# CONFIG_W1 is not set
748
749#
750# Hardware Monitoring support
751#
752# CONFIG_HWMON is not set
753# CONFIG_HWMON_VID is not set
754
755#
756# Misc devices
757#
758
759#
760# Multimedia devices
761#
762# CONFIG_VIDEO_DEV is not set
763
764#
765# Digital Video Broadcasting Devices
766#
767# CONFIG_DVB is not set
768# CONFIG_USB_DABUSB is not set
769
770#
771# Graphics support
772#
773CONFIG_FB=y
774CONFIG_FB_CFB_FILLRECT=y
775CONFIG_FB_CFB_COPYAREA=y
776CONFIG_FB_CFB_IMAGEBLIT=y
777# CONFIG_FB_MACMODES is not set
778CONFIG_FB_FIRMWARE_EDID=y
779# CONFIG_FB_MODE_HELPERS is not set
780# CONFIG_FB_TILEBLITTING is not set
781# CONFIG_FB_CIRRUS is not set
782# CONFIG_FB_PM2 is not set
783# CONFIG_FB_CYBER2000 is not set
784# CONFIG_FB_ASILIANT is not set
785# CONFIG_FB_IMSTT is not set
786# CONFIG_FB_S1D13XXX is not set
787# CONFIG_FB_NVIDIA is not set
788# CONFIG_FB_RIVA is not set
789# CONFIG_FB_MATROX is not set
790# CONFIG_FB_RADEON is not set
791# CONFIG_FB_ATY128 is not set
792# CONFIG_FB_ATY is not set
793# CONFIG_FB_SAVAGE is not set
794# CONFIG_FB_SIS is not set
795# CONFIG_FB_NEOMAGIC is not set
796# CONFIG_FB_KYRO is not set
797# CONFIG_FB_3DFX is not set
798# CONFIG_FB_VOODOO1 is not set
799CONFIG_FB_SMIVGX=y
800# CONFIG_FB_TRIDENT is not set
801# CONFIG_FB_VIRTUAL is not set
802
803#
804# Console display driver support
805#
806# CONFIG_VGA_CONSOLE is not set
807CONFIG_DUMMY_CONSOLE=y
808# CONFIG_FRAMEBUFFER_CONSOLE is not set
809
810#
811# Logo configuration
812#
813# CONFIG_LOGO is not set
814# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
815
816#
817# Sound
818#
819# CONFIG_SOUND is not set
820
821#
822# USB support
823#
824CONFIG_USB_ARCH_HAS_HCD=y
825CONFIG_USB_ARCH_HAS_OHCI=y
826CONFIG_USB_ARCH_HAS_EHCI=y
827CONFIG_USB=m
828# CONFIG_USB_DEBUG is not set
829
830#
831# Miscellaneous USB options
832#
833# CONFIG_USB_DEVICEFS is not set
834# CONFIG_USB_BANDWIDTH is not set
835# CONFIG_USB_DYNAMIC_MINORS is not set
836# CONFIG_USB_OTG is not set
837
838#
839# USB Host Controller Drivers
840#
841CONFIG_USB_EHCI_HCD=m
842# CONFIG_USB_EHCI_SPLIT_ISO is not set
843# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
844# CONFIG_USB_ISP116X_HCD is not set
845CONFIG_USB_OHCI_HCD=m
846# CONFIG_USB_OHCI_BIG_ENDIAN is not set
847CONFIG_USB_OHCI_LITTLE_ENDIAN=y
848# CONFIG_USB_UHCI_HCD is not set
849# CONFIG_USB_SL811_HCD is not set
850
851#
852# USB Device Class drivers
853#
854# CONFIG_USB_ACM is not set
855# CONFIG_USB_PRINTER is not set
856
857#
858# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
859#
860
861#
862# may also be needed; see USB_STORAGE Help for more information
863#
864CONFIG_USB_STORAGE=m
865# CONFIG_USB_STORAGE_DEBUG is not set
866# CONFIG_USB_STORAGE_DATAFAB is not set
867# CONFIG_USB_STORAGE_FREECOM is not set
868# CONFIG_USB_STORAGE_ISD200 is not set
869# CONFIG_USB_STORAGE_DPCM is not set
870# CONFIG_USB_STORAGE_USBAT is not set
871# CONFIG_USB_STORAGE_SDDR09 is not set
872# CONFIG_USB_STORAGE_SDDR55 is not set
873# CONFIG_USB_STORAGE_JUMPSHOT is not set
874# CONFIG_USB_STORAGE_ALAUDA is not set
875# CONFIG_USB_LIBUSUAL is not set
876
877#
878# USB Input Devices
879#
880CONFIG_USB_HID=m
881CONFIG_USB_HIDINPUT=y
882# CONFIG_USB_HIDINPUT_POWERBOOK is not set
883# CONFIG_HID_FF is not set
884# CONFIG_USB_HIDDEV is not set
885
886#
887# USB HID Boot Protocol drivers
888#
889# CONFIG_USB_KBD is not set
890# CONFIG_USB_MOUSE is not set
891# CONFIG_USB_AIPTEK is not set
892# CONFIG_USB_WACOM is not set
893# CONFIG_USB_ACECAD is not set
894# CONFIG_USB_KBTAB is not set
895# CONFIG_USB_POWERMATE is not set
896# CONFIG_USB_TOUCHSCREEN is not set
897# CONFIG_USB_YEALINK is not set
898# CONFIG_USB_XPAD is not set
899# CONFIG_USB_ATI_REMOTE is not set
900# CONFIG_USB_ATI_REMOTE2 is not set
901# CONFIG_USB_KEYSPAN_REMOTE is not set
902# CONFIG_USB_APPLETOUCH is not set
903
904#
905# USB Imaging devices
906#
907# CONFIG_USB_MDC800 is not set
908# CONFIG_USB_MICROTEK is not set
909
910#
911# USB Network Adapters
912#
913# CONFIG_USB_CATC is not set
914# CONFIG_USB_KAWETH is not set
915# CONFIG_USB_PEGASUS is not set
916# CONFIG_USB_RTL8150 is not set
917# CONFIG_USB_USBNET is not set
918CONFIG_USB_MON=y
919
920#
921# USB port drivers
922#
923
924#
925# USB Serial Converter support
926#
927# CONFIG_USB_SERIAL is not set
928
929#
930# USB Miscellaneous drivers
931#
932# CONFIG_USB_EMI62 is not set
933# CONFIG_USB_EMI26 is not set
934# CONFIG_USB_AUERSWALD is not set
935# CONFIG_USB_RIO500 is not set
936# CONFIG_USB_LEGOTOWER is not set
937# CONFIG_USB_LCD is not set
938# CONFIG_USB_LED is not set
939# CONFIG_USB_CYTHERM is not set
940# CONFIG_USB_PHIDGETKIT is not set
941# CONFIG_USB_PHIDGETSERVO is not set
942# CONFIG_USB_IDMOUSE is not set
943# CONFIG_USB_SISUSBVGA is not set
944# CONFIG_USB_LD is not set
945
946#
947# USB DSL modem support
948#
949
950#
951# USB Gadget Support
952#
953# CONFIG_USB_GADGET is not set
954
955#
956# MMC/SD Card support
957#
958# CONFIG_MMC is not set
959
960#
961# LED devices
962#
963# CONFIG_NEW_LEDS is not set
964
965#
966# LED drivers
967#
968
969#
970# LED Triggers
971#
972
973#
974# InfiniBand support
975#
976# CONFIG_INFINIBAND is not set
977
978#
979# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
980#
981
982#
983# Real Time Clock
984#
985# CONFIG_RTC_CLASS is not set
986
987#
988# File systems
989#
990CONFIG_EXT2_FS=y
991# CONFIG_EXT2_FS_XATTR is not set
992# CONFIG_EXT2_FS_XIP is not set
993CONFIG_EXT3_FS=y
994CONFIG_EXT3_FS_XATTR=y
995# CONFIG_EXT3_FS_POSIX_ACL is not set
996# CONFIG_EXT3_FS_SECURITY is not set
997CONFIG_JBD=y
998# CONFIG_JBD_DEBUG is not set
999CONFIG_FS_MBCACHE=y
1000# CONFIG_REISERFS_FS is not set
1001# CONFIG_JFS_FS is not set
1002# CONFIG_FS_POSIX_ACL is not set
1003CONFIG_XFS_FS=y
1004CONFIG_XFS_QUOTA=y
1005# CONFIG_XFS_SECURITY is not set
1006CONFIG_XFS_POSIX_ACL=y
1007# CONFIG_XFS_RT is not set
1008# CONFIG_OCFS2_FS is not set
1009# CONFIG_MINIX_FS is not set
1010CONFIG_ROMFS_FS=m
1011CONFIG_INOTIFY=y
1012# CONFIG_QUOTA is not set
1013CONFIG_QUOTACTL=y
1014# CONFIG_DNOTIFY is not set
1015# CONFIG_AUTOFS_FS is not set
1016CONFIG_AUTOFS4_FS=y
1017# CONFIG_FUSE_FS is not set
1018
1019#
1020# CD-ROM/DVD Filesystems
1021#
1022# CONFIG_ISO9660_FS is not set
1023# CONFIG_UDF_FS is not set
1024
1025#
1026# DOS/FAT/NT Filesystems
1027#
1028# CONFIG_MSDOS_FS is not set
1029# CONFIG_VFAT_FS is not set
1030# CONFIG_NTFS_FS is not set
1031
1032#
1033# Pseudo filesystems
1034#
1035CONFIG_PROC_FS=y
1036CONFIG_PROC_KCORE=y
1037CONFIG_SYSFS=y
1038CONFIG_TMPFS=y
1039# CONFIG_HUGETLB_PAGE is not set
1040CONFIG_RAMFS=y
1041# CONFIG_CONFIGFS_FS is not set
1042
1043#
1044# Miscellaneous filesystems
1045#
1046# CONFIG_ADFS_FS is not set
1047# CONFIG_AFFS_FS is not set
1048# CONFIG_HFS_FS is not set
1049# CONFIG_HFSPLUS_FS is not set
1050# CONFIG_BEFS_FS is not set
1051# CONFIG_BFS_FS is not set
1052# CONFIG_EFS_FS is not set
1053CONFIG_CRAMFS=m
1054# CONFIG_VXFS_FS is not set
1055# CONFIG_HPFS_FS is not set
1056# CONFIG_QNX4FS_FS is not set
1057# CONFIG_SYSV_FS is not set
1058# CONFIG_UFS_FS is not set
1059
1060#
1061# Network File Systems
1062#
1063CONFIG_NFS_FS=y
1064CONFIG_NFS_V3=y
1065# CONFIG_NFS_V3_ACL is not set
1066# CONFIG_NFS_V4 is not set
1067# CONFIG_NFS_DIRECTIO is not set
1068# CONFIG_NFSD is not set
1069CONFIG_ROOT_NFS=y
1070CONFIG_LOCKD=y
1071CONFIG_LOCKD_V4=y
1072CONFIG_NFS_COMMON=y
1073CONFIG_SUNRPC=y
1074# CONFIG_RPCSEC_GSS_KRB5 is not set
1075# CONFIG_RPCSEC_GSS_SPKM3 is not set
1076# CONFIG_SMB_FS is not set
1077# CONFIG_CIFS is not set
1078# CONFIG_NCP_FS is not set
1079# CONFIG_CODA_FS is not set
1080# CONFIG_AFS_FS is not set
1081# CONFIG_9P_FS is not set
1082
1083#
1084# Partition Types
1085#
1086# CONFIG_PARTITION_ADVANCED is not set
1087CONFIG_MSDOS_PARTITION=y
1088
1089#
1090# Native Language Support
1091#
1092# CONFIG_NLS is not set
1093
1094#
1095# Profiling support
1096#
1097# CONFIG_PROFILING is not set
1098
1099#
1100# Kernel hacking
1101#
1102# CONFIG_PRINTK_TIME is not set
1103# CONFIG_MAGIC_SYSRQ is not set
1104# CONFIG_DEBUG_KERNEL is not set
1105CONFIG_LOG_BUF_SHIFT=14
1106# CONFIG_DEBUG_FS is not set
1107CONFIG_CROSSCOMPILE=y
1108CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs"
1109
1110#
1111# Security options
1112#
1113# CONFIG_KEYS is not set
1114# CONFIG_SECURITY is not set
1115
1116#
1117# Cryptographic options
1118#
1119# CONFIG_CRYPTO is not set
1120
1121#
1122# Hardware crypto devices
1123#
1124
1125#
1126# Library routines
1127#
1128# CONFIG_CRC_CCITT is not set
1129# CONFIG_CRC16 is not set
1130CONFIG_CRC32=y
1131# CONFIG_LIBCRC32C is not set
1132CONFIG_ZLIB_INFLATE=m
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig
index 7132e296d40a..ac7765eb8da7 100644
--- a/arch/mips/configs/workpad_defconfig
+++ b/arch/mips/configs/workpad_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:36 2006 4# Tue Apr 25 00:09:33 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -70,6 +70,8 @@ CONFIG_IBM_WORKPAD=y
70# CONFIG_VICTOR_MPC30X is not set 70# CONFIG_VICTOR_MPC30X is not set
71# CONFIG_ZAO_CAPCELLA is not set 71# CONFIG_ZAO_CAPCELLA is not set
72CONFIG_RWSEM_GENERIC_SPINLOCK=y 72CONFIG_RWSEM_GENERIC_SPINLOCK=y
73CONFIG_GENERIC_FIND_NEXT_BIT=y
74CONFIG_GENERIC_HWEIGHT=y
73CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
74CONFIG_DMA_NONCOHERENT=y 76CONFIG_DMA_NONCOHERENT=y
75CONFIG_DMA_NEED_PCI_MAP_STATE=y 77CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -88,7 +90,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
88# CONFIG_CPU_MIPS64_R2 is not set 90# CONFIG_CPU_MIPS64_R2 is not set
89# CONFIG_CPU_R3000 is not set 91# CONFIG_CPU_R3000 is not set
90# CONFIG_CPU_TX39XX is not set 92# CONFIG_CPU_TX39XX is not set
91# CONFIG_CPU_VR41XX is not set 93CONFIG_CPU_VR41XX=y
92# CONFIG_CPU_R4300 is not set 94# CONFIG_CPU_R4300 is not set
93# CONFIG_CPU_R4X00 is not set 95# CONFIG_CPU_R4X00 is not set
94# CONFIG_CPU_TX49XX is not set 96# CONFIG_CPU_TX49XX is not set
@@ -101,18 +103,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
101# CONFIG_CPU_RM7000 is not set 103# CONFIG_CPU_RM7000 is not set
102# CONFIG_CPU_RM9000 is not set 104# CONFIG_CPU_RM9000 is not set
103# CONFIG_CPU_SB1 is not set 105# CONFIG_CPU_SB1 is not set
106CONFIG_SYS_HAS_CPU_VR41XX=y
107CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
108CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
109CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
104 110
105# 111#
106# Kernel type 112# Kernel type
107# 113#
108# CONFIG_32BIT is not set 114CONFIG_32BIT=y
109# CONFIG_64BIT is not set 115# CONFIG_64BIT is not set
110CONFIG_PAGE_SIZE_4KB=y 116CONFIG_PAGE_SIZE_4KB=y
111# CONFIG_PAGE_SIZE_8KB is not set 117# CONFIG_PAGE_SIZE_8KB is not set
112# CONFIG_PAGE_SIZE_16KB is not set 118# CONFIG_PAGE_SIZE_16KB is not set
113# CONFIG_PAGE_SIZE_64KB is not set 119# CONFIG_PAGE_SIZE_64KB is not set
114# CONFIG_MIPS_MT is not set 120# CONFIG_MIPS_MT is not set
115CONFIG_CPU_HAS_LLSC=y
116CONFIG_CPU_HAS_SYNC=y 121CONFIG_CPU_HAS_SYNC=y
117CONFIG_GENERIC_HARDIRQS=y 122CONFIG_GENERIC_HARDIRQS=y
118CONFIG_GENERIC_IRQ_PROBE=y 123CONFIG_GENERIC_IRQ_PROBE=y
@@ -133,7 +138,6 @@ CONFIG_PREEMPT_NONE=y
133# Code maturity level options 138# Code maturity level options
134# 139#
135CONFIG_EXPERIMENTAL=y 140CONFIG_EXPERIMENTAL=y
136CONFIG_CLEAN_COMPILE=y
137CONFIG_BROKEN_ON_SMP=y 141CONFIG_BROKEN_ON_SMP=y
138CONFIG_INIT_ENV_ARG_LIMIT=32 142CONFIG_INIT_ENV_ARG_LIMIT=32
139 143
@@ -149,6 +153,7 @@ CONFIG_SYSVIPC=y
149CONFIG_SYSCTL=y 153CONFIG_SYSCTL=y
150# CONFIG_AUDIT is not set 154# CONFIG_AUDIT is not set
151# CONFIG_IKCONFIG is not set 155# CONFIG_IKCONFIG is not set
156# CONFIG_RELAY is not set
152CONFIG_INITRAMFS_SOURCE="" 157CONFIG_INITRAMFS_SOURCE=""
153# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 158# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
154CONFIG_EMBEDDED=y 159CONFIG_EMBEDDED=y
@@ -162,10 +167,6 @@ CONFIG_BASE_FULL=y
162CONFIG_FUTEX=y 167CONFIG_FUTEX=y
163CONFIG_EPOLL=y 168CONFIG_EPOLL=y
164CONFIG_SHMEM=y 169CONFIG_SHMEM=y
165CONFIG_CC_ALIGN_FUNCTIONS=0
166CONFIG_CC_ALIGN_LABELS=0
167CONFIG_CC_ALIGN_LOOPS=0
168CONFIG_CC_ALIGN_JUMPS=0
169CONFIG_SLAB=y 170CONFIG_SLAB=y
170# CONFIG_TINY_SHMEM is not set 171# CONFIG_TINY_SHMEM is not set
171CONFIG_BASE_SMALL=0 172CONFIG_BASE_SMALL=0
@@ -177,7 +178,6 @@ CONFIG_BASE_SMALL=0
177CONFIG_MODULES=y 178CONFIG_MODULES=y
178CONFIG_MODULE_UNLOAD=y 179CONFIG_MODULE_UNLOAD=y
179# CONFIG_MODULE_FORCE_UNLOAD is not set 180# CONFIG_MODULE_FORCE_UNLOAD is not set
180CONFIG_OBSOLETE_MODPARM=y
181CONFIG_MODVERSIONS=y 181CONFIG_MODVERSIONS=y
182CONFIG_MODULE_SRCVERSION_ALL=y 182CONFIG_MODULE_SRCVERSION_ALL=y
183CONFIG_KMOD=y 183CONFIG_KMOD=y
@@ -185,6 +185,9 @@ CONFIG_KMOD=y
185# 185#
186# Block layer 186# Block layer
187# 187#
188# CONFIG_LBD is not set
189# CONFIG_BLK_DEV_IO_TRACE is not set
190# CONFIG_LSF is not set
188 191
189# 192#
190# IO Schedulers 193# IO Schedulers
@@ -220,6 +223,7 @@ CONFIG_PCMCIA_IOCTL=y
220# CONFIG_I82365 is not set 223# CONFIG_I82365 is not set
221# CONFIG_TCIC is not set 224# CONFIG_TCIC is not set
222CONFIG_PCMCIA_PROBE=y 225CONFIG_PCMCIA_PROBE=y
226CONFIG_PCMCIA_VRC4171=y
223 227
224# 228#
225# PCI Hotplug Support 229# PCI Hotplug Support
@@ -230,6 +234,7 @@ CONFIG_PCMCIA_PROBE=y
230# 234#
231CONFIG_BINFMT_ELF=y 235CONFIG_BINFMT_ELF=y
232# CONFIG_BINFMT_MISC is not set 236# CONFIG_BINFMT_MISC is not set
237CONFIG_TRAD_SIGNALS=y
233 238
234# 239#
235# Networking 240# Networking
@@ -239,6 +244,7 @@ CONFIG_NET=y
239# 244#
240# Networking options 245# Networking options
241# 246#
247# CONFIG_NETDEBUG is not set
242CONFIG_PACKET=y 248CONFIG_PACKET=y
243CONFIG_PACKET_MMAP=y 249CONFIG_PACKET_MMAP=y
244CONFIG_UNIX=y 250CONFIG_UNIX=y
@@ -258,12 +264,15 @@ CONFIG_IP_FIB_HASH=y
258# CONFIG_INET_AH is not set 264# CONFIG_INET_AH is not set
259# CONFIG_INET_ESP is not set 265# CONFIG_INET_ESP is not set
260# CONFIG_INET_IPCOMP is not set 266# CONFIG_INET_IPCOMP is not set
261CONFIG_INET_TUNNEL=m 267# CONFIG_INET_XFRM_TUNNEL is not set
268# CONFIG_INET_TUNNEL is not set
262CONFIG_INET_DIAG=y 269CONFIG_INET_DIAG=y
263CONFIG_INET_TCP_DIAG=y 270CONFIG_INET_TCP_DIAG=y
264# CONFIG_TCP_CONG_ADVANCED is not set 271# CONFIG_TCP_CONG_ADVANCED is not set
265CONFIG_TCP_CONG_BIC=y 272CONFIG_TCP_CONG_BIC=y
266# CONFIG_IPV6 is not set 273# CONFIG_IPV6 is not set
274# CONFIG_INET6_XFRM_TUNNEL is not set
275# CONFIG_INET6_TUNNEL is not set
267# CONFIG_NETFILTER is not set 276# CONFIG_NETFILTER is not set
268 277
269# 278#
@@ -275,6 +284,11 @@ CONFIG_TCP_CONG_BIC=y
275# SCTP Configuration (EXPERIMENTAL) 284# SCTP Configuration (EXPERIMENTAL)
276# 285#
277# CONFIG_IP_SCTP is not set 286# CONFIG_IP_SCTP is not set
287
288#
289# TIPC Configuration (EXPERIMENTAL)
290#
291# CONFIG_TIPC is not set
278# CONFIG_ATM is not set 292# CONFIG_ATM is not set
279# CONFIG_BRIDGE is not set 293# CONFIG_BRIDGE is not set
280# CONFIG_VLAN_8021Q is not set 294# CONFIG_VLAN_8021Q is not set
@@ -284,11 +298,6 @@ CONFIG_TCP_CONG_BIC=y
284# CONFIG_ATALK is not set 298# CONFIG_ATALK is not set
285# CONFIG_X25 is not set 299# CONFIG_X25 is not set
286# CONFIG_LAPB is not set 300# CONFIG_LAPB is not set
287
288#
289# TIPC Configuration (EXPERIMENTAL)
290#
291# CONFIG_TIPC is not set
292# CONFIG_NET_DIVERT is not set 301# CONFIG_NET_DIVERT is not set
293# CONFIG_ECONET is not set 302# CONFIG_ECONET is not set
294# CONFIG_WAN_ROUTER is not set 303# CONFIG_WAN_ROUTER is not set
@@ -305,10 +314,8 @@ CONFIG_TCP_CONG_BIC=y
305# CONFIG_HAMRADIO is not set 314# CONFIG_HAMRADIO is not set
306# CONFIG_IRDA is not set 315# CONFIG_IRDA is not set
307# CONFIG_BT is not set 316# CONFIG_BT is not set
308CONFIG_IEEE80211=m 317# CONFIG_IEEE80211 is not set
309# CONFIG_IEEE80211_DEBUG is not set 318CONFIG_WIRELESS_EXT=y
310CONFIG_IEEE80211_CRYPT_WEP=m
311CONFIG_IEEE80211_CRYPT_CCMP=m
312 319
313# 320#
314# Device Drivers 321# Device Drivers
@@ -347,10 +354,12 @@ CONFIG_CONNECTOR=m
347# CONFIG_BLK_DEV_COW_COMMON is not set 354# CONFIG_BLK_DEV_COW_COMMON is not set
348# CONFIG_BLK_DEV_LOOP is not set 355# CONFIG_BLK_DEV_LOOP is not set
349# CONFIG_BLK_DEV_NBD is not set 356# CONFIG_BLK_DEV_NBD is not set
350# CONFIG_BLK_DEV_RAM is not set 357CONFIG_BLK_DEV_RAM=m
351CONFIG_BLK_DEV_RAM_COUNT=16 358CONFIG_BLK_DEV_RAM_COUNT=16
359CONFIG_BLK_DEV_RAM_SIZE=4096
360# CONFIG_BLK_DEV_INITRD is not set
352# CONFIG_CDROM_PKTCDVD is not set 361# CONFIG_CDROM_PKTCDVD is not set
353CONFIG_ATA_OVER_ETH=m 362# CONFIG_ATA_OVER_ETH is not set
354 363
355# 364#
356# ATA/ATAPI/MFM/RLL support 365# ATA/ATAPI/MFM/RLL support
@@ -468,7 +477,38 @@ CONFIG_MII=m
468# 477#
469# Wireless LAN (non-hamradio) 478# Wireless LAN (non-hamradio)
470# 479#
471# CONFIG_NET_RADIO is not set 480CONFIG_NET_RADIO=y
481# CONFIG_NET_WIRELESS_RTNETLINK is not set
482
483#
484# Obsolete Wireless cards support (pre-802.11)
485#
486# CONFIG_STRIP is not set
487# CONFIG_ARLAN is not set
488# CONFIG_WAVELAN is not set
489# CONFIG_PCMCIA_WAVELAN is not set
490# CONFIG_PCMCIA_NETWAVE is not set
491
492#
493# Wireless 802.11 Frequency Hopping cards support
494#
495# CONFIG_PCMCIA_RAYCS is not set
496
497#
498# Wireless 802.11b ISA/PCI cards support
499#
500CONFIG_HERMES=m
501# CONFIG_ATMEL is not set
502
503#
504# Wireless 802.11b Pcmcia/Cardbus cards support
505#
506CONFIG_PCMCIA_HERMES=m
507# CONFIG_PCMCIA_SPECTRUM is not set
508# CONFIG_AIRO_CS is not set
509# CONFIG_PCMCIA_WL3501 is not set
510# CONFIG_HOSTAP is not set
511CONFIG_NET_WIRELESS=y
472 512
473# 513#
474# PCMCIA network device support 514# PCMCIA network device support
@@ -512,10 +552,7 @@ CONFIG_INPUT=y
512# 552#
513# Userland interfaces 553# Userland interfaces
514# 554#
515CONFIG_INPUT_MOUSEDEV=y 555# CONFIG_INPUT_MOUSEDEV is not set
516CONFIG_INPUT_MOUSEDEV_PSAUX=y
517CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
518CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
519# CONFIG_INPUT_JOYDEV is not set 556# CONFIG_INPUT_JOYDEV is not set
520# CONFIG_INPUT_TSDEV is not set 557# CONFIG_INPUT_TSDEV is not set
521# CONFIG_INPUT_EVDEV is not set 558# CONFIG_INPUT_EVDEV is not set
@@ -533,11 +570,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
533# 570#
534# Hardware I/O ports 571# Hardware I/O ports
535# 572#
536CONFIG_SERIO=y 573# CONFIG_SERIO is not set
537# CONFIG_SERIO_I8042 is not set
538CONFIG_SERIO_SERPORT=y
539# CONFIG_SERIO_LIBPS2 is not set
540CONFIG_SERIO_RAW=m
541# CONFIG_GAMEPORT is not set 574# CONFIG_GAMEPORT is not set
542 575
543# 576#
@@ -556,6 +589,10 @@ CONFIG_HW_CONSOLE=y
556# 589#
557# Non-8250 serial port support 590# Non-8250 serial port support
558# 591#
592CONFIG_SERIAL_CORE=y
593CONFIG_SERIAL_CORE_CONSOLE=y
594CONFIG_SERIAL_VR41XX=y
595CONFIG_SERIAL_VR41XX_CONSOLE=y
559CONFIG_UNIX98_PTYS=y 596CONFIG_UNIX98_PTYS=y
560CONFIG_LEGACY_PTYS=y 597CONFIG_LEGACY_PTYS=y
561CONFIG_LEGACY_PTY_COUNT=256 598CONFIG_LEGACY_PTY_COUNT=256
@@ -568,20 +605,7 @@ CONFIG_LEGACY_PTY_COUNT=256
568# 605#
569# Watchdog Cards 606# Watchdog Cards
570# 607#
571CONFIG_WATCHDOG=y 608# CONFIG_WATCHDOG is not set
572# CONFIG_WATCHDOG_NOWAYOUT is not set
573
574#
575# Watchdog Device Drivers
576#
577# CONFIG_SOFT_WATCHDOG is not set
578
579#
580# ISA-based Watchdog Cards
581#
582# CONFIG_PCWATCHDOG is not set
583# CONFIG_MIXCOMWD is not set
584# CONFIG_WDT is not set
585# CONFIG_RTC is not set 609# CONFIG_RTC is not set
586# CONFIG_GEN_RTC is not set 610# CONFIG_GEN_RTC is not set
587# CONFIG_DTLK is not set 611# CONFIG_DTLK is not set
@@ -597,6 +621,7 @@ CONFIG_WATCHDOG=y
597# CONFIG_SYNCLINK_CS is not set 621# CONFIG_SYNCLINK_CS is not set
598# CONFIG_CARDMAN_4000 is not set 622# CONFIG_CARDMAN_4000 is not set
599# CONFIG_CARDMAN_4040 is not set 623# CONFIG_CARDMAN_4040 is not set
624# CONFIG_GPIO_VR41XX is not set
600# CONFIG_RAW_DRIVER is not set 625# CONFIG_RAW_DRIVER is not set
601 626
602# 627#
@@ -632,10 +657,6 @@ CONFIG_WATCHDOG=y
632# 657#
633 658
634# 659#
635# Multimedia Capabilities Port drivers
636#
637
638#
639# Multimedia devices 660# Multimedia devices
640# 661#
641# CONFIG_VIDEO_DEV is not set 662# CONFIG_VIDEO_DEV is not set
@@ -667,6 +688,7 @@ CONFIG_DUMMY_CONSOLE=y
667# 688#
668# CONFIG_USB_ARCH_HAS_HCD is not set 689# CONFIG_USB_ARCH_HAS_HCD is not set
669# CONFIG_USB_ARCH_HAS_OHCI is not set 690# CONFIG_USB_ARCH_HAS_OHCI is not set
691# CONFIG_USB_ARCH_HAS_EHCI is not set
670 692
671# 693#
672# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 694# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -683,12 +705,30 @@ CONFIG_DUMMY_CONSOLE=y
683# CONFIG_MMC is not set 705# CONFIG_MMC is not set
684 706
685# 707#
708# LED devices
709#
710# CONFIG_NEW_LEDS is not set
711
712#
713# LED drivers
714#
715
716#
717# LED Triggers
718#
719
720#
686# InfiniBand support 721# InfiniBand support
687# 722#
688 723
689# 724#
690# SN Devices 725# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
726#
727
728#
729# Real Time Clock
691# 730#
731# CONFIG_RTC_CLASS is not set
692 732
693# 733#
694# File systems 734# File systems
@@ -710,7 +750,7 @@ CONFIG_FS_POSIX_ACL=y
710CONFIG_INOTIFY=y 750CONFIG_INOTIFY=y
711# CONFIG_QUOTA is not set 751# CONFIG_QUOTA is not set
712CONFIG_DNOTIFY=y 752CONFIG_DNOTIFY=y
713CONFIG_AUTOFS_FS=y 753# CONFIG_AUTOFS_FS is not set
714CONFIG_AUTOFS4_FS=y 754CONFIG_AUTOFS4_FS=y
715CONFIG_FUSE_FS=m 755CONFIG_FUSE_FS=m
716 756
@@ -733,10 +773,9 @@ CONFIG_FUSE_FS=m
733CONFIG_PROC_FS=y 773CONFIG_PROC_FS=y
734CONFIG_PROC_KCORE=y 774CONFIG_PROC_KCORE=y
735CONFIG_SYSFS=y 775CONFIG_SYSFS=y
736# CONFIG_TMPFS is not set 776CONFIG_TMPFS=y
737# CONFIG_HUGETLB_PAGE is not set 777# CONFIG_HUGETLB_PAGE is not set
738CONFIG_RAMFS=y 778CONFIG_RAMFS=y
739CONFIG_RELAYFS_FS=m
740# CONFIG_CONFIGFS_FS is not set 779# CONFIG_CONFIGFS_FS is not set
741 780
742# 781#
@@ -802,44 +841,20 @@ CONFIG_MSDOS_PARTITION=y
802# CONFIG_MAGIC_SYSRQ is not set 841# CONFIG_MAGIC_SYSRQ is not set
803# CONFIG_DEBUG_KERNEL is not set 842# CONFIG_DEBUG_KERNEL is not set
804CONFIG_LOG_BUF_SHIFT=14 843CONFIG_LOG_BUF_SHIFT=14
844# CONFIG_DEBUG_FS is not set
805CONFIG_CROSSCOMPILE=y 845CONFIG_CROSSCOMPILE=y
806CONFIG_CMDLINE="console=ttyVR0,19200 mem=16M" 846CONFIG_CMDLINE="console=ttyVR0,19200 mem=16M"
807 847
808# 848#
809# Security options 849# Security options
810# 850#
811CONFIG_KEYS=y 851# CONFIG_KEYS is not set
812CONFIG_KEYS_DEBUG_PROC_KEYS=y
813# CONFIG_SECURITY is not set 852# CONFIG_SECURITY is not set
814 853
815# 854#
816# Cryptographic options 855# Cryptographic options
817# 856#
818CONFIG_CRYPTO=y 857# CONFIG_CRYPTO is not set
819CONFIG_CRYPTO_HMAC=y
820CONFIG_CRYPTO_NULL=m
821CONFIG_CRYPTO_MD4=m
822CONFIG_CRYPTO_MD5=m
823CONFIG_CRYPTO_SHA1=m
824CONFIG_CRYPTO_SHA256=m
825CONFIG_CRYPTO_SHA512=m
826CONFIG_CRYPTO_WP512=m
827CONFIG_CRYPTO_TGR192=m
828CONFIG_CRYPTO_DES=m
829CONFIG_CRYPTO_BLOWFISH=m
830CONFIG_CRYPTO_TWOFISH=m
831CONFIG_CRYPTO_SERPENT=m
832CONFIG_CRYPTO_AES=m
833CONFIG_CRYPTO_CAST5=m
834CONFIG_CRYPTO_CAST6=m
835CONFIG_CRYPTO_TEA=m
836CONFIG_CRYPTO_ARC4=m
837CONFIG_CRYPTO_KHAZAD=m
838CONFIG_CRYPTO_ANUBIS=m
839CONFIG_CRYPTO_DEFLATE=m
840CONFIG_CRYPTO_MICHAEL_MIC=m
841CONFIG_CRYPTO_CRC32C=m
842# CONFIG_CRYPTO_TEST is not set
843 858
844# 859#
845# Hardware crypto devices 860# Hardware crypto devices
@@ -849,8 +864,6 @@ CONFIG_CRYPTO_CRC32C=m
849# Library routines 864# Library routines
850# 865#
851# CONFIG_CRC_CCITT is not set 866# CONFIG_CRC_CCITT is not set
852CONFIG_CRC16=m 867# CONFIG_CRC16 is not set
853CONFIG_CRC32=y 868CONFIG_CRC32=y
854CONFIG_LIBCRC32C=m 869# CONFIG_LIBCRC32C is not set
855CONFIG_ZLIB_INFLATE=m
856CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/mips/configs/yosemite_defconfig b/arch/mips/configs/yosemite_defconfig
index 67457850941d..b52d709de962 100644
--- a/arch/mips/configs/yosemite_defconfig
+++ b/arch/mips/configs/yosemite_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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:40:37 2006 4# Mon Apr 24 14:51:20 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -65,6 +65,8 @@ CONFIG_PMC_YOSEMITE=y
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66# CONFIG_HYPERTRANSPORT is not set 66# CONFIG_HYPERTRANSPORT is not set
67CONFIG_RWSEM_GENERIC_SPINLOCK=y 67CONFIG_RWSEM_GENERIC_SPINLOCK=y
68CONFIG_GENERIC_FIND_NEXT_BIT=y
69CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
69CONFIG_DMA_COHERENT=y 71CONFIG_DMA_COHERENT=y
70CONFIG_CPU_BIG_ENDIAN=y 72CONFIG_CPU_BIG_ENDIAN=y
@@ -116,7 +118,6 @@ CONFIG_PAGE_SIZE_4KB=y
116CONFIG_CPU_HAS_PREFETCH=y 118CONFIG_CPU_HAS_PREFETCH=y
117# CONFIG_MIPS_MT is not set 119# CONFIG_MIPS_MT is not set
118# CONFIG_64BIT_PHYS_ADDR is not set 120# CONFIG_64BIT_PHYS_ADDR is not set
119# CONFIG_CPU_ADVANCED is not set
120CONFIG_CPU_HAS_LLSC=y 121CONFIG_CPU_HAS_LLSC=y
121CONFIG_CPU_HAS_SYNC=y 122CONFIG_CPU_HAS_SYNC=y
122CONFIG_GENERIC_HARDIRQS=y 123CONFIG_GENERIC_HARDIRQS=y
@@ -140,7 +141,6 @@ CONFIG_PREEMPT_BKL=y
140# Code maturity level options 141# Code maturity level options
141# 142#
142# CONFIG_EXPERIMENTAL is not set 143# CONFIG_EXPERIMENTAL is not set
143CONFIG_CLEAN_COMPILE=y
144CONFIG_LOCK_KERNEL=y 144CONFIG_LOCK_KERNEL=y
145CONFIG_INIT_ENV_ARG_LIMIT=32 145CONFIG_INIT_ENV_ARG_LIMIT=32
146 146
@@ -157,6 +157,7 @@ CONFIG_SYSCTL=y
157CONFIG_IKCONFIG=y 157CONFIG_IKCONFIG=y
158CONFIG_IKCONFIG_PROC=y 158CONFIG_IKCONFIG_PROC=y
159# CONFIG_CPUSETS is not set 159# CONFIG_CPUSETS is not set
160CONFIG_RELAY=y
160CONFIG_INITRAMFS_SOURCE="" 161CONFIG_INITRAMFS_SOURCE=""
161CONFIG_EMBEDDED=y 162CONFIG_EMBEDDED=y
162CONFIG_KALLSYMS=y 163CONFIG_KALLSYMS=y
@@ -170,10 +171,6 @@ CONFIG_BASE_FULL=y
170CONFIG_FUTEX=y 171CONFIG_FUTEX=y
171CONFIG_EPOLL=y 172CONFIG_EPOLL=y
172CONFIG_SHMEM=y 173CONFIG_SHMEM=y
173CONFIG_CC_ALIGN_FUNCTIONS=0
174CONFIG_CC_ALIGN_LABELS=0
175CONFIG_CC_ALIGN_LOOPS=0
176CONFIG_CC_ALIGN_JUMPS=0
177CONFIG_SLAB=y 174CONFIG_SLAB=y
178# CONFIG_TINY_SHMEM is not set 175# CONFIG_TINY_SHMEM is not set
179CONFIG_BASE_SMALL=0 176CONFIG_BASE_SMALL=0
@@ -184,7 +181,6 @@ CONFIG_BASE_SMALL=0
184# 181#
185CONFIG_MODULES=y 182CONFIG_MODULES=y
186CONFIG_MODULE_UNLOAD=y 183CONFIG_MODULE_UNLOAD=y
187CONFIG_OBSOLETE_MODPARM=y
188# CONFIG_MODVERSIONS is not set 184# CONFIG_MODVERSIONS is not set
189# CONFIG_MODULE_SRCVERSION_ALL is not set 185# CONFIG_MODULE_SRCVERSION_ALL is not set
190CONFIG_KMOD=y 186CONFIG_KMOD=y
@@ -194,6 +190,8 @@ CONFIG_STOP_MACHINE=y
194# Block layer 190# Block layer
195# 191#
196# CONFIG_LBD is not set 192# CONFIG_LBD is not set
193# CONFIG_BLK_DEV_IO_TRACE is not set
194# CONFIG_LSF is not set
197 195
198# 196#
199# IO Schedulers 197# IO Schedulers
@@ -213,7 +211,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
213# 211#
214CONFIG_HW_HAS_PCI=y 212CONFIG_HW_HAS_PCI=y
215CONFIG_PCI=y 213CONFIG_PCI=y
216CONFIG_PCI_LEGACY_PROC=y
217# CONFIG_PCI_DEBUG is not set 214# CONFIG_PCI_DEBUG is not set
218CONFIG_MMU=y 215CONFIG_MMU=y
219 216
@@ -241,6 +238,7 @@ CONFIG_NET=y
241# 238#
242# Networking options 239# Networking options
243# 240#
241# CONFIG_NETDEBUG is not set
244CONFIG_PACKET=m 242CONFIG_PACKET=m
245CONFIG_PACKET_MMAP=y 243CONFIG_PACKET_MMAP=y
246CONFIG_UNIX=y 244CONFIG_UNIX=y
@@ -261,16 +259,19 @@ CONFIG_IP_PNP_BOOTP=y
261# CONFIG_INET_AH is not set 259# CONFIG_INET_AH is not set
262# CONFIG_INET_ESP is not set 260# CONFIG_INET_ESP is not set
263# CONFIG_INET_IPCOMP is not set 261# CONFIG_INET_IPCOMP is not set
264CONFIG_INET_TUNNEL=m 262# CONFIG_INET_XFRM_TUNNEL is not set
263# CONFIG_INET_TUNNEL is not set
265CONFIG_INET_DIAG=y 264CONFIG_INET_DIAG=y
266CONFIG_INET_TCP_DIAG=y 265CONFIG_INET_TCP_DIAG=y
267# CONFIG_TCP_CONG_ADVANCED is not set 266# CONFIG_TCP_CONG_ADVANCED is not set
268CONFIG_TCP_CONG_BIC=y 267CONFIG_TCP_CONG_BIC=y
269CONFIG_IPV6=m 268CONFIG_IPV6=m
270CONFIG_IPV6_PRIVACY=y 269CONFIG_IPV6_PRIVACY=y
270CONFIG_IPV6_ROUTER_PREF=y
271CONFIG_INET6_AH=m 271CONFIG_INET6_AH=m
272CONFIG_INET6_ESP=m 272CONFIG_INET6_ESP=m
273CONFIG_INET6_IPCOMP=m 273CONFIG_INET6_IPCOMP=m
274CONFIG_INET6_XFRM_TUNNEL=m
274CONFIG_INET6_TUNNEL=m 275CONFIG_INET6_TUNNEL=m
275CONFIG_IPV6_TUNNEL=m 276CONFIG_IPV6_TUNNEL=m
276# CONFIG_NETFILTER is not set 277# CONFIG_NETFILTER is not set
@@ -340,10 +341,9 @@ CONFIG_CONNECTOR=m
340# CONFIG_BLK_DEV_NBD is not set 341# CONFIG_BLK_DEV_NBD is not set
341# CONFIG_BLK_DEV_SX8 is not set 342# CONFIG_BLK_DEV_SX8 is not set
342# CONFIG_BLK_DEV_RAM is not set 343# CONFIG_BLK_DEV_RAM is not set
343CONFIG_BLK_DEV_RAM_COUNT=16 344# CONFIG_BLK_DEV_INITRD is not set
344CONFIG_CDROM_PKTCDVD=m 345CONFIG_CDROM_PKTCDVD=m
345CONFIG_CDROM_PKTCDVD_BUFFERS=8 346CONFIG_CDROM_PKTCDVD_BUFFERS=8
346# CONFIG_CDROM_PKTCDVD_WCACHE is not set
347CONFIG_ATA_OVER_ETH=m 347CONFIG_ATA_OVER_ETH=m
348 348
349# 349#
@@ -433,6 +433,7 @@ CONFIG_MII=y
433# CONFIG_HAMACHI is not set 433# CONFIG_HAMACHI is not set
434# CONFIG_R8169 is not set 434# CONFIG_R8169 is not set
435# CONFIG_SIS190 is not set 435# CONFIG_SIS190 is not set
436# CONFIG_SKGE is not set
436# CONFIG_SK98LIN is not set 437# CONFIG_SK98LIN is not set
437# CONFIG_TIGON3 is not set 438# CONFIG_TIGON3 is not set
438# CONFIG_BNX2 is not set 439# CONFIG_BNX2 is not set
@@ -497,6 +498,7 @@ CONFIG_TITAN_GE=y
497# 498#
498CONFIG_SERIAL_8250=y 499CONFIG_SERIAL_8250=y
499CONFIG_SERIAL_8250_CONSOLE=y 500CONFIG_SERIAL_8250_CONSOLE=y
501CONFIG_SERIAL_8250_PCI=y
500CONFIG_SERIAL_8250_NR_UARTS=4 502CONFIG_SERIAL_8250_NR_UARTS=4
501CONFIG_SERIAL_8250_RUNTIME_UARTS=4 503CONFIG_SERIAL_8250_RUNTIME_UARTS=4
502# CONFIG_SERIAL_8250_EXTENDED is not set 504# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -506,6 +508,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
506# 508#
507CONFIG_SERIAL_CORE=y 509CONFIG_SERIAL_CORE=y
508CONFIG_SERIAL_CORE_CONSOLE=y 510CONFIG_SERIAL_CORE_CONSOLE=y
511# CONFIG_SERIAL_JSM is not set
509CONFIG_UNIX98_PTYS=y 512CONFIG_UNIX98_PTYS=y
510CONFIG_LEGACY_PTYS=y 513CONFIG_LEGACY_PTYS=y
511CONFIG_LEGACY_PTY_COUNT=256 514CONFIG_LEGACY_PTY_COUNT=256
@@ -563,10 +566,6 @@ CONFIG_GEN_RTC_X=y
563# 566#
564 567
565# 568#
566# Multimedia Capabilities Port drivers
567#
568
569#
570# Multimedia devices 569# Multimedia devices
571# 570#
572# CONFIG_VIDEO_DEV is not set 571# CONFIG_VIDEO_DEV is not set
@@ -591,6 +590,7 @@ CONFIG_GEN_RTC_X=y
591# 590#
592CONFIG_USB_ARCH_HAS_HCD=y 591CONFIG_USB_ARCH_HAS_HCD=y
593CONFIG_USB_ARCH_HAS_OHCI=y 592CONFIG_USB_ARCH_HAS_OHCI=y
593CONFIG_USB_ARCH_HAS_EHCI=y
594# CONFIG_USB is not set 594# CONFIG_USB is not set
595 595
596# 596#
@@ -608,12 +608,29 @@ CONFIG_USB_ARCH_HAS_OHCI=y
608# CONFIG_MMC is not set 608# CONFIG_MMC is not set
609 609
610# 610#
611# LED devices
612#
613# CONFIG_NEW_LEDS is not set
614
615#
616# LED drivers
617#
618
619#
620# LED Triggers
621#
622
623#
611# InfiniBand support 624# InfiniBand support
612# 625#
613# CONFIG_INFINIBAND is not set 626# CONFIG_INFINIBAND is not set
614 627
615# 628#
616# SN Devices 629# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
630#
631
632#
633# Real Time Clock
617# 634#
618 635
619# 636#
@@ -656,7 +673,6 @@ CONFIG_SYSFS=y
656CONFIG_TMPFS=y 673CONFIG_TMPFS=y
657# CONFIG_HUGETLB_PAGE is not set 674# CONFIG_HUGETLB_PAGE is not set
658CONFIG_RAMFS=y 675CONFIG_RAMFS=y
659CONFIG_RELAYFS_FS=m
660 676
661# 677#
662# Miscellaneous filesystems 678# Miscellaneous filesystems
diff --git a/arch/mips/ddb5xxx/ddb5074/Makefile b/arch/mips/ddb5xxx/ddb5074/Makefile
index 488206b8d94e..304c02107b46 100644
--- a/arch/mips/ddb5xxx/ddb5074/Makefile
+++ b/arch/mips/ddb5xxx/ddb5074/Makefile
@@ -3,6 +3,6 @@
3# under Linux. 3# under Linux.
4# 4#
5 5
6obj-y += setup.o irq.o int-handler.o nile4_pic.o 6obj-y += setup.o irq.o nile4_pic.o
7 7
8EXTRA_AFLAGS := $(CFLAGS) 8EXTRA_AFLAGS := $(CFLAGS)
diff --git a/arch/mips/ddb5xxx/ddb5074/int-handler.S b/arch/mips/ddb5xxx/ddb5074/int-handler.S
deleted file mode 100644
index a78644150b37..000000000000
--- a/arch/mips/ddb5xxx/ddb5074/int-handler.S
+++ /dev/null
@@ -1,120 +0,0 @@
1/*
2 * arch/mips/ddb5074/int-handler.S -- NEC DDB Vrc-5074 interrupt handler
3 *
4 * Based on arch/mips/sgi/kernel/indyIRQ.S
5 *
6 * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
7 *
8 * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
9 * Sony Software Development Center Europe (SDCE), Brussels
10 */
11#include <asm/asm.h>
12#include <asm/mipsregs.h>
13#include <asm/regdef.h>
14#include <asm/stackframe.h>
15
16/* A lot of complication here is taken away because:
17 *
18 * 1) We handle one interrupt and return, sitting in a loop and moving across
19 * all the pending IRQ bits in the cause register is _NOT_ the answer, the
20 * common case is one pending IRQ so optimize in that direction.
21 *
22 * 2) We need not check against bits in the status register IRQ mask, that
23 * would make this routine slow as hell.
24 *
25 * 3) Linux only thinks in terms of all IRQs on or all IRQs off, nothing in
26 * between like BSD spl() brain-damage.
27 *
28 * Furthermore, the IRQs on the INDY look basically (barring software IRQs
29 * which we don't use at all) like:
30 *
31 * MIPS IRQ Source
32 * -------- ------
33 * 0 Software (ignored)
34 * 1 Software (ignored)
35 * 2 Local IRQ level zero
36 * 3 Local IRQ level one
37 * 4 8254 Timer zero
38 * 5 8254 Timer one
39 * 6 Bus Error
40 * 7 R4k timer (what we use)
41 *
42 * We handle the IRQ according to _our_ priority which is:
43 *
44 * Highest ---- R4k Timer
45 * Local IRQ zero
46 * Local IRQ one
47 * Bus Error
48 * 8254 Timer zero
49 * Lowest ---- 8254 Timer one
50 *
51 * then we just return, if multiple IRQs are pending then we will just take
52 * another exception, big deal.
53 */
54
55 .text
56 .set noreorder
57 .set noat
58 .align 5
59 NESTED(ddbIRQ, PT_SIZE, sp)
60 SAVE_ALL
61 CLI
62 .set at
63 mfc0 s0, CP0_CAUSE # get irq mask
64
65#if 1
66 mfc0 t2,CP0_STATUS # get enabled interrupts
67 and s0,t2 # isolate allowed ones
68#endif
69 /* First we check for r4k counter/timer IRQ. */
70 andi a0, s0, CAUSEF_IP2 # delay slot, check local level zero
71 beq a0, zero, 1f
72 andi a0, s0, CAUSEF_IP3 # delay slot, check local level one
73
74 /* Wheee, local level zero interrupt. */
75 jal ddb_local0_irqdispatch
76 move a0, sp # delay slot
77
78 j ret_from_irq
79 nop # delay slot
80
811:
82 beq a0, zero, 1f
83 andi a0, s0, CAUSEF_IP6 # delay slot, check bus error
84
85 /* Wheee, local level one interrupt. */
86 move a0, sp
87 jal ddb_local1_irqdispatch
88 nop
89
90 j ret_from_irq
91 nop
92
931:
94 beq a0, zero, 1f
95 nop
96
97 /* Wheee, an asynchronous bus error... */
98 move a0, sp
99 jal ddb_buserror_irq
100 nop
101
102 j ret_from_irq
103 nop
104
1051:
106 /* Here by mistake? This is possible, what can happen
107 * is that by the time we take the exception the IRQ
108 * pin goes low, so just leave if this is the case.
109 */
110 andi a0, s0, (CAUSEF_IP4 | CAUSEF_IP5)
111 beq a0, zero, 1f
112
113 /* Must be one of the 8254 timers... */
114 move a0, sp
115 jal ddb_8254timer_irq
116 nop
1171:
118 j ret_from_irq
119 nop
120 END(ddbIRQ)
diff --git a/arch/mips/ddb5xxx/ddb5074/irq.c b/arch/mips/ddb5xxx/ddb5074/irq.c
index 45088a1be414..60c087b7738c 100644
--- a/arch/mips/ddb5xxx/ddb5074/irq.c
+++ b/arch/mips/ddb5xxx/ddb5074/irq.c
@@ -21,8 +21,6 @@
21#include <asm/ddb5xxx/ddb5074.h> 21#include <asm/ddb5xxx/ddb5074.h>
22 22
23 23
24extern asmlinkage void ddbIRQ(void);
25
26static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL }; 24static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL };
27 25
28#define M1543_PNP_CONFIG 0x03f0 /* PnP Config Port */ 26#define M1543_PNP_CONFIG 0x03f0 /* PnP Config Port */
@@ -90,7 +88,7 @@ static void m1543_irq_setup(void)
90 88
91} 89}
92 90
93void ddb_local0_irqdispatch(struct pt_regs *regs) 91static void ddb_local0_irqdispatch(struct pt_regs *regs)
94{ 92{
95 u32 mask; 93 u32 mask;
96 int nile4_irq; 94 int nile4_irq;
@@ -118,29 +116,41 @@ void ddb_local0_irqdispatch(struct pt_regs *regs)
118 } 116 }
119} 117}
120 118
121void ddb_local1_irqdispatch(void) 119static void ddb_local1_irqdispatch(void)
122{ 120{
123 printk("ddb_local1_irqdispatch called\n"); 121 printk("ddb_local1_irqdispatch called\n");
124} 122}
125 123
126void ddb_buserror_irq(void) 124static void ddb_buserror_irq(void)
127{ 125{
128 printk("ddb_buserror_irq called\n"); 126 printk("ddb_buserror_irq called\n");
129} 127}
130 128
131void ddb_8254timer_irq(void) 129static void ddb_8254timer_irq(void)
132{ 130{
133 printk("ddb_8254timer_irq called\n"); 131 printk("ddb_8254timer_irq called\n");
134} 132}
135 133
134asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
135{
136 unsigned int pending = read_c0_cause() & read_c0_status();
137
138 if (pending & CAUSEF_IP2)
139 ddb_local0_irqdispatch(regs);
140 else if (pending & CAUSEF_IP3)
141 ddb_local1_irqdispatch();
142 else if (pending & CAUSEF_IP6)
143 ddb_buserror_irq();
144 else if (pending & (CAUSEF_IP4 | CAUSEF_IP5))
145 ddb_8254timer_irq();
146}
147
136void __init arch_init_irq(void) 148void __init arch_init_irq(void)
137{ 149{
138 /* setup cascade interrupts */ 150 /* setup cascade interrupts */
139 setup_irq(NILE4_IRQ_BASE + NILE4_INT_INTE, &irq_cascade); 151 setup_irq(NILE4_IRQ_BASE + NILE4_INT_INTE, &irq_cascade);
140 setup_irq(CPU_IRQ_BASE + CPU_NILE4_CASCADE, &irq_cascade); 152 setup_irq(CPU_IRQ_BASE + CPU_NILE4_CASCADE, &irq_cascade);
141 153
142 set_except_vector(0, ddbIRQ);
143
144 nile4_irq_setup(NILE4_IRQ_BASE); 154 nile4_irq_setup(NILE4_IRQ_BASE);
145 m1543_irq_setup(); 155 m1543_irq_setup();
146 init_i8259_irqs(); 156 init_i8259_irqs();
diff --git a/arch/mips/ddb5xxx/ddb5476/Makefile b/arch/mips/ddb5xxx/ddb5476/Makefile
index 61eec363cb02..ab0312cb47b4 100644
--- a/arch/mips/ddb5xxx/ddb5476/Makefile
+++ b/arch/mips/ddb5xxx/ddb5476/Makefile
@@ -3,7 +3,7 @@
3# under Linux. 3# under Linux.
4# 4#
5 5
6obj-y += setup.o irq.o int-handler.o nile4_pic.o vrc5476_irq.o 6obj-y += setup.o irq.o nile4_pic.o vrc5476_irq.o
7obj-$(CONFIG_KGDB) += dbg_io.o 7obj-$(CONFIG_KGDB) += dbg_io.o
8 8
9EXTRA_AFLAGS := $(CFLAGS) 9EXTRA_AFLAGS := $(CFLAGS)
diff --git a/arch/mips/ddb5xxx/ddb5476/int-handler.S b/arch/mips/ddb5xxx/ddb5476/int-handler.S
deleted file mode 100644
index 12c292e189ba..000000000000
--- a/arch/mips/ddb5xxx/ddb5476/int-handler.S
+++ /dev/null
@@ -1,112 +0,0 @@
1/*
2 * Copyright 2001 MontaVista Software Inc.
3 * Author: jsun@mvista.com or jsun@junsun.net
4 *
5 * First-level interrupt dispatcher for ddb5476
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version.
11 */
12#include <asm/asm.h>
13#include <asm/mipsregs.h>
14#include <asm/addrspace.h>
15#include <asm/regdef.h>
16#include <asm/stackframe.h>
17
18#include <asm/ddb5xxx/ddb5476.h>
19
20/*
21 * first level interrupt dispatcher for ocelot board -
22 * We check for the timer first, then check PCI ints A and D.
23 * Then check for serial IRQ and fall through.
24 */
25 .align 5
26 NESTED(ddb5476_handle_int, PT_SIZE, sp)
27 SAVE_ALL
28 CLI
29 .set at
30 .set noreorder
31 mfc0 t0, CP0_CAUSE
32 mfc0 t2, CP0_STATUS
33
34 and t0, t2
35
36 andi t1, t0, STATUSF_IP7 /* cpu timer */
37 bnez t1, ll_cpu_ip7
38 andi t1, t0, STATUSF_IP2 /* vrc5476 & i8259 */
39 bnez t1, ll_cpu_ip2
40 andi t1, t0, STATUSF_IP3
41 bnez t1, ll_cpu_ip3
42 andi t1, t0, STATUSF_IP4
43 bnez t1, ll_cpu_ip4
44 andi t1, t0, STATUSF_IP5
45 bnez t1, ll_cpu_ip5
46 andi t1, t0, STATUSF_IP6
47 bnez t1, ll_cpu_ip6
48 andi t1, t0, STATUSF_IP0 /* software int 0 */
49 bnez t1, ll_cpu_ip0
50 andi t1, t0, STATUSF_IP1 /* software int 1 */
51 bnez t1, ll_cpu_ip1
52 nop
53
54 .set reorder
55
56 /* wrong alarm or masked ... */
57 // j spurious_interrupt
58 move a0, sp
59 jal vrc5476_irq_dispatch
60 j ret_from_irq
61 nop
62
63 .align 5
64
65ll_cpu_ip0:
66 li a0, CPU_IRQ_BASE + 0
67 move a1, sp
68 jal do_IRQ
69 j ret_from_irq
70
71ll_cpu_ip1:
72 li a0, CPU_IRQ_BASE + 1
73 move a1, sp
74 jal do_IRQ
75 j ret_from_irq
76
77ll_cpu_ip2: /* jump to second-level dispatching */
78 move a0, sp
79 jal vrc5476_irq_dispatch
80 j ret_from_irq
81
82ll_cpu_ip3:
83 li a0, CPU_IRQ_BASE + 3
84 move a1, sp
85 jal do_IRQ
86 j ret_from_irq
87
88ll_cpu_ip4:
89 li a0, CPU_IRQ_BASE + 4
90 move a1, sp
91 jal do_IRQ
92 j ret_from_irq
93
94ll_cpu_ip5:
95 li a0, CPU_IRQ_BASE + 5
96 move a1, sp
97 jal do_IRQ
98 j ret_from_irq
99
100ll_cpu_ip6:
101 li a0, CPU_IRQ_BASE + 6
102 move a1, sp
103 jal do_IRQ
104 j ret_from_irq
105
106ll_cpu_ip7:
107 li a0, CPU_IRQ_BASE + 7
108 move a1, sp
109 jal do_IRQ
110 j ret_from_irq
111
112 END(ddb5476_handle_int)
diff --git a/arch/mips/ddb5xxx/ddb5476/irq.c b/arch/mips/ddb5xxx/ddb5476/irq.c
index 5388b5868c4a..7583a1f30711 100644
--- a/arch/mips/ddb5xxx/ddb5476/irq.c
+++ b/arch/mips/ddb5xxx/ddb5476/irq.c
@@ -110,11 +110,36 @@ static void nile4_irq_setup(void)
110static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL }; 110static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL };
111static struct irqaction irq_error = { no_action, 0, CPU_MASK_NONE, "error", NULL, NULL }; 111static struct irqaction irq_error = { no_action, 0, CPU_MASK_NONE, "error", NULL, NULL };
112 112
113extern asmlinkage void ddb5476_handle_int(void);
114extern int setup_irq(unsigned int irq, struct irqaction *irqaction); 113extern int setup_irq(unsigned int irq, struct irqaction *irqaction);
115extern void mips_cpu_irq_init(u32 irq_base); 114extern void mips_cpu_irq_init(u32 irq_base);
116extern void vrc5476_irq_init(u32 irq_base); 115extern void vrc5476_irq_init(u32 irq_base);
117 116
117extern void vrc5476_irq_dispatch(struct pt_regs *regs);
118
119asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
120{
121 unsigned int pending = read_c0_cause() & read_c0_status();
122
123 if (pending & STATUSF_IP7)
124 do_IRQ(CPU_IRQ_BASE + 7, regs);
125 else if (pending & STATUSF_IP2)
126 vrc5476_irq_dispatch(regs);
127 else if (pending & STATUSF_IP3)
128 do_IRQ(CPU_IRQ_BASE + 3, regs);
129 else if (pending & STATUSF_IP4)
130 do_IRQ(CPU_IRQ_BASE + 4, regs);
131 else if (pending & STATUSF_IP5)
132 do_IRQ(CPU_IRQ_BASE + 5, regs);
133 else if (pending & STATUSF_IP6)
134 do_IRQ(CPU_IRQ_BASE + 6, regs);
135 else if (pending & STATUSF_IP0)
136 do_IRQ(CPU_IRQ_BASE, regs);
137 else if (pending & STATUSF_IP1)
138 do_IRQ(CPU_IRQ_BASE + 1, regs);
139
140 vrc5476_irq_dispatch(regs);
141}
142
118void __init arch_init_irq(void) 143void __init arch_init_irq(void)
119{ 144{
120 /* hardware initialization */ 145 /* hardware initialization */
@@ -137,7 +162,4 @@ void __init arch_init_irq(void)
137 setup_irq(VRC5476_IRQ_BASE + VRC5476_IRQ_LBRT, &irq_error); 162 setup_irq(VRC5476_IRQ_BASE + VRC5476_IRQ_LBRT, &irq_error);
138 setup_irq(VRC5476_IRQ_BASE + VRC5476_IRQ_PCIS, &irq_error); 163 setup_irq(VRC5476_IRQ_BASE + VRC5476_IRQ_PCIS, &irq_error);
139 setup_irq(VRC5476_IRQ_BASE + VRC5476_IRQ_PCI, &irq_error); 164 setup_irq(VRC5476_IRQ_BASE + VRC5476_IRQ_PCI, &irq_error);
140
141 /* setup the grandpa intr vector */
142 set_except_vector(0, ddb5476_handle_int);
143} 165}
diff --git a/arch/mips/ddb5xxx/ddb5476/vrc5476_irq.c b/arch/mips/ddb5xxx/ddb5476/vrc5476_irq.c
index f66fe5b58636..a3c5e7b18018 100644
--- a/arch/mips/ddb5xxx/ddb5476/vrc5476_irq.c
+++ b/arch/mips/ddb5xxx/ddb5476/vrc5476_irq.c
@@ -77,11 +77,9 @@ vrc5476_irq_init(u32 base)
77} 77}
78 78
79 79
80asmlinkage void 80void
81vrc5476_irq_dispatch(struct pt_regs *regs) 81vrc5476_irq_dispatch(struct pt_regs *regs)
82{ 82{
83 extern void spurious_interrupt(void);
84
85 u32 mask; 83 u32 mask;
86 int nile4_irq; 84 int nile4_irq;
87 85
@@ -107,5 +105,5 @@ vrc5476_irq_dispatch(struct pt_regs *regs)
107 return; 105 return;
108 } 106 }
109 } 107 }
110 spurious_interrupt(); 108 spurious_interrupt(regs);
111} 109}
diff --git a/arch/mips/ddb5xxx/ddb5477/Makefile b/arch/mips/ddb5xxx/ddb5477/Makefile
index b79b43c9f93b..ea68815ad17a 100644
--- a/arch/mips/ddb5xxx/ddb5477/Makefile
+++ b/arch/mips/ddb5xxx/ddb5477/Makefile
@@ -2,7 +2,7 @@
2# Makefile for NEC DDB-Vrc5477 board 2# Makefile for NEC DDB-Vrc5477 board
3# 3#
4 4
5obj-y += int-handler.o irq.o irq_5477.o setup.o lcd44780.o 5obj-y += irq.o irq_5477.o setup.o lcd44780.o
6 6
7obj-$(CONFIG_RUNTIME_DEBUG) += debug.o 7obj-$(CONFIG_RUNTIME_DEBUG) += debug.o
8obj-$(CONFIG_KGDB) += kgdb_io.o 8obj-$(CONFIG_KGDB) += kgdb_io.o
diff --git a/arch/mips/ddb5xxx/ddb5477/int-handler.S b/arch/mips/ddb5xxx/ddb5477/int-handler.S
deleted file mode 100644
index a2502a14400e..000000000000
--- a/arch/mips/ddb5xxx/ddb5477/int-handler.S
+++ /dev/null
@@ -1,75 +0,0 @@
1/*
2 * Copyright 2001 MontaVista Software Inc.
3 * Author: jsun@mvista.com or jsun@junsun.net
4 *
5 * First-level interrupt dispatcher for ddb5477
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version.
11 */
12#include <asm/asm.h>
13#include <asm/mipsregs.h>
14#include <asm/addrspace.h>
15#include <asm/regdef.h>
16#include <asm/stackframe.h>
17#include <asm/ddb5xxx/ddb5477.h>
18
19/*
20 * first level interrupt dispatcher for ocelot board -
21 * We check for the timer first, then check PCI ints A and D.
22 * Then check for serial IRQ and fall through.
23 */
24 .align 5
25 NESTED(ddb5477_handle_int, PT_SIZE, sp)
26 SAVE_ALL
27 CLI
28 .set at
29 .set noreorder
30 mfc0 t0, CP0_CAUSE
31 mfc0 t2, CP0_STATUS
32
33 and t0, t2
34
35 andi t1, t0, STATUSF_IP7 /* cpu timer */
36 bnez t1, ll_cputimer_irq
37 andi t1, t0, (STATUSF_IP2 | STATUSF_IP3 | STATUSF_IP4 | STATUSF_IP5 | STATUSF_IP6 )
38 bnez t1, ll_vrc5477_irq
39 andi t1, t0, STATUSF_IP0 /* software int 0 */
40 bnez t1, ll_cpu_ip0
41 andi t1, t0, STATUSF_IP1 /* software int 1 */
42 bnez t1, ll_cpu_ip1
43 nop
44 .set reorder
45
46 /* wrong alarm or masked ... */
47 j spurious_interrupt
48 nop
49 END(ddb5477_handle_int)
50
51 .align 5
52
53ll_vrc5477_irq:
54 move a0, sp
55 jal vrc5477_irq_dispatch
56 j ret_from_irq
57
58ll_cputimer_irq:
59 li a0, CPU_IRQ_BASE + 7
60 move a1, sp
61 jal do_IRQ
62 j ret_from_irq
63
64
65ll_cpu_ip0:
66 li a0, CPU_IRQ_BASE + 0
67 move a1, sp
68 jal do_IRQ
69 j ret_from_irq
70
71ll_cpu_ip1:
72 li a0, CPU_IRQ_BASE + 1
73 move a1, sp
74 jal do_IRQ
75 j ret_from_irq
diff --git a/arch/mips/ddb5xxx/ddb5477/irq.c b/arch/mips/ddb5xxx/ddb5477/irq.c
index 9ffe1a9142ca..de433cf9fb50 100644
--- a/arch/mips/ddb5xxx/ddb5477/irq.c
+++ b/arch/mips/ddb5xxx/ddb5477/irq.c
@@ -75,7 +75,6 @@ set_pci_int_attr(u32 pci, u32 intn, u32 active, u32 trigger)
75 75
76extern void vrc5477_irq_init(u32 base); 76extern void vrc5477_irq_init(u32 base);
77extern void mips_cpu_irq_init(u32 base); 77extern void mips_cpu_irq_init(u32 base);
78extern asmlinkage void ddb5477_handle_int(void);
79extern int setup_irq(unsigned int irq, struct irqaction *irqaction); 78extern int setup_irq(unsigned int irq, struct irqaction *irqaction);
80static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL }; 79static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL };
81 80
@@ -135,9 +134,6 @@ void __init arch_init_irq(void)
135 /* setup cascade interrupts */ 134 /* setup cascade interrupts */
136 setup_irq(VRC5477_IRQ_BASE + VRC5477_I8259_CASCADE, &irq_cascade); 135 setup_irq(VRC5477_IRQ_BASE + VRC5477_I8259_CASCADE, &irq_cascade);
137 setup_irq(CPU_IRQ_BASE + CPU_VRC5477_CASCADE, &irq_cascade); 136 setup_irq(CPU_IRQ_BASE + CPU_VRC5477_CASCADE, &irq_cascade);
138
139 /* hook up the first-level interrupt handler */
140 set_except_vector(0, ddb5477_handle_int);
141} 137}
142 138
143u8 i8259_interrupt_ack(void) 139u8 i8259_interrupt_ack(void)
@@ -159,7 +155,7 @@ u8 i8259_interrupt_ack(void)
159 * the first level int-handler will jump here if it is a vrc5477 irq 155 * the first level int-handler will jump here if it is a vrc5477 irq
160 */ 156 */
161#define NUM_5477_IRQS 32 157#define NUM_5477_IRQS 32
162asmlinkage void 158static void
163vrc5477_irq_dispatch(struct pt_regs *regs) 159vrc5477_irq_dispatch(struct pt_regs *regs)
164{ 160{
165 u32 intStatus; 161 u32 intStatus;
@@ -197,3 +193,21 @@ vrc5477_irq_dispatch(struct pt_regs *regs)
197 } 193 }
198 } 194 }
199} 195}
196
197#define VR5477INTS (STATUSF_IP2|STATUSF_IP3|STATUSF_IP4|STATUSF_IP5|STATUSF_IP6)
198
199asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
200{
201 unsigned int pending = read_c0_cause() & read_c0_status();
202
203 if (pending & STATUSF_IP7)
204 do_IRQ(CPU_IRQ_BASE + 7, regs);
205 else if (pending & VR5477INTS)
206 vrc5477_irq_dispatch(regs);
207 else if (pending & STATUSF_IP0)
208 do_IRQ(CPU_IRQ_BASE, regs);
209 else if (pending & STATUSF_IP1)
210 do_IRQ(CPU_IRQ_BASE + 1, regs);
211 else
212 spurious_interrupt(regs);
213}
diff --git a/arch/mips/dec/boot/decstation.c b/arch/mips/dec/boot/decstation.c
index 56fd4277555e..4db8bacaf22d 100644
--- a/arch/mips/dec/boot/decstation.c
+++ b/arch/mips/dec/boot/decstation.c
@@ -1,6 +1,7 @@
1/* 1/*
2 * arch/mips/dec/decstation.c 2 * arch/mips/dec/decstation.c
3 */ 3 */
4#include <asm/sections.h>
4 5
5#define RELOC 6#define RELOC
6#define INITRD 7#define INITRD
@@ -24,7 +25,7 @@
24#define INITRD_START (*(unsigned long *) (PARAM+0x218)) 25#define INITRD_START (*(unsigned long *) (PARAM+0x218))
25#define INITRD_SIZE (*(unsigned long *) (PARAM+0x21c)) 26#define INITRD_SIZE (*(unsigned long *) (PARAM+0x21c))
26 27
27extern int _ftext, _end; /* begin and end of kernel image */ 28extern int _ftext; /* begin and end of kernel image */
28extern void kernel_entry(int, char **, unsigned long, int *); 29extern void kernel_entry(int, char **, unsigned long, int *);
29 30
30void * memcpy(void * dest, const void *src, unsigned int count) 31void * memcpy(void * dest, const void *src, unsigned int count)
diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S
index 41fa372007bf..e8ec93e33fe6 100644
--- a/arch/mips/dec/int-handler.S
+++ b/arch/mips/dec/int-handler.S
@@ -36,7 +36,7 @@
36 .text 36 .text
37 .set noreorder 37 .set noreorder
38/* 38/*
39 * decstation_handle_int: Interrupt handler for DECstations 39 * plat_irq_dispatch: Interrupt handler for DECstations
40 * 40 *
41 * We follow the model in the Indy interrupt code by David Miller, where he 41 * We follow the model in the Indy interrupt code by David Miller, where he
42 * says: a lot of complication here is taken away because: 42 * says: a lot of complication here is taken away because:
@@ -125,11 +125,7 @@
125 * just take another exception, big deal. 125 * just take another exception, big deal.
126 */ 126 */
127 .align 5 127 .align 5
128 NESTED(decstation_handle_int, PT_SIZE, ra) 128 NESTED(plat_irq_dispatch, PT_SIZE, ra)
129 .set noat
130 SAVE_ALL
131 CLI # TEST: interrupts should be off
132 .set at
133 .set noreorder 129 .set noreorder
134 130
135 /* 131 /*
@@ -282,9 +278,11 @@ fpu:
282#endif 278#endif
283 279
284spurious: 280spurious:
285 j spurious_interrupt 281 jal spurious_interrupt
286 nop 282 nop
287 END(decstation_handle_int) 283 j ret_from_irq
284 nop
285 END(plat_irq_dispatch)
288 286
289/* 287/*
290 * Generic unimplemented interrupt routines -- cpu_mask_nr_tbl 288 * Generic unimplemented interrupt routines -- cpu_mask_nr_tbl
diff --git a/arch/mips/dec/setup.c b/arch/mips/dec/setup.c
index 7c1ca8f6330e..ad5d436d80c1 100644
--- a/arch/mips/dec/setup.c
+++ b/arch/mips/dec/setup.c
@@ -48,8 +48,6 @@ extern void dec_machine_halt(void);
48extern void dec_machine_power_off(void); 48extern void dec_machine_power_off(void);
49extern irqreturn_t dec_intr_halt(int irq, void *dev_id, struct pt_regs *regs); 49extern irqreturn_t dec_intr_halt(int irq, void *dev_id, struct pt_regs *regs);
50 50
51extern asmlinkage void decstation_handle_int(void);
52
53unsigned long dec_kn_slot_base, dec_kn_slot_size; 51unsigned long dec_kn_slot_base, dec_kn_slot_size;
54 52
55EXPORT_SYMBOL(dec_kn_slot_base); 53EXPORT_SYMBOL(dec_kn_slot_base);
@@ -744,7 +742,6 @@ void __init arch_init_irq(void)
744 panic("Don't know how to set this up!"); 742 panic("Don't know how to set this up!");
745 break; 743 break;
746 } 744 }
747 set_except_vector(0, decstation_handle_int);
748 745
749 /* Free the FPU interrupt if the exception is present. */ 746 /* Free the FPU interrupt if the exception is present. */
750 if (!cpu_has_nofpuex) { 747 if (!cpu_has_nofpuex) {
diff --git a/arch/mips/defconfig b/arch/mips/defconfig
index 42d5cd7927cb..607e2985ffe3 100644
--- a/arch/mips/defconfig
+++ b/arch/mips/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.16-rc1 3# Linux kernel version: 2.6.17-rc2
4# Fri Jan 27 15:39:51 2006 4# Mon Apr 24 14:50:54 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -64,6 +64,8 @@ CONFIG_SGI_IP22=y
64# CONFIG_TOSHIBA_RBTX4927 is not set 64# CONFIG_TOSHIBA_RBTX4927 is not set
65# CONFIG_TOSHIBA_RBTX4938 is not set 65# CONFIG_TOSHIBA_RBTX4938 is not set
66CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
67CONFIG_GENERIC_FIND_NEXT_BIT=y
68CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 69CONFIG_GENERIC_CALIBRATE_DELAY=y
68CONFIG_ARC=y 70CONFIG_ARC=y
69CONFIG_DMA_NONCOHERENT=y 71CONFIG_DMA_NONCOHERENT=y
@@ -121,7 +123,6 @@ CONFIG_BOARD_SCACHE=y
121CONFIG_IP22_CPU_SCACHE=y 123CONFIG_IP22_CPU_SCACHE=y
122# CONFIG_MIPS_MT is not set 124# CONFIG_MIPS_MT is not set
123# CONFIG_64BIT_PHYS_ADDR is not set 125# CONFIG_64BIT_PHYS_ADDR is not set
124# CONFIG_CPU_ADVANCED is not set
125CONFIG_CPU_HAS_LLSC=y 126CONFIG_CPU_HAS_LLSC=y
126CONFIG_CPU_HAS_SYNC=y 127CONFIG_CPU_HAS_SYNC=y
127CONFIG_GENERIC_HARDIRQS=y 128CONFIG_GENERIC_HARDIRQS=y
@@ -143,7 +144,6 @@ CONFIG_PREEMPT_VOLUNTARY=y
143# Code maturity level options 144# Code maturity level options
144# 145#
145CONFIG_EXPERIMENTAL=y 146CONFIG_EXPERIMENTAL=y
146CONFIG_CLEAN_COMPILE=y
147CONFIG_BROKEN_ON_SMP=y 147CONFIG_BROKEN_ON_SMP=y
148CONFIG_INIT_ENV_ARG_LIMIT=32 148CONFIG_INIT_ENV_ARG_LIMIT=32
149 149
@@ -160,6 +160,7 @@ CONFIG_SYSCTL=y
160# CONFIG_AUDIT is not set 160# CONFIG_AUDIT is not set
161CONFIG_IKCONFIG=y 161CONFIG_IKCONFIG=y
162CONFIG_IKCONFIG_PROC=y 162CONFIG_IKCONFIG_PROC=y
163CONFIG_RELAY=y
163CONFIG_INITRAMFS_SOURCE="" 164CONFIG_INITRAMFS_SOURCE=""
164# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 165# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
165CONFIG_EMBEDDED=y 166CONFIG_EMBEDDED=y
@@ -173,10 +174,6 @@ CONFIG_BASE_FULL=y
173CONFIG_FUTEX=y 174CONFIG_FUTEX=y
174CONFIG_EPOLL=y 175CONFIG_EPOLL=y
175CONFIG_SHMEM=y 176CONFIG_SHMEM=y
176CONFIG_CC_ALIGN_FUNCTIONS=0
177CONFIG_CC_ALIGN_LABELS=0
178CONFIG_CC_ALIGN_LOOPS=0
179CONFIG_CC_ALIGN_JUMPS=0
180CONFIG_SLAB=y 177CONFIG_SLAB=y
181# CONFIG_TINY_SHMEM is not set 178# CONFIG_TINY_SHMEM is not set
182CONFIG_BASE_SMALL=0 179CONFIG_BASE_SMALL=0
@@ -188,7 +185,6 @@ CONFIG_BASE_SMALL=0
188CONFIG_MODULES=y 185CONFIG_MODULES=y
189CONFIG_MODULE_UNLOAD=y 186CONFIG_MODULE_UNLOAD=y
190# CONFIG_MODULE_FORCE_UNLOAD is not set 187# CONFIG_MODULE_FORCE_UNLOAD is not set
191CONFIG_OBSOLETE_MODPARM=y
192CONFIG_MODVERSIONS=y 188CONFIG_MODVERSIONS=y
193CONFIG_MODULE_SRCVERSION_ALL=y 189CONFIG_MODULE_SRCVERSION_ALL=y
194CONFIG_KMOD=y 190CONFIG_KMOD=y
@@ -197,6 +193,8 @@ CONFIG_KMOD=y
197# Block layer 193# Block layer
198# 194#
199# CONFIG_LBD is not set 195# CONFIG_LBD is not set
196# CONFIG_BLK_DEV_IO_TRACE is not set
197# CONFIG_LSF is not set
200 198
201# 199#
202# IO Schedulers 200# IO Schedulers
@@ -242,6 +240,7 @@ CONFIG_NET=y
242# 240#
243# Networking options 241# Networking options
244# 242#
243# CONFIG_NETDEBUG is not set
245CONFIG_PACKET=y 244CONFIG_PACKET=y
246CONFIG_PACKET_MMAP=y 245CONFIG_PACKET_MMAP=y
247CONFIG_UNIX=y 246CONFIG_UNIX=y
@@ -264,6 +263,7 @@ CONFIG_IP_PNP_BOOTP=y
264CONFIG_INET_AH=m 263CONFIG_INET_AH=m
265CONFIG_INET_ESP=m 264CONFIG_INET_ESP=m
266CONFIG_INET_IPCOMP=m 265CONFIG_INET_IPCOMP=m
266CONFIG_INET_XFRM_TUNNEL=m
267CONFIG_INET_TUNNEL=m 267CONFIG_INET_TUNNEL=m
268CONFIG_INET_DIAG=y 268CONFIG_INET_DIAG=y
269CONFIG_INET_TCP_DIAG=y 269CONFIG_INET_TCP_DIAG=y
@@ -305,9 +305,12 @@ CONFIG_IP_VS_NQ=m
305CONFIG_IP_VS_FTP=m 305CONFIG_IP_VS_FTP=m
306CONFIG_IPV6=m 306CONFIG_IPV6=m
307CONFIG_IPV6_PRIVACY=y 307CONFIG_IPV6_PRIVACY=y
308CONFIG_IPV6_ROUTER_PREF=y
309CONFIG_IPV6_ROUTE_INFO=y
308CONFIG_INET6_AH=m 310CONFIG_INET6_AH=m
309CONFIG_INET6_ESP=m 311CONFIG_INET6_ESP=m
310CONFIG_INET6_IPCOMP=m 312CONFIG_INET6_IPCOMP=m
313CONFIG_INET6_XFRM_TUNNEL=m
311CONFIG_INET6_TUNNEL=m 314CONFIG_INET6_TUNNEL=m
312CONFIG_IPV6_TUNNEL=m 315CONFIG_IPV6_TUNNEL=m
313CONFIG_NETFILTER=y 316CONFIG_NETFILTER=y
@@ -330,11 +333,14 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
330CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 333CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
331CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 334CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
332CONFIG_NETFILTER_XT_MATCH_DCCP=m 335CONFIG_NETFILTER_XT_MATCH_DCCP=m
336CONFIG_NETFILTER_XT_MATCH_ESP=m
333CONFIG_NETFILTER_XT_MATCH_HELPER=m 337CONFIG_NETFILTER_XT_MATCH_HELPER=m
334CONFIG_NETFILTER_XT_MATCH_LENGTH=m 338CONFIG_NETFILTER_XT_MATCH_LENGTH=m
335CONFIG_NETFILTER_XT_MATCH_LIMIT=m 339CONFIG_NETFILTER_XT_MATCH_LIMIT=m
336CONFIG_NETFILTER_XT_MATCH_MAC=m 340CONFIG_NETFILTER_XT_MATCH_MAC=m
337CONFIG_NETFILTER_XT_MATCH_MARK=m 341CONFIG_NETFILTER_XT_MATCH_MARK=m
342CONFIG_NETFILTER_XT_MATCH_POLICY=m
343CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
338CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 344CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
339CONFIG_NETFILTER_XT_MATCH_REALM=m 345CONFIG_NETFILTER_XT_MATCH_REALM=m
340CONFIG_NETFILTER_XT_MATCH_SCTP=m 346CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -357,20 +363,19 @@ CONFIG_IP_NF_IRC=m
357CONFIG_IP_NF_TFTP=m 363CONFIG_IP_NF_TFTP=m
358CONFIG_IP_NF_AMANDA=m 364CONFIG_IP_NF_AMANDA=m
359CONFIG_IP_NF_PPTP=m 365CONFIG_IP_NF_PPTP=m
366CONFIG_IP_NF_H323=m
360CONFIG_IP_NF_QUEUE=m 367CONFIG_IP_NF_QUEUE=m
361CONFIG_IP_NF_IPTABLES=m 368CONFIG_IP_NF_IPTABLES=m
362CONFIG_IP_NF_MATCH_IPRANGE=m 369CONFIG_IP_NF_MATCH_IPRANGE=m
363CONFIG_IP_NF_MATCH_MULTIPORT=m
364CONFIG_IP_NF_MATCH_TOS=m 370CONFIG_IP_NF_MATCH_TOS=m
365CONFIG_IP_NF_MATCH_RECENT=m 371CONFIG_IP_NF_MATCH_RECENT=m
366CONFIG_IP_NF_MATCH_ECN=m 372CONFIG_IP_NF_MATCH_ECN=m
367CONFIG_IP_NF_MATCH_DSCP=m 373CONFIG_IP_NF_MATCH_DSCP=m
368CONFIG_IP_NF_MATCH_AH_ESP=m 374CONFIG_IP_NF_MATCH_AH=m
369CONFIG_IP_NF_MATCH_TTL=m 375CONFIG_IP_NF_MATCH_TTL=m
370CONFIG_IP_NF_MATCH_OWNER=m 376CONFIG_IP_NF_MATCH_OWNER=m
371CONFIG_IP_NF_MATCH_ADDRTYPE=m 377CONFIG_IP_NF_MATCH_ADDRTYPE=m
372CONFIG_IP_NF_MATCH_HASHLIMIT=m 378CONFIG_IP_NF_MATCH_HASHLIMIT=m
373CONFIG_IP_NF_MATCH_POLICY=m
374CONFIG_IP_NF_FILTER=m 379CONFIG_IP_NF_FILTER=m
375CONFIG_IP_NF_TARGET_REJECT=m 380CONFIG_IP_NF_TARGET_REJECT=m
376CONFIG_IP_NF_TARGET_LOG=m 381CONFIG_IP_NF_TARGET_LOG=m
@@ -388,6 +393,7 @@ CONFIG_IP_NF_NAT_FTP=m
388CONFIG_IP_NF_NAT_TFTP=m 393CONFIG_IP_NF_NAT_TFTP=m
389CONFIG_IP_NF_NAT_AMANDA=m 394CONFIG_IP_NF_NAT_AMANDA=m
390CONFIG_IP_NF_NAT_PPTP=m 395CONFIG_IP_NF_NAT_PPTP=m
396CONFIG_IP_NF_NAT_H323=m
391CONFIG_IP_NF_MANGLE=m 397CONFIG_IP_NF_MANGLE=m
392CONFIG_IP_NF_TARGET_TOS=m 398CONFIG_IP_NF_TARGET_TOS=m
393CONFIG_IP_NF_TARGET_ECN=m 399CONFIG_IP_NF_TARGET_ECN=m
@@ -408,12 +414,10 @@ CONFIG_IP6_NF_MATCH_RT=m
408CONFIG_IP6_NF_MATCH_OPTS=m 414CONFIG_IP6_NF_MATCH_OPTS=m
409CONFIG_IP6_NF_MATCH_FRAG=m 415CONFIG_IP6_NF_MATCH_FRAG=m
410CONFIG_IP6_NF_MATCH_HL=m 416CONFIG_IP6_NF_MATCH_HL=m
411CONFIG_IP6_NF_MATCH_MULTIPORT=m
412CONFIG_IP6_NF_MATCH_OWNER=m 417CONFIG_IP6_NF_MATCH_OWNER=m
413CONFIG_IP6_NF_MATCH_IPV6HEADER=m 418CONFIG_IP6_NF_MATCH_IPV6HEADER=m
414CONFIG_IP6_NF_MATCH_AHESP=m 419CONFIG_IP6_NF_MATCH_AH=m
415CONFIG_IP6_NF_MATCH_EUI64=m 420CONFIG_IP6_NF_MATCH_EUI64=m
416CONFIG_IP6_NF_MATCH_POLICY=m
417CONFIG_IP6_NF_FILTER=m 421CONFIG_IP6_NF_FILTER=m
418CONFIG_IP6_NF_TARGET_LOG=m 422CONFIG_IP6_NF_TARGET_LOG=m
419CONFIG_IP6_NF_TARGET_REJECT=m 423CONFIG_IP6_NF_TARGET_REJECT=m
@@ -435,6 +439,11 @@ CONFIG_IP_SCTP=m
435# CONFIG_SCTP_HMAC_NONE is not set 439# CONFIG_SCTP_HMAC_NONE is not set
436# CONFIG_SCTP_HMAC_SHA1 is not set 440# CONFIG_SCTP_HMAC_SHA1 is not set
437CONFIG_SCTP_HMAC_MD5=y 441CONFIG_SCTP_HMAC_MD5=y
442
443#
444# TIPC Configuration (EXPERIMENTAL)
445#
446# CONFIG_TIPC is not set
438# CONFIG_ATM is not set 447# CONFIG_ATM is not set
439# CONFIG_BRIDGE is not set 448# CONFIG_BRIDGE is not set
440# CONFIG_VLAN_8021Q is not set 449# CONFIG_VLAN_8021Q is not set
@@ -444,11 +453,6 @@ CONFIG_SCTP_HMAC_MD5=y
444# CONFIG_ATALK is not set 453# CONFIG_ATALK is not set
445# CONFIG_X25 is not set 454# CONFIG_X25 is not set
446# CONFIG_LAPB is not set 455# CONFIG_LAPB is not set
447
448#
449# TIPC Configuration (EXPERIMENTAL)
450#
451# CONFIG_TIPC is not set
452CONFIG_NET_DIVERT=y 456CONFIG_NET_DIVERT=y
453# CONFIG_ECONET is not set 457# CONFIG_ECONET is not set
454# CONFIG_WAN_ROUTER is not set 458# CONFIG_WAN_ROUTER is not set
@@ -508,6 +512,9 @@ CONFIG_IEEE80211=m
508# CONFIG_IEEE80211_DEBUG is not set 512# CONFIG_IEEE80211_DEBUG is not set
509CONFIG_IEEE80211_CRYPT_WEP=m 513CONFIG_IEEE80211_CRYPT_WEP=m
510CONFIG_IEEE80211_CRYPT_CCMP=m 514CONFIG_IEEE80211_CRYPT_CCMP=m
515CONFIG_IEEE80211_SOFTMAC=m
516# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
517CONFIG_WIRELESS_EXT=y
511 518
512# 519#
513# Device Drivers 520# Device Drivers
@@ -546,7 +553,7 @@ CONFIG_CONNECTOR=m
546# CONFIG_BLK_DEV_LOOP is not set 553# CONFIG_BLK_DEV_LOOP is not set
547# CONFIG_BLK_DEV_NBD is not set 554# CONFIG_BLK_DEV_NBD is not set
548# CONFIG_BLK_DEV_RAM is not set 555# CONFIG_BLK_DEV_RAM is not set
549CONFIG_BLK_DEV_RAM_COUNT=16 556# CONFIG_BLK_DEV_INITRD is not set
550CONFIG_CDROM_PKTCDVD=m 557CONFIG_CDROM_PKTCDVD=m
551CONFIG_CDROM_PKTCDVD_BUFFERS=8 558CONFIG_CDROM_PKTCDVD_BUFFERS=8
552# CONFIG_CDROM_PKTCDVD_WCACHE is not set 559# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -812,10 +819,6 @@ CONFIG_MAX_RAW_DEVS=256
812# 819#
813 820
814# 821#
815# Multimedia Capabilities Port drivers
816#
817
818#
819# Multimedia devices 822# Multimedia devices
820# 823#
821# CONFIG_VIDEO_DEV is not set 824# CONFIG_VIDEO_DEV is not set
@@ -857,6 +860,7 @@ CONFIG_LOGO_SGI_CLUT224=y
857# 860#
858# CONFIG_USB_ARCH_HAS_HCD is not set 861# CONFIG_USB_ARCH_HAS_HCD is not set
859# CONFIG_USB_ARCH_HAS_OHCI is not set 862# CONFIG_USB_ARCH_HAS_OHCI is not set
863# CONFIG_USB_ARCH_HAS_EHCI is not set
860 864
861# 865#
862# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 866# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -873,12 +877,30 @@ CONFIG_LOGO_SGI_CLUT224=y
873# CONFIG_MMC is not set 877# CONFIG_MMC is not set
874 878
875# 879#
880# LED devices
881#
882# CONFIG_NEW_LEDS is not set
883
884#
885# LED drivers
886#
887
888#
889# LED Triggers
890#
891
892#
876# InfiniBand support 893# InfiniBand support
877# 894#
878 895
879# 896#
880# SN Devices 897# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
898#
899
900#
901# Real Time Clock
881# 902#
903# CONFIG_RTC_CLASS is not set
882 904
883# 905#
884# File systems 906# File systems
@@ -944,7 +966,6 @@ CONFIG_SYSFS=y
944# CONFIG_TMPFS is not set 966# CONFIG_TMPFS is not set
945# CONFIG_HUGETLB_PAGE is not set 967# CONFIG_HUGETLB_PAGE is not set
946CONFIG_RAMFS=y 968CONFIG_RAMFS=y
947CONFIG_RELAYFS_FS=m
948# CONFIG_CONFIGFS_FS is not set 969# CONFIG_CONFIGFS_FS is not set
949 970
950# 971#
@@ -963,7 +984,6 @@ CONFIG_EFS_FS=m
963# CONFIG_QNX4FS_FS is not set 984# CONFIG_QNX4FS_FS is not set
964# CONFIG_SYSV_FS is not set 985# CONFIG_SYSV_FS is not set
965CONFIG_UFS_FS=m 986CONFIG_UFS_FS=m
966# CONFIG_UFS_FS_WRITE is not set
967 987
968# 988#
969# Network File Systems 989# Network File Systems
@@ -1078,6 +1098,7 @@ CONFIG_NLS_UTF8=m
1078# CONFIG_MAGIC_SYSRQ is not set 1098# CONFIG_MAGIC_SYSRQ is not set
1079# CONFIG_DEBUG_KERNEL is not set 1099# CONFIG_DEBUG_KERNEL is not set
1080CONFIG_LOG_BUF_SHIFT=14 1100CONFIG_LOG_BUF_SHIFT=14
1101# CONFIG_DEBUG_FS is not set
1081CONFIG_CROSSCOMPILE=y 1102CONFIG_CROSSCOMPILE=y
1082CONFIG_CMDLINE="" 1103CONFIG_CMDLINE=""
1083 1104
diff --git a/arch/mips/galileo-boards/ev96100/Makefile b/arch/mips/galileo-boards/ev96100/Makefile
index 58c02f9db69d..cd868ec78cbc 100644
--- a/arch/mips/galileo-boards/ev96100/Makefile
+++ b/arch/mips/galileo-boards/ev96100/Makefile
@@ -6,4 +6,4 @@
6# Makefile for the Galileo EV96100 board. 6# Makefile for the Galileo EV96100 board.
7# 7#
8 8
9obj-y += init.o irq.o puts.o reset.o time.o int-handler.o setup.o 9obj-y += init.o irq.o puts.o reset.o time.o setup.o
diff --git a/arch/mips/galileo-boards/ev96100/int-handler.S b/arch/mips/galileo-boards/ev96100/int-handler.S
deleted file mode 100644
index ff4d10a38859..000000000000
--- a/arch/mips/galileo-boards/ev96100/int-handler.S
+++ /dev/null
@@ -1,33 +0,0 @@
1#include <asm/asm.h>
2#include <asm/mipsregs.h>
3#include <asm/regdef.h>
4#include <asm/stackframe.h>
5
6 .set noat
7 .align 5
8
9NESTED(ev96100IRQ, PT_SIZE, sp)
10 SAVE_ALL
11 CLI # Important: mark KERNEL mode !
12
13 mfc0 t0, CP0_CAUSE # get pending interrupts
14 mfc0 t1, CP0_STATUS # get enabled interrupts
15 and t0, t1 # isolate allowed ones
16
17 # FIX ME add R7000 extensions
18 andi t0,0xff00 # isolate pending bits
19 andi a0, t0, CAUSEF_IP7
20 beq a0, zero, 1f
21 move a0, sp
22 jal mips_timer_interrupt
23 j ret_from_irq
24
251: beqz t0, 3f # spurious interrupt
26
27 move a0, t0
28 move a1, sp
29 jal ev96100_cpu_irq
30 j ret_from_irq
31
323: j spurious_interrupt
33 END(ev96100IRQ)
diff --git a/arch/mips/galileo-boards/ev96100/irq.c b/arch/mips/galileo-boards/ev96100/irq.c
index 97bf094da4fe..ee5d6720f23b 100644
--- a/arch/mips/galileo-boards/ev96100/irq.c
+++ b/arch/mips/galileo-boards/ev96100/irq.c
@@ -40,8 +40,6 @@
40#include <linux/interrupt.h> 40#include <linux/interrupt.h>
41#include <asm/irq_cpu.h> 41#include <asm/irq_cpu.h>
42 42
43extern asmlinkage void ev96100IRQ(void);
44
45static inline unsigned int ffz8(unsigned int word) 43static inline unsigned int ffz8(unsigned int word)
46{ 44{
47 unsigned long k; 45 unsigned long k;
@@ -54,13 +52,26 @@ static inline unsigned int ffz8(unsigned int word)
54 return k; 52 return k;
55} 53}
56 54
57asmlinkage void ev96100_cpu_irq(unsigned int pendin) 55extern void mips_timer_interrupt(struct pt_regs *regs);
56
57asmlinkage void ev96100_cpu_irq(unsigned int pending, struct pt_regs *regs)
58{ 58{
59 do_IRQ(ffz8(pending >> 8), regs); 59 do_IRQ(ffz8(pending >> 8), regs);
60} 60}
61 61
62asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
63{
64 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
65
66 if (pending & CAUSEF_IP7)
67 mips_timer_interrupt(regs);
68 else if (pending)
69 ev96100_cpu_irq(pending, regs);
70 else
71 spurious_interrupt(regs);
72}
73
62void __init arch_init_irq(void) 74void __init arch_init_irq(void)
63{ 75{
64 set_except_vector(0, ev96100IRQ);
65 mips_cpu_irq_init(0); 76 mips_cpu_irq_init(0);
66} 77}
diff --git a/arch/mips/gt64120/ev64120/Makefile b/arch/mips/gt64120/ev64120/Makefile
index ebe91c57e173..b2c53a8f8718 100644
--- a/arch/mips/gt64120/ev64120/Makefile
+++ b/arch/mips/gt64120/ev64120/Makefile
@@ -6,6 +6,6 @@
6# Makefile for the Galileo EV64120 board. 6# Makefile for the Galileo EV64120 board.
7# 7#
8 8
9obj-y += int-handler.o irq.o promcon.o reset.o serialGT.o setup.o 9obj-y += irq.o promcon.o reset.o serialGT.o setup.o
10 10
11EXTRA_AFLAGS := $(CFLAGS) 11EXTRA_AFLAGS := $(CFLAGS)
diff --git a/arch/mips/gt64120/ev64120/int-handler.S b/arch/mips/gt64120/ev64120/int-handler.S
deleted file mode 100644
index 752435faf2de..000000000000
--- a/arch/mips/gt64120/ev64120/int-handler.S
+++ /dev/null
@@ -1,113 +0,0 @@
1/*
2 * int-handler.S
3 *
4 * Based on the cobalt handler.
5 */
6#include <asm/asm.h>
7#include <asm/mipsregs.h>
8#include <asm/addrspace.h>
9#include <asm/regdef.h>
10#include <asm/stackframe.h>
11
12/*
13 * galileo_handle_int -
14 * We check for the timer first, then check PCI ints A and D.
15 * Then check for serial IRQ and fall through.
16 */
17 .align 5
18 .set reorder
19 .set noat
20 NESTED(galileo_handle_int, PT_SIZE, sp)
21 SAVE_ALL
22 CLI
23 .set at
24 mfc0 t0,CP0_CAUSE
25 mfc0 t2,CP0_STATUS
26
27 and t0,t2
28
29 andi t1,t0,STATUSF_IP4 /* int2 hardware line (timer) */
30 bnez t1,ll_gt64120_irq
31 andi t1,t0,STATUSF_IP2 /* int0 hardware line */
32 bnez t1,ll_pci_intA
33 andi t1,t0,STATUSF_IP5 /* int3 hardware line */
34 bnez t1,ll_pci_intD
35 andi t1,t0,STATUSF_IP6 /* int4 hardware line */
36 bnez t1,ll_serial_irq
37 andi t1,t0,STATUSF_IP7 /* compare int */
38 bnez t1,ll_compare_irq
39 nop
40
41 /* wrong alarm or masked ... */
42 j spurious_interrupt
43 nop
44 END(galileo_handle_int)
45
46
47 .align 5
48 .set reorder
49ll_gt64120_irq:
50 li a0,4
51 move a1,sp
52 jal do_IRQ
53 nop
54 j ret_from_irq
55 nop
56
57 .align 5
58 .set reorder
59ll_compare_irq:
60 li a0,7
61 move a1,sp
62 jal do_IRQ
63 nop
64 j ret_from_irq
65 nop
66
67 .align 5
68 .set reorder
69ll_pci_intA:
70 move a0,sp
71 jal pci_intA
72 nop
73 j ret_from_irq
74 nop
75
76#if 0
77 .align 5
78 .set reorder
79ll_pci_intB:
80 move a0,sp
81 jal pci_intB
82 nop
83 j ret_from_irq
84 nop
85
86 .align 5
87 .set reorder
88ll_pci_intC:
89 move a0,sp
90 jal pci_intC
91 nop
92 j ret_from_irq
93 nop
94#endif
95
96 .align 5
97 .set reorder
98ll_pci_intD:
99 move a0,sp
100 jal pci_intD
101 nop
102 j ret_from_irq
103 nop
104
105 .align 5
106 .set reorder
107ll_serial_irq:
108 li a0,6
109 move a1,sp
110 jal do_IRQ
111 nop
112 j ret_from_irq
113 nop
diff --git a/arch/mips/gt64120/ev64120/irq.c b/arch/mips/gt64120/ev64120/irq.c
index 3b186159b21a..46c468b26b30 100644
--- a/arch/mips/gt64120/ev64120/irq.c
+++ b/arch/mips/gt64120/ev64120/irq.c
@@ -46,14 +46,22 @@
46#include <asm/system.h> 46#include <asm/system.h>
47#include <asm/gt64120.h> 47#include <asm/gt64120.h>
48 48
49asmlinkage inline void pci_intA(struct pt_regs *regs) 49asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
50{ 50{
51 do_IRQ(GT_INTA, regs); 51 unsigned int pending = read_c0_status() & read_c0_cause();
52} 52
53 53 if (pending & STATUSF_IP4) /* int2 hardware line (timer) */
54asmlinkage inline void pci_intD(struct pt_regs *regs) 54 do_IRQ(4, regs);
55{ 55 else if (pending & STATUSF_IP2) /* int0 hardware line */
56 do_IRQ(GT_INTD, regs); 56 do_IRQ(GT_INTA, regs);
57 else if (pending & STATUSF_IP5) /* int3 hardware line */
58 do_IRQ(GT_INTD, regs);
59 else if (pending & STATUSF_IP6) /* int4 hardware line */
60 do_IRQ(6, regs);
61 else if (pending & STATUSF_IP7) /* compare int */
62 do_IRQ(7, regs);
63 else
64 spurious_interrupt(regs);
57} 65}
58 66
59static void disable_ev64120_irq(unsigned int irq_nr) 67static void disable_ev64120_irq(unsigned int irq_nr)
@@ -109,16 +117,11 @@ static struct hw_interrupt_type ev64120_irq_type = {
109 117
110void gt64120_irq_setup(void) 118void gt64120_irq_setup(void)
111{ 119{
112 extern asmlinkage void galileo_handle_int(void);
113
114 /* 120 /*
115 * Clear all of the interrupts while we change the able around a bit. 121 * Clear all of the interrupts while we change the able around a bit.
116 */ 122 */
117 clear_c0_status(ST0_IM); 123 clear_c0_status(ST0_IM);
118 124
119 /* Sets the exception_handler array. */
120 set_except_vector(0, galileo_handle_int);
121
122 local_irq_disable(); 125 local_irq_disable();
123 126
124 /* 127 /*
diff --git a/arch/mips/gt64120/momenco_ocelot/Makefile b/arch/mips/gt64120/momenco_ocelot/Makefile
index 7b59c6567c79..6f708df8373b 100644
--- a/arch/mips/gt64120/momenco_ocelot/Makefile
+++ b/arch/mips/gt64120/momenco_ocelot/Makefile
@@ -2,7 +2,7 @@
2# Makefile for Momentum's Ocelot board. 2# Makefile for Momentum's Ocelot board.
3# 3#
4 4
5obj-y += int-handler.o irq.o prom.o reset.o setup.o 5obj-y += irq.o prom.o reset.o setup.o
6 6
7obj-$(CONFIG_KGDB) += dbg_io.o 7obj-$(CONFIG_KGDB) += dbg_io.o
8 8
diff --git a/arch/mips/gt64120/momenco_ocelot/int-handler.S b/arch/mips/gt64120/momenco_ocelot/int-handler.S
deleted file mode 100644
index 808acef248cc..000000000000
--- a/arch/mips/gt64120/momenco_ocelot/int-handler.S
+++ /dev/null
@@ -1,131 +0,0 @@
1/*
2 * Copyright 2001 MontaVista Software Inc.
3 * Author: jsun@mvista.com or jsun@junsun.net
4 *
5 * First-level interrupt dispatcher for ocelot board.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version.
11 */
12#include <asm/asm.h>
13#include <asm/mipsregs.h>
14#include <asm/addrspace.h>
15#include <asm/regdef.h>
16#include <asm/stackframe.h>
17
18/*
19 * first level interrupt dispatcher for ocelot board -
20 * We check for the timer first, then check PCI ints A and D.
21 * Then check for serial IRQ and fall through.
22 */
23 .align 5
24 NESTED(ocelot_handle_int, PT_SIZE, sp)
25 SAVE_ALL
26 CLI
27 .set at
28 mfc0 t0, CP0_CAUSE
29 mfc0 t2, CP0_STATUS
30
31 and t0, t2
32
33 andi t1, t0, STATUSF_IP2 /* int0 hardware line */
34 bnez t1, ll_pri_enet_irq
35 andi t1, t0, STATUSF_IP3 /* int1 hardware line */
36 bnez t1, ll_sec_enet_irq
37 andi t1, t0, STATUSF_IP4 /* int2 hardware line */
38 bnez t1, ll_uart1_irq
39 andi t1, t0, STATUSF_IP5 /* int3 hardware line */
40 bnez t1, ll_cpci_irq
41 andi t1, t0, STATUSF_IP6 /* int4 hardware line */
42 bnez t1, ll_galileo_irq
43 andi t1, t0, STATUSF_IP7 /* cpu timer */
44 bnez t1, ll_cputimer_irq
45
46 /* now look at the extended interrupts */
47 mfc0 t0, CP0_CAUSE
48 cfc0 t1, CP0_S1_INTCONTROL
49
50 /* shift the mask 8 bits left to line up the bits */
51 sll t2, t1, 8
52
53 and t0, t2
54 srl t0, t0, 16
55
56 andi t1, t0, STATUSF_IP8 /* int6 hardware line */
57 bnez t1, ll_pmc1_irq
58 andi t1, t0, STATUSF_IP9 /* int7 hardware line */
59 bnez t1, ll_pmc2_irq
60 andi t1, t0, STATUSF_IP10 /* int8 hardware line */
61 bnez t1, ll_cpci_abcd_irq
62 andi t1, t0, STATUSF_IP11 /* int9 hardware line */
63 bnez t1, ll_uart2_irq
64
65 .set reorder
66
67 /* wrong alarm or masked ... */
68 j spurious_interrupt
69 nop
70 END(ocelot_handle_int)
71
72 .align 5
73ll_pri_enet_irq:
74 li a0, 2
75 move a1, sp
76 jal do_IRQ
77 j ret_from_irq
78
79ll_sec_enet_irq:
80 li a0, 3
81 move a1, sp
82 jal do_IRQ
83 j ret_from_irq
84
85ll_uart1_irq:
86 li a0, 4
87 move a1, sp
88 jal do_IRQ
89 j ret_from_irq
90
91ll_cpci_irq:
92 li a0, 5
93 move a1, sp
94 jal do_IRQ
95 j ret_from_irq
96
97ll_galileo_irq:
98 li a0, 6
99 move a1, sp
100 jal do_IRQ
101 j ret_from_irq
102
103ll_cputimer_irq:
104 li a0, 7
105 move a1, sp
106 jal do_IRQ
107 j ret_from_irq
108
109ll_pmc1_irq:
110 li a0, 8
111 move a1, sp
112 jal do_IRQ
113 j ret_from_irq
114
115ll_pmc2_irq:
116 li a0, 9
117 move a1, sp
118 jal do_IRQ
119 j ret_from_irq
120
121ll_cpci_abcd_irq:
122 li a0, 10
123 move a1, sp
124 jal do_IRQ
125 j ret_from_irq
126
127ll_uart2_irq:
128 li a0, 11
129 move a1, sp
130 jal do_IRQ
131 j ret_from_irq
diff --git a/arch/mips/gt64120/momenco_ocelot/irq.c b/arch/mips/gt64120/momenco_ocelot/irq.c
index 4f108da71b23..885f67f32ea3 100644
--- a/arch/mips/gt64120/momenco_ocelot/irq.c
+++ b/arch/mips/gt64120/momenco_ocelot/irq.c
@@ -48,7 +48,38 @@
48#include <asm/mipsregs.h> 48#include <asm/mipsregs.h>
49#include <asm/system.h> 49#include <asm/system.h>
50 50
51extern asmlinkage void ocelot_handle_int(void); 51asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
52{
53 unsigned int pending = read_c0_status() & read_c0_cause();
54
55 if (pending & STATUSF_IP2) /* int0 hardware line */
56 do_IRQ(2, regs);
57 else if (pending & STATUSF_IP3) /* int1 hardware line */
58 do_IRQ(3, regs);
59 else if (pending & STATUSF_IP4) /* int2 hardware line */
60 do_IRQ(4, regs);
61 else if (pending & STATUSF_IP5) /* int3 hardware line */
62 do_IRQ(5, regs);
63 else if (pending & STATUSF_IP6) /* int4 hardware line */
64 do_IRQ(6, regs);
65 else if (pending & STATUSF_IP7) /* cpu timer */
66 do_IRQ(7, regs);
67 else {
68 /*
69 * Now look at the extended interrupts
70 */
71 pending = (read_c0_cause() & (read_c0_intcontrol() << 8)) >> 16;
72
73 if (pending & STATUSF_IP8) /* int6 hardware line */
74 do_IRQ(8, regs);
75 else if (pending & STATUSF_IP9) /* int7 hardware line */
76 do_IRQ(9, regs);
77 else if (pending & STATUSF_IP10) /* int8 hardware line */
78 do_IRQ(10, regs);
79 else if (pending & STATUSF_IP11) /* int9 hardware line */
80 do_IRQ(11, regs);
81 }
82}
52 83
53void __init arch_init_irq(void) 84void __init arch_init_irq(void)
54{ 85{
@@ -59,9 +90,6 @@ void __init arch_init_irq(void)
59 clear_c0_status(ST0_IM); 90 clear_c0_status(ST0_IM);
60 local_irq_disable(); 91 local_irq_disable();
61 92
62 /* Sets the first-level interrupt dispatcher. */
63 set_except_vector(0, ocelot_handle_int);
64
65 mips_cpu_irq_init(0); 93 mips_cpu_irq_init(0);
66 rm7k_cpu_irq_init(8); 94 rm7k_cpu_irq_init(8);
67} 95}
diff --git a/arch/mips/ite-boards/generic/Makefile b/arch/mips/ite-boards/generic/Makefile
index 0e7853f43983..63431538d0ec 100644
--- a/arch/mips/ite-boards/generic/Makefile
+++ b/arch/mips/ite-boards/generic/Makefile
@@ -6,7 +6,7 @@
6# Makefile for the ITE 8172 (qed-4n-s01b) board, generic files. 6# Makefile for the ITE 8172 (qed-4n-s01b) board, generic files.
7# 7#
8 8
9obj-y += it8172_setup.o irq.o int-handler.o pmon_prom.o \ 9obj-y += it8172_setup.o irq.o pmon_prom.o \
10 time.o lpc.o puts.o reset.o 10 time.o lpc.o puts.o reset.o
11 11
12obj-$(CONFIG_IT8172_CIR)+= it8172_cir.o 12obj-$(CONFIG_IT8172_CIR)+= it8172_cir.o
diff --git a/arch/mips/ite-boards/generic/int-handler.S b/arch/mips/ite-boards/generic/int-handler.S
deleted file mode 100644
index d190d8add9cb..000000000000
--- a/arch/mips/ite-boards/generic/int-handler.S
+++ /dev/null
@@ -1,63 +0,0 @@
1#include <asm/asm.h>
2#include <asm/mipsregs.h>
3#include <asm/regdef.h>
4#include <asm/stackframe.h>
5
6 .text
7 .set macro
8 .set noat
9 .align 5
10
11NESTED(it8172_IRQ, PT_SIZE, sp)
12 SAVE_ALL
13 CLI # Important: mark KERNEL mode !
14
15 /* We're working with 'reorder' set at this point. */
16 /*
17 * Get pending interrupts
18 */
19
20 mfc0 t0,CP0_CAUSE # get pending interrupts
21 mfc0 t1,CP0_STATUS # get enabled interrupts
22 and t0,t1 # isolate allowed ones
23
24 andi t0,0xff00 # isolate pending bits
25 beqz t0, 3f # spurious interrupt
26
27 andi a0, t0, CAUSEF_IP7
28 beq a0, zero, 1f
29
30 li a0, 127 # MIPS_CPU_TIMER_IRQ = (NR_IRQS-1)
31 move a1, sp
32 jal ll_timer_interrupt
33 j ret_from_irq
34 nop
35
361:
37 andi a0, t0, CAUSEF_IP2 # the only int we expect at this time
38 beq a0, zero, 3f
39 move a0,sp
40 jal it8172_hw0_irqdispatch
41
42 mfc0 t0,CP0_STATUS # disable interrupts
43 ori t0,1
44 xori t0,1
45 mtc0 t0,CP0_STATUS
46 nop
47 nop
48 nop
49
50 la a1, ret_from_irq
51 jr a1
52 nop
53
543:
55 move a0, sp
56 jal mips_spurious_interrupt
57 nop
58 la a1, ret_from_irq
59 jr a1
60 nop
61
62END(it8172_IRQ)
63
diff --git a/arch/mips/ite-boards/generic/irq.c b/arch/mips/ite-boards/generic/irq.c
index e67f96129491..77be7216bdd0 100644
--- a/arch/mips/ite-boards/generic/irq.c
+++ b/arch/mips/ite-boards/generic/irq.c
@@ -62,12 +62,8 @@
62 62
63#define ALLINTS_NOTIMER (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4) 63#define ALLINTS_NOTIMER (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4)
64 64
65void disable_it8172_irq(unsigned int irq_nr);
66void enable_it8172_irq(unsigned int irq_nr);
67
68extern void set_debug_traps(void); 65extern void set_debug_traps(void);
69extern void mips_timer_interrupt(int irq, struct pt_regs *regs); 66extern void mips_timer_interrupt(int irq, struct pt_regs *regs);
70extern asmlinkage void it8172_IRQ(void);
71 67
72struct it8172_intc_regs volatile *it8172_hw0_icregs = 68struct it8172_intc_regs volatile *it8172_hw0_icregs =
73 (struct it8172_intc_regs volatile *)(KSEG1ADDR(IT8172_PCI_IO_BASE + IT_INTC_BASE)); 69 (struct it8172_intc_regs volatile *)(KSEG1ADDR(IT8172_PCI_IO_BASE + IT_INTC_BASE));
@@ -181,8 +177,6 @@ void __init arch_init_irq(void)
181 int i; 177 int i;
182 unsigned long flags; 178 unsigned long flags;
183 179
184 set_except_vector(0, it8172_IRQ);
185
186 /* mask all interrupts */ 180 /* mask all interrupts */
187 it8172_hw0_icregs->lb_mask = 0xffff; 181 it8172_hw0_icregs->lb_mask = 0xffff;
188 it8172_hw0_icregs->lpc_mask = 0xffff; 182 it8172_hw0_icregs->lpc_mask = 0xffff;
@@ -282,6 +276,18 @@ void it8172_hw0_irqdispatch(struct pt_regs *regs)
282 do_IRQ(irq, regs); 276 do_IRQ(irq, regs);
283} 277}
284 278
279asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
280{
281 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
282
283 if (!pending)
284 mips_spurious_interrupt(regs);
285 else if (pending & CAUSEF_IP7)
286 ll_timer_interrupt(127, regs);
287 else if (pending & CAUSEF_IP2)
288 it8172_hw0_irqdispatch(regs);
289}
290
285void show_pending_irqs(void) 291void show_pending_irqs(void)
286{ 292{
287 fputs("intstatus: "); 293 fputs("intstatus: ");
diff --git a/arch/mips/ite-boards/generic/time.c b/arch/mips/ite-boards/generic/time.c
index b79817bb6cce..dee497a91807 100644
--- a/arch/mips/ite-boards/generic/time.c
+++ b/arch/mips/ite-boards/generic/time.c
@@ -29,6 +29,7 @@
29#include <linux/sched.h> 29#include <linux/sched.h>
30#include <linux/time.h> 30#include <linux/time.h>
31#include <linux/spinlock.h> 31#include <linux/spinlock.h>
32#include <linux/mc146818rtc.h>
32 33
33#include <asm/time.h> 34#include <asm/time.h>
34#include <asm/mipsregs.h> 35#include <asm/mipsregs.h>
diff --git a/arch/mips/ite-boards/ivr/init.c b/arch/mips/ite-boards/ivr/init.c
index b774db035b31..05cf9218c432 100644
--- a/arch/mips/ite-boards/ivr/init.c
+++ b/arch/mips/ite-boards/ivr/init.c
@@ -34,13 +34,13 @@
34#include <asm/bootinfo.h> 34#include <asm/bootinfo.h>
35#include <linux/string.h> 35#include <linux/string.h>
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <asm/sections.h>
37#include <asm/it8172/it8172.h> 38#include <asm/it8172/it8172.h>
38#include <asm/it8172/it8172_dbg.h> 39#include <asm/it8172/it8172_dbg.h>
39 40
40int prom_argc; 41int prom_argc;
41char **prom_argv, **prom_envp; 42char **prom_argv, **prom_envp;
42 43
43extern char _end;
44extern void __init prom_init_cmdline(void); 44extern void __init prom_init_cmdline(void);
45extern unsigned long __init prom_get_memsize(void); 45extern unsigned long __init prom_get_memsize(void);
46extern void __init it8172_init_ram_resource(unsigned long memsize); 46extern void __init it8172_init_ram_resource(unsigned long memsize);
diff --git a/arch/mips/ite-boards/qed-4n-s01b/init.c b/arch/mips/ite-boards/qed-4n-s01b/init.c
index e8ec8be66a80..ea2a754cafe5 100644
--- a/arch/mips/ite-boards/qed-4n-s01b/init.c
+++ b/arch/mips/ite-boards/qed-4n-s01b/init.c
@@ -34,13 +34,13 @@
34#include <asm/bootinfo.h> 34#include <asm/bootinfo.h>
35#include <linux/string.h> 35#include <linux/string.h>
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <asm/sections.h>
37#include <asm/it8172/it8172.h> 38#include <asm/it8172/it8172.h>
38#include <asm/it8172/it8172_dbg.h> 39#include <asm/it8172/it8172_dbg.h>
39 40
40int prom_argc; 41int prom_argc;
41char **prom_argv, **prom_envp; 42char **prom_argv, **prom_envp;
42 43
43extern char _end;
44extern void __init prom_init_cmdline(void); 44extern void __init prom_init_cmdline(void);
45extern unsigned long __init prom_get_memsize(void); 45extern unsigned long __init prom_get_memsize(void);
46extern void __init it8172_init_ram_resource(unsigned long memsize); 46extern void __init it8172_init_ram_resource(unsigned long memsize);
diff --git a/arch/mips/jazz/Makefile b/arch/mips/jazz/Makefile
index 85749246a671..02bd39add891 100644
--- a/arch/mips/jazz/Makefile
+++ b/arch/mips/jazz/Makefile
@@ -2,6 +2,6 @@
2# Makefile for the Jazz family specific parts of the kernel 2# Makefile for the Jazz family specific parts of the kernel
3# 3#
4 4
5obj-y := int-handler.o irq.o jazzdma.o reset.o setup.o 5obj-y := irq.o jazzdma.o reset.o setup.o
6 6
7EXTRA_AFLAGS := $(CFLAGS) 7EXTRA_AFLAGS := $(CFLAGS)
diff --git a/arch/mips/jazz/int-handler.S b/arch/mips/jazz/int-handler.S
deleted file mode 100644
index dc752c67b528..000000000000
--- a/arch/mips/jazz/int-handler.S
+++ /dev/null
@@ -1,282 +0,0 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1995, 1996, 1997, 1998 by Ralf Baechle and Andreas Busse
7 *
8 * Jazz family specific interrupt stuff
9 *
10 * To do: On Jazz machines we remap some non-ISA interrupts to ISA
11 * interrupts. These interrupts should use their own vectors.
12 * Squeeze the last cycles out of the handlers. Only a dead
13 * cycle is a good cycle.
14 */
15#include <asm/asm.h>
16#include <asm/mipsregs.h>
17#include <asm/jazz.h>
18#include <asm/regdef.h>
19#include <asm/stackframe.h>
20
21/*
22 * jazz_handle_int: Interrupt handler for the ACER Pica-61 boards
23 */
24 .set noreorder
25
26 NESTED(jazz_handle_int, PT_SIZE, ra)
27 .set noat
28 SAVE_ALL
29 CLI
30 .set at
31
32 /*
33 * Get pending interrupts
34 */
35 mfc0 t0,CP0_CAUSE # get pending interrupts
36 mfc0 t1,CP0_STATUS # get enabled interrupts
37 and t0,t1 # isolate allowed ones
38 andi t0,0xff00 # isolate pending bits
39 beqz t0,3f
40 sll t0,16 # delay slot
41
42 /*
43 * Find irq with highest priority
44 * FIXME: This is slow - use binary search
45 */
46 la t1,ll_vectors
471: bltz t0,2f # found pending irq
48 sll t0,1
49 b 1b
50 subu t1,PTRSIZE # delay slot
51
52 /*
53 * Do the low-level stuff
54 */
552: lw t0,(t1)
56 jr t0
57 nop # delay slot
58 END(jazz_handle_int)
59
60ll_sw0: li s1,~IE_SW0
61 mfc0 t0,CP0_CAUSE
62 and t0,s1
63 mtc0 t0,CP0_CAUSE
64 PANIC("Unimplemented sw0 handler")
65
66ll_sw1: li s1,~IE_SW1
67 mfc0 t0,CP0_CAUSE
68 and t0,s1
69 mtc0 t0,CP0_CAUSE
70 PANIC("Unimplemented sw1 handler")
71
72ll_local_dma: li s1,~IE_IRQ0
73 PANIC("Unimplemented local_dma handler")
74
75ll_local_dev: lbu t0,JAZZ_IO_IRQ_SOURCE
76#if PTRSIZE == 8 /* True 64 bit kernel */
77 dsll t0,1
78#endif
79 .set reorder
80 LONG_L t0,local_vector(t0)
81 jr t0
82 .set noreorder
83
84/*
85 * The braindead PICA hardware gives us no way to distinguish if we really
86 * received interrupt 7 from the (E)ISA bus or if we just received an
87 * interrupt with no findable cause. This sometimes happens with braindead
88 * cards. Oh well - for all the Jazz boxes slots are more or less just
89 * whistles and bells and we're aware of the problem.
90 */
91ll_isa_irq: lw a0, JAZZ_EISA_IRQ_ACK
92
93 jal do_IRQ
94 move a1,sp
95
96 j ret_from_irq
97 nop
98
99/*
100 * Hmm... This is not just a plain PC clone so the question is
101 * which devices on Jazz machines can generate an (E)ISA NMI?
102 * (Writing to nonexistent memory?)
103 */
104ll_isa_nmi: li s1,~IE_IRQ3
105 PANIC("Unimplemented isa_nmi handler")
106
107/*
108 * Timer IRQ - remapped to be more similar to an IBM compatible.
109 *
110 * The timer interrupt is handled specially to ensure that the jiffies
111 * variable is updated at all times. Specifically, the timer interrupt is
112 * just like the complete handlers except that it is invoked with interrupts
113 * disabled and should never re-enable them. If other interrupts were
114 * allowed to be processed while the timer interrupt is active, then the
115 * other interrupts would have to avoid using the jiffies variable for delay
116 * and interval timing operations to avoid hanging the system.
117 */
118ll_timer: lw zero,JAZZ_TIMER_REGISTER # timer irq cleared on read
119 li s1,~IE_IRQ4
120
121 li a0, JAZZ_TIMER_IRQ
122 jal do_IRQ
123 move a1,sp
124
125 mfc0 t0,CP0_STATUS # disable interrupts again
126 ori t0,1
127 xori t0,1
128 mtc0 t0,CP0_STATUS
129
130 j ret_from_irq
131 nop
132
133/*
134 * CPU count/compare IRQ (unused)
135 */
136ll_count: j ret_from_irq
137 mtc0 zero,CP0_COMPARE
138
139#if 0
140/*
141 * Call the handler for the interrupt
142 * (Currently unused)
143 */
144call_real: /*
145 * temporarily disable interrupt
146 */
147 mfc0 t2,CP0_STATUS
148 and t2,s1
149 mtc0 t2,CP0_STATUS
150 nor s1,zero,s1
151 jal do_IRQ
152
153 /*
154 * reenable interrupt
155 */
156 mfc0 t2,CP0_STATUS
157 or t2,s1
158 mtc0 t2,CP0_STATUS
159 j ret_from_irq
160#endif
161
162 .data
163 PTR ll_sw0 # SW0
164 PTR ll_sw1 # SW1
165 PTR ll_local_dma # Local DMA
166 PTR ll_local_dev # Local devices
167 PTR ll_isa_irq # ISA IRQ
168 PTR ll_isa_nmi # ISA NMI
169 PTR ll_timer # Timer
170ll_vectors: PTR ll_count # Count/Compare IRQ
171
172 /*
173 * Interrupt handlers for local devices.
174 */
175 .text
176 .set reorder
177loc_no_irq: PANIC("Unimplemented loc_no_irq handler")
178/*
179 * Parallel port IRQ
180 */
181loc_parallel: li s1,~JAZZ_IE_PARALLEL
182 li a0,JAZZ_PARALLEL_IRQ
183 b loc_call
184
185/*
186 * Floppy IRQ
187 */
188loc_floppy: li s1,~JAZZ_IE_FLOPPY
189 li a0,JAZZ_FLOPPY_IRQ
190 b loc_call
191
192/*
193 * Sound IRQ
194 */
195loc_sound: PANIC("Unimplemented loc_sound handler")
196loc_video: PANIC("Unimplemented loc_video handler")
197
198/*
199 * Ethernet interrupt handler
200 */
201loc_ethernet: li s1,~JAZZ_IE_ETHERNET
202 li a0,JAZZ_ETHERNET_IRQ
203 b loc_call
204
205/*
206 * SCSI interrupt handler
207 */
208loc_scsi: li s1,~JAZZ_IE_SCSI
209 li a0,JAZZ_SCSI_IRQ
210 b loc_call
211
212/*
213 * Keyboard interrupt handler
214 */
215loc_keyboard: li s1,~JAZZ_IE_KEYBOARD
216 li a0,JAZZ_KEYBOARD_IRQ
217 b loc_call
218
219/*
220 * Mouse interrupt handler
221 */
222loc_mouse: li s1,~JAZZ_IE_MOUSE
223 li a0,JAZZ_MOUSE_IRQ
224 b loc_call
225
226/*
227 * Serial port 1 IRQ
228 */
229loc_serial1: li s1,~JAZZ_IE_SERIAL1
230 li a0,JAZZ_SERIAL1_IRQ
231 b loc_call
232
233/*
234 * Serial port 2 IRQ
235 */
236loc_serial2: li s1,~JAZZ_IE_SERIAL2
237 li a0,JAZZ_SERIAL2_IRQ
238 b loc_call
239
240/*
241 * Call the interrupt handler for an interrupt generated by a
242 * local device.
243 */
244loc_call: /*
245 * Temporarily disable interrupt source
246 */
247 lhu t2,JAZZ_IO_IRQ_ENABLE
248 and t2,s1
249 sh t2,JAZZ_IO_IRQ_ENABLE
250
251 nor s1,zero,s1
252 jal do_IRQ
253
254 /*
255 * Reenable interrupt
256 */
257 lhu t2,JAZZ_IO_IRQ_ENABLE
258 or t2,s1
259 sh t2,JAZZ_IO_IRQ_ENABLE
260
261 j ret_from_irq
262
263/*
264 * "Jump extender" to reach spurious_interrupt
265 */
2663: j spurious_interrupt
267
268/*
269 * Vectors for interrupts generated by local devices
270 */
271 .data
272local_vector: PTR loc_no_irq
273 PTR loc_parallel
274 PTR loc_floppy
275 PTR loc_sound
276 PTR loc_video
277 PTR loc_ethernet
278 PTR loc_scsi
279 PTR loc_keyboard
280 PTR loc_mouse
281 PTR loc_serial1
282 PTR loc_serial2
diff --git a/arch/mips/jazz/irq.c b/arch/mips/jazz/irq.c
index b309b1bcf2e8..becc9accd495 100644
--- a/arch/mips/jazz/irq.c
+++ b/arch/mips/jazz/irq.c
@@ -15,8 +15,6 @@
15#include <asm/io.h> 15#include <asm/io.h>
16#include <asm/jazz.h> 16#include <asm/jazz.h>
17 17
18extern asmlinkage void jazz_handle_int(void);
19
20static DEFINE_SPINLOCK(r4030_lock); 18static DEFINE_SPINLOCK(r4030_lock);
21 19
22static void enable_r4030_irq(unsigned int irq) 20static void enable_r4030_irq(unsigned int irq)
@@ -90,10 +88,82 @@ void __init init_r4030_ints(void)
90 */ 88 */
91void __init arch_init_irq(void) 89void __init arch_init_irq(void)
92{ 90{
93 set_except_vector(0, jazz_handle_int);
94
95 init_i8259_irqs(); /* Integrated i8259 */ 91 init_i8259_irqs(); /* Integrated i8259 */
96 init_r4030_ints(); 92 init_r4030_ints();
97 93
98 change_c0_status(ST0_IM, IE_IRQ4 | IE_IRQ3 | IE_IRQ2 | IE_IRQ1); 94 change_c0_status(ST0_IM, IE_IRQ4 | IE_IRQ3 | IE_IRQ2 | IE_IRQ1);
99} 95}
96
97static void loc_call(unsigned int irq, struct pt_regs *regs, unsigned int mask)
98{
99 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE,
100 r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) & mask);
101 do_IRQ(irq, regs);
102 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE,
103 r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) | mask);
104}
105
106static void ll_local_dev(struct pt_regs *regs)
107{
108 switch (r4030_read_reg32(JAZZ_IO_IRQ_SOURCE)) {
109 case 0:
110 panic("Unimplemented loc_no_irq handler");
111 break;
112 case 4:
113 loc_call(JAZZ_PARALLEL_IRQ, regs, JAZZ_IE_PARALLEL);
114 break;
115 case 8:
116 loc_call(JAZZ_PARALLEL_IRQ, regs, JAZZ_IE_FLOPPY);
117 break;
118 case 12:
119 panic("Unimplemented loc_sound handler");
120 break;
121 case 16:
122 panic("Unimplemented loc_video handler");
123 break;
124 case 20:
125 loc_call(JAZZ_ETHERNET_IRQ, regs, JAZZ_IE_ETHERNET);
126 break;
127 case 24:
128 loc_call(JAZZ_SCSI_IRQ, regs, JAZZ_IE_SCSI);
129 break;
130 case 28:
131 loc_call(JAZZ_KEYBOARD_IRQ, regs, JAZZ_IE_KEYBOARD);
132 break;
133 case 32:
134 loc_call(JAZZ_MOUSE_IRQ, regs, JAZZ_IE_MOUSE);
135 break;
136 case 36:
137 loc_call(JAZZ_SERIAL1_IRQ, regs, JAZZ_IE_SERIAL1);
138 break;
139 case 40:
140 loc_call(JAZZ_SERIAL2_IRQ, regs, JAZZ_IE_SERIAL2);
141 break;
142 }
143}
144
145asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
146{
147 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
148
149 if (pending & IE_IRQ5)
150 write_c0_compare(0);
151 else if (pending & IE_IRQ4) {
152 r4030_read_reg32(JAZZ_TIMER_REGISTER);
153 do_IRQ(JAZZ_TIMER_IRQ, regs);
154 } else if (pending & IE_IRQ3)
155 panic("Unimplemented ISA NMI handler");
156 else if (pending & IE_IRQ2)
157 do_IRQ(r4030_read_reg32(JAZZ_EISA_IRQ_ACK), regs);
158 else if (pending & IE_IRQ1) {
159 ll_local_dev(regs);
160 } else if (unlikely(pending & IE_IRQ0))
161 panic("Unimplemented local_dma handler");
162 else if (pending & IE_SW1) {
163 clear_c0_cause(IE_SW1);
164 panic("Unimplemented sw1 handler");
165 } else if (pending & IE_SW0) {
166 clear_c0_cause(IE_SW0);
167 panic("Unimplemented sw0 handler");
168 }
169}
diff --git a/arch/mips/jmr3927/common/rtc_ds1742.c b/arch/mips/jmr3927/common/rtc_ds1742.c
index a6bd3f4d3049..e6561345d12a 100644
--- a/arch/mips/jmr3927/common/rtc_ds1742.c
+++ b/arch/mips/jmr3927/common/rtc_ds1742.c
@@ -60,15 +60,15 @@ rtc_ds1742_get_time(void)
60 unsigned long flags; 60 unsigned long flags;
61 61
62 spin_lock_irqsave(&rtc_lock, flags); 62 spin_lock_irqsave(&rtc_lock, flags);
63 CMOS_WRITE(RTC_READ, RTC_CONTROL); 63 rtc_write(RTC_READ, RTC_CONTROL);
64 second = BCD2BIN(CMOS_READ(RTC_SECONDS) & RTC_SECONDS_MASK); 64 second = BCD2BIN(rtc_read(RTC_SECONDS) & RTC_SECONDS_MASK);
65 minute = BCD2BIN(CMOS_READ(RTC_MINUTES)); 65 minute = BCD2BIN(rtc_read(RTC_MINUTES));
66 hour = BCD2BIN(CMOS_READ(RTC_HOURS)); 66 hour = BCD2BIN(rtc_read(RTC_HOURS));
67 day = BCD2BIN(CMOS_READ(RTC_DATE)); 67 day = BCD2BIN(rtc_read(RTC_DATE));
68 month = BCD2BIN(CMOS_READ(RTC_MONTH)); 68 month = BCD2BIN(rtc_read(RTC_MONTH));
69 year = BCD2BIN(CMOS_READ(RTC_YEAR)); 69 year = BCD2BIN(rtc_read(RTC_YEAR));
70 century = BCD2BIN(CMOS_READ(RTC_CENTURY) & RTC_CENTURY_MASK); 70 century = BCD2BIN(rtc_read(RTC_CENTURY) & RTC_CENTURY_MASK);
71 CMOS_WRITE(0, RTC_CONTROL); 71 rtc_write(0, RTC_CONTROL);
72 spin_unlock_irqrestore(&rtc_lock, flags); 72 spin_unlock_irqrestore(&rtc_lock, flags);
73 73
74 year += century * 100; 74 year += century * 100;
@@ -87,16 +87,16 @@ rtc_ds1742_set_time(unsigned long t)
87 unsigned long flags; 87 unsigned long flags;
88 88
89 spin_lock_irqsave(&rtc_lock, flags); 89 spin_lock_irqsave(&rtc_lock, flags);
90 CMOS_WRITE(RTC_READ, RTC_CONTROL); 90 rtc_write(RTC_READ, RTC_CONTROL);
91 cmos_second = (u8)(CMOS_READ(RTC_SECONDS) & RTC_SECONDS_MASK); 91 cmos_second = (u8)(rtc_read(RTC_SECONDS) & RTC_SECONDS_MASK);
92 cmos_minute = (u8)CMOS_READ(RTC_MINUTES); 92 cmos_minute = (u8)rtc_read(RTC_MINUTES);
93 cmos_hour = (u8)CMOS_READ(RTC_HOURS); 93 cmos_hour = (u8)rtc_read(RTC_HOURS);
94 cmos_day = (u8)CMOS_READ(RTC_DATE); 94 cmos_day = (u8)rtc_read(RTC_DATE);
95 cmos_month = (u8)CMOS_READ(RTC_MONTH); 95 cmos_month = (u8)rtc_read(RTC_MONTH);
96 cmos_year = (u8)CMOS_READ(RTC_YEAR); 96 cmos_year = (u8)rtc_read(RTC_YEAR);
97 cmos_century = CMOS_READ(RTC_CENTURY) & RTC_CENTURY_MASK; 97 cmos_century = rtc_read(RTC_CENTURY) & RTC_CENTURY_MASK;
98 98
99 CMOS_WRITE(RTC_WRITE, RTC_CONTROL); 99 rtc_write(RTC_WRITE, RTC_CONTROL);
100 100
101 /* convert */ 101 /* convert */
102 to_tm(t, &tm); 102 to_tm(t, &tm);
@@ -104,18 +104,18 @@ rtc_ds1742_set_time(unsigned long t)
104 /* check each field one by one */ 104 /* check each field one by one */
105 year = BIN2BCD(tm.tm_year - EPOCH); 105 year = BIN2BCD(tm.tm_year - EPOCH);
106 if (year != cmos_year) { 106 if (year != cmos_year) {
107 CMOS_WRITE(year,RTC_YEAR); 107 rtc_write(year,RTC_YEAR);
108 } 108 }
109 109
110 month = BIN2BCD(tm.tm_mon); 110 month = BIN2BCD(tm.tm_mon);
111 if (month != (cmos_month & 0x1f)) { 111 if (month != (cmos_month & 0x1f)) {
112 CMOS_WRITE((month & 0x1f) | (cmos_month & ~0x1f),RTC_MONTH); 112 rtc_write((month & 0x1f) | (cmos_month & ~0x1f),RTC_MONTH);
113 } 113 }
114 114
115 day = BIN2BCD(tm.tm_mday); 115 day = BIN2BCD(tm.tm_mday);
116 if (day != cmos_day) { 116 if (day != cmos_day) {
117 117
118 CMOS_WRITE(day, RTC_DATE); 118 rtc_write(day, RTC_DATE);
119 } 119 }
120 120
121 if (cmos_hour & 0x40) { 121 if (cmos_hour & 0x40) {
@@ -130,20 +130,20 @@ rtc_ds1742_set_time(unsigned long t)
130 /* 24 hour format */ 130 /* 24 hour format */
131 hour = BIN2BCD(tm.tm_hour) & 0x3f; 131 hour = BIN2BCD(tm.tm_hour) & 0x3f;
132 } 132 }
133 if (hour != cmos_hour) CMOS_WRITE(hour, RTC_HOURS); 133 if (hour != cmos_hour) rtc_write(hour, RTC_HOURS);
134 134
135 minute = BIN2BCD(tm.tm_min); 135 minute = BIN2BCD(tm.tm_min);
136 if (minute != cmos_minute) { 136 if (minute != cmos_minute) {
137 CMOS_WRITE(minute, RTC_MINUTES); 137 rtc_write(minute, RTC_MINUTES);
138 } 138 }
139 139
140 second = BIN2BCD(tm.tm_sec); 140 second = BIN2BCD(tm.tm_sec);
141 if (second != cmos_second) { 141 if (second != cmos_second) {
142 CMOS_WRITE(second & RTC_SECONDS_MASK,RTC_SECONDS); 142 rtc_write(second & RTC_SECONDS_MASK,RTC_SECONDS);
143 } 143 }
144 144
145 /* RTC_CENTURY and RTC_CONTROL share same address... */ 145 /* RTC_CENTURY and RTC_CONTROL share same address... */
146 CMOS_WRITE(cmos_century, RTC_CONTROL); 146 rtc_write(cmos_century, RTC_CONTROL);
147 spin_unlock_irqrestore(&rtc_lock, flags); 147 spin_unlock_irqrestore(&rtc_lock, flags);
148 148
149 return 0; 149 return 0;
@@ -163,9 +163,9 @@ rtc_ds1742_init(unsigned long base)
163 rtc_mips_set_time = rtc_ds1742_set_time; 163 rtc_mips_set_time = rtc_ds1742_set_time;
164 164
165 /* clear oscillator stop bit */ 165 /* clear oscillator stop bit */
166 CMOS_WRITE(RTC_READ, RTC_CONTROL); 166 rtc_write(RTC_READ, RTC_CONTROL);
167 cmos_second = (u8)(CMOS_READ(RTC_SECONDS) & RTC_SECONDS_MASK); 167 cmos_second = (u8)(rtc_read(RTC_SECONDS) & RTC_SECONDS_MASK);
168 CMOS_WRITE(RTC_WRITE, RTC_CONTROL); 168 rtc_write(RTC_WRITE, RTC_CONTROL);
169 CMOS_WRITE(cmos_second, RTC_SECONDS); /* clear msb */ 169 rtc_write(cmos_second, RTC_SECONDS); /* clear msb */
170 CMOS_WRITE(0, RTC_CONTROL); 170 rtc_write(0, RTC_CONTROL);
171} 171}
diff --git a/arch/mips/jmr3927/rbhma3100/Makefile b/arch/mips/jmr3927/rbhma3100/Makefile
index 75bf418b94c0..baf5077813c1 100644
--- a/arch/mips/jmr3927/rbhma3100/Makefile
+++ b/arch/mips/jmr3927/rbhma3100/Makefile
@@ -2,7 +2,7 @@
2# Makefile for TOSHIBA JMR-TX3927 board 2# Makefile for TOSHIBA JMR-TX3927 board
3# 3#
4 4
5obj-y += init.o int-handler.o irq.o setup.o 5obj-y += init.o irq.o setup.o
6obj-$(CONFIG_RUNTIME_DEBUG) += debug.o 6obj-$(CONFIG_RUNTIME_DEBUG) += debug.o
7obj-$(CONFIG_KGDB) += kgdb_io.o 7obj-$(CONFIG_KGDB) += kgdb_io.o
8 8
diff --git a/arch/mips/jmr3927/rbhma3100/int-handler.S b/arch/mips/jmr3927/rbhma3100/int-handler.S
deleted file mode 100644
index f85bbf407542..000000000000
--- a/arch/mips/jmr3927/rbhma3100/int-handler.S
+++ /dev/null
@@ -1,74 +0,0 @@
1/*
2 * Copyright 2001 MontaVista Software Inc.
3 * Author: MontaVista Software, Inc.
4 * ahennessy@mvista.com
5 *
6 * Based on arch/mips/tsdb/kernel/int-handler.S
7 *
8 * Copyright (C) 2000-2001 Toshiba Corporation
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 *
15 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
16 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
17 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
18 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
21 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
22 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 * You should have received a copy of the GNU General Public License along
27 * with this program; if not, write to the Free Software Foundation, Inc.,
28 * 675 Mass Ave, Cambridge, MA 02139, USA.
29 */
30
31#include <asm/asm.h>
32#include <asm/mipsregs.h>
33#include <asm/regdef.h>
34#include <asm/stackframe.h>
35#include <asm/jmr3927/jmr3927.h>
36
37 /* A lot of complication here is taken away because:
38 *
39 * 1) We handle one interrupt and return, sitting in a loop
40 * and moving across all the pending IRQ bits in the cause
41 * register is _NOT_ the answer, the common case is one
42 * pending IRQ so optimize in that direction.
43 *
44 * 2) We need not check against bits in the status register
45 * IRQ mask, that would make this routine slow as hell.
46 *
47 * 3) Linux only thinks in terms of all IRQs on or all IRQs
48 * off, nothing in between like BSD spl() brain-damage.
49 *
50 */
51
52/* Flush write buffer (needed?)
53 * NOTE: TX39xx performs "non-blocking load", so explicitly use the target
54 * register of LBU to flush immediately.
55 */
56#define FLUSH_WB(tmp) \
57 la tmp, JMR3927_IOC_REV_ADDR; \
58 lbu tmp, (tmp); \
59 move tmp, zero;
60
61 .text
62 .set noreorder
63 .set noat
64 .align 5
65 NESTED(jmr3927_IRQ, PT_SIZE, sp)
66 SAVE_ALL
67 CLI
68 .set at
69 jal jmr3927_irc_irqdispatch
70 move a0, sp
71 FLUSH_WB(t0)
72 j ret_from_irq
73 nop
74 END(jmr3927_IRQ)
diff --git a/arch/mips/jmr3927/rbhma3100/irq.c b/arch/mips/jmr3927/rbhma3100/irq.c
index 2810727f1d4e..11304d1354f4 100644
--- a/arch/mips/jmr3927/rbhma3100/irq.c
+++ b/arch/mips/jmr3927/rbhma3100/irq.c
@@ -77,8 +77,6 @@ static int jmr3927_gen_iack(void)
77} 77}
78#endif 78#endif
79 79
80extern asmlinkage void jmr3927_IRQ(void);
81
82#define irc_dlevel 0 80#define irc_dlevel 0
83#define irc_elevel 1 81#define irc_elevel 1
84 82
@@ -262,7 +260,7 @@ void jmr3927_spurious(struct pt_regs *regs)
262 regs->cp0_cause, regs->cp0_epc, regs->regs[31]); 260 regs->cp0_cause, regs->cp0_epc, regs->regs[31]);
263} 261}
264 262
265void jmr3927_irc_irqdispatch(struct pt_regs *regs) 263asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
266{ 264{
267 int irq; 265 int irq;
268 266
@@ -398,8 +396,6 @@ void __init arch_init_irq(void)
398 396
399 jmr3927_irq_init(NR_ISA_IRQS); 397 jmr3927_irq_init(NR_ISA_IRQS);
400 398
401 set_except_vector(0, jmr3927_IRQ);
402
403 /* setup irq space */ 399 /* setup irq space */
404 add_tb_irq_space(&jmr3927_isac_irqspace); 400 add_tb_irq_space(&jmr3927_isac_irqspace);
405 add_tb_irq_space(&jmr3927_ioc_irqspace); 401 add_tb_irq_space(&jmr3927_ioc_irqspace);
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index 309d54cceda3..34e8a256765c 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -34,8 +34,11 @@ obj-$(CONFIG_CPU_R6000) += r6000_fpu.o r4k_switch.o
34 34
35obj-$(CONFIG_SMP) += smp.o 35obj-$(CONFIG_SMP) += smp.o
36 36
37obj-$(CONFIG_MIPS_MT_SMP) += smp_mt.o 37obj-$(CONFIG_MIPS_MT) += mips-mt.o
38obj-$(CONFIG_MIPS_MT_SMTC) += smtc.o smtc-asm.o smtc-proc.o
39obj-$(CONFIG_MIPS_MT_SMP) += smp-mt.o
38 40
41obj-$(CONFIG_MIPS_APSP_KSPD) += kspd.o
39obj-$(CONFIG_MIPS_VPE_LOADER) += vpe.o 42obj-$(CONFIG_MIPS_VPE_LOADER) += vpe.o
40obj-$(CONFIG_MIPS_VPE_APSP_API) += rtlx.o 43obj-$(CONFIG_MIPS_VPE_APSP_API) += rtlx.o
41 44
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c
index ca6b03c773be..92b28b674d6f 100644
--- a/arch/mips/kernel/asm-offsets.c
+++ b/arch/mips/kernel/asm-offsets.c
@@ -69,6 +69,9 @@ void output_ptreg_defines(void)
69 offset("#define PT_BVADDR ", struct pt_regs, cp0_badvaddr); 69 offset("#define PT_BVADDR ", struct pt_regs, cp0_badvaddr);
70 offset("#define PT_STATUS ", struct pt_regs, cp0_status); 70 offset("#define PT_STATUS ", struct pt_regs, cp0_status);
71 offset("#define PT_CAUSE ", struct pt_regs, cp0_cause); 71 offset("#define PT_CAUSE ", struct pt_regs, cp0_cause);
72#ifdef CONFIG_MIPS_MT_SMTC
73 offset("#define PT_TCSTATUS ", struct pt_regs, cp0_tcstatus);
74#endif /* CONFIG_MIPS_MT_SMTC */
72 size("#define PT_SIZE ", struct pt_regs); 75 size("#define PT_SIZE ", struct pt_regs);
73 linefeed; 76 linefeed;
74} 77}
diff --git a/arch/mips/kernel/branch.c b/arch/mips/kernel/branch.c
index 374de839558d..b6232d9033cb 100644
--- a/arch/mips/kernel/branch.c
+++ b/arch/mips/kernel/branch.c
@@ -184,7 +184,7 @@ int __compute_return_epc(struct pt_regs *regs)
184 bit = (insn.i_format.rt >> 2); 184 bit = (insn.i_format.rt >> 2);
185 bit += (bit != 0); 185 bit += (bit != 0);
186 bit += 23; 186 bit += 23;
187 switch (insn.i_format.rt) { 187 switch (insn.i_format.rt & 3) {
188 case 0: /* bc1f */ 188 case 0: /* bc1f */
189 case 2: /* bc1fl */ 189 case 2: /* bc1fl */
190 if (~fcr31 & (1 << bit)) 190 if (~fcr31 & (1 << bit))
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
index 83c87fe4ee4f..d101d2fb24ca 100644
--- a/arch/mips/kernel/entry.S
+++ b/arch/mips/kernel/entry.S
@@ -17,6 +17,9 @@
17#include <asm/isadep.h> 17#include <asm/isadep.h>
18#include <asm/thread_info.h> 18#include <asm/thread_info.h>
19#include <asm/war.h> 19#include <asm/war.h>
20#ifdef CONFIG_MIPS_MT_SMTC
21#include <asm/mipsmtregs.h>
22#endif
20 23
21#ifdef CONFIG_PREEMPT 24#ifdef CONFIG_PREEMPT
22 .macro preempt_stop 25 .macro preempt_stop
@@ -75,6 +78,37 @@ FEXPORT(syscall_exit)
75 bnez t0, syscall_exit_work 78 bnez t0, syscall_exit_work
76 79
77FEXPORT(restore_all) # restore full frame 80FEXPORT(restore_all) # restore full frame
81#ifdef CONFIG_MIPS_MT_SMTC
82/* Detect and execute deferred IPI "interrupts" */
83 move a0,sp
84 jal deferred_smtc_ipi
85/* Re-arm any temporarily masked interrupts not explicitly "acked" */
86 mfc0 v0, CP0_TCSTATUS
87 ori v1, v0, TCSTATUS_IXMT
88 mtc0 v1, CP0_TCSTATUS
89 andi v0, TCSTATUS_IXMT
90 ehb
91 mfc0 t0, CP0_TCCONTEXT
92 DMT 9 # dmt t1
93 jal mips_ihb
94 mfc0 t2, CP0_STATUS
95 andi t3, t0, 0xff00
96 or t2, t2, t3
97 mtc0 t2, CP0_STATUS
98 ehb
99 andi t1, t1, VPECONTROL_TE
100 beqz t1, 1f
101 EMT
1021:
103 mfc0 v1, CP0_TCSTATUS
104 /* We set IXMT above, XOR should cler it here */
105 xori v1, v1, TCSTATUS_IXMT
106 or v1, v0, v1
107 mtc0 v1, CP0_TCSTATUS
108 ehb
109 xor t0, t0, t3
110 mtc0 t0, CP0_TCCONTEXT
111#endif /* CONFIG_MIPS_MT_SMTC */
78 .set noat 112 .set noat
79 RESTORE_TEMP 113 RESTORE_TEMP
80 RESTORE_AT 114 RESTORE_AT
@@ -120,28 +154,17 @@ syscall_exit_work:
120 jal do_syscall_trace 154 jal do_syscall_trace
121 b resume_userspace 155 b resume_userspace
122 156
157#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_MIPS_MT)
158
123/* 159/*
124 * Common spurious interrupt handler. 160 * MIPS32R2 Instruction Hazard Barrier - must be called
161 *
162 * For C code use the inline version named instruction_hazard().
125 */ 163 */
126LEAF(spurious_interrupt) 164LEAF(mips_ihb)
127 /* 165 .set mips32r2
128 * Someone tried to fool us by sending an interrupt but we 166 jr.hb ra
129 * couldn't find a cause for it. 167 nop
130 */ 168 END(mips_ihb)
131 PTR_LA t1, irq_err_count 169
132#ifdef CONFIG_SMP 170#endif /* CONFIG_CPU_MIPSR2 or CONFIG_MIPS_MT */
1331: ll t0, (t1)
134 addiu t0, 1
135 sc t0, (t1)
136#if R10000_LLSC_WAR
137 beqzl t0, 1b
138#else
139 beqz t0, 1b
140#endif
141#else
142 lw t0, (t1)
143 addiu t0, 1
144 sw t0, (t1)
145#endif
146 j ret_from_irq
147 END(spurious_interrupt)
diff --git a/arch/mips/kernel/gdb-low.S b/arch/mips/kernel/gdb-low.S
index 235ad9f6bd35..10f28fb9f008 100644
--- a/arch/mips/kernel/gdb-low.S
+++ b/arch/mips/kernel/gdb-low.S
@@ -283,11 +283,33 @@
283 */ 283 */
284 284
2853: 2853:
286#ifdef CONFIG_MIPS_MT_SMTC
287 /* Read-modify write of Status must be atomic */
288 mfc0 t2, CP0_TCSTATUS
289 ori t1, t2, TCSTATUS_IXMT
290 mtc0 t1, CP0_TCSTATUS
291 andi t2, t2, TCSTATUS_IXMT
292 ehb
293 DMT 9 # dmt t1
294 jal mips_ihb
295 nop
296#endif /* CONFIG_MIPS_MT_SMTC */
286 mfc0 t0, CP0_STATUS 297 mfc0 t0, CP0_STATUS
287 ori t0, 0x1f 298 ori t0, 0x1f
288 xori t0, 0x1f 299 xori t0, 0x1f
289 mtc0 t0, CP0_STATUS 300 mtc0 t0, CP0_STATUS
290 301#ifdef CONFIG_MIPS_MT_SMTC
302 andi t1, t1, VPECONTROL_TE
303 beqz t1, 9f
304 nop
305 EMT # emt
3069:
307 mfc0 t1, CP0_TCSTATUS
308 xori t1, t1, TCSTATUS_IXMT
309 or t1, t1, t2
310 mtc0 t1, CP0_TCSTATUS
311 ehb
312#endif /* CONFIG_MIPS_MT_SMTC */
291 LONG_L v0, GDB_FR_STATUS(sp) 313 LONG_L v0, GDB_FR_STATUS(sp)
292 LONG_L v1, GDB_FR_EPC(sp) 314 LONG_L v1, GDB_FR_EPC(sp)
293 mtc0 v0, CP0_STATUS 315 mtc0 v0, CP0_STATUS
diff --git a/arch/mips/kernel/gdb-stub.c b/arch/mips/kernel/gdb-stub.c
index d4f88e0af24c..6ecbdc1fefd1 100644
--- a/arch/mips/kernel/gdb-stub.c
+++ b/arch/mips/kernel/gdb-stub.c
@@ -140,6 +140,7 @@
140#include <asm/system.h> 140#include <asm/system.h>
141#include <asm/gdb-stub.h> 141#include <asm/gdb-stub.h>
142#include <asm/inst.h> 142#include <asm/inst.h>
143#include <asm/smp.h>
143 144
144/* 145/*
145 * external low-level support routines 146 * external low-level support routines
@@ -669,6 +670,64 @@ static void kgdb_wait(void *arg)
669 local_irq_restore(flags); 670 local_irq_restore(flags);
670} 671}
671 672
673/*
674 * GDB stub needs to call kgdb_wait on all processor with interrupts
675 * disabled, so it uses it's own special variant.
676 */
677static int kgdb_smp_call_kgdb_wait(void)
678{
679#ifdef CONFIG_SMP
680 struct call_data_struct data;
681 int i, cpus = num_online_cpus() - 1;
682 int cpu = smp_processor_id();
683
684 /*
685 * Can die spectacularly if this CPU isn't yet marked online
686 */
687 BUG_ON(!cpu_online(cpu));
688
689 if (!cpus)
690 return 0;
691
692 if (spin_is_locked(&smp_call_lock)) {
693 /*
694 * Some other processor is trying to make us do something
695 * but we're not going to respond... give up
696 */
697 return -1;
698 }
699
700 /*
701 * We will continue here, accepting the fact that
702 * the kernel may deadlock if another CPU attempts
703 * to call smp_call_function now...
704 */
705
706 data.func = kgdb_wait;
707 data.info = NULL;
708 atomic_set(&data.started, 0);
709 data.wait = 0;
710
711 spin_lock(&smp_call_lock);
712 call_data = &data;
713 mb();
714
715 /* Send a message to all other CPUs and wait for them to respond */
716 for (i = 0; i < NR_CPUS; i++)
717 if (cpu_online(i) && i != cpu)
718 core_send_ipi(i, SMP_CALL_FUNCTION);
719
720 /* Wait for response */
721 /* FIXME: lock-up detection, backtrace on lock-up */
722 while (atomic_read(&data.started) != cpus)
723 barrier();
724
725 call_data = NULL;
726 spin_unlock(&smp_call_lock);
727#endif
728
729 return 0;
730}
672 731
673/* 732/*
674 * This function does all command processing for interfacing to gdb. It 733 * This function does all command processing for interfacing to gdb. It
@@ -718,7 +777,7 @@ void handle_exception (struct gdb_regs *regs)
718 /* 777 /*
719 * force other cpus to enter kgdb 778 * force other cpus to enter kgdb
720 */ 779 */
721 smp_call_function(kgdb_wait, NULL, 0, 0); 780 kgdb_smp_call_kgdb_wait();
722 781
723 /* 782 /*
724 * If we're in breakpoint() increment the PC 783 * If we're in breakpoint() increment the PC
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index 13f22d1d0e8b..ff7af369f286 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13 13
14#include <asm/asm.h> 14#include <asm/asm.h>
15#include <asm/asmmacro.h>
15#include <asm/cacheops.h> 16#include <asm/cacheops.h>
16#include <asm/regdef.h> 17#include <asm/regdef.h>
17#include <asm/fpregdef.h> 18#include <asm/fpregdef.h>
@@ -122,6 +123,20 @@ handle_vcei:
122 .set pop 123 .set pop
123 END(except_vec3_r4000) 124 END(except_vec3_r4000)
124 125
126 __FINIT
127
128 .align 5
129NESTED(handle_int, PT_SIZE, sp)
130 SAVE_ALL
131 CLI
132
133 PTR_LA ra, ret_from_irq
134 move a0, sp
135 j plat_irq_dispatch
136 END(handle_int)
137
138 __INIT
139
125/* 140/*
126 * Special interrupt vector for MIPS64 ISA & embedded MIPS processors. 141 * Special interrupt vector for MIPS64 ISA & embedded MIPS processors.
127 * This is a dedicated interrupt exception vector which reduces the 142 * This is a dedicated interrupt exception vector which reduces the
@@ -157,6 +172,15 @@ NESTED(except_vec_vi, 0, sp)
157 SAVE_AT 172 SAVE_AT
158 .set push 173 .set push
159 .set noreorder 174 .set noreorder
175#ifdef CONFIG_MIPS_MT_SMTC
176 /*
177 * To keep from blindly blocking *all* interrupts
178 * during service by SMTC kernel, we also want to
179 * pass the IM value to be cleared.
180 */
181EXPORT(except_vec_vi_mori)
182 ori a0, $0, 0
183#endif /* CONFIG_MIPS_MT_SMTC */
160EXPORT(except_vec_vi_lui) 184EXPORT(except_vec_vi_lui)
161 lui v0, 0 /* Patched */ 185 lui v0, 0 /* Patched */
162 j except_vec_vi_handler 186 j except_vec_vi_handler
@@ -173,6 +197,25 @@ EXPORT(except_vec_vi_end)
173NESTED(except_vec_vi_handler, 0, sp) 197NESTED(except_vec_vi_handler, 0, sp)
174 SAVE_TEMP 198 SAVE_TEMP
175 SAVE_STATIC 199 SAVE_STATIC
200#ifdef CONFIG_MIPS_MT_SMTC
201 /*
202 * SMTC has an interesting problem that interrupts are level-triggered,
203 * and the CLI macro will clear EXL, potentially causing a duplicate
204 * interrupt service invocation. So we need to clear the associated
205 * IM bit of Status prior to doing CLI, and restore it after the
206 * service routine has been invoked - we must assume that the
207 * service routine will have cleared the state, and any active
208 * level represents a new or otherwised unserviced event...
209 */
210 mfc0 t1, CP0_STATUS
211 and t0, a0, t1
212 mfc0 t2, CP0_TCCONTEXT
213 or t0, t0, t2
214 mtc0 t0, CP0_TCCONTEXT
215 xor t1, t1, t0
216 mtc0 t1, CP0_STATUS
217 ehb
218#endif /* CONFIG_MIPS_MT_SMTC */
176 CLI 219 CLI
177 move a0, sp 220 move a0, sp
178 jalr v0 221 jalr v0
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S
index 2e9122a4213a..bdf6f6eff721 100644
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -18,6 +18,7 @@
18#include <linux/threads.h> 18#include <linux/threads.h>
19 19
20#include <asm/asm.h> 20#include <asm/asm.h>
21#include <asm/asmmacro.h>
21#include <asm/regdef.h> 22#include <asm/regdef.h>
22#include <asm/page.h> 23#include <asm/page.h>
23#include <asm/mipsregs.h> 24#include <asm/mipsregs.h>
@@ -82,12 +83,33 @@
82 */ 83 */
83 .macro setup_c0_status set clr 84 .macro setup_c0_status set clr
84 .set push 85 .set push
86#ifdef CONFIG_MIPS_MT_SMTC
87 /*
88 * For SMTC, we need to set privilege and disable interrupts only for
89 * the current TC, using the TCStatus register.
90 */
91 mfc0 t0, CP0_TCSTATUS
92 /* Fortunately CU 0 is in the same place in both registers */
93 /* Set TCU0, TMX, TKSU (for later inversion) and IXMT */
94 li t1, ST0_CU0 | 0x08001c00
95 or t0, t1
96 /* Clear TKSU, leave IXMT */
97 xori t0, 0x00001800
98 mtc0 t0, CP0_TCSTATUS
99 ehb
100 /* We need to leave the global IE bit set, but clear EXL...*/
101 mfc0 t0, CP0_STATUS
102 or t0, ST0_CU0 | ST0_EXL | ST0_ERL | \set | \clr
103 xor t0, ST0_EXL | ST0_ERL | \clr
104 mtc0 t0, CP0_STATUS
105#else
85 mfc0 t0, CP0_STATUS 106 mfc0 t0, CP0_STATUS
86 or t0, ST0_CU0|\set|0x1f|\clr 107 or t0, ST0_CU0|\set|0x1f|\clr
87 xor t0, 0x1f|\clr 108 xor t0, 0x1f|\clr
88 mtc0 t0, CP0_STATUS 109 mtc0 t0, CP0_STATUS
89 .set noreorder 110 .set noreorder
90 sll zero,3 # ehb 111 sll zero,3 # ehb
112#endif
91 .set pop 113 .set pop
92 .endm 114 .endm
93 115
@@ -134,6 +156,24 @@ NESTED(kernel_entry, 16, sp) # kernel entry point
134 156
135 ARC64_TWIDDLE_PC 157 ARC64_TWIDDLE_PC
136 158
159#ifdef CONFIG_MIPS_MT_SMTC
160 /*
161 * In SMTC kernel, "CLI" is thread-specific, in TCStatus.
162 * We still need to enable interrupts globally in Status,
163 * and clear EXL/ERL.
164 *
165 * TCContext is used to track interrupt levels under
166 * service in SMTC kernel. Clear for boot TC before
167 * allowing any interrupts.
168 */
169 mtc0 zero, CP0_TCCONTEXT
170
171 mfc0 t0, CP0_STATUS
172 ori t0, t0, 0xff1f
173 xori t0, t0, 0x001e
174 mtc0 t0, CP0_STATUS
175#endif /* CONFIG_MIPS_MT_SMTC */
176
137 PTR_LA t0, __bss_start # clear .bss 177 PTR_LA t0, __bss_start # clear .bss
138 LONG_S zero, (t0) 178 LONG_S zero, (t0)
139 PTR_LA t1, __bss_stop - LONGSIZE 179 PTR_LA t1, __bss_stop - LONGSIZE
@@ -166,8 +206,25 @@ NESTED(kernel_entry, 16, sp) # kernel entry point
166 * function after setting up the stack and gp registers. 206 * function after setting up the stack and gp registers.
167 */ 207 */
168NESTED(smp_bootstrap, 16, sp) 208NESTED(smp_bootstrap, 16, sp)
209#ifdef CONFIG_MIPS_MT_SMTC
210 /*
211 * Read-modify-writes of Status must be atomic, and this
212 * is one case where CLI is invoked without EXL being
213 * necessarily set. The CLI and setup_c0_status will
214 * in fact be redundant for all but the first TC of
215 * each VPE being booted.
216 */
217 DMT 10 # dmt t2 /* t0, t1 are used by CLI and setup_c0_status() */
218 jal mips_ihb
219#endif /* CONFIG_MIPS_MT_SMTC */
169 setup_c0_status_sec 220 setup_c0_status_sec
170 smp_slave_setup 221 smp_slave_setup
222#ifdef CONFIG_MIPS_MT_SMTC
223 andi t2, t2, VPECONTROL_TE
224 beqz t2, 2f
225 EMT # emt
2262:
227#endif /* CONFIG_MIPS_MT_SMTC */
171 j start_secondary 228 j start_secondary
172 END(smp_bootstrap) 229 END(smp_bootstrap)
173#endif /* CONFIG_SMP */ 230#endif /* CONFIG_SMP */
diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
index b974ac9057f6..2125ba5f1d9b 100644
--- a/arch/mips/kernel/i8259.c
+++ b/arch/mips/kernel/i8259.c
@@ -187,6 +187,10 @@ handle_real_irq:
187 outb(cached_21,0x21); 187 outb(cached_21,0x21);
188 outb(0x60+irq,0x20); /* 'Specific EOI' to master */ 188 outb(0x60+irq,0x20); /* 'Specific EOI' to master */
189 } 189 }
190#ifdef CONFIG_MIPS_MT_SMTC
191 if (irq_hwmask[irq] & ST0_IM)
192 set_c0_status(irq_hwmask[irq] & ST0_IM);
193#endif /* CONFIG_MIPS_MT_SMTC */
190 spin_unlock_irqrestore(&i8259A_lock, flags); 194 spin_unlock_irqrestore(&i8259A_lock, flags);
191 return; 195 return;
192 196
diff --git a/arch/mips/kernel/irq-msc01.c b/arch/mips/kernel/irq-msc01.c
index 3f653c7cfbf3..97ebdc754b9e 100644
--- a/arch/mips/kernel/irq-msc01.c
+++ b/arch/mips/kernel/irq-msc01.c
@@ -76,6 +76,11 @@ static void level_mask_and_ack_msc_irq(unsigned int irq)
76 mask_msc_irq(irq); 76 mask_msc_irq(irq);
77 if (!cpu_has_veic) 77 if (!cpu_has_veic)
78 MSCIC_WRITE(MSC01_IC_EOI, 0); 78 MSCIC_WRITE(MSC01_IC_EOI, 0);
79#ifdef CONFIG_MIPS_MT_SMTC
80 /* This actually needs to be a call into platform code */
81 if (irq_hwmask[irq] & ST0_IM)
82 set_c0_status(irq_hwmask[irq] & ST0_IM);
83#endif /* CONFIG_MIPS_MT_SMTC */
79} 84}
80 85
81/* 86/*
@@ -92,6 +97,10 @@ static void edge_mask_and_ack_msc_irq(unsigned int irq)
92 MSCIC_WRITE(MSC01_IC_SUP+irq*8, r | ~MSC01_IC_SUP_EDGE_BIT); 97 MSCIC_WRITE(MSC01_IC_SUP+irq*8, r | ~MSC01_IC_SUP_EDGE_BIT);
93 MSCIC_WRITE(MSC01_IC_SUP+irq*8, r); 98 MSCIC_WRITE(MSC01_IC_SUP+irq*8, r);
94 } 99 }
100#ifdef CONFIG_MIPS_MT_SMTC
101 if (irq_hwmask[irq] & ST0_IM)
102 set_c0_status(irq_hwmask[irq] & ST0_IM);
103#endif /* CONFIG_MIPS_MT_SMTC */
95} 104}
96 105
97/* 106/*
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
index 3dd76b3d2967..3dce742e716f 100644
--- a/arch/mips/kernel/irq.c
+++ b/arch/mips/kernel/irq.c
@@ -38,6 +38,15 @@ void ack_bad_irq(unsigned int irq)
38 38
39atomic_t irq_err_count; 39atomic_t irq_err_count;
40 40
41#ifdef CONFIG_MIPS_MT_SMTC
42/*
43 * SMTC Kernel needs to manipulate low-level CPU interrupt mask
44 * in do_IRQ. These are passed in setup_irq_smtc() and stored
45 * in this table.
46 */
47unsigned long irq_hwmask[NR_IRQS];
48#endif /* CONFIG_MIPS_MT_SMTC */
49
41#undef do_IRQ 50#undef do_IRQ
42 51
43/* 52/*
@@ -49,6 +58,7 @@ asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs)
49{ 58{
50 irq_enter(); 59 irq_enter();
51 60
61 __DO_IRQ_SMTC_HOOK();
52 __do_IRQ(irq, regs); 62 __do_IRQ(irq, regs);
53 63
54 irq_exit(); 64 irq_exit();
@@ -101,6 +111,11 @@ skip:
101 return 0; 111 return 0;
102} 112}
103 113
114asmlinkage void spurious_interrupt(struct pt_regs *regs)
115{
116 atomic_inc(&irq_err_count);
117}
118
104#ifdef CONFIG_KGDB 119#ifdef CONFIG_KGDB
105extern void breakpoint(void); 120extern void breakpoint(void);
106extern void set_debug_traps(void); 121extern void set_debug_traps(void);
@@ -124,6 +139,9 @@ void __init init_IRQ(void)
124 irq_desc[i].depth = 1; 139 irq_desc[i].depth = 1;
125 irq_desc[i].handler = &no_irq_type; 140 irq_desc[i].handler = &no_irq_type;
126 spin_lock_init(&irq_desc[i].lock); 141 spin_lock_init(&irq_desc[i].lock);
142#ifdef CONFIG_MIPS_MT_SMTC
143 irq_hwmask[i] = 0;
144#endif /* CONFIG_MIPS_MT_SMTC */
127 } 145 }
128 146
129 arch_init_irq(); 147 arch_init_irq();
diff --git a/arch/mips/kernel/kspd.c b/arch/mips/kernel/kspd.c
new file mode 100644
index 000000000000..f06a144c7881
--- /dev/null
+++ b/arch/mips/kernel/kspd.c
@@ -0,0 +1,398 @@
1/*
2 * Copyright (C) 2005 MIPS Technologies, Inc. All rights reserved.
3 *
4 * This program is free software; you can distribute it and/or modify it
5 * under the terms of the GNU General Public License (Version 2) as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11 * for more details.
12 *
13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
16 *
17 */
18#include <linux/kernel.h>
19#include <linux/module.h>
20#include <linux/unistd.h>
21#include <linux/file.h>
22#include <linux/fs.h>
23#include <linux/syscalls.h>
24#include <linux/workqueue.h>
25#include <linux/errno.h>
26#include <linux/list.h>
27
28#include <asm/vpe.h>
29#include <asm/rtlx.h>
30#include <asm/kspd.h>
31
32static struct workqueue_struct *workqueue = NULL;
33static struct work_struct work;
34
35extern unsigned long cpu_khz;
36
37struct mtsp_syscall {
38 int cmd;
39 unsigned char abi;
40 unsigned char size;
41};
42
43struct mtsp_syscall_ret {
44 int retval;
45 int errno;
46};
47
48struct mtsp_syscall_generic {
49 int arg0;
50 int arg1;
51 int arg2;
52 int arg3;
53 int arg4;
54 int arg5;
55 int arg6;
56};
57
58static struct list_head kspd_notifylist;
59static int sp_stopping = 0;
60
61/* these should match with those in the SDE kit */
62#define MTSP_SYSCALL_BASE 0
63#define MTSP_SYSCALL_EXIT (MTSP_SYSCALL_BASE + 0)
64#define MTSP_SYSCALL_OPEN (MTSP_SYSCALL_BASE + 1)
65#define MTSP_SYSCALL_READ (MTSP_SYSCALL_BASE + 2)
66#define MTSP_SYSCALL_WRITE (MTSP_SYSCALL_BASE + 3)
67#define MTSP_SYSCALL_CLOSE (MTSP_SYSCALL_BASE + 4)
68#define MTSP_SYSCALL_LSEEK32 (MTSP_SYSCALL_BASE + 5)
69#define MTSP_SYSCALL_ISATTY (MTSP_SYSCALL_BASE + 6)
70#define MTSP_SYSCALL_GETTIME (MTSP_SYSCALL_BASE + 7)
71#define MTSP_SYSCALL_PIPEFREQ (MTSP_SYSCALL_BASE + 8)
72#define MTSP_SYSCALL_GETTOD (MTSP_SYSCALL_BASE + 9)
73
74#define MTSP_O_RDONLY 0x0000
75#define MTSP_O_WRONLY 0x0001
76#define MTSP_O_RDWR 0x0002
77#define MTSP_O_NONBLOCK 0x0004
78#define MTSP_O_APPEND 0x0008
79#define MTSP_O_SHLOCK 0x0010
80#define MTSP_O_EXLOCK 0x0020
81#define MTSP_O_ASYNC 0x0040
82#define MTSP_O_FSYNC O_SYNC
83#define MTSP_O_NOFOLLOW 0x0100
84#define MTSP_O_SYNC 0x0080
85#define MTSP_O_CREAT 0x0200
86#define MTSP_O_TRUNC 0x0400
87#define MTSP_O_EXCL 0x0800
88#define MTSP_O_BINARY 0x8000
89
90#define SP_VPE 1
91
92struct apsp_table {
93 int sp;
94 int ap;
95};
96
97/* we might want to do the mode flags too */
98struct apsp_table open_flags_table[] = {
99 { MTSP_O_RDWR, O_RDWR },
100 { MTSP_O_WRONLY, O_WRONLY },
101 { MTSP_O_CREAT, O_CREAT },
102 { MTSP_O_TRUNC, O_TRUNC },
103 { MTSP_O_NONBLOCK, O_NONBLOCK },
104 { MTSP_O_APPEND, O_APPEND },
105 { MTSP_O_NOFOLLOW, O_NOFOLLOW }
106};
107
108struct apsp_table syscall_command_table[] = {
109 { MTSP_SYSCALL_OPEN, __NR_open },
110 { MTSP_SYSCALL_CLOSE, __NR_close },
111 { MTSP_SYSCALL_READ, __NR_read },
112 { MTSP_SYSCALL_WRITE, __NR_write },
113 { MTSP_SYSCALL_LSEEK32, __NR_lseek }
114};
115
116static int sp_syscall(int num, int arg0, int arg1, int arg2, int arg3)
117{
118 register long int _num __asm__ ("$2") = num;
119 register long int _arg0 __asm__ ("$4") = arg0;
120 register long int _arg1 __asm__ ("$5") = arg1;
121 register long int _arg2 __asm__ ("$6") = arg2;
122 register long int _arg3 __asm__ ("$7") = arg3;
123
124 mm_segment_t old_fs;
125
126 old_fs = get_fs();
127 set_fs(KERNEL_DS);
128
129 __asm__ __volatile__ (
130 " syscall \n"
131 : "=r" (_num), "=r" (_arg3)
132 : "r" (_num), "r" (_arg0), "r" (_arg1), "r" (_arg2), "r" (_arg3));
133
134 set_fs(old_fs);
135
136 /* $a3 is error flag */
137 if (_arg3)
138 return -_num;
139
140 return _num;
141}
142
143static int translate_syscall_command(int cmd)
144{
145 int i;
146 int ret = -1;
147
148 for (i = 0; i < ARRAY_SIZE(syscall_command_table); i++) {
149 if ((cmd == syscall_command_table[i].sp))
150 return syscall_command_table[i].ap;
151 }
152
153 return ret;
154}
155
156static unsigned int translate_open_flags(int flags)
157{
158 int i;
159 unsigned int ret = 0;
160
161 for (i = 0; i < (sizeof(open_flags_table) / sizeof(struct apsp_table));
162 i++) {
163 if( (flags & open_flags_table[i].sp) ) {
164 ret |= open_flags_table[i].ap;
165 }
166 }
167
168 return ret;
169}
170
171
172static void sp_setfsuidgid( uid_t uid, gid_t gid)
173{
174 current->fsuid = uid;
175 current->fsgid = gid;
176
177 key_fsuid_changed(current);
178 key_fsgid_changed(current);
179}
180
181/*
182 * Expects a request to be on the sysio channel. Reads it. Decides whether
183 * its a linux syscall and runs it, or whatever. Puts the return code back
184 * into the request and sends the whole thing back.
185 */
186void sp_work_handle_request(void)
187{
188 struct mtsp_syscall sc;
189 struct mtsp_syscall_generic generic;
190 struct mtsp_syscall_ret ret;
191 struct kspd_notifications *n;
192 struct timeval tv;
193 struct timezone tz;
194 int cmd;
195
196 char *vcwd;
197 mm_segment_t old_fs;
198 int size;
199
200 ret.retval = -1;
201
202 if (!rtlx_read(RTLX_CHANNEL_SYSIO, &sc, sizeof(struct mtsp_syscall), 0)) {
203 printk(KERN_ERR "Expected request but nothing to read\n");
204 return;
205 }
206
207 size = sc.size;
208
209 if (size) {
210 if (!rtlx_read(RTLX_CHANNEL_SYSIO, &generic, size, 0)) {
211 printk(KERN_ERR "Expected request but nothing to read\n");
212 return;
213 }
214 }
215
216 /* Run the syscall at the priviledge of the user who loaded the
217 SP program */
218
219 if (vpe_getuid(SP_VPE))
220 sp_setfsuidgid( vpe_getuid(SP_VPE), vpe_getgid(SP_VPE));
221
222 switch (sc.cmd) {
223 /* needs the flags argument translating from SDE kit to
224 linux */
225 case MTSP_SYSCALL_PIPEFREQ:
226 ret.retval = cpu_khz * 1000;
227 ret.errno = 0;
228 break;
229
230 case MTSP_SYSCALL_GETTOD:
231 memset(&tz, 0, sizeof(tz));
232 if ((ret.retval = sp_syscall(__NR_gettimeofday, (int)&tv,
233 (int)&tz, 0,0)) == 0)
234 ret.retval = tv.tv_sec;
235
236 ret.errno = errno;
237 break;
238
239 case MTSP_SYSCALL_EXIT:
240 list_for_each_entry(n, &kspd_notifylist, list)
241 n->kspd_sp_exit(SP_VPE);
242 sp_stopping = 1;
243
244 printk(KERN_DEBUG "KSPD got exit syscall from SP exitcode %d\n",
245 generic.arg0);
246 break;
247
248 case MTSP_SYSCALL_OPEN:
249 generic.arg1 = translate_open_flags(generic.arg1);
250
251 vcwd = vpe_getcwd(SP_VPE);
252
253 /* change to the cwd of the process that loaded the SP program */
254 old_fs = get_fs();
255 set_fs(KERNEL_DS);
256 sys_chdir(vcwd);
257 set_fs(old_fs);
258
259 sc.cmd = __NR_open;
260
261 /* fall through */
262
263 default:
264 if ((sc.cmd >= __NR_Linux) &&
265 (sc.cmd <= (__NR_Linux + __NR_Linux_syscalls)) )
266 cmd = sc.cmd;
267 else
268 cmd = translate_syscall_command(sc.cmd);
269
270 if (cmd >= 0) {
271 ret.retval = sp_syscall(cmd, generic.arg0, generic.arg1,
272 generic.arg2, generic.arg3);
273 ret.errno = errno;
274 } else
275 printk(KERN_WARNING
276 "KSPD: Unknown SP syscall number %d\n", sc.cmd);
277 break;
278 } /* switch */
279
280 if (vpe_getuid(SP_VPE))
281 sp_setfsuidgid( 0, 0);
282
283 if ((rtlx_write(RTLX_CHANNEL_SYSIO, &ret, sizeof(struct mtsp_syscall_ret), 0))
284 < sizeof(struct mtsp_syscall_ret))
285 printk("KSPD: sp_work_handle_request failed to send to SP\n");
286}
287
288static void sp_cleanup(void)
289{
290 struct files_struct *files = current->files;
291 int i, j;
292 struct fdtable *fdt;
293
294 j = 0;
295
296 /*
297 * It is safe to dereference the fd table without RCU or
298 * ->file_lock
299 */
300 fdt = files_fdtable(files);
301 for (;;) {
302 unsigned long set;
303 i = j * __NFDBITS;
304 if (i >= fdt->max_fdset || i >= fdt->max_fds)
305 break;
306 set = fdt->open_fds->fds_bits[j++];
307 while (set) {
308 if (set & 1) {
309 struct file * file = xchg(&fdt->fd[i], NULL);
310 if (file)
311 filp_close(file, files);
312 }
313 i++;
314 set >>= 1;
315 }
316 }
317}
318
319static int channel_open = 0;
320
321/* the work handler */
322static void sp_work(void *data)
323{
324 if (!channel_open) {
325 if( rtlx_open(RTLX_CHANNEL_SYSIO, 1) != 0) {
326 printk("KSPD: unable to open sp channel\n");
327 sp_stopping = 1;
328 } else {
329 channel_open++;
330 printk(KERN_DEBUG "KSPD: SP channel opened\n");
331 }
332 } else {
333 /* wait for some data, allow it to sleep */
334 rtlx_read_poll(RTLX_CHANNEL_SYSIO, 1);
335
336 /* Check we haven't been woken because we are stopping */
337 if (!sp_stopping)
338 sp_work_handle_request();
339 }
340
341 if (!sp_stopping)
342 queue_work(workqueue, &work);
343 else
344 sp_cleanup();
345}
346
347static void startwork(int vpe)
348{
349 sp_stopping = channel_open = 0;
350
351 if (workqueue == NULL) {
352 if ((workqueue = create_singlethread_workqueue("kspd")) == NULL) {
353 printk(KERN_ERR "unable to start kspd\n");
354 return;
355 }
356
357 INIT_WORK(&work, sp_work, NULL);
358 queue_work(workqueue, &work);
359 } else
360 queue_work(workqueue, &work);
361
362}
363
364static void stopwork(int vpe)
365{
366 sp_stopping = 1;
367
368 printk(KERN_DEBUG "KSPD: SP stopping\n");
369}
370
371void kspd_notify(struct kspd_notifications *notify)
372{
373 list_add(&notify->list, &kspd_notifylist);
374}
375
376static struct vpe_notifications notify;
377static int kspd_module_init(void)
378{
379 INIT_LIST_HEAD(&kspd_notifylist);
380
381 notify.start = startwork;
382 notify.stop = stopwork;
383 vpe_notify(SP_VPE, &notify);
384
385 return 0;
386}
387
388static void kspd_module_exit(void)
389{
390
391}
392
393module_init(kspd_module_init);
394module_exit(kspd_module_exit);
395
396MODULE_DESCRIPTION("MIPS KSPD");
397MODULE_AUTHOR("Elizabeth Oldham, MIPS Technologies, Inc.");
398MODULE_LICENSE("GPL");
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
index 3f40c37a9ee6..a7d2bb3cf835 100644
--- a/arch/mips/kernel/linux32.c
+++ b/arch/mips/kernel/linux32.c
@@ -356,73 +356,13 @@ asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high,
356asmlinkage ssize_t sys32_pread(unsigned int fd, char __user * buf, 356asmlinkage ssize_t sys32_pread(unsigned int fd, char __user * buf,
357 size_t count, u32 unused, u64 a4, u64 a5) 357 size_t count, u32 unused, u64 a4, u64 a5)
358{ 358{
359 ssize_t ret; 359 return sys_pread64(fd, buf, count, merge_64(a4, a5));
360 struct file * file;
361 ssize_t (*read)(struct file *, char __user *, size_t, loff_t *);
362 loff_t pos;
363
364 ret = -EBADF;
365 file = fget(fd);
366 if (!file)
367 goto bad_file;
368 if (!(file->f_mode & FMODE_READ))
369 goto out;
370 pos = merge_64(a4, a5);
371 ret = rw_verify_area(READ, file, &pos, count);
372 if (ret < 0)
373 goto out;
374 ret = -EINVAL;
375 if (!file->f_op || !(read = file->f_op->read))
376 goto out;
377 if (pos < 0)
378 goto out;
379 ret = -ESPIPE;
380 if (!(file->f_mode & FMODE_PREAD))
381 goto out;
382 ret = read(file, buf, count, &pos);
383 if (ret > 0)
384 dnotify_parent(file->f_dentry, DN_ACCESS);
385out:
386 fput(file);
387bad_file:
388 return ret;
389} 360}
390 361
391asmlinkage ssize_t sys32_pwrite(unsigned int fd, const char __user * buf, 362asmlinkage ssize_t sys32_pwrite(unsigned int fd, const char __user * buf,
392 size_t count, u32 unused, u64 a4, u64 a5) 363 size_t count, u32 unused, u64 a4, u64 a5)
393{ 364{
394 ssize_t ret; 365 return sys_pwrite64(fd, buf, count, merge_64(a4, a5));
395 struct file * file;
396 ssize_t (*write)(struct file *, const char __user *, size_t, loff_t *);
397 loff_t pos;
398
399 ret = -EBADF;
400 file = fget(fd);
401 if (!file)
402 goto bad_file;
403 if (!(file->f_mode & FMODE_WRITE))
404 goto out;
405 pos = merge_64(a4, a5);
406 ret = rw_verify_area(WRITE, file, &pos, count);
407 if (ret < 0)
408 goto out;
409 ret = -EINVAL;
410 if (!file->f_op || !(write = file->f_op->write))
411 goto out;
412 if (pos < 0)
413 goto out;
414
415 ret = -ESPIPE;
416 if (!(file->f_mode & FMODE_PWRITE))
417 goto out;
418
419 ret = write(file, buf, count, &pos);
420 if (ret > 0)
421 dnotify_parent(file->f_dentry, DN_MODIFY);
422out:
423 fput(file);
424bad_file:
425 return ret;
426} 366}
427 367
428asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid, 368asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid,
@@ -1182,6 +1122,16 @@ asmlinkage ssize_t sys32_readahead(int fd, u32 pad0, u64 a2, u64 a3,
1182 return sys_readahead(fd, merge_64(a2, a3), count); 1122 return sys_readahead(fd, merge_64(a2, a3), count);
1183} 1123}
1184 1124
1125asmlinkage long sys32_sync_file_range(int fd, int __pad,
1126 unsigned long a2, unsigned long a3,
1127 unsigned long a4, unsigned long a5,
1128 int flags)
1129{
1130 return sys_sync_file_range(fd,
1131 merge_64(a2, a3), merge_64(a4, a5),
1132 flags);
1133}
1134
1185/* Argument list sizes for sys_socketcall */ 1135/* Argument list sizes for sys_socketcall */
1186#define AL(x) ((x) * sizeof(unsigned int)) 1136#define AL(x) ((x) * sizeof(unsigned int))
1187static unsigned char socketcall_nargs[18]={AL(0),AL(3),AL(3),AL(3),AL(2),AL(3), 1137static unsigned char socketcall_nargs[18]={AL(0),AL(3),AL(3),AL(3),AL(2),AL(3),
diff --git a/arch/mips/kernel/mips-mt.c b/arch/mips/kernel/mips-mt.c
new file mode 100644
index 000000000000..02237a685ec7
--- /dev/null
+++ b/arch/mips/kernel/mips-mt.c
@@ -0,0 +1,449 @@
1/*
2 * General MIPS MT support routines, usable in AP/SP, SMVP, or SMTC kernels
3 * Copyright (C) 2005 Mips Technologies, Inc
4 */
5
6#include <linux/kernel.h>
7#include <linux/sched.h>
8#include <linux/cpumask.h>
9#include <linux/interrupt.h>
10
11#include <asm/cpu.h>
12#include <asm/processor.h>
13#include <asm/atomic.h>
14#include <asm/system.h>
15#include <asm/hardirq.h>
16#include <asm/mmu_context.h>
17#include <asm/smp.h>
18#include <asm/mipsmtregs.h>
19#include <asm/r4kcache.h>
20#include <asm/cacheflush.h>
21
22/*
23 * CPU mask used to set process affinity for MT VPEs/TCs with FPUs
24 */
25
26cpumask_t mt_fpu_cpumask;
27
28#ifdef CONFIG_MIPS_MT_FPAFF
29
30#include <linux/cpu.h>
31#include <linux/delay.h>
32#include <asm/uaccess.h>
33
34unsigned long mt_fpemul_threshold = 0;
35
36/*
37 * Replacement functions for the sys_sched_setaffinity() and
38 * sys_sched_getaffinity() system calls, so that we can integrate
39 * FPU affinity with the user's requested processor affinity.
40 * This code is 98% identical with the sys_sched_setaffinity()
41 * and sys_sched_getaffinity() system calls, and should be
42 * updated when kernel/sched.c changes.
43 */
44
45/*
46 * find_process_by_pid - find a process with a matching PID value.
47 * used in sys_sched_set/getaffinity() in kernel/sched.c, so
48 * cloned here.
49 */
50static inline task_t *find_process_by_pid(pid_t pid)
51{
52 return pid ? find_task_by_pid(pid) : current;
53}
54
55
56/*
57 * mipsmt_sys_sched_setaffinity - set the cpu affinity of a process
58 */
59asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len,
60 unsigned long __user *user_mask_ptr)
61{
62 cpumask_t new_mask;
63 cpumask_t effective_mask;
64 int retval;
65 task_t *p;
66
67 if (len < sizeof(new_mask))
68 return -EINVAL;
69
70 if (copy_from_user(&new_mask, user_mask_ptr, sizeof(new_mask)))
71 return -EFAULT;
72
73 lock_cpu_hotplug();
74 read_lock(&tasklist_lock);
75
76 p = find_process_by_pid(pid);
77 if (!p) {
78 read_unlock(&tasklist_lock);
79 unlock_cpu_hotplug();
80 return -ESRCH;
81 }
82
83 /*
84 * It is not safe to call set_cpus_allowed with the
85 * tasklist_lock held. We will bump the task_struct's
86 * usage count and drop tasklist_lock before invoking
87 * set_cpus_allowed.
88 */
89 get_task_struct(p);
90
91 retval = -EPERM;
92 if ((current->euid != p->euid) && (current->euid != p->uid) &&
93 !capable(CAP_SYS_NICE)) {
94 read_unlock(&tasklist_lock);
95 goto out_unlock;
96 }
97
98 /* Record new user-specified CPU set for future reference */
99 p->thread.user_cpus_allowed = new_mask;
100
101 /* Unlock the task list */
102 read_unlock(&tasklist_lock);
103
104 /* Compute new global allowed CPU set if necessary */
105 if( (p->thread.mflags & MF_FPUBOUND)
106 && cpus_intersects(new_mask, mt_fpu_cpumask)) {
107 cpus_and(effective_mask, new_mask, mt_fpu_cpumask);
108 retval = set_cpus_allowed(p, effective_mask);
109 } else {
110 p->thread.mflags &= ~MF_FPUBOUND;
111 retval = set_cpus_allowed(p, new_mask);
112 }
113
114
115out_unlock:
116 put_task_struct(p);
117 unlock_cpu_hotplug();
118 return retval;
119}
120
121/*
122 * mipsmt_sys_sched_getaffinity - get the cpu affinity of a process
123 */
124asmlinkage long mipsmt_sys_sched_getaffinity(pid_t pid, unsigned int len,
125 unsigned long __user *user_mask_ptr)
126{
127 unsigned int real_len;
128 cpumask_t mask;
129 int retval;
130 task_t *p;
131
132 real_len = sizeof(mask);
133 if (len < real_len)
134 return -EINVAL;
135
136 lock_cpu_hotplug();
137 read_lock(&tasklist_lock);
138
139 retval = -ESRCH;
140 p = find_process_by_pid(pid);
141 if (!p)
142 goto out_unlock;
143
144 retval = 0;
145
146 cpus_and(mask, p->thread.user_cpus_allowed, cpu_possible_map);
147
148out_unlock:
149 read_unlock(&tasklist_lock);
150 unlock_cpu_hotplug();
151 if (retval)
152 return retval;
153 if (copy_to_user(user_mask_ptr, &mask, real_len))
154 return -EFAULT;
155 return real_len;
156}
157
158#endif /* CONFIG_MIPS_MT_FPAFF */
159
160/*
161 * Dump new MIPS MT state for the core. Does not leave TCs halted.
162 * Takes an argument which taken to be a pre-call MVPControl value.
163 */
164
165void mips_mt_regdump(unsigned long mvpctl)
166{
167 unsigned long flags;
168 unsigned long vpflags;
169 unsigned long mvpconf0;
170 int nvpe;
171 int ntc;
172 int i;
173 int tc;
174 unsigned long haltval;
175 unsigned long tcstatval;
176#ifdef CONFIG_MIPS_MT_SMTC
177 void smtc_soft_dump(void);
178#endif /* CONFIG_MIPT_MT_SMTC */
179
180 local_irq_save(flags);
181 vpflags = dvpe();
182 printk("=== MIPS MT State Dump ===\n");
183 printk("-- Global State --\n");
184 printk(" MVPControl Passed: %08lx\n", mvpctl);
185 printk(" MVPControl Read: %08lx\n", vpflags);
186 printk(" MVPConf0 : %08lx\n", (mvpconf0 = read_c0_mvpconf0()));
187 nvpe = ((mvpconf0 & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT) + 1;
188 ntc = ((mvpconf0 & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1;
189 printk("-- per-VPE State --\n");
190 for(i = 0; i < nvpe; i++) {
191 for(tc = 0; tc < ntc; tc++) {
192 settc(tc);
193 if((read_tc_c0_tcbind() & TCBIND_CURVPE) == i) {
194 printk(" VPE %d\n", i);
195 printk(" VPEControl : %08lx\n", read_vpe_c0_vpecontrol());
196 printk(" VPEConf0 : %08lx\n", read_vpe_c0_vpeconf0());
197 printk(" VPE%d.Status : %08lx\n",
198 i, read_vpe_c0_status());
199 printk(" VPE%d.EPC : %08lx\n", i, read_vpe_c0_epc());
200 printk(" VPE%d.Cause : %08lx\n", i, read_vpe_c0_cause());
201 printk(" VPE%d.Config7 : %08lx\n",
202 i, read_vpe_c0_config7());
203 break; /* Next VPE */
204 }
205 }
206 }
207 printk("-- per-TC State --\n");
208 for(tc = 0; tc < ntc; tc++) {
209 settc(tc);
210 if(read_tc_c0_tcbind() == read_c0_tcbind()) {
211 /* Are we dumping ourself? */
212 haltval = 0; /* Then we're not halted, and mustn't be */
213 tcstatval = flags; /* And pre-dump TCStatus is flags */
214 printk(" TC %d (current TC with VPE EPC above)\n", tc);
215 } else {
216 haltval = read_tc_c0_tchalt();
217 write_tc_c0_tchalt(1);
218 tcstatval = read_tc_c0_tcstatus();
219 printk(" TC %d\n", tc);
220 }
221 printk(" TCStatus : %08lx\n", tcstatval);
222 printk(" TCBind : %08lx\n", read_tc_c0_tcbind());
223 printk(" TCRestart : %08lx\n", read_tc_c0_tcrestart());
224 printk(" TCHalt : %08lx\n", haltval);
225 printk(" TCContext : %08lx\n", read_tc_c0_tccontext());
226 if (!haltval)
227 write_tc_c0_tchalt(0);
228 }
229#ifdef CONFIG_MIPS_MT_SMTC
230 smtc_soft_dump();
231#endif /* CONFIG_MIPT_MT_SMTC */
232 printk("===========================\n");
233 evpe(vpflags);
234 local_irq_restore(flags);
235}
236
237static int mt_opt_norps = 0;
238static int mt_opt_rpsctl = -1;
239static int mt_opt_nblsu = -1;
240static int mt_opt_forceconfig7 = 0;
241static int mt_opt_config7 = -1;
242
243static int __init rps_disable(char *s)
244{
245 mt_opt_norps = 1;
246 return 1;
247}
248__setup("norps", rps_disable);
249
250static int __init rpsctl_set(char *str)
251{
252 get_option(&str, &mt_opt_rpsctl);
253 return 1;
254}
255__setup("rpsctl=", rpsctl_set);
256
257static int __init nblsu_set(char *str)
258{
259 get_option(&str, &mt_opt_nblsu);
260 return 1;
261}
262__setup("nblsu=", nblsu_set);
263
264static int __init config7_set(char *str)
265{
266 get_option(&str, &mt_opt_config7);
267 mt_opt_forceconfig7 = 1;
268 return 1;
269}
270__setup("config7=", config7_set);
271
272/* Experimental cache flush control parameters that should go away some day */
273int mt_protiflush = 0;
274int mt_protdflush = 0;
275int mt_n_iflushes = 1;
276int mt_n_dflushes = 1;
277
278static int __init set_protiflush(char *s)
279{
280 mt_protiflush = 1;
281 return 1;
282}
283__setup("protiflush", set_protiflush);
284
285static int __init set_protdflush(char *s)
286{
287 mt_protdflush = 1;
288 return 1;
289}
290__setup("protdflush", set_protdflush);
291
292static int __init niflush(char *s)
293{
294 get_option(&s, &mt_n_iflushes);
295 return 1;
296}
297__setup("niflush=", niflush);
298
299static int __init ndflush(char *s)
300{
301 get_option(&s, &mt_n_dflushes);
302 return 1;
303}
304__setup("ndflush=", ndflush);
305#ifdef CONFIG_MIPS_MT_FPAFF
306static int fpaff_threshold = -1;
307
308static int __init fpaff_thresh(char *str)
309{
310 get_option(&str, &fpaff_threshold);
311 return 1;
312}
313
314__setup("fpaff=", fpaff_thresh);
315#endif /* CONFIG_MIPS_MT_FPAFF */
316
317static unsigned int itc_base = 0;
318
319static int __init set_itc_base(char *str)
320{
321 get_option(&str, &itc_base);
322 return 1;
323}
324
325__setup("itcbase=", set_itc_base);
326
327void mips_mt_set_cpuoptions(void)
328{
329 unsigned int oconfig7 = read_c0_config7();
330 unsigned int nconfig7 = oconfig7;
331
332 if (mt_opt_norps) {
333 printk("\"norps\" option deprectated: use \"rpsctl=\"\n");
334 }
335 if (mt_opt_rpsctl >= 0) {
336 printk("34K return prediction stack override set to %d.\n",
337 mt_opt_rpsctl);
338 if (mt_opt_rpsctl)
339 nconfig7 |= (1 << 2);
340 else
341 nconfig7 &= ~(1 << 2);
342 }
343 if (mt_opt_nblsu >= 0) {
344 printk("34K ALU/LSU sync override set to %d.\n", mt_opt_nblsu);
345 if (mt_opt_nblsu)
346 nconfig7 |= (1 << 5);
347 else
348 nconfig7 &= ~(1 << 5);
349 }
350 if (mt_opt_forceconfig7) {
351 printk("CP0.Config7 forced to 0x%08x.\n", mt_opt_config7);
352 nconfig7 = mt_opt_config7;
353 }
354 if (oconfig7 != nconfig7) {
355 __asm__ __volatile("sync");
356 write_c0_config7(nconfig7);
357 ehb ();
358 printk("Config7: 0x%08x\n", read_c0_config7());
359 }
360
361 /* Report Cache management debug options */
362 if (mt_protiflush)
363 printk("I-cache flushes single-threaded\n");
364 if (mt_protdflush)
365 printk("D-cache flushes single-threaded\n");
366 if (mt_n_iflushes != 1)
367 printk("I-Cache Flushes Repeated %d times\n", mt_n_iflushes);
368 if (mt_n_dflushes != 1)
369 printk("D-Cache Flushes Repeated %d times\n", mt_n_dflushes);
370
371#ifdef CONFIG_MIPS_MT_FPAFF
372 /* FPU Use Factor empirically derived from experiments on 34K */
373#define FPUSEFACTOR 333
374
375 if (fpaff_threshold >= 0) {
376 mt_fpemul_threshold = fpaff_threshold;
377 } else {
378 mt_fpemul_threshold =
379 (FPUSEFACTOR * (loops_per_jiffy/(500000/HZ))) / HZ;
380 }
381 printk("FPU Affinity set after %ld emulations\n",
382 mt_fpemul_threshold);
383#endif /* CONFIG_MIPS_MT_FPAFF */
384
385 if (itc_base != 0) {
386 /*
387 * Configure ITC mapping. This code is very
388 * specific to the 34K core family, which uses
389 * a special mode bit ("ITC") in the ErrCtl
390 * register to enable access to ITC control
391 * registers via cache "tag" operations.
392 */
393 unsigned long ectlval;
394 unsigned long itcblkgrn;
395
396 /* ErrCtl register is known as "ecc" to Linux */
397 ectlval = read_c0_ecc();
398 write_c0_ecc(ectlval | (0x1 << 26));
399 ehb();
400#define INDEX_0 (0x80000000)
401#define INDEX_8 (0x80000008)
402 /* Read "cache tag" for Dcache pseudo-index 8 */
403 cache_op(Index_Load_Tag_D, INDEX_8);
404 ehb();
405 itcblkgrn = read_c0_dtaglo();
406 itcblkgrn &= 0xfffe0000;
407 /* Set for 128 byte pitch of ITC cells */
408 itcblkgrn |= 0x00000c00;
409 /* Stage in Tag register */
410 write_c0_dtaglo(itcblkgrn);
411 ehb();
412 /* Write out to ITU with CACHE op */
413 cache_op(Index_Store_Tag_D, INDEX_8);
414 /* Now set base address, and turn ITC on with 0x1 bit */
415 write_c0_dtaglo((itc_base & 0xfffffc00) | 0x1 );
416 ehb();
417 /* Write out to ITU with CACHE op */
418 cache_op(Index_Store_Tag_D, INDEX_0);
419 write_c0_ecc(ectlval);
420 ehb();
421 printk("Mapped %ld ITC cells starting at 0x%08x\n",
422 ((itcblkgrn & 0x7fe00000) >> 20), itc_base);
423 }
424}
425
426/*
427 * Function to protect cache flushes from concurrent execution
428 * depends on MP software model chosen.
429 */
430
431void mt_cflush_lockdown(void)
432{
433#ifdef CONFIG_MIPS_MT_SMTC
434 void smtc_cflush_lockdown(void);
435
436 smtc_cflush_lockdown();
437#endif /* CONFIG_MIPS_MT_SMTC */
438 /* FILL IN VSMP and AP/SP VERSIONS HERE */
439}
440
441void mt_cflush_release(void)
442{
443#ifdef CONFIG_MIPS_MT_SMTC
444 void smtc_cflush_release(void);
445
446 smtc_cflush_release();
447#endif /* CONFIG_MIPS_MT_SMTC */
448 /* FILL IN VSMP and AP/SP VERSIONS HERE */
449}
diff --git a/arch/mips/kernel/mips_ksyms.c b/arch/mips/kernel/mips_ksyms.c
index e042f9d2ba31..0a71a4c33716 100644
--- a/arch/mips/kernel/mips_ksyms.c
+++ b/arch/mips/kernel/mips_ksyms.c
@@ -28,21 +28,9 @@ extern long __strnlen_user_asm(const char *s);
28/* 28/*
29 * String functions 29 * String functions
30 */ 30 */
31EXPORT_SYMBOL(memchr);
32EXPORT_SYMBOL(memcmp);
33EXPORT_SYMBOL(memset); 31EXPORT_SYMBOL(memset);
34EXPORT_SYMBOL(memcpy); 32EXPORT_SYMBOL(memcpy);
35EXPORT_SYMBOL(memmove); 33EXPORT_SYMBOL(memmove);
36EXPORT_SYMBOL(strcat);
37EXPORT_SYMBOL(strchr);
38#ifdef CONFIG_64BIT
39EXPORT_SYMBOL(strncmp);
40#endif
41EXPORT_SYMBOL(strlen);
42EXPORT_SYMBOL(strncat);
43EXPORT_SYMBOL(strnlen);
44EXPORT_SYMBOL(strrchr);
45EXPORT_SYMBOL(strstr);
46 34
47EXPORT_SYMBOL(kernel_thread); 35EXPORT_SYMBOL(kernel_thread);
48 36
@@ -61,6 +49,3 @@ EXPORT_SYMBOL(__strnlen_user_asm);
61EXPORT_SYMBOL(csum_partial); 49EXPORT_SYMBOL(csum_partial);
62 50
63EXPORT_SYMBOL(invalid_pte_table); 51EXPORT_SYMBOL(invalid_pte_table);
64#ifdef CONFIG_GENERIC_IRQ_PROBE
65EXPORT_SYMBOL(probe_irq_mask);
66#endif
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index c66db5e5ab62..199a06e873c6 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -41,6 +41,10 @@
41#include <asm/elf.h> 41#include <asm/elf.h>
42#include <asm/isadep.h> 42#include <asm/isadep.h>
43#include <asm/inst.h> 43#include <asm/inst.h>
44#ifdef CONFIG_MIPS_MT_SMTC
45#include <asm/mipsmtregs.h>
46extern void smtc_idle_loop_hook(void);
47#endif /* CONFIG_MIPS_MT_SMTC */
44 48
45/* 49/*
46 * The idle thread. There's no useful work to be done, so just try to conserve 50 * The idle thread. There's no useful work to be done, so just try to conserve
@@ -51,9 +55,13 @@ ATTRIB_NORET void cpu_idle(void)
51{ 55{
52 /* endless idle loop with no priority at all */ 56 /* endless idle loop with no priority at all */
53 while (1) { 57 while (1) {
54 while (!need_resched()) 58 while (!need_resched()) {
59#ifdef CONFIG_MIPS_MT_SMTC
60 smtc_idle_loop_hook();
61#endif /* CONFIG_MIPS_MT_SMTC */
55 if (cpu_wait) 62 if (cpu_wait)
56 (*cpu_wait)(); 63 (*cpu_wait)();
64 }
57 preempt_enable_no_resched(); 65 preempt_enable_no_resched();
58 schedule(); 66 schedule();
59 preempt_disable(); 67 preempt_disable();
@@ -177,6 +185,17 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
177 childregs->cp0_status &= ~(ST0_CU2|ST0_CU1); 185 childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
178 clear_tsk_thread_flag(p, TIF_USEDFPU); 186 clear_tsk_thread_flag(p, TIF_USEDFPU);
179 187
188#ifdef CONFIG_MIPS_MT_FPAFF
189 /*
190 * FPU affinity support is cleaner if we track the
191 * user-visible CPU affinity from the very beginning.
192 * The generic cpus_allowed mask will already have
193 * been copied from the parent before copy_thread
194 * is invoked.
195 */
196 p->thread.user_cpus_allowed = p->cpus_allowed;
197#endif /* CONFIG_MIPS_MT_FPAFF */
198
180 if (clone_flags & CLONE_SETTLS) 199 if (clone_flags & CLONE_SETTLS)
181 ti->tp_value = regs->regs[7]; 200 ti->tp_value = regs->regs[7];
182 201
diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
index f838b36cc765..9b4733c12395 100644
--- a/arch/mips/kernel/ptrace.c
+++ b/arch/mips/kernel/ptrace.c
@@ -248,10 +248,20 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
248 break; 248 break;
249 case FPC_EIR: { /* implementation / version register */ 249 case FPC_EIR: { /* implementation / version register */
250 unsigned int flags; 250 unsigned int flags;
251#ifdef CONFIG_MIPS_MT_SMTC
252 unsigned int irqflags;
253 unsigned int mtflags;
254#endif /* CONFIG_MIPS_MT_SMTC */
251 255
252 if (!cpu_has_fpu) 256 if (!cpu_has_fpu)
253 break; 257 break;
254 258
259#ifdef CONFIG_MIPS_MT_SMTC
260 /* Read-modify-write of Status must be atomic */
261 local_irq_save(irqflags);
262 mtflags = dmt();
263#endif /* CONFIG_MIPS_MT_SMTC */
264
255 preempt_disable(); 265 preempt_disable();
256 if (cpu_has_mipsmt) { 266 if (cpu_has_mipsmt) {
257 unsigned int vpflags = dvpe(); 267 unsigned int vpflags = dvpe();
@@ -266,6 +276,10 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
266 __asm__ __volatile__("cfc1\t%0,$0": "=r" (tmp)); 276 __asm__ __volatile__("cfc1\t%0,$0": "=r" (tmp));
267 write_c0_status(flags); 277 write_c0_status(flags);
268 } 278 }
279#ifdef CONFIG_MIPS_MT_SMTC
280 emt(mtflags);
281 local_irq_restore(irqflags);
282#endif /* CONFIG_MIPS_MT_SMTC */
269 preempt_enable(); 283 preempt_enable();
270 break; 284 break;
271 } 285 }
@@ -469,7 +483,7 @@ static inline int audit_arch(void)
469asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit) 483asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit)
470{ 484{
471 if (unlikely(current->audit_context) && entryexit) 485 if (unlikely(current->audit_context) && entryexit)
472 audit_syscall_exit(current, AUDITSC_RESULT(regs->regs[2]), 486 audit_syscall_exit(AUDITSC_RESULT(regs->regs[2]),
473 regs->regs[2]); 487 regs->regs[2]);
474 488
475 if (!(current->ptrace & PT_PTRACED)) 489 if (!(current->ptrace & PT_PTRACED))
@@ -493,7 +507,7 @@ asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit)
493 } 507 }
494 out: 508 out:
495 if (unlikely(current->audit_context) && !entryexit) 509 if (unlikely(current->audit_context) && !entryexit)
496 audit_syscall_entry(current, audit_arch(), regs->regs[2], 510 audit_syscall_entry(audit_arch(), regs->regs[2],
497 regs->regs[4], regs->regs[5], 511 regs->regs[4], regs->regs[5],
498 regs->regs[6], regs->regs[7]); 512 regs->regs[6], regs->regs[7]);
499} 513}
diff --git a/arch/mips/kernel/ptrace32.c b/arch/mips/kernel/ptrace32.c
index 0d5cf97af727..8704dc0496ea 100644
--- a/arch/mips/kernel/ptrace32.c
+++ b/arch/mips/kernel/ptrace32.c
@@ -173,12 +173,22 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
173 break; 173 break;
174 case FPC_EIR: { /* implementation / version register */ 174 case FPC_EIR: { /* implementation / version register */
175 unsigned int flags; 175 unsigned int flags;
176#ifdef CONFIG_MIPS_MT_SMTC
177 unsigned int irqflags;
178 unsigned int mtflags;
179#endif /* CONFIG_MIPS_MT_SMTC */
176 180
177 if (!cpu_has_fpu) { 181 if (!cpu_has_fpu) {
178 tmp = 0; 182 tmp = 0;
179 break; 183 break;
180 } 184 }
181 185
186#ifdef CONFIG_MIPS_MT_SMTC
187 /* Read-modify-write of Status must be atomic */
188 local_irq_save(irqflags);
189 mtflags = dmt();
190#endif /* CONFIG_MIPS_MT_SMTC */
191
182 preempt_disable(); 192 preempt_disable();
183 if (cpu_has_mipsmt) { 193 if (cpu_has_mipsmt) {
184 unsigned int vpflags = dvpe(); 194 unsigned int vpflags = dvpe();
@@ -193,6 +203,10 @@ asmlinkage int sys32_ptrace(int request, int pid, int addr, int data)
193 __asm__ __volatile__("cfc1\t%0,$0": "=r" (tmp)); 203 __asm__ __volatile__("cfc1\t%0,$0": "=r" (tmp));
194 write_c0_status(flags); 204 write_c0_status(flags);
195 } 205 }
206#ifdef CONFIG_MIPS_MT_SMTC
207 emt(mtflags);
208 local_irq_restore(irqflags);
209#endif /* CONFIG_MIPS_MT_SMTC */
196 preempt_enable(); 210 preempt_enable();
197 break; 211 break;
198 } 212 }
diff --git a/arch/mips/kernel/r4k_switch.S b/arch/mips/kernel/r4k_switch.S
index d2afbd19a9c8..0b1b54acee9f 100644
--- a/arch/mips/kernel/r4k_switch.S
+++ b/arch/mips/kernel/r4k_switch.S
@@ -88,7 +88,18 @@
88 88
89 PTR_ADDIU t0, $28, _THREAD_SIZE - 32 89 PTR_ADDIU t0, $28, _THREAD_SIZE - 32
90 set_saved_sp t0, t1, t2 90 set_saved_sp t0, t1, t2
91 91#ifdef CONFIG_MIPS_MT_SMTC
92 /* Read-modify-writes of Status must be atomic on a VPE */
93 mfc0 t2, CP0_TCSTATUS
94 ori t1, t2, TCSTATUS_IXMT
95 mtc0 t1, CP0_TCSTATUS
96 andi t2, t2, TCSTATUS_IXMT
97 ehb
98 DMT 8 # dmt t0
99 move t1,ra
100 jal mips_ihb
101 move ra,t1
102#endif /* CONFIG_MIPS_MT_SMTC */
92 mfc0 t1, CP0_STATUS /* Do we really need this? */ 103 mfc0 t1, CP0_STATUS /* Do we really need this? */
93 li a3, 0xff01 104 li a3, 0xff01
94 and t1, a3 105 and t1, a3
@@ -97,6 +108,18 @@
97 and a2, a3 108 and a2, a3
98 or a2, t1 109 or a2, t1
99 mtc0 a2, CP0_STATUS 110 mtc0 a2, CP0_STATUS
111#ifdef CONFIG_MIPS_MT_SMTC
112 ehb
113 andi t0, t0, VPECONTROL_TE
114 beqz t0, 1f
115 emt
1161:
117 mfc0 t1, CP0_TCSTATUS
118 xori t1, t1, TCSTATUS_IXMT
119 or t1, t1, t2
120 mtc0 t1, CP0_TCSTATUS
121 ehb
122#endif /* CONFIG_MIPS_MT_SMTC */
100 move v0, a0 123 move v0, a0
101 jr ra 124 jr ra
102 END(resume) 125 END(resume)
@@ -131,10 +154,19 @@ LEAF(_restore_fp)
131#define FPU_DEFAULT 0x00000000 154#define FPU_DEFAULT 0x00000000
132 155
133LEAF(_init_fpu) 156LEAF(_init_fpu)
157#ifdef CONFIG_MIPS_MT_SMTC
158 /* Rather than manipulate per-VPE Status, set per-TC bit in TCStatus */
159 mfc0 t0, CP0_TCSTATUS
160 /* Bit position is the same for Status, TCStatus */
161 li t1, ST0_CU1
162 or t0, t1
163 mtc0 t0, CP0_TCSTATUS
164#else /* Normal MIPS CU1 enable */
134 mfc0 t0, CP0_STATUS 165 mfc0 t0, CP0_STATUS
135 li t1, ST0_CU1 166 li t1, ST0_CU1
136 or t0, t1 167 or t0, t1
137 mtc0 t0, CP0_STATUS 168 mtc0 t0, CP0_STATUS
169#endif /* CONFIG_MIPS_MT_SMTC */
138 fpu_enable_hazard 170 fpu_enable_hazard
139 171
140 li t1, FPU_DEFAULT 172 li t1, FPU_DEFAULT
diff --git a/arch/mips/kernel/rtlx.c b/arch/mips/kernel/rtlx.c
index 986a9cf23067..caf777f83289 100644
--- a/arch/mips/kernel/rtlx.c
+++ b/arch/mips/kernel/rtlx.c
@@ -21,45 +21,44 @@
21#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/fs.h> 22#include <linux/fs.h>
23#include <linux/init.h> 23#include <linux/init.h>
24#include <asm/uaccess.h>
25#include <linux/slab.h>
26#include <linux/list.h>
27#include <linux/vmalloc.h>
28#include <linux/elf.h>
29#include <linux/seq_file.h>
30#include <linux/syscalls.h>
31#include <linux/moduleloader.h>
24#include <linux/interrupt.h> 32#include <linux/interrupt.h>
25#include <linux/irq.h>
26#include <linux/poll.h> 33#include <linux/poll.h>
27#include <linux/sched.h> 34#include <linux/sched.h>
28#include <linux/wait.h> 35#include <linux/wait.h>
29
30#include <asm/mipsmtregs.h> 36#include <asm/mipsmtregs.h>
31#include <asm/bitops.h> 37#include <asm/cacheflush.h>
38#include <asm/atomic.h>
32#include <asm/cpu.h> 39#include <asm/cpu.h>
33#include <asm/processor.h> 40#include <asm/processor.h>
41#include <asm/system.h>
42#include <asm/vpe.h>
34#include <asm/rtlx.h> 43#include <asm/rtlx.h>
35#include <asm/uaccess.h>
36 44
37#define RTLX_TARG_VPE 1 45#define RTLX_TARG_VPE 1
38 46
39static struct rtlx_info *rtlx; 47static struct rtlx_info *rtlx;
40static int major; 48static int major;
41static char module_name[] = "rtlx"; 49static char module_name[] = "rtlx";
42static struct irqaction irq;
43static int irq_num;
44
45static inline int spacefree(int read, int write, int size)
46{
47 if (read == write) {
48 /*
49 * never fill the buffer completely, so indexes are always
50 * equal if empty and only empty, or !equal if data available
51 */
52 return size - 1;
53 }
54
55 return ((read + size - write) % size) - 1;
56}
57 50
58static struct chan_waitqueues { 51static struct chan_waitqueues {
59 wait_queue_head_t rt_queue; 52 wait_queue_head_t rt_queue;
60 wait_queue_head_t lx_queue; 53 wait_queue_head_t lx_queue;
54 int in_open;
61} channel_wqs[RTLX_CHANNELS]; 55} channel_wqs[RTLX_CHANNELS];
62 56
57static struct irqaction irq;
58static int irq_num;
59static struct vpe_notifications notify;
60static int sp_stopping = 0;
61
63extern void *vpe_get_shared(int index); 62extern void *vpe_get_shared(int index);
64 63
65static void rtlx_dispatch(struct pt_regs *regs) 64static void rtlx_dispatch(struct pt_regs *regs)
@@ -67,174 +66,298 @@ static void rtlx_dispatch(struct pt_regs *regs)
67 do_IRQ(MIPSCPU_INT_BASE + MIPS_CPU_RTLX_IRQ, regs); 66 do_IRQ(MIPSCPU_INT_BASE + MIPS_CPU_RTLX_IRQ, regs);
68} 67}
69 68
69
70/* Interrupt handler may be called before rtlx_init has otherwise had
71 a chance to run.
72*/
70static irqreturn_t rtlx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 73static irqreturn_t rtlx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
71{ 74{
72 int i; 75 int i;
73 76
74 for (i = 0; i < RTLX_CHANNELS; i++) { 77 for (i = 0; i < RTLX_CHANNELS; i++) {
75 struct rtlx_channel *chan = &rtlx->channel[i]; 78 wake_up(&channel_wqs[i].lx_queue);
76 79 wake_up(&channel_wqs[i].rt_queue);
77 if (chan->lx_read != chan->lx_write)
78 wake_up_interruptible(&channel_wqs[i].lx_queue);
79 } 80 }
80 81
81 return IRQ_HANDLED; 82 return IRQ_HANDLED;
82} 83}
83 84
84/* call when we have the address of the shared structure from the SP side. */ 85static __attribute_used__ void dump_rtlx(void)
85static int rtlx_init(struct rtlx_info *rtlxi)
86{ 86{
87 int i; 87 int i;
88 88
89 if (rtlxi->id != RTLX_ID) { 89 printk("id 0x%lx state %d\n", rtlx->id, rtlx->state);
90 printk(KERN_WARNING "no valid RTLX id at 0x%p\n", rtlxi);
91 return -ENOEXEC;
92 }
93 90
94 /* initialise the wait queues */
95 for (i = 0; i < RTLX_CHANNELS; i++) { 91 for (i = 0; i < RTLX_CHANNELS; i++) {
96 init_waitqueue_head(&channel_wqs[i].rt_queue); 92 struct rtlx_channel *chan = &rtlx->channel[i];
97 init_waitqueue_head(&channel_wqs[i].lx_queue);
98 }
99 93
100 /* set up for interrupt handling */ 94 printk(" rt_state %d lx_state %d buffer_size %d\n",
101 memset(&irq, 0, sizeof(struct irqaction)); 95 chan->rt_state, chan->lx_state, chan->buffer_size);
102 96
103 if (cpu_has_vint) 97 printk(" rt_read %d rt_write %d\n",
104 set_vi_handler(MIPS_CPU_RTLX_IRQ, rtlx_dispatch); 98 chan->rt_read, chan->rt_write);
99
100 printk(" lx_read %d lx_write %d\n",
101 chan->lx_read, chan->lx_write);
105 102
106 irq_num = MIPSCPU_INT_BASE + MIPS_CPU_RTLX_IRQ; 103 printk(" rt_buffer <%s>\n", chan->rt_buffer);
107 irq.handler = rtlx_interrupt; 104 printk(" lx_buffer <%s>\n", chan->lx_buffer);
108 irq.flags = SA_INTERRUPT; 105 }
109 irq.name = "RTLX"; 106}
110 irq.dev_id = rtlx; 107
111 setup_irq(irq_num, &irq); 108/* call when we have the address of the shared structure from the SP side. */
109static int rtlx_init(struct rtlx_info *rtlxi)
110{
111 if (rtlxi->id != RTLX_ID) {
112 printk(KERN_ERR "no valid RTLX id at 0x%p 0x%x\n", rtlxi, rtlxi->id);
113 return -ENOEXEC;
114 }
112 115
113 rtlx = rtlxi; 116 rtlx = rtlxi;
114 117
115 return 0; 118 return 0;
116} 119}
117 120
118/* only allow one open process at a time to open each channel */ 121/* notifications */
119static int rtlx_open(struct inode *inode, struct file *filp) 122static void starting(int vpe)
123{
124 int i;
125 sp_stopping = 0;
126
127 /* force a reload of rtlx */
128 rtlx=NULL;
129
130 /* wake up any sleeping rtlx_open's */
131 for (i = 0; i < RTLX_CHANNELS; i++)
132 wake_up_interruptible(&channel_wqs[i].lx_queue);
133}
134
135static void stopping(int vpe)
120{ 136{
121 int minor, ret; 137 int i;
138
139 sp_stopping = 1;
140 for (i = 0; i < RTLX_CHANNELS; i++)
141 wake_up_interruptible(&channel_wqs[i].lx_queue);
142}
143
144
145int rtlx_open(int index, int can_sleep)
146{
147 int ret;
122 struct rtlx_channel *chan; 148 struct rtlx_channel *chan;
149 volatile struct rtlx_info **p;
123 150
124 /* assume only 1 device at the mo. */ 151 if (index >= RTLX_CHANNELS) {
125 minor = MINOR(inode->i_rdev); 152 printk(KERN_DEBUG "rtlx_open index out of range\n");
153 return -ENOSYS;
154 }
155
156 if (channel_wqs[index].in_open) {
157 printk(KERN_DEBUG "rtlx_open channel %d already opened\n", index);
158 return -EBUSY;
159 }
160
161 channel_wqs[index].in_open++;
126 162
127 if (rtlx == NULL) { 163 if (rtlx == NULL) {
128 struct rtlx_info **p;
129 if( (p = vpe_get_shared(RTLX_TARG_VPE)) == NULL) { 164 if( (p = vpe_get_shared(RTLX_TARG_VPE)) == NULL) {
130 printk(KERN_ERR "vpe_get_shared is NULL. " 165 if (can_sleep) {
131 "Has an SP program been loaded?\n"); 166 DECLARE_WAITQUEUE(wait, current);
132 return -EFAULT; 167
168 /* go to sleep */
169 add_wait_queue(&channel_wqs[index].lx_queue, &wait);
170
171 set_current_state(TASK_INTERRUPTIBLE);
172 while ((p = vpe_get_shared(RTLX_TARG_VPE)) == NULL) {
173 schedule();
174 set_current_state(TASK_INTERRUPTIBLE);
175 }
176
177 set_current_state(TASK_RUNNING);
178 remove_wait_queue(&channel_wqs[index].lx_queue, &wait);
179
180 /* back running */
181 } else {
182 printk( KERN_DEBUG "No SP program loaded, and device "
183 "opened with O_NONBLOCK\n");
184 channel_wqs[index].in_open = 0;
185 return -ENOSYS;
186 }
133 } 187 }
134 188
135 if (*p == NULL) { 189 if (*p == NULL) {
136 printk(KERN_ERR "vpe_shared %p %p\n", p, *p); 190 if (can_sleep) {
137 return -EFAULT; 191 DECLARE_WAITQUEUE(wait, current);
192
193 /* go to sleep */
194 add_wait_queue(&channel_wqs[index].lx_queue, &wait);
195
196 set_current_state(TASK_INTERRUPTIBLE);
197 while (*p == NULL) {
198 schedule();
199
200 /* reset task state to interruptable otherwise
201 we'll whizz round here like a very fast loopy
202 thing. schedule() appears to return with state
203 set to TASK_RUNNING.
204
205 If the loaded SP program, for whatever reason,
206 doesn't set up the shared structure *p will never
207 become true. So whoever connected to either /dev/rt?
208 or if it was kspd, will then take up rather a lot of
209 processor cycles.
210 */
211
212 set_current_state(TASK_INTERRUPTIBLE);
213 }
214
215 set_current_state(TASK_RUNNING);
216 remove_wait_queue(&channel_wqs[index].lx_queue, &wait);
217
218 /* back running */
219 }
220 else {
221 printk(" *vpe_get_shared is NULL. "
222 "Has an SP program been loaded?\n");
223 channel_wqs[index].in_open = 0;
224 return -ENOSYS;
225 }
138 } 226 }
139 227
140 if ((ret = rtlx_init(*p)) < 0) 228 if ((unsigned int)*p < KSEG0) {
141 return ret; 229 printk(KERN_WARNING "vpe_get_shared returned an invalid pointer "
230 "maybe an error code %d\n", (int)*p);
231 channel_wqs[index].in_open = 0;
232 return -ENOSYS;
233 }
234
235 if ((ret = rtlx_init(*p)) < 0) {
236 channel_wqs[index].in_open = 0;
237 return ret;
238 }
142 } 239 }
143 240
144 chan = &rtlx->channel[minor]; 241 chan = &rtlx->channel[index];
145 242
146 if (test_and_set_bit(RTLX_STATE_OPENED, &chan->lx_state)) 243 if (chan->lx_state == RTLX_STATE_OPENED) {
147 return -EBUSY; 244 channel_wqs[index].in_open = 0;
245 return -EBUSY;
246 }
148 247
248 chan->lx_state = RTLX_STATE_OPENED;
249 channel_wqs[index].in_open = 0;
149 return 0; 250 return 0;
150} 251}
151 252
152static int rtlx_release(struct inode *inode, struct file *filp) 253int rtlx_release(int index)
153{ 254{
154 int minor = MINOR(inode->i_rdev); 255 rtlx->channel[index].lx_state = RTLX_STATE_UNUSED;
155
156 clear_bit(RTLX_STATE_OPENED, &rtlx->channel[minor].lx_state);
157 smp_mb__after_clear_bit();
158
159 return 0; 256 return 0;
160} 257}
161 258
162static unsigned int rtlx_poll(struct file *file, poll_table * wait) 259unsigned int rtlx_read_poll(int index, int can_sleep)
163{ 260{
164 int minor; 261 struct rtlx_channel *chan;
165 unsigned int mask = 0;
166 struct rtlx_channel *chan;
167 262
168 minor = MINOR(file->f_dentry->d_inode->i_rdev); 263 if (rtlx == NULL)
169 chan = &rtlx->channel[minor]; 264 return 0;
170 265
171 poll_wait(file, &channel_wqs[minor].rt_queue, wait); 266 chan = &rtlx->channel[index];
172 poll_wait(file, &channel_wqs[minor].lx_queue, wait);
173 267
174 /* data available to read? */ 268 /* data available to read? */
175 if (chan->lx_read != chan->lx_write) 269 if (chan->lx_read == chan->lx_write) {
176 mask |= POLLIN | POLLRDNORM; 270 if (can_sleep) {
271 DECLARE_WAITQUEUE(wait, current);
177 272
178 /* space to write */ 273 /* go to sleep */
179 if (spacefree(chan->rt_read, chan->rt_write, chan->buffer_size)) 274 add_wait_queue(&channel_wqs[index].lx_queue, &wait);
180 mask |= POLLOUT | POLLWRNORM;
181 275
182 return mask; 276 set_current_state(TASK_INTERRUPTIBLE);
277 while (chan->lx_read == chan->lx_write) {
278 schedule();
279
280 set_current_state(TASK_INTERRUPTIBLE);
281
282 if (sp_stopping) {
283 set_current_state(TASK_RUNNING);
284 remove_wait_queue(&channel_wqs[index].lx_queue, &wait);
285 return 0;
286 }
287 }
288
289 set_current_state(TASK_RUNNING);
290 remove_wait_queue(&channel_wqs[index].lx_queue, &wait);
291
292 /* back running */
293 }
294 else
295 return 0;
296 }
297
298 return (chan->lx_write + chan->buffer_size - chan->lx_read)
299 % chan->buffer_size;
183} 300}
184 301
185static ssize_t rtlx_read(struct file *file, char __user * buffer, size_t count, 302static inline int write_spacefree(int read, int write, int size)
186 loff_t * ppos)
187{ 303{
188 unsigned long failed; 304 if (read == write) {
189 size_t fl = 0L; 305 /*
190 int minor; 306 * Never fill the buffer completely, so indexes are always
191 struct rtlx_channel *lx; 307 * equal if empty and only empty, or !equal if data available
192 DECLARE_WAITQUEUE(wait, current); 308 */
309 return size - 1;
310 }
193 311
194 minor = MINOR(file->f_dentry->d_inode->i_rdev); 312 return ((read + size - write) % size) - 1;
195 lx = &rtlx->channel[minor]; 313}
196 314
197 /* data available? */ 315unsigned int rtlx_write_poll(int index)
198 if (lx->lx_write == lx->lx_read) { 316{
199 if (file->f_flags & O_NONBLOCK) 317 struct rtlx_channel *chan = &rtlx->channel[index];
200 return 0; /* -EAGAIN makes cat whinge */ 318 return write_spacefree(chan->rt_read, chan->rt_write, chan->buffer_size);
319}
201 320
202 /* go to sleep */ 321static inline void copy_to(void *dst, void *src, size_t count, int user)
203 add_wait_queue(&channel_wqs[minor].lx_queue, &wait); 322{
204 set_current_state(TASK_INTERRUPTIBLE); 323 if (user)
324 copy_to_user(dst, src, count);
325 else
326 memcpy(dst, src, count);
327}
205 328
206 while (lx->lx_write == lx->lx_read) 329static inline void copy_from(void *dst, void *src, size_t count, int user)
207 schedule(); 330{
331 if (user)
332 copy_from_user(dst, src, count);
333 else
334 memcpy(dst, src, count);
335}
208 336
209 set_current_state(TASK_RUNNING); 337ssize_t rtlx_read(int index, void *buff, size_t count, int user)
210 remove_wait_queue(&channel_wqs[minor].lx_queue, &wait); 338{
339 size_t fl = 0L;
340 struct rtlx_channel *lx;
211 341
212 /* back running */ 342 if (rtlx == NULL)
213 } 343 return -ENOSYS;
344
345 lx = &rtlx->channel[index];
214 346
215 /* find out how much in total */ 347 /* find out how much in total */
216 count = min(count, 348 count = min(count,
217 (size_t)(lx->lx_write + lx->buffer_size - lx->lx_read) % lx->buffer_size); 349 (size_t)(lx->lx_write + lx->buffer_size - lx->lx_read)
350 % lx->buffer_size);
218 351
219 /* then how much from the read pointer onwards */ 352 /* then how much from the read pointer onwards */
220 fl = min(count, (size_t)lx->buffer_size - lx->lx_read); 353 fl = min( count, (size_t)lx->buffer_size - lx->lx_read);
221 354
222 failed = copy_to_user (buffer, &lx->lx_buffer[lx->lx_read], fl); 355 copy_to(buff, &lx->lx_buffer[lx->lx_read], fl, user);
223 if (failed) {
224 count = fl - failed;
225 goto out;
226 }
227 356
228 /* and if there is anything left at the beginning of the buffer */ 357 /* and if there is anything left at the beginning of the buffer */
229 if (count - fl) { 358 if ( count - fl )
230 failed = copy_to_user (buffer + fl, lx->lx_buffer, count - fl); 359 copy_to (buff + fl, lx->lx_buffer, count - fl, user);
231 if (failed) {
232 count -= failed;
233 goto out;
234 }
235 }
236 360
237out:
238 /* update the index */ 361 /* update the index */
239 lx->lx_read += count; 362 lx->lx_read += count;
240 lx->lx_read %= lx->buffer_size; 363 lx->lx_read %= lx->buffer_size;
@@ -242,20 +365,100 @@ out:
242 return count; 365 return count;
243} 366}
244 367
245static ssize_t rtlx_write(struct file *file, const char __user * buffer, 368ssize_t rtlx_write(int index, void *buffer, size_t count, int user)
369{
370 struct rtlx_channel *rt;
371 size_t fl;
372
373 if (rtlx == NULL)
374 return(-ENOSYS);
375
376 rt = &rtlx->channel[index];
377
378 /* total number of bytes to copy */
379 count = min(count,
380 (size_t)write_spacefree(rt->rt_read, rt->rt_write,
381 rt->buffer_size));
382
383 /* first bit from write pointer to the end of the buffer, or count */
384 fl = min(count, (size_t) rt->buffer_size - rt->rt_write);
385
386 copy_from (&rt->rt_buffer[rt->rt_write], buffer, fl, user);
387
388 /* if there's any left copy to the beginning of the buffer */
389 if( count - fl )
390 copy_from (rt->rt_buffer, buffer + fl, count - fl, user);
391
392 rt->rt_write += count;
393 rt->rt_write %= rt->buffer_size;
394
395 return(count);
396}
397
398
399static int file_open(struct inode *inode, struct file *filp)
400{
401 int minor = iminor(inode);
402
403 return rtlx_open(minor, (filp->f_flags & O_NONBLOCK) ? 0 : 1);
404}
405
406static int file_release(struct inode *inode, struct file *filp)
407{
408 int minor = iminor(inode);
409
410 return rtlx_release(minor);
411}
412
413static unsigned int file_poll(struct file *file, poll_table * wait)
414{
415 int minor;
416 unsigned int mask = 0;
417
418 minor = iminor(file->f_dentry->d_inode);
419
420 poll_wait(file, &channel_wqs[minor].rt_queue, wait);
421 poll_wait(file, &channel_wqs[minor].lx_queue, wait);
422
423 if (rtlx == NULL)
424 return 0;
425
426 /* data available to read? */
427 if (rtlx_read_poll(minor, 0))
428 mask |= POLLIN | POLLRDNORM;
429
430 /* space to write */
431 if (rtlx_write_poll(minor))
432 mask |= POLLOUT | POLLWRNORM;
433
434 return mask;
435}
436
437static ssize_t file_read(struct file *file, char __user * buffer, size_t count,
438 loff_t * ppos)
439{
440 int minor = iminor(file->f_dentry->d_inode);
441
442 /* data available? */
443 if (!rtlx_read_poll(minor, (file->f_flags & O_NONBLOCK) ? 0 : 1)) {
444 return 0; // -EAGAIN makes cat whinge
445 }
446
447 return rtlx_read(minor, buffer, count, 1);
448}
449
450static ssize_t file_write(struct file *file, const char __user * buffer,
246 size_t count, loff_t * ppos) 451 size_t count, loff_t * ppos)
247{ 452{
248 unsigned long failed;
249 int minor; 453 int minor;
250 struct rtlx_channel *rt; 454 struct rtlx_channel *rt;
251 size_t fl;
252 DECLARE_WAITQUEUE(wait, current); 455 DECLARE_WAITQUEUE(wait, current);
253 456
254 minor = MINOR(file->f_dentry->d_inode->i_rdev); 457 minor = iminor(file->f_dentry->d_inode);
255 rt = &rtlx->channel[minor]; 458 rt = &rtlx->channel[minor];
256 459
257 /* any space left... */ 460 /* any space left... */
258 if (!spacefree(rt->rt_read, rt->rt_write, rt->buffer_size)) { 461 if (!rtlx_write_poll(minor)) {
259 462
260 if (file->f_flags & O_NONBLOCK) 463 if (file->f_flags & O_NONBLOCK)
261 return -EAGAIN; 464 return -EAGAIN;
@@ -263,61 +466,64 @@ static ssize_t rtlx_write(struct file *file, const char __user * buffer,
263 add_wait_queue(&channel_wqs[minor].rt_queue, &wait); 466 add_wait_queue(&channel_wqs[minor].rt_queue, &wait);
264 set_current_state(TASK_INTERRUPTIBLE); 467 set_current_state(TASK_INTERRUPTIBLE);
265 468
266 while (!spacefree(rt->rt_read, rt->rt_write, rt->buffer_size)) 469 while (!rtlx_write_poll(minor))
267 schedule(); 470 schedule();
268 471
269 set_current_state(TASK_RUNNING); 472 set_current_state(TASK_RUNNING);
270 remove_wait_queue(&channel_wqs[minor].rt_queue, &wait); 473 remove_wait_queue(&channel_wqs[minor].rt_queue, &wait);
271 } 474 }
272 475
273 /* total number of bytes to copy */ 476 return rtlx_write(minor, (void *)buffer, count, 1);
274 count = min(count, (size_t)spacefree(rt->rt_read, rt->rt_write, rt->buffer_size) );
275
276 /* first bit from write pointer to the end of the buffer, or count */
277 fl = min(count, (size_t) rt->buffer_size - rt->rt_write);
278
279 failed = copy_from_user(&rt->rt_buffer[rt->rt_write], buffer, fl);
280 if (failed) {
281 count = fl - failed;
282 goto out;
283 }
284
285 /* if there's any left copy to the beginning of the buffer */
286 if (count - fl) {
287 failed = copy_from_user(rt->rt_buffer, buffer + fl, count - fl);
288 if (failed) {
289 count -= failed;
290 goto out;
291 }
292 }
293
294out:
295 rt->rt_write += count;
296 rt->rt_write %= rt->buffer_size;
297
298 return count;
299} 477}
300 478
301static struct file_operations rtlx_fops = { 479static struct file_operations rtlx_fops = {
302 .owner = THIS_MODULE, 480 .owner = THIS_MODULE,
303 .open = rtlx_open, 481 .open = file_open,
304 .release = rtlx_release, 482 .release = file_release,
305 .write = rtlx_write, 483 .write = file_write,
306 .read = rtlx_read, 484 .read = file_read,
307 .poll = rtlx_poll 485 .poll = file_poll
486};
487
488static struct irqaction rtlx_irq = {
489 .handler = rtlx_interrupt,
490 .flags = SA_INTERRUPT,
491 .name = "RTLX",
308}; 492};
309 493
494static int rtlx_irq_num = MIPSCPU_INT_BASE + MIPS_CPU_RTLX_IRQ;
495
310static char register_chrdev_failed[] __initdata = 496static char register_chrdev_failed[] __initdata =
311 KERN_ERR "rtlx_module_init: unable to register device\n"; 497 KERN_ERR "rtlx_module_init: unable to register device\n";
312 498
313static int __init rtlx_module_init(void) 499static int rtlx_module_init(void)
314{ 500{
501 int i;
502
315 major = register_chrdev(0, module_name, &rtlx_fops); 503 major = register_chrdev(0, module_name, &rtlx_fops);
316 if (major < 0) { 504 if (major < 0) {
317 printk(register_chrdev_failed); 505 printk(register_chrdev_failed);
318 return major; 506 return major;
319 } 507 }
320 508
509 /* initialise the wait queues */
510 for (i = 0; i < RTLX_CHANNELS; i++) {
511 init_waitqueue_head(&channel_wqs[i].rt_queue);
512 init_waitqueue_head(&channel_wqs[i].lx_queue);
513 channel_wqs[i].in_open = 0;
514 }
515
516 /* set up notifiers */
517 notify.start = starting;
518 notify.stop = stopping;
519 vpe_notify(RTLX_TARG_VPE, &notify);
520
521 if (cpu_has_vint)
522 set_vi_handler(MIPS_CPU_RTLX_IRQ, rtlx_dispatch);
523
524 rtlx_irq.dev_id = rtlx;
525 setup_irq(rtlx_irq_num, &rtlx_irq);
526
321 return 0; 527 return 0;
322} 528}
323 529
@@ -330,5 +536,5 @@ module_init(rtlx_module_init);
330module_exit(rtlx_module_exit); 536module_exit(rtlx_module_exit);
331 537
332MODULE_DESCRIPTION("MIPS RTLX"); 538MODULE_DESCRIPTION("MIPS RTLX");
333MODULE_AUTHOR("Elizabeth Clarke, MIPS Technologies, Inc."); 539MODULE_AUTHOR("Elizabeth Oldham, MIPS Technologies, Inc.");
334MODULE_LICENSE("GPL"); 540MODULE_LICENSE("GPL");
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index 2f2dc54b2e26..a0ac0e5f61ad 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -569,8 +569,19 @@ einval: li v0, -EINVAL
569 sys sys_tkill 2 569 sys sys_tkill 2
570 sys sys_sendfile64 5 570 sys sys_sendfile64 5
571 sys sys_futex 6 571 sys sys_futex 6
572#ifdef CONFIG_MIPS_MT_FPAFF
573 /*
574 * For FPU affinity scheduling on MIPS MT processors, we need to
575 * intercept sys_sched_xxxaffinity() calls until we get a proper hook
576 * in kernel/sched.c. Considered only temporary we only support these
577 * hooks for the 32-bit kernel - there is no MIPS64 MT processor atm.
578 */
579 sys mipsmt_sys_sched_setaffinity 3
580 sys mipsmt_sys_sched_getaffinity 3
581#else
572 sys sys_sched_setaffinity 3 582 sys sys_sched_setaffinity 3
573 sys sys_sched_getaffinity 3 /* 4240 */ 583 sys sys_sched_getaffinity 3 /* 4240 */
584#endif /* CONFIG_MIPS_MT_FPAFF */
574 sys sys_io_setup 2 585 sys sys_io_setup 2
575 sys sys_io_destroy 1 586 sys sys_io_destroy 1
576 sys sys_io_getevents 5 587 sys sys_io_getevents 5
@@ -634,6 +645,8 @@ einval: li v0, -EINVAL
634 sys sys_pselect6 6 645 sys sys_pselect6 6
635 sys sys_ppoll 5 646 sys sys_ppoll 5
636 sys sys_unshare 1 647 sys sys_unshare 1
648 sys sys_splice 4
649 sys sys_sync_file_range 7 /* 4305 */
637 .endm 650 .endm
638 651
639 /* We pre-compute the number of _instruction_ bytes needed to 652 /* We pre-compute the number of _instruction_ bytes needed to
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
index 98bf25df56f3..9ba750887377 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -460,3 +460,5 @@ sys_call_table:
460 PTR sys_pselect6 /* 5260 */ 460 PTR sys_pselect6 /* 5260 */
461 PTR sys_ppoll 461 PTR sys_ppoll
462 PTR sys_unshare 462 PTR sys_unshare
463 PTR sys_splice
464 PTR sys_sync_file_range
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index 05a2c0567dae..942aca26f9c4 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -386,3 +386,5 @@ EXPORT(sysn32_call_table)
386 PTR sys_pselect6 386 PTR sys_pselect6
387 PTR sys_ppoll /* 6265 */ 387 PTR sys_ppoll /* 6265 */
388 PTR sys_unshare 388 PTR sys_unshare
389 PTR sys_splice
390 PTR sys_sync_file_range
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 19c4ca481b02..b53a9207f530 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -508,4 +508,6 @@ sys_call_table:
508 PTR sys_pselect6 508 PTR sys_pselect6
509 PTR sys_ppoll 509 PTR sys_ppoll
510 PTR sys_unshare 510 PTR sys_unshare
511 PTR sys_splice
512 PTR sys32_sync_file_range /* 4305 */
511 .size sys_call_table,.-sys_call_table 513 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index dcbfd27071f0..bcf1b10e518f 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -529,7 +529,10 @@ void __init setup_arch(char **cmdline_p)
529 529
530int __init fpu_disable(char *s) 530int __init fpu_disable(char *s)
531{ 531{
532 cpu_data[0].options &= ~MIPS_CPU_FPU; 532 int i;
533
534 for (i = 0; i < NR_CPUS; i++)
535 cpu_data[i].options &= ~MIPS_CPU_FPU;
533 536
534 return 1; 537 return 1;
535} 538}
diff --git a/arch/mips/kernel/smp_mt.c b/arch/mips/kernel/smp-mt.c
index 993b8bf56aaf..57770902b9ae 100644
--- a/arch/mips/kernel/smp_mt.c
+++ b/arch/mips/kernel/smp-mt.c
@@ -1,8 +1,4 @@
1/* 1/*
2 * Copyright (C) 2004, 2005 MIPS Technologies, Inc. All rights reserved.
3 *
4 * Elizabeth Clarke (beth@mips.com)
5 *
6 * This program is free software; you can distribute it and/or modify it 2 * This program is free software; you can distribute it and/or modify it
7 * under the terms of the GNU General Public License (Version 2) as 3 * under the terms of the GNU General Public License (Version 2) as
8 * published by the Free Software Foundation. 4 * published by the Free Software Foundation.
@@ -16,6 +12,10 @@
16 * with this program; if not, write to the Free Software Foundation, Inc., 12 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 13 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
18 * 14 *
15 * Copyright (C) 2004, 05, 06 MIPS Technologies, Inc.
16 * Elizabeth Clarke (beth@mips.com)
17 * Ralf Baechle (ralf@linux-mips.org)
18 * Copyright (C) 2006 Ralf Baechle (ralf@linux-mips.org)
19 */ 19 */
20#include <linux/kernel.h> 20#include <linux/kernel.h>
21#include <linux/sched.h> 21#include <linux/sched.h>
@@ -24,6 +24,7 @@
24#include <linux/compiler.h> 24#include <linux/compiler.h>
25 25
26#include <asm/atomic.h> 26#include <asm/atomic.h>
27#include <asm/cacheflush.h>
27#include <asm/cpu.h> 28#include <asm/cpu.h>
28#include <asm/processor.h> 29#include <asm/processor.h>
29#include <asm/system.h> 30#include <asm/system.h>
@@ -33,8 +34,8 @@
33#include <asm/time.h> 34#include <asm/time.h>
34#include <asm/mipsregs.h> 35#include <asm/mipsregs.h>
35#include <asm/mipsmtregs.h> 36#include <asm/mipsmtregs.h>
36#include <asm/cacheflush.h> 37#include <asm/mips_mt.h>
37#include <asm/mips-boards/maltaint.h> 38#include <asm/mips-boards/maltaint.h> /* This is f*cking wrong */
38 39
39#define MIPS_CPU_IPI_RESCHED_IRQ 0 40#define MIPS_CPU_IPI_RESCHED_IRQ 0
40#define MIPS_CPU_IPI_CALL_IRQ 1 41#define MIPS_CPU_IPI_CALL_IRQ 1
@@ -66,6 +67,7 @@ void __init sanitize_tlb_entries(void)
66 if (!cpu_has_mipsmt) 67 if (!cpu_has_mipsmt)
67 return; 68 return;
68 69
70 /* Enable VPC */
69 set_c0_mvpcontrol(MVPCONTROL_VPC); 71 set_c0_mvpcontrol(MVPCONTROL_VPC);
70 72
71 back_to_back_c0_hazard(); 73 back_to_back_c0_hazard();
@@ -106,12 +108,12 @@ void __init sanitize_tlb_entries(void)
106 108
107static void ipi_resched_dispatch (struct pt_regs *regs) 109static void ipi_resched_dispatch (struct pt_regs *regs)
108{ 110{
109 do_IRQ(MIPS_CPU_IPI_RESCHED_IRQ, regs); 111 do_IRQ(MIPSCPU_INT_BASE + MIPS_CPU_IPI_RESCHED_IRQ, regs);
110} 112}
111 113
112static void ipi_call_dispatch (struct pt_regs *regs) 114static void ipi_call_dispatch (struct pt_regs *regs)
113{ 115{
114 do_IRQ(MIPS_CPU_IPI_CALL_IRQ, regs); 116 do_IRQ(MIPSCPU_INT_BASE + MIPS_CPU_IPI_CALL_IRQ, regs);
115} 117}
116 118
117irqreturn_t ipi_resched_interrupt(int irq, void *dev_id, struct pt_regs *regs) 119irqreturn_t ipi_resched_interrupt(int irq, void *dev_id, struct pt_regs *regs)
@@ -148,6 +150,11 @@ void plat_smp_setup(void)
148 unsigned long val; 150 unsigned long val;
149 int i, num; 151 int i, num;
150 152
153#ifdef CONFIG_MIPS_MT_FPAFF
154 /* If we have an FPU, enroll ourselves in the FPU-full mask */
155 if (cpu_has_fpu)
156 cpu_set(0, mt_fpu_cpumask);
157#endif /* CONFIG_MIPS_MT_FPAFF */
151 if (!cpu_has_mipsmt) 158 if (!cpu_has_mipsmt)
152 return; 159 return;
153 160
@@ -155,6 +162,8 @@ void plat_smp_setup(void)
155 dvpe(); 162 dvpe();
156 dmt(); 163 dmt();
157 164
165 mips_mt_set_cpuoptions();
166
158 /* Put MVPE's into 'configuration state' */ 167 /* Put MVPE's into 'configuration state' */
159 set_c0_mvpcontrol(MVPCONTROL_VPC); 168 set_c0_mvpcontrol(MVPCONTROL_VPC);
160 169
@@ -189,11 +198,13 @@ void plat_smp_setup(void)
189 198
190 if (i != 0) { 199 if (i != 0) {
191 write_vpe_c0_status((read_c0_status() & ~(ST0_IM | ST0_IE | ST0_KSU)) | ST0_CU0); 200 write_vpe_c0_status((read_c0_status() & ~(ST0_IM | ST0_IE | ST0_KSU)) | ST0_CU0);
192 write_vpe_c0_cause(read_vpe_c0_cause() & ~CAUSEF_IP);
193 201
194 /* set config to be the same as vpe0, particularly kseg0 coherency alg */ 202 /* set config to be the same as vpe0, particularly kseg0 coherency alg */
195 write_vpe_c0_config( read_c0_config()); 203 write_vpe_c0_config( read_c0_config());
196 204
205 /* make sure there are no software interrupts pending */
206 write_vpe_c0_cause(read_vpe_c0_cause() & ~(C_SW1|C_SW0));
207
197 /* Propagate Config7 */ 208 /* Propagate Config7 */
198 write_vpe_c0_config7(read_c0_config7()); 209 write_vpe_c0_config7(read_c0_config7());
199 } 210 }
@@ -233,16 +244,16 @@ void plat_smp_setup(void)
233 /* We'll wait until starting the secondaries before starting MVPE */ 244 /* We'll wait until starting the secondaries before starting MVPE */
234 245
235 printk(KERN_INFO "Detected %i available secondary CPU(s)\n", num); 246 printk(KERN_INFO "Detected %i available secondary CPU(s)\n", num);
247}
236 248
249void __init plat_prepare_cpus(unsigned int max_cpus)
250{
237 /* set up ipi interrupts */ 251 /* set up ipi interrupts */
238 if (cpu_has_vint) { 252 if (cpu_has_vint) {
239 set_vi_handler (MIPS_CPU_IPI_RESCHED_IRQ, ipi_resched_dispatch); 253 set_vi_handler (MIPS_CPU_IPI_RESCHED_IRQ, ipi_resched_dispatch);
240 set_vi_handler (MIPS_CPU_IPI_CALL_IRQ, ipi_call_dispatch); 254 set_vi_handler (MIPS_CPU_IPI_CALL_IRQ, ipi_call_dispatch);
241 } 255 }
242}
243 256
244void __init plat_prepare_cpus(unsigned int max_cpus)
245{
246 cpu_ipi_resched_irq = MIPSCPU_INT_BASE + MIPS_CPU_IPI_RESCHED_IRQ; 257 cpu_ipi_resched_irq = MIPSCPU_INT_BASE + MIPS_CPU_IPI_RESCHED_IRQ;
247 cpu_ipi_call_irq = MIPSCPU_INT_BASE + MIPS_CPU_IPI_CALL_IRQ; 258 cpu_ipi_call_irq = MIPSCPU_INT_BASE + MIPS_CPU_IPI_CALL_IRQ;
248 259
@@ -287,7 +298,8 @@ void prom_boot_secondary(int cpu, struct task_struct *idle)
287 /* global pointer */ 298 /* global pointer */
288 write_tc_gpr_gp((unsigned long)gp); 299 write_tc_gpr_gp((unsigned long)gp);
289 300
290 flush_icache_range((unsigned long)gp, (unsigned long)(gp + 1)); 301 flush_icache_range((unsigned long)gp,
302 (unsigned long)(gp + sizeof(struct thread_info)));
291 303
292 /* finally out of configuration and into chaos */ 304 /* finally out of configuration and into chaos */
293 clear_c0_mvpcontrol(MVPCONTROL_VPC); 305 clear_c0_mvpcontrol(MVPCONTROL_VPC);
@@ -305,6 +317,12 @@ void prom_smp_finish(void)
305{ 317{
306 write_c0_compare(read_c0_count() + (8* mips_hpt_frequency/HZ)); 318 write_c0_compare(read_c0_count() + (8* mips_hpt_frequency/HZ));
307 319
320#ifdef CONFIG_MIPS_MT_FPAFF
321 /* If we have an FPU, enroll ourselves in the FPU-full mask */
322 if (cpu_has_fpu)
323 cpu_set(smp_processor_id(), mt_fpu_cpumask);
324#endif /* CONFIG_MIPS_MT_FPAFF */
325
308 local_irq_enable(); 326 local_irq_enable();
309} 327}
310 328
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index 78d171bfa331..d42f358754ad 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -38,6 +38,10 @@
38#include <asm/mmu_context.h> 38#include <asm/mmu_context.h>
39#include <asm/smp.h> 39#include <asm/smp.h>
40 40
41#ifdef CONFIG_MIPS_MT_SMTC
42#include <asm/mipsmtregs.h>
43#endif /* CONFIG_MIPS_MT_SMTC */
44
41cpumask_t phys_cpu_present_map; /* Bitmask of available CPUs */ 45cpumask_t phys_cpu_present_map; /* Bitmask of available CPUs */
42volatile cpumask_t cpu_callin_map; /* Bitmask of started secondaries */ 46volatile cpumask_t cpu_callin_map; /* Bitmask of started secondaries */
43cpumask_t cpu_online_map; /* Bitmask of currently online CPUs */ 47cpumask_t cpu_online_map; /* Bitmask of currently online CPUs */
@@ -85,6 +89,10 @@ asmlinkage void start_secondary(void)
85{ 89{
86 unsigned int cpu; 90 unsigned int cpu;
87 91
92#ifdef CONFIG_MIPS_MT_SMTC
93 /* Only do cpu_probe for first TC of CPU */
94 if ((read_c0_tcbind() & TCBIND_CURTC) == 0)
95#endif /* CONFIG_MIPS_MT_SMTC */
88 cpu_probe(); 96 cpu_probe();
89 cpu_report(); 97 cpu_report();
90 per_cpu_trap_init(); 98 per_cpu_trap_init();
@@ -179,11 +187,13 @@ int smp_call_function (void (*func) (void *info), void *info, int retry,
179 if (wait) 187 if (wait)
180 while (atomic_read(&data.finished) != cpus) 188 while (atomic_read(&data.finished) != cpus)
181 barrier(); 189 barrier();
190 call_data = NULL;
182 spin_unlock(&smp_call_lock); 191 spin_unlock(&smp_call_lock);
183 192
184 return 0; 193 return 0;
185} 194}
186 195
196
187void smp_call_function_interrupt(void) 197void smp_call_function_interrupt(void)
188{ 198{
189 void (*func) (void *info) = call_data->func; 199 void (*func) (void *info) = call_data->func;
@@ -446,5 +456,3 @@ subsys_initcall(topology_init);
446 456
447EXPORT_SYMBOL(flush_tlb_page); 457EXPORT_SYMBOL(flush_tlb_page);
448EXPORT_SYMBOL(flush_tlb_one); 458EXPORT_SYMBOL(flush_tlb_one);
449EXPORT_SYMBOL(cpu_data);
450EXPORT_SYMBOL(synchronize_irq);
diff --git a/arch/mips/kernel/smtc-asm.S b/arch/mips/kernel/smtc-asm.S
new file mode 100644
index 000000000000..c9d65196d917
--- /dev/null
+++ b/arch/mips/kernel/smtc-asm.S
@@ -0,0 +1,130 @@
1/*
2 * Assembly Language Functions for MIPS MT SMTC support
3 */
4
5/*
6 * This file should be built into the kernel only if CONFIG_MIPS_MT_SMTC is set. */
7
8#include <asm/regdef.h>
9#include <asm/asmmacro.h>
10#include <asm/stackframe.h>
11#include <asm/stackframe.h>
12
13/*
14 * "Software Interrupt" linkage.
15 *
16 * This is invoked when an "Interrupt" is sent from one TC to another,
17 * where the TC to be interrupted is halted, has it's Restart address
18 * and Status values saved by the "remote control" thread, then modified
19 * to cause execution to begin here, in kenel mode. This code then
20 * disguises the TC state as that of an exception and transfers
21 * control to the general exception or vectored interrupt handler.
22 */
23 .set noreorder
24
25/*
26The __smtc_ipi_vector would use k0 and k1 as temporaries and
271) Set EXL (this is per-VPE, so this can't be done by proxy!)
282) Restore the K/CU and IXMT bits to the pre "exception" state
29 (EXL means no interrupts and access to the kernel map).
303) Set EPC to be the saved value of TCRestart.
314) Jump to the exception handler entry point passed by the sender.
32
33CAN WE PROVE THAT WE WON'T DO THIS IF INTS DISABLED??
34*/
35
36/*
37 * Reviled and slandered vision: Set EXL and restore K/CU/IXMT
38 * state of pre-halt thread, then save everything and call
39 * thought some function pointer to imaginary_exception, which
40 * will parse a register value or memory message queue to
41 * deliver things like interprocessor interrupts. On return
42 * from that function, jump to the global ret_from_irq code
43 * to invoke the scheduler and return as appropriate.
44 */
45
46#define PT_PADSLOT4 (PT_R0-8)
47#define PT_PADSLOT5 (PT_R0-4)
48
49 .text
50 .align 5
51FEXPORT(__smtc_ipi_vector)
52 .set noat
53 /* Disable thread scheduling to make Status update atomic */
54 DMT 27 # dmt k1
55 ehb
56 /* Set EXL */
57 mfc0 k0,CP0_STATUS
58 ori k0,k0,ST0_EXL
59 mtc0 k0,CP0_STATUS
60 ehb
61 /* Thread scheduling now inhibited by EXL. Restore TE state. */
62 andi k1,k1,VPECONTROL_TE
63 beqz k1,1f
64 emt
651:
66 /*
67 * The IPI sender has put some information on the anticipated
68 * kernel stack frame. If we were in user mode, this will be
69 * built above the saved kernel SP. If we were already in the
70 * kernel, it will be built above the current CPU SP.
71 *
72 * Were we in kernel mode, as indicated by CU0?
73 */
74 sll k1,k0,3
75 .set noreorder
76 bltz k1,2f
77 move k1,sp
78 .set reorder
79 /*
80 * If previously in user mode, set CU0 and use kernel stack.
81 */
82 li k1,ST0_CU0
83 or k1,k1,k0
84 mtc0 k1,CP0_STATUS
85 ehb
86 get_saved_sp
87 /* Interrupting TC will have pre-set values in slots in the new frame */
882: subu k1,k1,PT_SIZE
89 /* Load TCStatus Value */
90 lw k0,PT_TCSTATUS(k1)
91 /* Write it to TCStatus to restore CU/KSU/IXMT state */
92 mtc0 k0,$2,1
93 ehb
94 lw k0,PT_EPC(k1)
95 mtc0 k0,CP0_EPC
96 /* Save all will redundantly recompute the SP, but use it for now */
97 SAVE_ALL
98 CLI
99 move a0,sp
100 /* Function to be invoked passed stack pad slot 5 */
101 lw t0,PT_PADSLOT5(sp)
102 /* Argument from sender passed in stack pad slot 4 */
103 lw a1,PT_PADSLOT4(sp)
104 jalr t0
105 nop
106 j ret_from_irq
107 nop
108
109/*
110 * Called from idle loop to provoke processing of queued IPIs
111 * First IPI message in queue passed as argument.
112 */
113
114LEAF(self_ipi)
115 /* Before anything else, block interrupts */
116 mfc0 t0,CP0_TCSTATUS
117 ori t1,t0,TCSTATUS_IXMT
118 mtc0 t1,CP0_TCSTATUS
119 ehb
120 /* We know we're in kernel mode, so prepare stack frame */
121 subu t1,sp,PT_SIZE
122 sw ra,PT_EPC(t1)
123 sw a0,PT_PADSLOT4(t1)
124 la t2,ipi_decode
125 sw t2,PT_PADSLOT5(t1)
126 /* Save pre-disable value of TCStatus */
127 sw t0,PT_TCSTATUS(t1)
128 j __smtc_ipi_vector
129 nop
130END(self_ipi)
diff --git a/arch/mips/kernel/smtc-proc.c b/arch/mips/kernel/smtc-proc.c
new file mode 100644
index 000000000000..6f3709996172
--- /dev/null
+++ b/arch/mips/kernel/smtc-proc.c
@@ -0,0 +1,93 @@
1/*
2 * /proc hooks for SMTC kernel
3 * Copyright (C) 2005 Mips Technologies, Inc
4 */
5
6#include <linux/kernel.h>
7#include <linux/sched.h>
8#include <linux/cpumask.h>
9#include <linux/interrupt.h>
10
11#include <asm/cpu.h>
12#include <asm/processor.h>
13#include <asm/atomic.h>
14#include <asm/system.h>
15#include <asm/hardirq.h>
16#include <asm/mmu_context.h>
17#include <asm/smp.h>
18#include <asm/mipsregs.h>
19#include <asm/cacheflush.h>
20#include <linux/proc_fs.h>
21
22#include <asm/smtc_proc.h>
23
24/*
25 * /proc diagnostic and statistics hooks
26 */
27
28/*
29 * Statistics gathered
30 */
31unsigned long selfipis[NR_CPUS];
32
33struct smtc_cpu_proc smtc_cpu_stats[NR_CPUS];
34
35static struct proc_dir_entry *smtc_stats;
36
37atomic_t smtc_fpu_recoveries;
38
39static int proc_read_smtc(char *page, char **start, off_t off,
40 int count, int *eof, void *data)
41{
42 int totalen = 0;
43 int len;
44 int i;
45 extern unsigned long ebase;
46
47 len = sprintf(page, "SMTC Status Word: 0x%08x\n", smtc_status);
48 totalen += len;
49 page += len;
50 len = sprintf(page, "Config7: 0x%08x\n", read_c0_config7());
51 totalen += len;
52 page += len;
53 len = sprintf(page, "EBASE: 0x%08lx\n", ebase);
54 totalen += len;
55 page += len;
56 len = sprintf(page, "Counter Interrupts taken per CPU (TC)\n");
57 totalen += len;
58 page += len;
59 for (i=0; i < NR_CPUS; i++) {
60 len = sprintf(page, "%d: %ld\n", i, smtc_cpu_stats[i].timerints);
61 totalen += len;
62 page += len;
63 }
64 len = sprintf(page, "Self-IPIs by CPU:\n");
65 totalen += len;
66 page += len;
67 for(i = 0; i < NR_CPUS; i++) {
68 len = sprintf(page, "%d: %ld\n", i, smtc_cpu_stats[i].selfipis);
69 totalen += len;
70 page += len;
71 }
72 len = sprintf(page, "%d Recoveries of \"stolen\" FPU\n",
73 atomic_read(&smtc_fpu_recoveries));
74 totalen += len;
75 page += len;
76
77 return totalen;
78}
79
80void init_smtc_stats(void)
81{
82 int i;
83
84 for (i=0; i<NR_CPUS; i++) {
85 smtc_cpu_stats[i].timerints = 0;
86 smtc_cpu_stats[i].selfipis = 0;
87 }
88
89 atomic_set(&smtc_fpu_recoveries, 0);
90
91 smtc_stats = create_proc_read_entry("smtc", 0444, NULL,
92 proc_read_smtc, NULL);
93}
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
new file mode 100644
index 000000000000..2e8e52c135e6
--- /dev/null
+++ b/arch/mips/kernel/smtc.c
@@ -0,0 +1,1322 @@
1/* Copyright (C) 2004 Mips Technologies, Inc */
2
3#include <linux/kernel.h>
4#include <linux/sched.h>
5#include <linux/cpumask.h>
6#include <linux/interrupt.h>
7
8#include <asm/cpu.h>
9#include <asm/processor.h>
10#include <asm/atomic.h>
11#include <asm/system.h>
12#include <asm/hardirq.h>
13#include <asm/hazards.h>
14#include <asm/mmu_context.h>
15#include <asm/smp.h>
16#include <asm/mipsregs.h>
17#include <asm/cacheflush.h>
18#include <asm/time.h>
19#include <asm/addrspace.h>
20#include <asm/smtc.h>
21#include <asm/smtc_ipi.h>
22#include <asm/smtc_proc.h>
23
24/*
25 * This file should be built into the kernel only if CONFIG_MIPS_MT_SMTC is set.
26 */
27
28/*
29 * MIPSCPU_INT_BASE is identically defined in both
30 * asm-mips/mips-boards/maltaint.h and asm-mips/mips-boards/simint.h,
31 * but as yet there's no properly organized include structure that
32 * will ensure that the right *int.h file will be included for a
33 * given platform build.
34 */
35
36#define MIPSCPU_INT_BASE 16
37
38#define MIPS_CPU_IPI_IRQ 1
39
40#define LOCK_MT_PRA() \
41 local_irq_save(flags); \
42 mtflags = dmt()
43
44#define UNLOCK_MT_PRA() \
45 emt(mtflags); \
46 local_irq_restore(flags)
47
48#define LOCK_CORE_PRA() \
49 local_irq_save(flags); \
50 mtflags = dvpe()
51
52#define UNLOCK_CORE_PRA() \
53 evpe(mtflags); \
54 local_irq_restore(flags)
55
56/*
57 * Data structures purely associated with SMTC parallelism
58 */
59
60
61/*
62 * Table for tracking ASIDs whose lifetime is prolonged.
63 */
64
65asiduse smtc_live_asid[MAX_SMTC_TLBS][MAX_SMTC_ASIDS];
66
67/*
68 * Clock interrupt "latch" buffers, per "CPU"
69 */
70
71unsigned int ipi_timer_latch[NR_CPUS];
72
73/*
74 * Number of InterProcessor Interupt (IPI) message buffers to allocate
75 */
76
77#define IPIBUF_PER_CPU 4
78
79struct smtc_ipi_q IPIQ[NR_CPUS];
80struct smtc_ipi_q freeIPIq;
81
82
83/* Forward declarations */
84
85void ipi_decode(struct pt_regs *, struct smtc_ipi *);
86void post_direct_ipi(int cpu, struct smtc_ipi *pipi);
87void setup_cross_vpe_interrupts(void);
88void init_smtc_stats(void);
89
90/* Global SMTC Status */
91
92unsigned int smtc_status = 0;
93
94/* Boot command line configuration overrides */
95
96static int vpelimit = 0;
97static int tclimit = 0;
98static int ipibuffers = 0;
99static int nostlb = 0;
100static int asidmask = 0;
101unsigned long smtc_asid_mask = 0xff;
102
103static int __init maxvpes(char *str)
104{
105 get_option(&str, &vpelimit);
106 return 1;
107}
108
109static int __init maxtcs(char *str)
110{
111 get_option(&str, &tclimit);
112 return 1;
113}
114
115static int __init ipibufs(char *str)
116{
117 get_option(&str, &ipibuffers);
118 return 1;
119}
120
121static int __init stlb_disable(char *s)
122{
123 nostlb = 1;
124 return 1;
125}
126
127static int __init asidmask_set(char *str)
128{
129 get_option(&str, &asidmask);
130 switch(asidmask) {
131 case 0x1:
132 case 0x3:
133 case 0x7:
134 case 0xf:
135 case 0x1f:
136 case 0x3f:
137 case 0x7f:
138 case 0xff:
139 smtc_asid_mask = (unsigned long)asidmask;
140 break;
141 default:
142 printk("ILLEGAL ASID mask 0x%x from command line\n", asidmask);
143 }
144 return 1;
145}
146
147__setup("maxvpes=", maxvpes);
148__setup("maxtcs=", maxtcs);
149__setup("ipibufs=", ipibufs);
150__setup("nostlb", stlb_disable);
151__setup("asidmask=", asidmask_set);
152
153/* Enable additional debug checks before going into CPU idle loop */
154#define SMTC_IDLE_HOOK_DEBUG
155
156#ifdef SMTC_IDLE_HOOK_DEBUG
157
158static int hang_trig = 0;
159
160static int __init hangtrig_enable(char *s)
161{
162 hang_trig = 1;
163 return 1;
164}
165
166
167__setup("hangtrig", hangtrig_enable);
168
169#define DEFAULT_BLOCKED_IPI_LIMIT 32
170
171static int timerq_limit = DEFAULT_BLOCKED_IPI_LIMIT;
172
173static int __init tintq(char *str)
174{
175 get_option(&str, &timerq_limit);
176 return 1;
177}
178
179__setup("tintq=", tintq);
180
181int imstuckcount[2][8];
182/* vpemask represents IM/IE bits of per-VPE Status registers, low-to-high */
183int vpemask[2][8] = {{0,1,1,0,0,0,0,1},{0,1,0,0,0,0,0,1}};
184int tcnoprog[NR_CPUS];
185static atomic_t idle_hook_initialized = {0};
186static int clock_hang_reported[NR_CPUS];
187
188#endif /* SMTC_IDLE_HOOK_DEBUG */
189
190/* Initialize shared TLB - the should probably migrate to smtc_setup_cpus() */
191
192void __init sanitize_tlb_entries(void)
193{
194 printk("Deprecated sanitize_tlb_entries() invoked\n");
195}
196
197
198/*
199 * Configure shared TLB - VPC configuration bit must be set by caller
200 */
201
202void smtc_configure_tlb(void)
203{
204 int i,tlbsiz,vpes;
205 unsigned long mvpconf0;
206 unsigned long config1val;
207
208 /* Set up ASID preservation table */
209 for (vpes=0; vpes<MAX_SMTC_TLBS; vpes++) {
210 for(i = 0; i < MAX_SMTC_ASIDS; i++) {
211 smtc_live_asid[vpes][i] = 0;
212 }
213 }
214 mvpconf0 = read_c0_mvpconf0();
215
216 if ((vpes = ((mvpconf0 & MVPCONF0_PVPE)
217 >> MVPCONF0_PVPE_SHIFT) + 1) > 1) {
218 /* If we have multiple VPEs, try to share the TLB */
219 if ((mvpconf0 & MVPCONF0_TLBS) && !nostlb) {
220 /*
221 * If TLB sizing is programmable, shared TLB
222 * size is the total available complement.
223 * Otherwise, we have to take the sum of all
224 * static VPE TLB entries.
225 */
226 if ((tlbsiz = ((mvpconf0 & MVPCONF0_PTLBE)
227 >> MVPCONF0_PTLBE_SHIFT)) == 0) {
228 /*
229 * If there's more than one VPE, there had better
230 * be more than one TC, because we need one to bind
231 * to each VPE in turn to be able to read
232 * its configuration state!
233 */
234 settc(1);
235 /* Stop the TC from doing anything foolish */
236 write_tc_c0_tchalt(TCHALT_H);
237 mips_ihb();
238 /* No need to un-Halt - that happens later anyway */
239 for (i=0; i < vpes; i++) {
240 write_tc_c0_tcbind(i);
241 /*
242 * To be 100% sure we're really getting the right
243 * information, we exit the configuration state
244 * and do an IHB after each rebinding.
245 */
246 write_c0_mvpcontrol(
247 read_c0_mvpcontrol() & ~ MVPCONTROL_VPC );
248 mips_ihb();
249 /*
250 * Only count if the MMU Type indicated is TLB
251 */
252 if(((read_vpe_c0_config() & MIPS_CONF_MT) >> 7) == 1) {
253 config1val = read_vpe_c0_config1();
254 tlbsiz += ((config1val >> 25) & 0x3f) + 1;
255 }
256
257 /* Put core back in configuration state */
258 write_c0_mvpcontrol(
259 read_c0_mvpcontrol() | MVPCONTROL_VPC );
260 mips_ihb();
261 }
262 }
263 write_c0_mvpcontrol(read_c0_mvpcontrol() | MVPCONTROL_STLB);
264
265 /*
266 * Setup kernel data structures to use software total,
267 * rather than read the per-VPE Config1 value. The values
268 * for "CPU 0" gets copied to all the other CPUs as part
269 * of their initialization in smtc_cpu_setup().
270 */
271
272 tlbsiz = tlbsiz & 0x3f; /* MIPS32 limits TLB indices to 64 */
273 cpu_data[0].tlbsize = tlbsiz;
274 smtc_status |= SMTC_TLB_SHARED;
275
276 printk("TLB of %d entry pairs shared by %d VPEs\n",
277 tlbsiz, vpes);
278 } else {
279 printk("WARNING: TLB Not Sharable on SMTC Boot!\n");
280 }
281 }
282}
283
284
285/*
286 * Incrementally build the CPU map out of constituent MIPS MT cores,
287 * using the specified available VPEs and TCs. Plaform code needs
288 * to ensure that each MIPS MT core invokes this routine on reset,
289 * one at a time(!).
290 *
291 * This version of the build_cpu_map and prepare_cpus routines assumes
292 * that *all* TCs of a MIPS MT core will be used for Linux, and that
293 * they will be spread across *all* available VPEs (to minimise the
294 * loss of efficiency due to exception service serialization).
295 * An improved version would pick up configuration information and
296 * possibly leave some TCs/VPEs as "slave" processors.
297 *
298 * Use c0_MVPConf0 to find out how many TCs are available, setting up
299 * phys_cpu_present_map and the logical/physical mappings.
300 */
301
302int __init mipsmt_build_cpu_map(int start_cpu_slot)
303{
304 int i, ntcs;
305
306 /*
307 * The CPU map isn't actually used for anything at this point,
308 * so it's not clear what else we should do apart from set
309 * everything up so that "logical" = "physical".
310 */
311 ntcs = ((read_c0_mvpconf0() & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1;
312 for (i=start_cpu_slot; i<NR_CPUS && i<ntcs; i++) {
313 cpu_set(i, phys_cpu_present_map);
314 __cpu_number_map[i] = i;
315 __cpu_logical_map[i] = i;
316 }
317 /* Initialize map of CPUs with FPUs */
318 cpus_clear(mt_fpu_cpumask);
319
320 /* One of those TC's is the one booting, and not a secondary... */
321 printk("%i available secondary CPU TC(s)\n", i - 1);
322
323 return i;
324}
325
326/*
327 * Common setup before any secondaries are started
328 * Make sure all CPU's are in a sensible state before we boot any of the
329 * secondaries.
330 *
331 * For MIPS MT "SMTC" operation, we set up all TCs, spread as evenly
332 * as possible across the available VPEs.
333 */
334
335static void smtc_tc_setup(int vpe, int tc, int cpu)
336{
337 settc(tc);
338 write_tc_c0_tchalt(TCHALT_H);
339 mips_ihb();
340 write_tc_c0_tcstatus((read_tc_c0_tcstatus()
341 & ~(TCSTATUS_TKSU | TCSTATUS_DA | TCSTATUS_IXMT))
342 | TCSTATUS_A);
343 write_tc_c0_tccontext(0);
344 /* Bind tc to vpe */
345 write_tc_c0_tcbind(vpe);
346 /* In general, all TCs should have the same cpu_data indications */
347 memcpy(&cpu_data[cpu], &cpu_data[0], sizeof(struct cpuinfo_mips));
348 /* For 34Kf, start with TC/CPU 0 as sole owner of single FPU context */
349 if (cpu_data[0].cputype == CPU_34K)
350 cpu_data[cpu].options &= ~MIPS_CPU_FPU;
351 cpu_data[cpu].vpe_id = vpe;
352 cpu_data[cpu].tc_id = tc;
353}
354
355
356void mipsmt_prepare_cpus(void)
357{
358 int i, vpe, tc, ntc, nvpe, tcpervpe, slop, cpu;
359 unsigned long flags;
360 unsigned long val;
361 int nipi;
362 struct smtc_ipi *pipi;
363
364 /* disable interrupts so we can disable MT */
365 local_irq_save(flags);
366 /* disable MT so we can configure */
367 dvpe();
368 dmt();
369
370 freeIPIq.lock = SPIN_LOCK_UNLOCKED;
371
372 /*
373 * We probably don't have as many VPEs as we do SMP "CPUs",
374 * but it's possible - and in any case we'll never use more!
375 */
376 for (i=0; i<NR_CPUS; i++) {
377 IPIQ[i].head = IPIQ[i].tail = NULL;
378 IPIQ[i].lock = SPIN_LOCK_UNLOCKED;
379 IPIQ[i].depth = 0;
380 ipi_timer_latch[i] = 0;
381 }
382
383 /* cpu_data index starts at zero */
384 cpu = 0;
385 cpu_data[cpu].vpe_id = 0;
386 cpu_data[cpu].tc_id = 0;
387 cpu++;
388
389 /* Report on boot-time options */
390 mips_mt_set_cpuoptions ();
391 if (vpelimit > 0)
392 printk("Limit of %d VPEs set\n", vpelimit);
393 if (tclimit > 0)
394 printk("Limit of %d TCs set\n", tclimit);
395 if (nostlb) {
396 printk("Shared TLB Use Inhibited - UNSAFE for Multi-VPE Operation\n");
397 }
398 if (asidmask)
399 printk("ASID mask value override to 0x%x\n", asidmask);
400
401 /* Temporary */
402#ifdef SMTC_IDLE_HOOK_DEBUG
403 if (hang_trig)
404 printk("Logic Analyser Trigger on suspected TC hang\n");
405#endif /* SMTC_IDLE_HOOK_DEBUG */
406
407 /* Put MVPE's into 'configuration state' */
408 write_c0_mvpcontrol( read_c0_mvpcontrol() | MVPCONTROL_VPC );
409
410 val = read_c0_mvpconf0();
411 nvpe = ((val & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT) + 1;
412 if (vpelimit > 0 && nvpe > vpelimit)
413 nvpe = vpelimit;
414 ntc = ((val & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1;
415 if (ntc > NR_CPUS)
416 ntc = NR_CPUS;
417 if (tclimit > 0 && ntc > tclimit)
418 ntc = tclimit;
419 tcpervpe = ntc / nvpe;
420 slop = ntc % nvpe; /* Residual TCs, < NVPE */
421
422 /* Set up shared TLB */
423 smtc_configure_tlb();
424
425 for (tc = 0, vpe = 0 ; (vpe < nvpe) && (tc < ntc) ; vpe++) {
426 /*
427 * Set the MVP bits.
428 */
429 settc(tc);
430 write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | VPECONF0_MVP);
431 if (vpe != 0)
432 printk(", ");
433 printk("VPE %d: TC", vpe);
434 for (i = 0; i < tcpervpe; i++) {
435 /*
436 * TC 0 is bound to VPE 0 at reset,
437 * and is presumably executing this
438 * code. Leave it alone!
439 */
440 if (tc != 0) {
441 smtc_tc_setup(vpe,tc, cpu);
442 cpu++;
443 }
444 printk(" %d", tc);
445 tc++;
446 }
447 if (slop) {
448 if (tc != 0) {
449 smtc_tc_setup(vpe,tc, cpu);
450 cpu++;
451 }
452 printk(" %d", tc);
453 tc++;
454 slop--;
455 }
456 if (vpe != 0) {
457 /*
458 * Clear any stale software interrupts from VPE's Cause
459 */
460 write_vpe_c0_cause(0);
461
462 /*
463 * Clear ERL/EXL of VPEs other than 0
464 * and set restricted interrupt enable/mask.
465 */
466 write_vpe_c0_status((read_vpe_c0_status()
467 & ~(ST0_BEV | ST0_ERL | ST0_EXL | ST0_IM))
468 | (STATUSF_IP0 | STATUSF_IP1 | STATUSF_IP7
469 | ST0_IE));
470 /*
471 * set config to be the same as vpe0,
472 * particularly kseg0 coherency alg
473 */
474 write_vpe_c0_config(read_c0_config());
475 /* Clear any pending timer interrupt */
476 write_vpe_c0_compare(0);
477 /* Propagate Config7 */
478 write_vpe_c0_config7(read_c0_config7());
479 }
480 /* enable multi-threading within VPE */
481 write_vpe_c0_vpecontrol(read_vpe_c0_vpecontrol() | VPECONTROL_TE);
482 /* enable the VPE */
483 write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | VPECONF0_VPA);
484 }
485
486 /*
487 * Pull any physically present but unused TCs out of circulation.
488 */
489 while (tc < (((val & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1)) {
490 cpu_clear(tc, phys_cpu_present_map);
491 cpu_clear(tc, cpu_present_map);
492 tc++;
493 }
494
495 /* release config state */
496 write_c0_mvpcontrol( read_c0_mvpcontrol() & ~ MVPCONTROL_VPC );
497
498 printk("\n");
499
500 /* Set up coprocessor affinity CPU mask(s) */
501
502 for (tc = 0; tc < ntc; tc++) {
503 if(cpu_data[tc].options & MIPS_CPU_FPU)
504 cpu_set(tc, mt_fpu_cpumask);
505 }
506
507 /* set up ipi interrupts... */
508
509 /* If we have multiple VPEs running, set up the cross-VPE interrupt */
510
511 if (nvpe > 1)
512 setup_cross_vpe_interrupts();
513
514 /* Set up queue of free IPI "messages". */
515 nipi = NR_CPUS * IPIBUF_PER_CPU;
516 if (ipibuffers > 0)
517 nipi = ipibuffers;
518
519 pipi = kmalloc(nipi *sizeof(struct smtc_ipi), GFP_KERNEL);
520 if (pipi == NULL)
521 panic("kmalloc of IPI message buffers failed\n");
522 else
523 printk("IPI buffer pool of %d buffers\n", nipi);
524 for (i = 0; i < nipi; i++) {
525 smtc_ipi_nq(&freeIPIq, pipi);
526 pipi++;
527 }
528
529 /* Arm multithreading and enable other VPEs - but all TCs are Halted */
530 emt(EMT_ENABLE);
531 evpe(EVPE_ENABLE);
532 local_irq_restore(flags);
533 /* Initialize SMTC /proc statistics/diagnostics */
534 init_smtc_stats();
535}
536
537
538/*
539 * Setup the PC, SP, and GP of a secondary processor and start it
540 * running!
541 * smp_bootstrap is the place to resume from
542 * __KSTK_TOS(idle) is apparently the stack pointer
543 * (unsigned long)idle->thread_info the gp
544 *
545 */
546void smtc_boot_secondary(int cpu, struct task_struct *idle)
547{
548 extern u32 kernelsp[NR_CPUS];
549 long flags;
550 int mtflags;
551
552 LOCK_MT_PRA();
553 if (cpu_data[cpu].vpe_id != cpu_data[smp_processor_id()].vpe_id) {
554 dvpe();
555 }
556 settc(cpu_data[cpu].tc_id);
557
558 /* pc */
559 write_tc_c0_tcrestart((unsigned long)&smp_bootstrap);
560
561 /* stack pointer */
562 kernelsp[cpu] = __KSTK_TOS(idle);
563 write_tc_gpr_sp(__KSTK_TOS(idle));
564
565 /* global pointer */
566 write_tc_gpr_gp((unsigned long)idle->thread_info);
567
568 smtc_status |= SMTC_MTC_ACTIVE;
569 write_tc_c0_tchalt(0);
570 if (cpu_data[cpu].vpe_id != cpu_data[smp_processor_id()].vpe_id) {
571 evpe(EVPE_ENABLE);
572 }
573 UNLOCK_MT_PRA();
574}
575
576void smtc_init_secondary(void)
577{
578 /*
579 * Start timer on secondary VPEs if necessary.
580 * mips_timer_setup should already have been invoked by init/main
581 * on "boot" TC. Like per_cpu_trap_init() hack, this assumes that
582 * SMTC init code assigns TCs consdecutively and in ascending order
583 * to across available VPEs.
584 */
585 if(((read_c0_tcbind() & TCBIND_CURTC) != 0)
586 && ((read_c0_tcbind() & TCBIND_CURVPE)
587 != cpu_data[smp_processor_id() - 1].vpe_id)){
588 write_c0_compare (read_c0_count() + mips_hpt_frequency/HZ);
589 }
590
591 local_irq_enable();
592}
593
594void smtc_smp_finish(void)
595{
596 printk("TC %d going on-line as CPU %d\n",
597 cpu_data[smp_processor_id()].tc_id, smp_processor_id());
598}
599
600void smtc_cpus_done(void)
601{
602}
603
604/*
605 * Support for SMTC-optimized driver IRQ registration
606 */
607
608/*
609 * SMTC Kernel needs to manipulate low-level CPU interrupt mask
610 * in do_IRQ. These are passed in setup_irq_smtc() and stored
611 * in this table.
612 */
613
614int setup_irq_smtc(unsigned int irq, struct irqaction * new,
615 unsigned long hwmask)
616{
617 irq_hwmask[irq] = hwmask;
618
619 return setup_irq(irq, new);
620}
621
622/*
623 * IPI model for SMTC is tricky, because interrupts aren't TC-specific.
624 * Within a VPE one TC can interrupt another by different approaches.
625 * The easiest to get right would probably be to make all TCs except
626 * the target IXMT and set a software interrupt, but an IXMT-based
627 * scheme requires that a handler must run before a new IPI could
628 * be sent, which would break the "broadcast" loops in MIPS MT.
629 * A more gonzo approach within a VPE is to halt the TC, extract
630 * its Restart, Status, and a couple of GPRs, and program the Restart
631 * address to emulate an interrupt.
632 *
633 * Within a VPE, one can be confident that the target TC isn't in
634 * a critical EXL state when halted, since the write to the Halt
635 * register could not have issued on the writing thread if the
636 * halting thread had EXL set. So k0 and k1 of the target TC
637 * can be used by the injection code. Across VPEs, one can't
638 * be certain that the target TC isn't in a critical exception
639 * state. So we try a two-step process of sending a software
640 * interrupt to the target VPE, which either handles the event
641 * itself (if it was the target) or injects the event within
642 * the VPE.
643 */
644
645void smtc_ipi_qdump(void)
646{
647 int i;
648
649 for (i = 0; i < NR_CPUS ;i++) {
650 printk("IPIQ[%d]: head = 0x%x, tail = 0x%x, depth = %d\n",
651 i, (unsigned)IPIQ[i].head, (unsigned)IPIQ[i].tail,
652 IPIQ[i].depth);
653 }
654}
655
656/*
657 * The standard atomic.h primitives don't quite do what we want
658 * here: We need an atomic add-and-return-previous-value (which
659 * could be done with atomic_add_return and a decrement) and an
660 * atomic set/zero-and-return-previous-value (which can't really
661 * be done with the atomic.h primitives). And since this is
662 * MIPS MT, we can assume that we have LL/SC.
663 */
664static __inline__ int atomic_postincrement(unsigned int *pv)
665{
666 unsigned long result;
667
668 unsigned long temp;
669
670 __asm__ __volatile__(
671 "1: ll %0, %2 \n"
672 " addu %1, %0, 1 \n"
673 " sc %1, %2 \n"
674 " beqz %1, 1b \n"
675 " sync \n"
676 : "=&r" (result), "=&r" (temp), "=m" (*pv)
677 : "m" (*pv)
678 : "memory");
679
680 return result;
681}
682
683/* No longer used in IPI dispatch, but retained for future recycling */
684
685static __inline__ int atomic_postclear(unsigned int *pv)
686{
687 unsigned long result;
688
689 unsigned long temp;
690
691 __asm__ __volatile__(
692 "1: ll %0, %2 \n"
693 " or %1, $0, $0 \n"
694 " sc %1, %2 \n"
695 " beqz %1, 1b \n"
696 " sync \n"
697 : "=&r" (result), "=&r" (temp), "=m" (*pv)
698 : "m" (*pv)
699 : "memory");
700
701 return result;
702}
703
704
705void smtc_send_ipi(int cpu, int type, unsigned int action)
706{
707 int tcstatus;
708 struct smtc_ipi *pipi;
709 long flags;
710 int mtflags;
711
712 if (cpu == smp_processor_id()) {
713 printk("Cannot Send IPI to self!\n");
714 return;
715 }
716 /* Set up a descriptor, to be delivered either promptly or queued */
717 pipi = smtc_ipi_dq(&freeIPIq);
718 if (pipi == NULL) {
719 bust_spinlocks(1);
720 mips_mt_regdump(dvpe());
721 panic("IPI Msg. Buffers Depleted\n");
722 }
723 pipi->type = type;
724 pipi->arg = (void *)action;
725 pipi->dest = cpu;
726 if (cpu_data[cpu].vpe_id != cpu_data[smp_processor_id()].vpe_id) {
727 /* If not on same VPE, enqueue and send cross-VPE interupt */
728 smtc_ipi_nq(&IPIQ[cpu], pipi);
729 LOCK_CORE_PRA();
730 settc(cpu_data[cpu].tc_id);
731 write_vpe_c0_cause(read_vpe_c0_cause() | C_SW1);
732 UNLOCK_CORE_PRA();
733 } else {
734 /*
735 * Not sufficient to do a LOCK_MT_PRA (dmt) here,
736 * since ASID shootdown on the other VPE may
737 * collide with this operation.
738 */
739 LOCK_CORE_PRA();
740 settc(cpu_data[cpu].tc_id);
741 /* Halt the targeted TC */
742 write_tc_c0_tchalt(TCHALT_H);
743 mips_ihb();
744
745 /*
746 * Inspect TCStatus - if IXMT is set, we have to queue
747 * a message. Otherwise, we set up the "interrupt"
748 * of the other TC
749 */
750 tcstatus = read_tc_c0_tcstatus();
751
752 if ((tcstatus & TCSTATUS_IXMT) != 0) {
753 /*
754 * Spin-waiting here can deadlock,
755 * so we queue the message for the target TC.
756 */
757 write_tc_c0_tchalt(0);
758 UNLOCK_CORE_PRA();
759 /* Try to reduce redundant timer interrupt messages */
760 if(type == SMTC_CLOCK_TICK) {
761 if(atomic_postincrement(&ipi_timer_latch[cpu])!=0) {
762 smtc_ipi_nq(&freeIPIq, pipi);
763 return;
764 }
765 }
766 smtc_ipi_nq(&IPIQ[cpu], pipi);
767 } else {
768 post_direct_ipi(cpu, pipi);
769 write_tc_c0_tchalt(0);
770 UNLOCK_CORE_PRA();
771 }
772 }
773}
774
775/*
776 * Send IPI message to Halted TC, TargTC/TargVPE already having been set
777 */
778void post_direct_ipi(int cpu, struct smtc_ipi *pipi)
779{
780 struct pt_regs *kstack;
781 unsigned long tcstatus;
782 unsigned long tcrestart;
783 extern u32 kernelsp[NR_CPUS];
784 extern void __smtc_ipi_vector(void);
785
786 /* Extract Status, EPC from halted TC */
787 tcstatus = read_tc_c0_tcstatus();
788 tcrestart = read_tc_c0_tcrestart();
789 /* If TCRestart indicates a WAIT instruction, advance the PC */
790 if ((tcrestart & 0x80000000)
791 && ((*(unsigned int *)tcrestart & 0xfe00003f) == 0x42000020)) {
792 tcrestart += 4;
793 }
794 /*
795 * Save on TC's future kernel stack
796 *
797 * CU bit of Status is indicator that TC was
798 * already running on a kernel stack...
799 */
800 if(tcstatus & ST0_CU0) {
801 /* Note that this "- 1" is pointer arithmetic */
802 kstack = ((struct pt_regs *)read_tc_gpr_sp()) - 1;
803 } else {
804 kstack = ((struct pt_regs *)kernelsp[cpu]) - 1;
805 }
806
807 kstack->cp0_epc = (long)tcrestart;
808 /* Save TCStatus */
809 kstack->cp0_tcstatus = tcstatus;
810 /* Pass token of operation to be performed kernel stack pad area */
811 kstack->pad0[4] = (unsigned long)pipi;
812 /* Pass address of function to be called likewise */
813 kstack->pad0[5] = (unsigned long)&ipi_decode;
814 /* Set interrupt exempt and kernel mode */
815 tcstatus |= TCSTATUS_IXMT;
816 tcstatus &= ~TCSTATUS_TKSU;
817 write_tc_c0_tcstatus(tcstatus);
818 ehb();
819 /* Set TC Restart address to be SMTC IPI vector */
820 write_tc_c0_tcrestart(__smtc_ipi_vector);
821}
822
823void ipi_resched_interrupt(struct pt_regs *regs)
824{
825 /* Return from interrupt should be enough to cause scheduler check */
826}
827
828
829void ipi_call_interrupt(struct pt_regs *regs)
830{
831 /* Invoke generic function invocation code in smp.c */
832 smp_call_function_interrupt();
833}
834
835void ipi_decode(struct pt_regs *regs, struct smtc_ipi *pipi)
836{
837 void *arg_copy = pipi->arg;
838 int type_copy = pipi->type;
839 int dest_copy = pipi->dest;
840
841 smtc_ipi_nq(&freeIPIq, pipi);
842 switch (type_copy) {
843 case SMTC_CLOCK_TICK:
844 /* Invoke Clock "Interrupt" */
845 ipi_timer_latch[dest_copy] = 0;
846#ifdef SMTC_IDLE_HOOK_DEBUG
847 clock_hang_reported[dest_copy] = 0;
848#endif /* SMTC_IDLE_HOOK_DEBUG */
849 local_timer_interrupt(0, NULL, regs);
850 break;
851 case LINUX_SMP_IPI:
852 switch ((int)arg_copy) {
853 case SMP_RESCHEDULE_YOURSELF:
854 ipi_resched_interrupt(regs);
855 break;
856 case SMP_CALL_FUNCTION:
857 ipi_call_interrupt(regs);
858 break;
859 default:
860 printk("Impossible SMTC IPI Argument 0x%x\n",
861 (int)arg_copy);
862 break;
863 }
864 break;
865 default:
866 printk("Impossible SMTC IPI Type 0x%x\n", type_copy);
867 break;
868 }
869}
870
871void deferred_smtc_ipi(struct pt_regs *regs)
872{
873 struct smtc_ipi *pipi;
874 unsigned long flags;
875/* DEBUG */
876 int q = smp_processor_id();
877
878 /*
879 * Test is not atomic, but much faster than a dequeue,
880 * and the vast majority of invocations will have a null queue.
881 */
882 if(IPIQ[q].head != NULL) {
883 while((pipi = smtc_ipi_dq(&IPIQ[q])) != NULL) {
884 /* ipi_decode() should be called with interrupts off */
885 local_irq_save(flags);
886 ipi_decode(regs, pipi);
887 local_irq_restore(flags);
888 }
889 }
890}
891
892/*
893 * Send clock tick to all TCs except the one executing the funtion
894 */
895
896void smtc_timer_broadcast(int vpe)
897{
898 int cpu;
899 int myTC = cpu_data[smp_processor_id()].tc_id;
900 int myVPE = cpu_data[smp_processor_id()].vpe_id;
901
902 smtc_cpu_stats[smp_processor_id()].timerints++;
903
904 for_each_online_cpu(cpu) {
905 if (cpu_data[cpu].vpe_id == myVPE &&
906 cpu_data[cpu].tc_id != myTC)
907 smtc_send_ipi(cpu, SMTC_CLOCK_TICK, 0);
908 }
909}
910
911/*
912 * Cross-VPE interrupts in the SMTC prototype use "software interrupts"
913 * set via cross-VPE MTTR manipulation of the Cause register. It would be
914 * in some regards preferable to have external logic for "doorbell" hardware
915 * interrupts.
916 */
917
918static int cpu_ipi_irq = MIPSCPU_INT_BASE + MIPS_CPU_IPI_IRQ;
919
920static irqreturn_t ipi_interrupt(int irq, void *dev_idm, struct pt_regs *regs)
921{
922 int my_vpe = cpu_data[smp_processor_id()].vpe_id;
923 int my_tc = cpu_data[smp_processor_id()].tc_id;
924 int cpu;
925 struct smtc_ipi *pipi;
926 unsigned long tcstatus;
927 int sent;
928 long flags;
929 unsigned int mtflags;
930 unsigned int vpflags;
931
932 /*
933 * So long as cross-VPE interrupts are done via
934 * MFTR/MTTR read-modify-writes of Cause, we need
935 * to stop other VPEs whenever the local VPE does
936 * anything similar.
937 */
938 local_irq_save(flags);
939 vpflags = dvpe();
940 clear_c0_cause(0x100 << MIPS_CPU_IPI_IRQ);
941 set_c0_status(0x100 << MIPS_CPU_IPI_IRQ);
942 irq_enable_hazard();
943 evpe(vpflags);
944 local_irq_restore(flags);
945
946 /*
947 * Cross-VPE Interrupt handler: Try to directly deliver IPIs
948 * queued for TCs on this VPE other than the current one.
949 * Return-from-interrupt should cause us to drain the queue
950 * for the current TC, so we ought not to have to do it explicitly here.
951 */
952
953 for_each_online_cpu(cpu) {
954 if (cpu_data[cpu].vpe_id != my_vpe)
955 continue;
956
957 pipi = smtc_ipi_dq(&IPIQ[cpu]);
958 if (pipi != NULL) {
959 if (cpu_data[cpu].tc_id != my_tc) {
960 sent = 0;
961 LOCK_MT_PRA();
962 settc(cpu_data[cpu].tc_id);
963 write_tc_c0_tchalt(TCHALT_H);
964 mips_ihb();
965 tcstatus = read_tc_c0_tcstatus();
966 if ((tcstatus & TCSTATUS_IXMT) == 0) {
967 post_direct_ipi(cpu, pipi);
968 sent = 1;
969 }
970 write_tc_c0_tchalt(0);
971 UNLOCK_MT_PRA();
972 if (!sent) {
973 smtc_ipi_req(&IPIQ[cpu], pipi);
974 }
975 } else {
976 /*
977 * ipi_decode() should be called
978 * with interrupts off
979 */
980 local_irq_save(flags);
981 ipi_decode(regs, pipi);
982 local_irq_restore(flags);
983 }
984 }
985 }
986
987 return IRQ_HANDLED;
988}
989
990static void ipi_irq_dispatch(struct pt_regs *regs)
991{
992 do_IRQ(cpu_ipi_irq, regs);
993}
994
995static struct irqaction irq_ipi;
996
997void setup_cross_vpe_interrupts(void)
998{
999 if (!cpu_has_vint)
1000 panic("SMTC Kernel requires Vectored Interupt support");
1001
1002 set_vi_handler(MIPS_CPU_IPI_IRQ, ipi_irq_dispatch);
1003
1004 irq_ipi.handler = ipi_interrupt;
1005 irq_ipi.flags = SA_INTERRUPT;
1006 irq_ipi.name = "SMTC_IPI";
1007
1008 setup_irq_smtc(cpu_ipi_irq, &irq_ipi, (0x100 << MIPS_CPU_IPI_IRQ));
1009
1010 irq_desc[cpu_ipi_irq].status |= IRQ_PER_CPU;
1011}
1012
1013/*
1014 * SMTC-specific hacks invoked from elsewhere in the kernel.
1015 */
1016
1017void smtc_idle_loop_hook(void)
1018{
1019#ifdef SMTC_IDLE_HOOK_DEBUG
1020 int im;
1021 int flags;
1022 int mtflags;
1023 int bit;
1024 int vpe;
1025 int tc;
1026 int hook_ntcs;
1027 /*
1028 * printk within DMT-protected regions can deadlock,
1029 * so buffer diagnostic messages for later output.
1030 */
1031 char *pdb_msg;
1032 char id_ho_db_msg[768]; /* worst-case use should be less than 700 */
1033
1034 if (atomic_read(&idle_hook_initialized) == 0) { /* fast test */
1035 if (atomic_add_return(1, &idle_hook_initialized) == 1) {
1036 int mvpconf0;
1037 /* Tedious stuff to just do once */
1038 mvpconf0 = read_c0_mvpconf0();
1039 hook_ntcs = ((mvpconf0 & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1;
1040 if (hook_ntcs > NR_CPUS)
1041 hook_ntcs = NR_CPUS;
1042 for (tc = 0; tc < hook_ntcs; tc++) {
1043 tcnoprog[tc] = 0;
1044 clock_hang_reported[tc] = 0;
1045 }
1046 for (vpe = 0; vpe < 2; vpe++)
1047 for (im = 0; im < 8; im++)
1048 imstuckcount[vpe][im] = 0;
1049 printk("Idle loop test hook initialized for %d TCs\n", hook_ntcs);
1050 atomic_set(&idle_hook_initialized, 1000);
1051 } else {
1052 /* Someone else is initializing in parallel - let 'em finish */
1053 while (atomic_read(&idle_hook_initialized) < 1000)
1054 ;
1055 }
1056 }
1057
1058 /* Have we stupidly left IXMT set somewhere? */
1059 if (read_c0_tcstatus() & 0x400) {
1060 write_c0_tcstatus(read_c0_tcstatus() & ~0x400);
1061 ehb();
1062 printk("Dangling IXMT in cpu_idle()\n");
1063 }
1064
1065 /* Have we stupidly left an IM bit turned off? */
1066#define IM_LIMIT 2000
1067 local_irq_save(flags);
1068 mtflags = dmt();
1069 pdb_msg = &id_ho_db_msg[0];
1070 im = read_c0_status();
1071 vpe = cpu_data[smp_processor_id()].vpe_id;
1072 for (bit = 0; bit < 8; bit++) {
1073 /*
1074 * In current prototype, I/O interrupts
1075 * are masked for VPE > 0
1076 */
1077 if (vpemask[vpe][bit]) {
1078 if (!(im & (0x100 << bit)))
1079 imstuckcount[vpe][bit]++;
1080 else
1081 imstuckcount[vpe][bit] = 0;
1082 if (imstuckcount[vpe][bit] > IM_LIMIT) {
1083 set_c0_status(0x100 << bit);
1084 ehb();
1085 imstuckcount[vpe][bit] = 0;
1086 pdb_msg += sprintf(pdb_msg,
1087 "Dangling IM %d fixed for VPE %d\n", bit,
1088 vpe);
1089 }
1090 }
1091 }
1092
1093 /*
1094 * Now that we limit outstanding timer IPIs, check for hung TC
1095 */
1096 for (tc = 0; tc < NR_CPUS; tc++) {
1097 /* Don't check ourself - we'll dequeue IPIs just below */
1098 if ((tc != smp_processor_id()) &&
1099 ipi_timer_latch[tc] > timerq_limit) {
1100 if (clock_hang_reported[tc] == 0) {
1101 pdb_msg += sprintf(pdb_msg,
1102 "TC %d looks hung with timer latch at %d\n",
1103 tc, ipi_timer_latch[tc]);
1104 clock_hang_reported[tc]++;
1105 }
1106 }
1107 }
1108 emt(mtflags);
1109 local_irq_restore(flags);
1110 if (pdb_msg != &id_ho_db_msg[0])
1111 printk("CPU%d: %s", smp_processor_id(), id_ho_db_msg);
1112#endif /* SMTC_IDLE_HOOK_DEBUG */
1113 /*
1114 * To the extent that we've ever turned interrupts off,
1115 * we may have accumulated deferred IPIs. This is subtle.
1116 * If we use the smtc_ipi_qdepth() macro, we'll get an
1117 * exact number - but we'll also disable interrupts
1118 * and create a window of failure where a new IPI gets
1119 * queued after we test the depth but before we re-enable
1120 * interrupts. So long as IXMT never gets set, however,
1121 * we should be OK: If we pick up something and dispatch
1122 * it here, that's great. If we see nothing, but concurrent
1123 * with this operation, another TC sends us an IPI, IXMT
1124 * is clear, and we'll handle it as a real pseudo-interrupt
1125 * and not a pseudo-pseudo interrupt.
1126 */
1127 if (IPIQ[smp_processor_id()].depth > 0) {
1128 struct smtc_ipi *pipi;
1129 extern void self_ipi(struct smtc_ipi *);
1130
1131 if ((pipi = smtc_ipi_dq(&IPIQ[smp_processor_id()])) != NULL) {
1132 self_ipi(pipi);
1133 smtc_cpu_stats[smp_processor_id()].selfipis++;
1134 }
1135 }
1136}
1137
1138void smtc_soft_dump(void)
1139{
1140 int i;
1141
1142 printk("Counter Interrupts taken per CPU (TC)\n");
1143 for (i=0; i < NR_CPUS; i++) {
1144 printk("%d: %ld\n", i, smtc_cpu_stats[i].timerints);
1145 }
1146 printk("Self-IPI invocations:\n");
1147 for (i=0; i < NR_CPUS; i++) {
1148 printk("%d: %ld\n", i, smtc_cpu_stats[i].selfipis);
1149 }
1150 smtc_ipi_qdump();
1151 printk("Timer IPI Backlogs:\n");
1152 for (i=0; i < NR_CPUS; i++) {
1153 printk("%d: %d\n", i, ipi_timer_latch[i]);
1154 }
1155 printk("%d Recoveries of \"stolen\" FPU\n",
1156 atomic_read(&smtc_fpu_recoveries));
1157}
1158
1159
1160/*
1161 * TLB management routines special to SMTC
1162 */
1163
1164void smtc_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
1165{
1166 unsigned long flags, mtflags, tcstat, prevhalt, asid;
1167 int tlb, i;
1168
1169 /*
1170 * It would be nice to be able to use a spinlock here,
1171 * but this is invoked from within TLB flush routines
1172 * that protect themselves with DVPE, so if a lock is
1173 * held by another TC, it'll never be freed.
1174 *
1175 * DVPE/DMT must not be done with interrupts enabled,
1176 * so even so most callers will already have disabled
1177 * them, let's be really careful...
1178 */
1179
1180 local_irq_save(flags);
1181 if (smtc_status & SMTC_TLB_SHARED) {
1182 mtflags = dvpe();
1183 tlb = 0;
1184 } else {
1185 mtflags = dmt();
1186 tlb = cpu_data[cpu].vpe_id;
1187 }
1188 asid = asid_cache(cpu);
1189
1190 do {
1191 if (!((asid += ASID_INC) & ASID_MASK) ) {
1192 if (cpu_has_vtag_icache)
1193 flush_icache_all();
1194 /* Traverse all online CPUs (hack requires contigous range) */
1195 for (i = 0; i < num_online_cpus(); i++) {
1196 /*
1197 * We don't need to worry about our own CPU, nor those of
1198 * CPUs who don't share our TLB.
1199 */
1200 if ((i != smp_processor_id()) &&
1201 ((smtc_status & SMTC_TLB_SHARED) ||
1202 (cpu_data[i].vpe_id == cpu_data[cpu].vpe_id))) {
1203 settc(cpu_data[i].tc_id);
1204 prevhalt = read_tc_c0_tchalt() & TCHALT_H;
1205 if (!prevhalt) {
1206 write_tc_c0_tchalt(TCHALT_H);
1207 mips_ihb();
1208 }
1209 tcstat = read_tc_c0_tcstatus();
1210 smtc_live_asid[tlb][(tcstat & ASID_MASK)] |= (asiduse)(0x1 << i);
1211 if (!prevhalt)
1212 write_tc_c0_tchalt(0);
1213 }
1214 }
1215 if (!asid) /* fix version if needed */
1216 asid = ASID_FIRST_VERSION;
1217 local_flush_tlb_all(); /* start new asid cycle */
1218 }
1219 } while (smtc_live_asid[tlb][(asid & ASID_MASK)]);
1220
1221 /*
1222 * SMTC shares the TLB within VPEs and possibly across all VPEs.
1223 */
1224 for (i = 0; i < num_online_cpus(); i++) {
1225 if ((smtc_status & SMTC_TLB_SHARED) ||
1226 (cpu_data[i].vpe_id == cpu_data[cpu].vpe_id))
1227 cpu_context(i, mm) = asid_cache(i) = asid;
1228 }
1229
1230 if (smtc_status & SMTC_TLB_SHARED)
1231 evpe(mtflags);
1232 else
1233 emt(mtflags);
1234 local_irq_restore(flags);
1235}
1236
1237/*
1238 * Invoked from macros defined in mmu_context.h
1239 * which must already have disabled interrupts
1240 * and done a DVPE or DMT as appropriate.
1241 */
1242
1243void smtc_flush_tlb_asid(unsigned long asid)
1244{
1245 int entry;
1246 unsigned long ehi;
1247
1248 entry = read_c0_wired();
1249
1250 /* Traverse all non-wired entries */
1251 while (entry < current_cpu_data.tlbsize) {
1252 write_c0_index(entry);
1253 ehb();
1254 tlb_read();
1255 ehb();
1256 ehi = read_c0_entryhi();
1257 if((ehi & ASID_MASK) == asid) {
1258 /*
1259 * Invalidate only entries with specified ASID,
1260 * makiing sure all entries differ.
1261 */
1262 write_c0_entryhi(CKSEG0 + (entry << (PAGE_SHIFT + 1)));
1263 write_c0_entrylo0(0);
1264 write_c0_entrylo1(0);
1265 mtc0_tlbw_hazard();
1266 tlb_write_indexed();
1267 }
1268 entry++;
1269 }
1270 write_c0_index(PARKED_INDEX);
1271 tlbw_use_hazard();
1272}
1273
1274/*
1275 * Support for single-threading cache flush operations.
1276 */
1277
1278int halt_state_save[NR_CPUS];
1279
1280/*
1281 * To really, really be sure that nothing is being done
1282 * by other TCs, halt them all. This code assumes that
1283 * a DVPE has already been done, so while their Halted
1284 * state is theoretically architecturally unstable, in
1285 * practice, it's not going to change while we're looking
1286 * at it.
1287 */
1288
1289void smtc_cflush_lockdown(void)
1290{
1291 int cpu;
1292
1293 for_each_online_cpu(cpu) {
1294 if (cpu != smp_processor_id()) {
1295 settc(cpu_data[cpu].tc_id);
1296 halt_state_save[cpu] = read_tc_c0_tchalt();
1297 write_tc_c0_tchalt(TCHALT_H);
1298 }
1299 }
1300 mips_ihb();
1301}
1302
1303/* It would be cheating to change the cpu_online states during a flush! */
1304
1305void smtc_cflush_release(void)
1306{
1307 int cpu;
1308
1309 /*
1310 * Start with a hazard barrier to ensure
1311 * that all CACHE ops have played through.
1312 */
1313 mips_ihb();
1314
1315 for_each_online_cpu(cpu) {
1316 if (cpu != smp_processor_id()) {
1317 settc(cpu_data[cpu].tc_id);
1318 write_tc_c0_tchalt(halt_state_save[cpu]);
1319 }
1320 }
1321 mips_ihb();
1322}
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index 5e51a2d8f3f0..13ff4da598cd 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -116,8 +116,7 @@ static void c0_timer_ack(void)
116 write_c0_compare(expirelo); 116 write_c0_compare(expirelo);
117 117
118 /* Check to see if we have missed any timer interrupts. */ 118 /* Check to see if we have missed any timer interrupts. */
119 count = read_c0_count(); 119 while (((count = read_c0_count()) - expirelo) < 0x7fffffff) {
120 if ((count - expirelo) < 0x7fffffff) {
121 /* missed_timer_count++; */ 120 /* missed_timer_count++; */
122 expirelo = count + cycles_per_jiffy; 121 expirelo = count + cycles_per_jiffy;
123 write_c0_compare(expirelo); 122 write_c0_compare(expirelo);
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index bed0eb6cf55d..4901f0a37fca 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -42,6 +42,7 @@
42#include <asm/watch.h> 42#include <asm/watch.h>
43#include <asm/types.h> 43#include <asm/types.h>
44 44
45extern asmlinkage void handle_int(void);
45extern asmlinkage void handle_tlbm(void); 46extern asmlinkage void handle_tlbm(void);
46extern asmlinkage void handle_tlbl(void); 47extern asmlinkage void handle_tlbl(void);
47extern asmlinkage void handle_tlbs(void); 48extern asmlinkage void handle_tlbs(void);
@@ -279,9 +280,16 @@ static DEFINE_SPINLOCK(die_lock);
279NORET_TYPE void ATTRIB_NORET die(const char * str, struct pt_regs * regs) 280NORET_TYPE void ATTRIB_NORET die(const char * str, struct pt_regs * regs)
280{ 281{
281 static int die_counter; 282 static int die_counter;
283#ifdef CONFIG_MIPS_MT_SMTC
284 unsigned long dvpret = dvpe();
285#endif /* CONFIG_MIPS_MT_SMTC */
282 286
283 console_verbose(); 287 console_verbose();
284 spin_lock_irq(&die_lock); 288 spin_lock_irq(&die_lock);
289 bust_spinlocks(1);
290#ifdef CONFIG_MIPS_MT_SMTC
291 mips_mt_regdump(dvpret);
292#endif /* CONFIG_MIPS_MT_SMTC */
285 printk("%s[#%d]:\n", str, ++die_counter); 293 printk("%s[#%d]:\n", str, ++die_counter);
286 show_registers(regs); 294 show_registers(regs);
287 spin_unlock_irq(&die_lock); 295 spin_unlock_irq(&die_lock);
@@ -750,12 +758,43 @@ asmlinkage void do_cpu(struct pt_regs *regs)
750 &current->thread.fpu.soft); 758 &current->thread.fpu.soft);
751 if (sig) 759 if (sig)
752 force_sig(sig, current); 760 force_sig(sig, current);
761#ifdef CONFIG_MIPS_MT_FPAFF
762 else {
763 /*
764 * MIPS MT processors may have fewer FPU contexts
765 * than CPU threads. If we've emulated more than
766 * some threshold number of instructions, force
767 * migration to a "CPU" that has FP support.
768 */
769 if(mt_fpemul_threshold > 0
770 && ((current->thread.emulated_fp++
771 > mt_fpemul_threshold))) {
772 /*
773 * If there's no FPU present, or if the
774 * application has already restricted
775 * the allowed set to exclude any CPUs
776 * with FPUs, we'll skip the procedure.
777 */
778 if (cpus_intersects(current->cpus_allowed,
779 mt_fpu_cpumask)) {
780 cpumask_t tmask;
781
782 cpus_and(tmask,
783 current->thread.user_cpus_allowed,
784 mt_fpu_cpumask);
785 set_cpus_allowed(current, tmask);
786 current->thread.mflags |= MF_FPUBOUND;
787 }
788 }
789 }
790#endif /* CONFIG_MIPS_MT_FPAFF */
753 } 791 }
754 792
755 return; 793 return;
756 794
757 case 2: 795 case 2:
758 case 3: 796 case 3:
797 die_if_kernel("do_cpu invoked from kernel context!", regs);
759 break; 798 break;
760 } 799 }
761 800
@@ -793,6 +832,36 @@ asmlinkage void do_mcheck(struct pt_regs *regs)
793 832
794asmlinkage void do_mt(struct pt_regs *regs) 833asmlinkage void do_mt(struct pt_regs *regs)
795{ 834{
835 int subcode;
836
837 die_if_kernel("MIPS MT Thread exception in kernel", regs);
838
839 subcode = (read_vpe_c0_vpecontrol() & VPECONTROL_EXCPT)
840 >> VPECONTROL_EXCPT_SHIFT;
841 switch (subcode) {
842 case 0:
843 printk(KERN_ERR "Thread Underflow\n");
844 break;
845 case 1:
846 printk(KERN_ERR "Thread Overflow\n");
847 break;
848 case 2:
849 printk(KERN_ERR "Invalid YIELD Qualifier\n");
850 break;
851 case 3:
852 printk(KERN_ERR "Gating Storage Exception\n");
853 break;
854 case 4:
855 printk(KERN_ERR "YIELD Scheduler Exception\n");
856 break;
857 case 5:
858 printk(KERN_ERR "Gating Storage Schedulier Exception\n");
859 break;
860 default:
861 printk(KERN_ERR "*** UNKNOWN THREAD EXCEPTION %d ***\n",
862 subcode);
863 break;
864 }
796 die_if_kernel("MIPS MT Thread exception in kernel", regs); 865 die_if_kernel("MIPS MT Thread exception in kernel", regs);
797 866
798 force_sig(SIGILL, current); 867 force_sig(SIGILL, current);
@@ -928,7 +997,15 @@ void ejtag_exception_handler(struct pt_regs *regs)
928 */ 997 */
929void nmi_exception_handler(struct pt_regs *regs) 998void nmi_exception_handler(struct pt_regs *regs)
930{ 999{
1000#ifdef CONFIG_MIPS_MT_SMTC
1001 unsigned long dvpret = dvpe();
1002 bust_spinlocks(1);
1003 printk("NMI taken!!!!\n");
1004 mips_mt_regdump(dvpret);
1005#else
1006 bust_spinlocks(1);
931 printk("NMI taken!!!!\n"); 1007 printk("NMI taken!!!!\n");
1008#endif /* CONFIG_MIPS_MT_SMTC */
932 die("NMI", regs); 1009 die("NMI", regs);
933 while(1) ; 1010 while(1) ;
934} 1011}
@@ -960,27 +1037,29 @@ void *set_except_vector(int n, void *addr)
960 1037
961#ifdef CONFIG_CPU_MIPSR2 1038#ifdef CONFIG_CPU_MIPSR2
962/* 1039/*
963 * Shadow register allocation 1040 * MIPSR2 shadow register set allocation
964 * FIXME: SMP... 1041 * FIXME: SMP...
965 */ 1042 */
966 1043
967/* MIPSR2 shadow register sets */ 1044static struct shadow_registers {
968struct shadow_registers { 1045 /*
969 spinlock_t sr_lock; /* */ 1046 * Number of shadow register sets supported
970 int sr_supported; /* Number of shadow register sets supported */ 1047 */
971 int sr_allocated; /* Bitmap of allocated shadow registers */ 1048 unsigned long sr_supported;
1049 /*
1050 * Bitmap of allocated shadow registers
1051 */
1052 unsigned long sr_allocated;
972} shadow_registers; 1053} shadow_registers;
973 1054
974void mips_srs_init(void) 1055static void mips_srs_init(void)
975{ 1056{
976#ifdef CONFIG_CPU_MIPSR2_SRS 1057#ifdef CONFIG_CPU_MIPSR2_SRS
977 shadow_registers.sr_supported = ((read_c0_srsctl() >> 26) & 0x0f) + 1; 1058 shadow_registers.sr_supported = ((read_c0_srsctl() >> 26) & 0x0f) + 1;
978 printk ("%d MIPSR2 register sets available\n", shadow_registers.sr_supported); 1059 printk(KERN_INFO "%d MIPSR2 register sets available\n",
979#else 1060 shadow_registers.sr_supported);
980 shadow_registers.sr_supported = 1;
981#endif 1061#endif
982 shadow_registers.sr_allocated = 1; /* Set 0 used by kernel */ 1062 shadow_registers.sr_allocated = 1; /* Set 0 used by kernel */
983 spin_lock_init(&shadow_registers.sr_lock);
984} 1063}
985 1064
986int mips_srs_max(void) 1065int mips_srs_max(void)
@@ -988,38 +1067,30 @@ int mips_srs_max(void)
988 return shadow_registers.sr_supported; 1067 return shadow_registers.sr_supported;
989} 1068}
990 1069
991int mips_srs_alloc (void) 1070int mips_srs_alloc(void)
992{ 1071{
993 struct shadow_registers *sr = &shadow_registers; 1072 struct shadow_registers *sr = &shadow_registers;
994 unsigned long flags;
995 int set; 1073 int set;
996 1074
997 spin_lock_irqsave(&sr->sr_lock, flags); 1075again:
1076 set = find_first_zero_bit(&sr->sr_allocated, sr->sr_supported);
1077 if (set >= sr->sr_supported)
1078 return -1;
998 1079
999 for (set = 0; set < sr->sr_supported; set++) { 1080 if (test_and_set_bit(set, &sr->sr_allocated))
1000 if ((sr->sr_allocated & (1 << set)) == 0) { 1081 goto again;
1001 sr->sr_allocated |= 1 << set;
1002 spin_unlock_irqrestore(&sr->sr_lock, flags);
1003 return set;
1004 }
1005 }
1006 1082
1007 /* None available */ 1083 return set;
1008 spin_unlock_irqrestore(&sr->sr_lock, flags);
1009 return -1;
1010} 1084}
1011 1085
1012void mips_srs_free (int set) 1086void mips_srs_free(int set)
1013{ 1087{
1014 struct shadow_registers *sr = &shadow_registers; 1088 struct shadow_registers *sr = &shadow_registers;
1015 unsigned long flags;
1016 1089
1017 spin_lock_irqsave(&sr->sr_lock, flags); 1090 clear_bit(set, &sr->sr_allocated);
1018 sr->sr_allocated &= ~(1 << set);
1019 spin_unlock_irqrestore(&sr->sr_lock, flags);
1020} 1091}
1021 1092
1022void *set_vi_srs_handler (int n, void *addr, int srs) 1093static void *set_vi_srs_handler(int n, void *addr, int srs)
1023{ 1094{
1024 unsigned long handler; 1095 unsigned long handler;
1025 unsigned long old_handler = vi_handlers[n]; 1096 unsigned long old_handler = vi_handlers[n];
@@ -1032,8 +1103,7 @@ void *set_vi_srs_handler (int n, void *addr, int srs)
1032 if (addr == NULL) { 1103 if (addr == NULL) {
1033 handler = (unsigned long) do_default_vi; 1104 handler = (unsigned long) do_default_vi;
1034 srs = 0; 1105 srs = 0;
1035 } 1106 } else
1036 else
1037 handler = (unsigned long) addr; 1107 handler = (unsigned long) addr;
1038 vi_handlers[n] = (unsigned long) addr; 1108 vi_handlers[n] = (unsigned long) addr;
1039 1109
@@ -1045,8 +1115,7 @@ void *set_vi_srs_handler (int n, void *addr, int srs)
1045 if (cpu_has_veic) { 1115 if (cpu_has_veic) {
1046 if (board_bind_eic_interrupt) 1116 if (board_bind_eic_interrupt)
1047 board_bind_eic_interrupt (n, srs); 1117 board_bind_eic_interrupt (n, srs);
1048 } 1118 } else if (cpu_has_vint) {
1049 else if (cpu_has_vint) {
1050 /* SRSMap is only defined if shadow sets are implemented */ 1119 /* SRSMap is only defined if shadow sets are implemented */
1051 if (mips_srs_max() > 1) 1120 if (mips_srs_max() > 1)
1052 change_c0_srsmap (0xf << n*4, srs << n*4); 1121 change_c0_srsmap (0xf << n*4, srs << n*4);
@@ -1060,6 +1129,15 @@ void *set_vi_srs_handler (int n, void *addr, int srs)
1060 1129
1061 extern char except_vec_vi, except_vec_vi_lui; 1130 extern char except_vec_vi, except_vec_vi_lui;
1062 extern char except_vec_vi_ori, except_vec_vi_end; 1131 extern char except_vec_vi_ori, except_vec_vi_end;
1132#ifdef CONFIG_MIPS_MT_SMTC
1133 /*
1134 * We need to provide the SMTC vectored interrupt handler
1135 * not only with the address of the handler, but with the
1136 * Status.IM bit to be masked before going there.
1137 */
1138 extern char except_vec_vi_mori;
1139 const int mori_offset = &except_vec_vi_mori - &except_vec_vi;
1140#endif /* CONFIG_MIPS_MT_SMTC */
1063 const int handler_len = &except_vec_vi_end - &except_vec_vi; 1141 const int handler_len = &except_vec_vi_end - &except_vec_vi;
1064 const int lui_offset = &except_vec_vi_lui - &except_vec_vi; 1142 const int lui_offset = &except_vec_vi_lui - &except_vec_vi;
1065 const int ori_offset = &except_vec_vi_ori - &except_vec_vi; 1143 const int ori_offset = &except_vec_vi_ori - &except_vec_vi;
@@ -1073,6 +1151,12 @@ void *set_vi_srs_handler (int n, void *addr, int srs)
1073 } 1151 }
1074 1152
1075 memcpy (b, &except_vec_vi, handler_len); 1153 memcpy (b, &except_vec_vi, handler_len);
1154#ifdef CONFIG_MIPS_MT_SMTC
1155 if (n > 7)
1156 printk("Vector index %d exceeds SMTC maximum\n", n);
1157 w = (u32 *)(b + mori_offset);
1158 *w = (*w & 0xffff0000) | (0x100 << n);
1159#endif /* CONFIG_MIPS_MT_SMTC */
1076 w = (u32 *)(b + lui_offset); 1160 w = (u32 *)(b + lui_offset);
1077 *w = (*w & 0xffff0000) | (((u32)handler >> 16) & 0xffff); 1161 *w = (*w & 0xffff0000) | (((u32)handler >> 16) & 0xffff);
1078 w = (u32 *)(b + ori_offset); 1162 w = (u32 *)(b + ori_offset);
@@ -1095,9 +1179,9 @@ void *set_vi_srs_handler (int n, void *addr, int srs)
1095 return (void *)old_handler; 1179 return (void *)old_handler;
1096} 1180}
1097 1181
1098void *set_vi_handler (int n, void *addr) 1182void *set_vi_handler(int n, void *addr)
1099{ 1183{
1100 return set_vi_srs_handler (n, addr, 0); 1184 return set_vi_srs_handler(n, addr, 0);
1101} 1185}
1102#endif 1186#endif
1103 1187
@@ -1113,8 +1197,29 @@ extern asmlinkage int _restore_fp_context(struct sigcontext *sc);
1113extern asmlinkage int fpu_emulator_save_context(struct sigcontext *sc); 1197extern asmlinkage int fpu_emulator_save_context(struct sigcontext *sc);
1114extern asmlinkage int fpu_emulator_restore_context(struct sigcontext *sc); 1198extern asmlinkage int fpu_emulator_restore_context(struct sigcontext *sc);
1115 1199
1200#ifdef CONFIG_SMP
1201static int smp_save_fp_context(struct sigcontext *sc)
1202{
1203 return cpu_has_fpu
1204 ? _save_fp_context(sc)
1205 : fpu_emulator_save_context(sc);
1206}
1207
1208static int smp_restore_fp_context(struct sigcontext *sc)
1209{
1210 return cpu_has_fpu
1211 ? _restore_fp_context(sc)
1212 : fpu_emulator_restore_context(sc);
1213}
1214#endif
1215
1116static inline void signal_init(void) 1216static inline void signal_init(void)
1117{ 1217{
1218#ifdef CONFIG_SMP
1219 /* For now just do the cpu_has_fpu check when the functions are invoked */
1220 save_fp_context = smp_save_fp_context;
1221 restore_fp_context = smp_restore_fp_context;
1222#else
1118 if (cpu_has_fpu) { 1223 if (cpu_has_fpu) {
1119 save_fp_context = _save_fp_context; 1224 save_fp_context = _save_fp_context;
1120 restore_fp_context = _restore_fp_context; 1225 restore_fp_context = _restore_fp_context;
@@ -1122,6 +1227,7 @@ static inline void signal_init(void)
1122 save_fp_context = fpu_emulator_save_context; 1227 save_fp_context = fpu_emulator_save_context;
1123 restore_fp_context = fpu_emulator_restore_context; 1228 restore_fp_context = fpu_emulator_restore_context;
1124 } 1229 }
1230#endif
1125} 1231}
1126 1232
1127#ifdef CONFIG_MIPS32_COMPAT 1233#ifdef CONFIG_MIPS32_COMPAT
@@ -1158,6 +1264,20 @@ void __init per_cpu_trap_init(void)
1158{ 1264{
1159 unsigned int cpu = smp_processor_id(); 1265 unsigned int cpu = smp_processor_id();
1160 unsigned int status_set = ST0_CU0; 1266 unsigned int status_set = ST0_CU0;
1267#ifdef CONFIG_MIPS_MT_SMTC
1268 int secondaryTC = 0;
1269 int bootTC = (cpu == 0);
1270
1271 /*
1272 * Only do per_cpu_trap_init() for first TC of Each VPE.
1273 * Note that this hack assumes that the SMTC init code
1274 * assigns TCs consecutively and in ascending order.
1275 */
1276
1277 if (((read_c0_tcbind() & TCBIND_CURTC) != 0) &&
1278 ((read_c0_tcbind() & TCBIND_CURVPE) == cpu_data[cpu - 1].vpe_id))
1279 secondaryTC = 1;
1280#endif /* CONFIG_MIPS_MT_SMTC */
1161 1281
1162 /* 1282 /*
1163 * Disable coprocessors and select 32-bit or 64-bit addressing 1283 * Disable coprocessors and select 32-bit or 64-bit addressing
@@ -1180,6 +1300,10 @@ void __init per_cpu_trap_init(void)
1180 write_c0_hwrena (0x0000000f); /* Allow rdhwr to all registers */ 1300 write_c0_hwrena (0x0000000f); /* Allow rdhwr to all registers */
1181#endif 1301#endif
1182 1302
1303#ifdef CONFIG_MIPS_MT_SMTC
1304 if (!secondaryTC) {
1305#endif /* CONFIG_MIPS_MT_SMTC */
1306
1183 /* 1307 /*
1184 * Interrupt handling. 1308 * Interrupt handling.
1185 */ 1309 */
@@ -1196,6 +1320,9 @@ void __init per_cpu_trap_init(void)
1196 } else 1320 } else
1197 set_c0_cause(CAUSEF_IV); 1321 set_c0_cause(CAUSEF_IV);
1198 } 1322 }
1323#ifdef CONFIG_MIPS_MT_SMTC
1324 }
1325#endif /* CONFIG_MIPS_MT_SMTC */
1199 1326
1200 cpu_data[cpu].asid_cache = ASID_FIRST_VERSION; 1327 cpu_data[cpu].asid_cache = ASID_FIRST_VERSION;
1201 TLBMISS_HANDLER_SETUP(); 1328 TLBMISS_HANDLER_SETUP();
@@ -1205,8 +1332,14 @@ void __init per_cpu_trap_init(void)
1205 BUG_ON(current->mm); 1332 BUG_ON(current->mm);
1206 enter_lazy_tlb(&init_mm, current); 1333 enter_lazy_tlb(&init_mm, current);
1207 1334
1208 cpu_cache_init(); 1335#ifdef CONFIG_MIPS_MT_SMTC
1209 tlb_init(); 1336 if (bootTC) {
1337#endif /* CONFIG_MIPS_MT_SMTC */
1338 cpu_cache_init();
1339 tlb_init();
1340#ifdef CONFIG_MIPS_MT_SMTC
1341 }
1342#endif /* CONFIG_MIPS_MT_SMTC */
1210} 1343}
1211 1344
1212/* Install CPU exception handler */ 1345/* Install CPU exception handler */
@@ -1278,7 +1411,7 @@ void __init trap_init(void)
1278 if (cpu_has_veic || cpu_has_vint) { 1411 if (cpu_has_veic || cpu_has_vint) {
1279 int nvec = cpu_has_veic ? 64 : 8; 1412 int nvec = cpu_has_veic ? 64 : 8;
1280 for (i = 0; i < nvec; i++) 1413 for (i = 0; i < nvec; i++)
1281 set_vi_handler (i, NULL); 1414 set_vi_handler(i, NULL);
1282 } 1415 }
1283 else if (cpu_has_divec) 1416 else if (cpu_has_divec)
1284 set_handler(0x200, &except_vec4, 0x8); 1417 set_handler(0x200, &except_vec4, 0x8);
@@ -1297,6 +1430,7 @@ void __init trap_init(void)
1297 if (board_be_init) 1430 if (board_be_init)
1298 board_be_init(); 1431 board_be_init();
1299 1432
1433 set_except_vector(0, handle_int);
1300 set_except_vector(1, handle_tlbm); 1434 set_except_vector(1, handle_tlbm);
1301 set_except_vector(2, handle_tlbl); 1435 set_except_vector(2, handle_tlbl);
1302 set_except_vector(3, handle_tlbs); 1436 set_except_vector(3, handle_tlbs);
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
index 2ad0cedf29fe..14fa00e3cdfa 100644
--- a/arch/mips/kernel/vmlinux.lds.S
+++ b/arch/mips/kernel/vmlinux.lds.S
@@ -2,7 +2,7 @@
2#include <asm/asm-offsets.h> 2#include <asm/asm-offsets.h>
3#include <asm-generic/vmlinux.lds.h> 3#include <asm-generic/vmlinux.lds.h>
4 4
5#undef mips /* CPP really sucks for this job */ 5#undef mips
6#define mips mips 6#define mips mips
7OUTPUT_ARCH(mips) 7OUTPUT_ARCH(mips)
8ENTRY(kernel_entry) 8ENTRY(kernel_entry)
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index ae83b755cf4a..85d7df7b18e1 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -13,7 +13,6 @@
13 * You should have received a copy of the GNU General Public License along 13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc., 14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 15 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
16 *
17 */ 16 */
18 17
19/* 18/*
@@ -27,11 +26,8 @@
27 * 26 *
28 * To load and run, simply cat a SP 'program file' to /dev/vpe1. 27 * To load and run, simply cat a SP 'program file' to /dev/vpe1.
29 * i.e cat spapp >/dev/vpe1. 28 * i.e cat spapp >/dev/vpe1.
30 *
31 * You'll need to have the following device files.
32 * mknod /dev/vpe0 c 63 0
33 * mknod /dev/vpe1 c 63 1
34 */ 29 */
30
35#include <linux/config.h> 31#include <linux/config.h>
36#include <linux/kernel.h> 32#include <linux/kernel.h>
37#include <linux/module.h> 33#include <linux/module.h>
@@ -55,6 +51,8 @@
55#include <asm/cpu.h> 51#include <asm/cpu.h>
56#include <asm/processor.h> 52#include <asm/processor.h>
57#include <asm/system.h> 53#include <asm/system.h>
54#include <asm/vpe.h>
55#include <asm/kspd.h>
58 56
59typedef void *vpe_handle; 57typedef void *vpe_handle;
60 58
@@ -68,6 +66,11 @@ typedef void *vpe_handle;
68static char module_name[] = "vpe"; 66static char module_name[] = "vpe";
69static int major; 67static int major;
70 68
69#ifdef CONFIG_MIPS_APSP_KSPD
70 static struct kspd_notifications kspd_events;
71static int kspd_events_reqd = 0;
72#endif
73
71/* grab the likely amount of memory we will need. */ 74/* grab the likely amount of memory we will need. */
72#ifdef CONFIG_MIPS_VPE_LOADER_TOM 75#ifdef CONFIG_MIPS_VPE_LOADER_TOM
73#define P_SIZE (2 * 1024 * 1024) 76#define P_SIZE (2 * 1024 * 1024)
@@ -76,7 +79,10 @@ static int major;
76#define P_SIZE (256 * 1024) 79#define P_SIZE (256 * 1024)
77#endif 80#endif
78 81
82extern unsigned long physical_memsize;
83
79#define MAX_VPES 16 84#define MAX_VPES 16
85#define VPE_PATH_MAX 256
80 86
81enum vpe_state { 87enum vpe_state {
82 VPE_STATE_UNUSED = 0, 88 VPE_STATE_UNUSED = 0,
@@ -102,6 +108,8 @@ struct vpe {
102 unsigned long len; 108 unsigned long len;
103 char *pbuffer; 109 char *pbuffer;
104 unsigned long plen; 110 unsigned long plen;
111 unsigned int uid, gid;
112 char cwd[VPE_PATH_MAX];
105 113
106 unsigned long __start; 114 unsigned long __start;
107 115
@@ -113,6 +121,9 @@ struct vpe {
113 121
114 /* shared symbol address */ 122 /* shared symbol address */
115 void *shared_ptr; 123 void *shared_ptr;
124
125 /* the list of who wants to know when something major happens */
126 struct list_head notify;
116}; 127};
117 128
118struct tc { 129struct tc {
@@ -138,7 +149,7 @@ struct vpecontrol_ {
138} vpecontrol; 149} vpecontrol;
139 150
140static void release_progmem(void *ptr); 151static void release_progmem(void *ptr);
141static void dump_vpe(struct vpe * v); 152/* static __attribute_used__ void dump_vpe(struct vpe * v); */
142extern void save_gp_address(unsigned int secbase, unsigned int rel); 153extern void save_gp_address(unsigned int secbase, unsigned int rel);
143 154
144/* get the vpe associated with this minor */ 155/* get the vpe associated with this minor */
@@ -146,12 +157,14 @@ struct vpe *get_vpe(int minor)
146{ 157{
147 struct vpe *v; 158 struct vpe *v;
148 159
160 if (!cpu_has_mipsmt)
161 return NULL;
162
149 list_for_each_entry(v, &vpecontrol.vpe_list, list) { 163 list_for_each_entry(v, &vpecontrol.vpe_list, list) {
150 if (v->minor == minor) 164 if (v->minor == minor)
151 return v; 165 return v;
152 } 166 }
153 167
154 printk(KERN_DEBUG "VPE: get_vpe minor %d not found\n", minor);
155 return NULL; 168 return NULL;
156} 169}
157 170
@@ -165,8 +178,6 @@ struct tc *get_tc(int index)
165 return t; 178 return t;
166 } 179 }
167 180
168 printk(KERN_DEBUG "VPE: get_tc index %d not found\n", index);
169
170 return NULL; 181 return NULL;
171} 182}
172 183
@@ -179,8 +190,6 @@ struct tc *get_tc_unused(void)
179 return t; 190 return t;
180 } 191 }
181 192
182 printk(KERN_DEBUG "VPE: All TC's are in use\n");
183
184 return NULL; 193 return NULL;
185} 194}
186 195
@@ -190,13 +199,13 @@ struct vpe *alloc_vpe(int minor)
190 struct vpe *v; 199 struct vpe *v;
191 200
192 if ((v = kzalloc(sizeof(struct vpe), GFP_KERNEL)) == NULL) { 201 if ((v = kzalloc(sizeof(struct vpe), GFP_KERNEL)) == NULL) {
193 printk(KERN_WARNING "VPE: alloc_vpe no mem\n");
194 return NULL; 202 return NULL;
195 } 203 }
196 204
197 INIT_LIST_HEAD(&v->tc); 205 INIT_LIST_HEAD(&v->tc);
198 list_add_tail(&v->list, &vpecontrol.vpe_list); 206 list_add_tail(&v->list, &vpecontrol.vpe_list);
199 207
208 INIT_LIST_HEAD(&v->notify);
200 v->minor = minor; 209 v->minor = minor;
201 return v; 210 return v;
202} 211}
@@ -207,7 +216,6 @@ struct tc *alloc_tc(int index)
207 struct tc *t; 216 struct tc *t;
208 217
209 if ((t = kzalloc(sizeof(struct tc), GFP_KERNEL)) == NULL) { 218 if ((t = kzalloc(sizeof(struct tc), GFP_KERNEL)) == NULL) {
210 printk(KERN_WARNING "VPE: alloc_tc no mem\n");
211 return NULL; 219 return NULL;
212 } 220 }
213 221
@@ -236,20 +244,16 @@ void dump_mtregs(void)
236 printk("config3 0x%lx MT %ld\n", val, 244 printk("config3 0x%lx MT %ld\n", val,
237 (val & CONFIG3_MT) >> CONFIG3_MT_SHIFT); 245 (val & CONFIG3_MT) >> CONFIG3_MT_SHIFT);
238 246
239 val = read_c0_mvpconf0();
240 printk("mvpconf0 0x%lx, PVPE %ld PTC %ld M %ld\n", val,
241 (val & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT,
242 val & MVPCONF0_PTC, (val & MVPCONF0_M) >> MVPCONF0_M_SHIFT);
243
244 val = read_c0_mvpcontrol(); 247 val = read_c0_mvpcontrol();
245 printk("MVPControl 0x%lx, STLB %ld VPC %ld EVP %ld\n", val, 248 printk("MVPControl 0x%lx, STLB %ld VPC %ld EVP %ld\n", val,
246 (val & MVPCONTROL_STLB) >> MVPCONTROL_STLB_SHIFT, 249 (val & MVPCONTROL_STLB) >> MVPCONTROL_STLB_SHIFT,
247 (val & MVPCONTROL_VPC) >> MVPCONTROL_VPC_SHIFT, 250 (val & MVPCONTROL_VPC) >> MVPCONTROL_VPC_SHIFT,
248 (val & MVPCONTROL_EVP)); 251 (val & MVPCONTROL_EVP));
249 252
250 val = read_c0_vpeconf0(); 253 val = read_c0_mvpconf0();
251 printk("VPEConf0 0x%lx MVP %ld\n", val, 254 printk("mvpconf0 0x%lx, PVPE %ld PTC %ld M %ld\n", val,
252 (val & VPECONF0_MVP) >> VPECONF0_MVP_SHIFT); 255 (val & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT,
256 val & MVPCONF0_PTC, (val & MVPCONF0_M) >> MVPCONF0_M_SHIFT);
253} 257}
254 258
255/* Find some VPE program space */ 259/* Find some VPE program space */
@@ -354,9 +358,9 @@ static int apply_r_mips_gprel16(struct module *me, uint32_t *location,
354 } 358 }
355 359
356 if( (rel > 32768) || (rel < -32768) ) { 360 if( (rel > 32768) || (rel < -32768) ) {
357 printk(KERN_ERR 361 printk(KERN_DEBUG "VPE loader: apply_r_mips_gprel16: "
358 "apply_r_mips_gprel16: relative address out of range 0x%x %d\n", 362 "relative address 0x%x out of range of gp register\n",
359 rel, rel); 363 rel);
360 return -ENOEXEC; 364 return -ENOEXEC;
361 } 365 }
362 366
@@ -374,8 +378,8 @@ static int apply_r_mips_pc16(struct module *me, uint32_t *location,
374 rel -= 1; // and one instruction less due to the branch delay slot. 378 rel -= 1; // and one instruction less due to the branch delay slot.
375 379
376 if( (rel > 32768) || (rel < -32768) ) { 380 if( (rel > 32768) || (rel < -32768) ) {
377 printk(KERN_ERR 381 printk(KERN_DEBUG "VPE loader: "
378 "apply_r_mips_pc16: relative address out of range 0x%x\n", rel); 382 "apply_r_mips_pc16: relative address out of range 0x%x\n", rel);
379 return -ENOEXEC; 383 return -ENOEXEC;
380 } 384 }
381 385
@@ -396,7 +400,8 @@ static int apply_r_mips_26(struct module *me, uint32_t *location,
396 Elf32_Addr v) 400 Elf32_Addr v)
397{ 401{
398 if (v % 4) { 402 if (v % 4) {
399 printk(KERN_ERR "module %s: dangerous relocation mod4\n", me->name); 403 printk(KERN_DEBUG "VPE loader: apply_r_mips_26 "
404 " unaligned relocation\n");
400 return -ENOEXEC; 405 return -ENOEXEC;
401 } 406 }
402 407
@@ -459,12 +464,13 @@ static int apply_r_mips_lo16(struct module *me, uint32_t *location,
459 /* 464 /*
460 * The value for the HI16 had best be the same. 465 * The value for the HI16 had best be the same.
461 */ 466 */
462 if (v != l->value) { 467 if (v != l->value) {
463 printk("%d != %d\n", v, l->value); 468 printk(KERN_DEBUG "VPE loader: "
464 goto out_danger; 469 "apply_r_mips_lo16/hi16: "
470 "inconsistent value information\n");
471 return -ENOEXEC;
465 } 472 }
466 473
467
468 /* 474 /*
469 * Do the HI16 relocation. Note that we actually don't 475 * Do the HI16 relocation. Note that we actually don't
470 * need to know anything about the LO16 itself, except 476 * need to know anything about the LO16 itself, except
@@ -500,11 +506,6 @@ static int apply_r_mips_lo16(struct module *me, uint32_t *location,
500 *location = insnlo; 506 *location = insnlo;
501 507
502 return 0; 508 return 0;
503
504out_danger:
505 printk(KERN_ERR "module %s: dangerous " "relocation\n", me->name);
506
507 return -ENOEXEC;
508} 509}
509 510
510static int (*reloc_handlers[]) (struct module *me, uint32_t *location, 511static int (*reloc_handlers[]) (struct module *me, uint32_t *location,
@@ -518,6 +519,15 @@ static int (*reloc_handlers[]) (struct module *me, uint32_t *location,
518 [R_MIPS_PC16] = apply_r_mips_pc16 519 [R_MIPS_PC16] = apply_r_mips_pc16
519}; 520};
520 521
522static char *rstrs[] = {
523 [R_MIPS_NONE] = "MIPS_NONE",
524 [R_MIPS_32] = "MIPS_32",
525 [R_MIPS_26] = "MIPS_26",
526 [R_MIPS_HI16] = "MIPS_HI16",
527 [R_MIPS_LO16] = "MIPS_LO16",
528 [R_MIPS_GPREL16] = "MIPS_GPREL16",
529 [R_MIPS_PC16] = "MIPS_PC16"
530};
521 531
522int apply_relocations(Elf32_Shdr *sechdrs, 532int apply_relocations(Elf32_Shdr *sechdrs,
523 const char *strtab, 533 const char *strtab,
@@ -552,15 +562,13 @@ int apply_relocations(Elf32_Shdr *sechdrs,
552 562
553 res = reloc_handlers[ELF32_R_TYPE(r_info)](me, location, v); 563 res = reloc_handlers[ELF32_R_TYPE(r_info)](me, location, v);
554 if( res ) { 564 if( res ) {
555 printk(KERN_DEBUG 565 char *r = rstrs[ELF32_R_TYPE(r_info)];
556 "relocation error 0x%x sym refer <%s> value 0x%x " 566 printk(KERN_WARNING "VPE loader: .text+0x%x "
557 "type 0x%x r_info 0x%x\n", 567 "relocation type %s for symbol \"%s\" failed\n",
558 (unsigned int)location, strtab + sym->st_name, v, 568 rel[i].r_offset, r ? r : "UNKNOWN",
559 r_info, ELF32_R_TYPE(r_info)); 569 strtab + sym->st_name);
560 }
561
562 if (res)
563 return res; 570 return res;
571 }
564 } 572 }
565 573
566 return 0; 574 return 0;
@@ -576,7 +584,7 @@ void save_gp_address(unsigned int secbase, unsigned int rel)
576 584
577 585
578/* Change all symbols so that sh_value encodes the pointer directly. */ 586/* Change all symbols so that sh_value encodes the pointer directly. */
579static int simplify_symbols(Elf_Shdr * sechdrs, 587static void simplify_symbols(Elf_Shdr * sechdrs,
580 unsigned int symindex, 588 unsigned int symindex,
581 const char *strtab, 589 const char *strtab,
582 const char *secstrings, 590 const char *secstrings,
@@ -585,18 +593,21 @@ static int simplify_symbols(Elf_Shdr * sechdrs,
585 Elf_Sym *sym = (void *)sechdrs[symindex].sh_addr; 593 Elf_Sym *sym = (void *)sechdrs[symindex].sh_addr;
586 unsigned long secbase, bssbase = 0; 594 unsigned long secbase, bssbase = 0;
587 unsigned int i, n = sechdrs[symindex].sh_size / sizeof(Elf_Sym); 595 unsigned int i, n = sechdrs[symindex].sh_size / sizeof(Elf_Sym);
588 int ret = 0, size; 596 int size;
589 597
590 /* find the .bss section for COMMON symbols */ 598 /* find the .bss section for COMMON symbols */
591 for (i = 0; i < nsecs; i++) { 599 for (i = 0; i < nsecs; i++) {
592 if (strncmp(secstrings + sechdrs[i].sh_name, ".bss", 4) == 0) 600 if (strncmp(secstrings + sechdrs[i].sh_name, ".bss", 4) == 0) {
593 bssbase = sechdrs[i].sh_addr; 601 bssbase = sechdrs[i].sh_addr;
602 break;
603 }
594 } 604 }
595 605
596 for (i = 1; i < n; i++) { 606 for (i = 1; i < n; i++) {
597 switch (sym[i].st_shndx) { 607 switch (sym[i].st_shndx) {
598 case SHN_COMMON: 608 case SHN_COMMON:
599 /* Allocate space for the symbol in the .bss section. st_value is currently size. 609 /* Allocate space for the symbol in the .bss section.
610 st_value is currently size.
600 We want it to have the address of the symbol. */ 611 We want it to have the address of the symbol. */
601 612
602 size = sym[i].st_value; 613 size = sym[i].st_value;
@@ -614,11 +625,9 @@ static int simplify_symbols(Elf_Shdr * sechdrs,
614 break; 625 break;
615 626
616 case SHN_MIPS_SCOMMON: 627 case SHN_MIPS_SCOMMON:
617 628 printk(KERN_DEBUG "simplify_symbols: ignoring SHN_MIPS_SCOMMON"
618 printk(KERN_DEBUG 629 "symbol <%s> st_shndx %d\n", strtab + sym[i].st_name,
619 "simplify_symbols: ignoring SHN_MIPS_SCOMMON symbol <%s> st_shndx %d\n", 630 sym[i].st_shndx);
620 strtab + sym[i].st_name, sym[i].st_shndx);
621
622 // .sbss section 631 // .sbss section
623 break; 632 break;
624 633
@@ -632,10 +641,7 @@ static int simplify_symbols(Elf_Shdr * sechdrs,
632 sym[i].st_value += secbase; 641 sym[i].st_value += secbase;
633 break; 642 break;
634 } 643 }
635
636 } 644 }
637
638 return ret;
639} 645}
640 646
641#ifdef DEBUG_ELFLOADER 647#ifdef DEBUG_ELFLOADER
@@ -655,9 +661,26 @@ static void dump_elfsymbols(Elf_Shdr * sechdrs, unsigned int symindex,
655 661
656static void dump_tc(struct tc *t) 662static void dump_tc(struct tc *t)
657{ 663{
658 printk(KERN_WARNING "VPE: TC index %d TCStatus 0x%lx halt 0x%lx\n", 664 unsigned long val;
659 t->index, read_tc_c0_tcstatus(), read_tc_c0_tchalt()); 665
660 printk(KERN_WARNING "VPE: tcrestart 0x%lx\n", read_tc_c0_tcrestart()); 666 settc(t->index);
667 printk(KERN_DEBUG "VPE loader: TC index %d targtc %ld "
668 "TCStatus 0x%lx halt 0x%lx\n",
669 t->index, read_c0_vpecontrol() & VPECONTROL_TARGTC,
670 read_tc_c0_tcstatus(), read_tc_c0_tchalt());
671
672 printk(KERN_DEBUG " tcrestart 0x%lx\n", read_tc_c0_tcrestart());
673 printk(KERN_DEBUG " tcbind 0x%lx\n", read_tc_c0_tcbind());
674
675 val = read_c0_vpeconf0();
676 printk(KERN_DEBUG " VPEConf0 0x%lx MVP %ld\n", val,
677 (val & VPECONF0_MVP) >> VPECONF0_MVP_SHIFT);
678
679 printk(KERN_DEBUG " c0 status 0x%lx\n", read_vpe_c0_status());
680 printk(KERN_DEBUG " c0 cause 0x%lx\n", read_vpe_c0_cause());
681
682 printk(KERN_DEBUG " c0 badvaddr 0x%lx\n", read_vpe_c0_badvaddr());
683 printk(KERN_DEBUG " c0 epc 0x%lx\n", read_vpe_c0_epc());
661} 684}
662 685
663static void dump_tclist(void) 686static void dump_tclist(void)
@@ -672,96 +695,108 @@ static void dump_tclist(void)
672/* We are prepared so configure and start the VPE... */ 695/* We are prepared so configure and start the VPE... */
673int vpe_run(struct vpe * v) 696int vpe_run(struct vpe * v)
674{ 697{
675 unsigned long val; 698 struct vpe_notifications *n;
699 unsigned long val, dmt_flag;
676 struct tc *t; 700 struct tc *t;
677 701
678 /* check we are the Master VPE */ 702 /* check we are the Master VPE */
679 val = read_c0_vpeconf0(); 703 val = read_c0_vpeconf0();
680 if (!(val & VPECONF0_MVP)) { 704 if (!(val & VPECONF0_MVP)) {
681 printk(KERN_WARNING 705 printk(KERN_WARNING
682 "VPE: only Master VPE's are allowed to configure MT\n"); 706 "VPE loader: only Master VPE's are allowed to configure MT\n");
683 return -1; 707 return -1;
684 } 708 }
685 709
686 /* disable MT (using dvpe) */ 710 /* disable MT (using dvpe) */
687 dvpe(); 711 dvpe();
688 712
713 if (!list_empty(&v->tc)) {
714 if ((t = list_entry(v->tc.next, struct tc, tc)) == NULL) {
715 printk(KERN_WARNING "VPE loader: TC %d is already in use.\n",
716 t->index);
717 return -ENOEXEC;
718 }
719 } else {
720 printk(KERN_WARNING "VPE loader: No TC's associated with VPE %d\n",
721 v->minor);
722 return -ENOEXEC;
723 }
724
689 /* Put MVPE's into 'configuration state' */ 725 /* Put MVPE's into 'configuration state' */
690 set_c0_mvpcontrol(MVPCONTROL_VPC); 726 set_c0_mvpcontrol(MVPCONTROL_VPC);
691 727
692 if (!list_empty(&v->tc)) {
693 if ((t = list_entry(v->tc.next, struct tc, tc)) == NULL) {
694 printk(KERN_WARNING "VPE: TC %d is already in use.\n",
695 t->index);
696 return -ENOEXEC;
697 }
698 } else {
699 printk(KERN_WARNING "VPE: No TC's associated with VPE %d\n",
700 v->minor);
701 return -ENOEXEC;
702 }
703
704 settc(t->index); 728 settc(t->index);
705 729
706 val = read_vpe_c0_vpeconf0();
707
708 /* should check it is halted, and not activated */ 730 /* should check it is halted, and not activated */
709 if ((read_tc_c0_tcstatus() & TCSTATUS_A) || !(read_tc_c0_tchalt() & TCHALT_H)) { 731 if ((read_tc_c0_tcstatus() & TCSTATUS_A) || !(read_tc_c0_tchalt() & TCHALT_H)) {
710 printk(KERN_WARNING "VPE: TC %d is already doing something!\n", 732 printk(KERN_WARNING "VPE loader: TC %d is already doing something!\n",
711 t->index); 733 t->index);
712
713 dump_tclist(); 734 dump_tclist();
714 return -ENOEXEC; 735 return -ENOEXEC;
715 } 736 }
716 737
738 /*
739 * Disable multi-threaded execution whilst we activate, clear the
740 * halt bit and bound the tc to the other VPE...
741 */
742 dmt_flag = dmt();
743
717 /* Write the address we want it to start running from in the TCPC register. */ 744 /* Write the address we want it to start running from in the TCPC register. */
718 write_tc_c0_tcrestart((unsigned long)v->__start); 745 write_tc_c0_tcrestart((unsigned long)v->__start);
719
720 /* write the sivc_info address to tccontext */
721 write_tc_c0_tccontext((unsigned long)0); 746 write_tc_c0_tccontext((unsigned long)0);
722 747 /*
723 /* Set up the XTC bit in vpeconf0 to point at our tc */ 748 * Mark the TC as activated, not interrupt exempt and not dynamically
724 write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | (t->index << VPECONF0_XTC_SHIFT)); 749 * allocatable
725 750 */
726 /* mark the TC as activated, not interrupt exempt and not dynamically allocatable */
727 val = read_tc_c0_tcstatus(); 751 val = read_tc_c0_tcstatus();
728 val = (val & ~(TCSTATUS_DA | TCSTATUS_IXMT)) | TCSTATUS_A; 752 val = (val & ~(TCSTATUS_DA | TCSTATUS_IXMT)) | TCSTATUS_A;
729 write_tc_c0_tcstatus(val); 753 write_tc_c0_tcstatus(val);
730 754
731 write_tc_c0_tchalt(read_tc_c0_tchalt() & ~TCHALT_H); 755 write_tc_c0_tchalt(read_tc_c0_tchalt() & ~TCHALT_H);
732 756
733 /* set up VPE1 */
734 write_vpe_c0_vpecontrol(read_vpe_c0_vpecontrol() & ~VPECONTROL_TE); // no multiple TC's
735 write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | VPECONF0_VPA); // enable this VPE
736
737 /* 757 /*
738 * The sde-kit passes 'memsize' to __start in $a3, so set something 758 * The sde-kit passes 'memsize' to __start in $a3, so set something
739 * here... 759 * here... Or set $a3 to zero and define DFLT_STACK_SIZE and
740 * Or set $a3 (register 7) to zero and define DFLT_STACK_SIZE and
741 * DFLT_HEAP_SIZE when you compile your program 760 * DFLT_HEAP_SIZE when you compile your program
742 */ 761 */
762 mttgpr(7, physical_memsize);
763
764
765 /* set up VPE1 */
766 /*
767 * bind the TC to VPE 1 as late as possible so we only have the final
768 * VPE registers to set up, and so an EJTAG probe can trigger on it
769 */
770 write_tc_c0_tcbind((read_tc_c0_tcbind() & ~TCBIND_CURVPE) | v->minor);
743 771
744 mttgpr(7, 0); 772 /* Set up the XTC bit in vpeconf0 to point at our tc */
773 write_vpe_c0_vpeconf0( (read_vpe_c0_vpeconf0() & ~(VPECONF0_XTC))
774 | (t->index << VPECONF0_XTC_SHIFT));
745 775
746 /* set config to be the same as vpe0, particularly kseg0 coherency alg */ 776 /* enable this VPE */
747 write_vpe_c0_config(read_c0_config()); 777 write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | VPECONF0_VPA);
748 778
749 /* clear out any left overs from a previous program */ 779 /* clear out any left overs from a previous program */
780 write_vpe_c0_status(0);
750 write_vpe_c0_cause(0); 781 write_vpe_c0_cause(0);
751 782
752 /* take system out of configuration state */ 783 /* take system out of configuration state */
753 clear_c0_mvpcontrol(MVPCONTROL_VPC); 784 clear_c0_mvpcontrol(MVPCONTROL_VPC);
754 785
755 /* clear interrupts enabled IE, ERL, EXL, and KSU from c0 status */ 786 /* now safe to re-enable multi-threading */
756 write_vpe_c0_status(read_vpe_c0_status() & ~(ST0_ERL | ST0_KSU | ST0_IE | ST0_EXL)); 787 emt(dmt_flag);
757 788
758 /* set it running */ 789 /* set it running */
759 evpe(EVPE_ENABLE); 790 evpe(EVPE_ENABLE);
760 791
792 list_for_each_entry(n, &v->notify, list) {
793 n->start(v->minor);
794 }
795
761 return 0; 796 return 0;
762} 797}
763 798
764static unsigned long find_vpe_symbols(struct vpe * v, Elf_Shdr * sechdrs, 799static int find_vpe_symbols(struct vpe * v, Elf_Shdr * sechdrs,
765 unsigned int symindex, const char *strtab, 800 unsigned int symindex, const char *strtab,
766 struct module *mod) 801 struct module *mod)
767{ 802{
@@ -778,26 +813,28 @@ static unsigned long find_vpe_symbols(struct vpe * v, Elf_Shdr * sechdrs,
778 } 813 }
779 } 814 }
780 815
816 if ( (v->__start == 0) || (v->shared_ptr == NULL))
817 return -1;
818
781 return 0; 819 return 0;
782} 820}
783 821
784/* 822/*
785 * Allocates a VPE with some program code space(the load address), copies 823 * Allocates a VPE with some program code space(the load address), copies the
786 * the contents of the program (p)buffer performing relocatations/etc, 824 * contents of the program (p)buffer performing relocatations/etc, free's it
787 * free's it when finished. 825 * when finished.
788*/ 826 */
789int vpe_elfload(struct vpe * v) 827int vpe_elfload(struct vpe * v)
790{ 828{
791 Elf_Ehdr *hdr; 829 Elf_Ehdr *hdr;
792 Elf_Shdr *sechdrs; 830 Elf_Shdr *sechdrs;
793 long err = 0; 831 long err = 0;
794 char *secstrings, *strtab = NULL; 832 char *secstrings, *strtab = NULL;
795 unsigned int len, i, symindex = 0, strindex = 0; 833 unsigned int len, i, symindex = 0, strindex = 0, relocate = 0;
796
797 struct module mod; // so we can re-use the relocations code 834 struct module mod; // so we can re-use the relocations code
798 835
799 memset(&mod, 0, sizeof(struct module)); 836 memset(&mod, 0, sizeof(struct module));
800 strcpy(mod.name, "VPE dummy prog module"); 837 strcpy(mod.name, "VPE loader");
801 838
802 hdr = (Elf_Ehdr *) v->pbuffer; 839 hdr = (Elf_Ehdr *) v->pbuffer;
803 len = v->plen; 840 len = v->plen;
@@ -805,16 +842,22 @@ int vpe_elfload(struct vpe * v)
805 /* Sanity checks against insmoding binaries or wrong arch, 842 /* Sanity checks against insmoding binaries or wrong arch,
806 weird elf version */ 843 weird elf version */
807 if (memcmp(hdr->e_ident, ELFMAG, 4) != 0 844 if (memcmp(hdr->e_ident, ELFMAG, 4) != 0
808 || hdr->e_type != ET_REL || !elf_check_arch(hdr) 845 || (hdr->e_type != ET_REL && hdr->e_type != ET_EXEC)
846 || !elf_check_arch(hdr)
809 || hdr->e_shentsize != sizeof(*sechdrs)) { 847 || hdr->e_shentsize != sizeof(*sechdrs)) {
810 printk(KERN_WARNING 848 printk(KERN_WARNING
811 "VPE program, wrong arch or weird elf version\n"); 849 "VPE loader: program wrong arch or weird elf version\n");
812 850
813 return -ENOEXEC; 851 return -ENOEXEC;
814 } 852 }
815 853
854 if (hdr->e_type == ET_REL)
855 relocate = 1;
856
816 if (len < hdr->e_shoff + hdr->e_shnum * sizeof(Elf_Shdr)) { 857 if (len < hdr->e_shoff + hdr->e_shnum * sizeof(Elf_Shdr)) {
817 printk(KERN_ERR "VPE program length %u truncated\n", len); 858 printk(KERN_ERR "VPE loader: program length %u truncated\n",
859 len);
860
818 return -ENOEXEC; 861 return -ENOEXEC;
819 } 862 }
820 863
@@ -826,82 +869,126 @@ int vpe_elfload(struct vpe * v)
826 /* And these should exist, but gcc whinges if we don't init them */ 869 /* And these should exist, but gcc whinges if we don't init them */
827 symindex = strindex = 0; 870 symindex = strindex = 0;
828 871
829 for (i = 1; i < hdr->e_shnum; i++) { 872 if (relocate) {
830 873 for (i = 1; i < hdr->e_shnum; i++) {
831 if (sechdrs[i].sh_type != SHT_NOBITS 874 if (sechdrs[i].sh_type != SHT_NOBITS
832 && len < sechdrs[i].sh_offset + sechdrs[i].sh_size) { 875 && len < sechdrs[i].sh_offset + sechdrs[i].sh_size) {
833 printk(KERN_ERR "VPE program length %u truncated\n", 876 printk(KERN_ERR "VPE program length %u truncated\n",
834 len); 877 len);
835 return -ENOEXEC; 878 return -ENOEXEC;
836 } 879 }
837 880
838 /* Mark all sections sh_addr with their address in the 881 /* Mark all sections sh_addr with their address in the
839 temporary image. */ 882 temporary image. */
840 sechdrs[i].sh_addr = (size_t) hdr + sechdrs[i].sh_offset; 883 sechdrs[i].sh_addr = (size_t) hdr + sechdrs[i].sh_offset;
841 884
842 /* Internal symbols and strings. */ 885 /* Internal symbols and strings. */
843 if (sechdrs[i].sh_type == SHT_SYMTAB) { 886 if (sechdrs[i].sh_type == SHT_SYMTAB) {
844 symindex = i; 887 symindex = i;
845 strindex = sechdrs[i].sh_link; 888 strindex = sechdrs[i].sh_link;
846 strtab = (char *)hdr + sechdrs[strindex].sh_offset; 889 strtab = (char *)hdr + sechdrs[strindex].sh_offset;
890 }
847 } 891 }
892 layout_sections(&mod, hdr, sechdrs, secstrings);
848 } 893 }
849 894
850 layout_sections(&mod, hdr, sechdrs, secstrings);
851
852 v->load_addr = alloc_progmem(mod.core_size); 895 v->load_addr = alloc_progmem(mod.core_size);
853 memset(v->load_addr, 0, mod.core_size); 896 memset(v->load_addr, 0, mod.core_size);
854 897
855 printk("VPE elf_loader: loading to %p\n", v->load_addr); 898 printk("VPE loader: loading to %p\n", v->load_addr);
856 899
857 for (i = 0; i < hdr->e_shnum; i++) { 900 if (relocate) {
858 void *dest; 901 for (i = 0; i < hdr->e_shnum; i++) {
902 void *dest;
859 903
860 if (!(sechdrs[i].sh_flags & SHF_ALLOC)) 904 if (!(sechdrs[i].sh_flags & SHF_ALLOC))
861 continue; 905 continue;
862 906
863 dest = v->load_addr + sechdrs[i].sh_entsize; 907 dest = v->load_addr + sechdrs[i].sh_entsize;
864 908
865 if (sechdrs[i].sh_type != SHT_NOBITS) 909 if (sechdrs[i].sh_type != SHT_NOBITS)
866 memcpy(dest, (void *)sechdrs[i].sh_addr, 910 memcpy(dest, (void *)sechdrs[i].sh_addr,
867 sechdrs[i].sh_size); 911 sechdrs[i].sh_size);
868 /* Update sh_addr to point to copy in image. */ 912 /* Update sh_addr to point to copy in image. */
869 sechdrs[i].sh_addr = (unsigned long)dest; 913 sechdrs[i].sh_addr = (unsigned long)dest;
870 }
871 914
872 /* Fix up syms, so that st_value is a pointer to location. */ 915 printk(KERN_DEBUG " section sh_name %s sh_addr 0x%x\n",
873 err = 916 secstrings + sechdrs[i].sh_name, sechdrs[i].sh_addr);
874 simplify_symbols(sechdrs, symindex, strtab, secstrings, 917 }
875 hdr->e_shnum, &mod);
876 if (err < 0) {
877 printk(KERN_WARNING "VPE: unable to simplify symbols\n");
878 goto cleanup;
879 }
880 918
881 /* Now do relocations. */ 919 /* Fix up syms, so that st_value is a pointer to location. */
882 for (i = 1; i < hdr->e_shnum; i++) { 920 simplify_symbols(sechdrs, symindex, strtab, secstrings,
883 const char *strtab = (char *)sechdrs[strindex].sh_addr; 921 hdr->e_shnum, &mod);
884 unsigned int info = sechdrs[i].sh_info; 922
885 923 /* Now do relocations. */
886 /* Not a valid relocation section? */ 924 for (i = 1; i < hdr->e_shnum; i++) {
887 if (info >= hdr->e_shnum) 925 const char *strtab = (char *)sechdrs[strindex].sh_addr;
888 continue; 926 unsigned int info = sechdrs[i].sh_info;
889 927
890 /* Don't bother with non-allocated sections */ 928 /* Not a valid relocation section? */
891 if (!(sechdrs[info].sh_flags & SHF_ALLOC)) 929 if (info >= hdr->e_shnum)
892 continue; 930 continue;
893 931
894 if (sechdrs[i].sh_type == SHT_REL) 932 /* Don't bother with non-allocated sections */
895 err = 933 if (!(sechdrs[info].sh_flags & SHF_ALLOC))
896 apply_relocations(sechdrs, strtab, symindex, i, &mod); 934 continue;
897 else if (sechdrs[i].sh_type == SHT_RELA) 935
898 err = apply_relocate_add(sechdrs, strtab, symindex, i, 936 if (sechdrs[i].sh_type == SHT_REL)
899 &mod); 937 err = apply_relocations(sechdrs, strtab, symindex, i,
900 if (err < 0) { 938 &mod);
901 printk(KERN_WARNING 939 else if (sechdrs[i].sh_type == SHT_RELA)
902 "vpe_elfload: error in relocations err %ld\n", 940 err = apply_relocate_add(sechdrs, strtab, symindex, i,
903 err); 941 &mod);
904 goto cleanup; 942 if (err < 0)
943 return err;
944
945 }
946 } else {
947 for (i = 0; i < hdr->e_shnum; i++) {
948
949 /* Internal symbols and strings. */
950 if (sechdrs[i].sh_type == SHT_SYMTAB) {
951 symindex = i;
952 strindex = sechdrs[i].sh_link;
953 strtab = (char *)hdr + sechdrs[strindex].sh_offset;
954
955 /* mark the symtab's address for when we try to find the
956 magic symbols */
957 sechdrs[i].sh_addr = (size_t) hdr + sechdrs[i].sh_offset;
958 }
959
960 /* filter sections we dont want in the final image */
961 if (!(sechdrs[i].sh_flags & SHF_ALLOC) ||
962 (sechdrs[i].sh_type == SHT_MIPS_REGINFO)) {
963 printk( KERN_DEBUG " ignoring section, "
964 "name %s type %x address 0x%x \n",
965 secstrings + sechdrs[i].sh_name,
966 sechdrs[i].sh_type, sechdrs[i].sh_addr);
967 continue;
968 }
969
970 if (sechdrs[i].sh_addr < (unsigned int)v->load_addr) {
971 printk( KERN_WARNING "VPE loader: "
972 "fully linked image has invalid section, "
973 "name %s type %x address 0x%x, before load "
974 "address of 0x%x\n",
975 secstrings + sechdrs[i].sh_name,
976 sechdrs[i].sh_type, sechdrs[i].sh_addr,
977 (unsigned int)v->load_addr);
978 return -ENOEXEC;
979 }
980
981 printk(KERN_DEBUG " copying section sh_name %s, sh_addr 0x%x "
982 "size 0x%x0 from x%p\n",
983 secstrings + sechdrs[i].sh_name, sechdrs[i].sh_addr,
984 sechdrs[i].sh_size, hdr + sechdrs[i].sh_offset);
985
986 if (sechdrs[i].sh_type != SHT_NOBITS)
987 memcpy((void *)sechdrs[i].sh_addr,
988 (char *)hdr + sechdrs[i].sh_offset,
989 sechdrs[i].sh_size);
990 else
991 memset((void *)sechdrs[i].sh_addr, 0, sechdrs[i].sh_size);
905 } 992 }
906 } 993 }
907 994
@@ -910,71 +997,104 @@ int vpe_elfload(struct vpe * v)
910 (unsigned long)v->load_addr + v->len); 997 (unsigned long)v->load_addr + v->len);
911 998
912 if ((find_vpe_symbols(v, sechdrs, symindex, strtab, &mod)) < 0) { 999 if ((find_vpe_symbols(v, sechdrs, symindex, strtab, &mod)) < 0) {
1000 if (v->__start == 0) {
1001 printk(KERN_WARNING "VPE loader: program does not contain "
1002 "a __start symbol\n");
1003 return -ENOEXEC;
1004 }
913 1005
914 printk(KERN_WARNING 1006 if (v->shared_ptr == NULL)
915 "VPE: program doesn't contain __start or vpe_shared symbols\n"); 1007 printk(KERN_WARNING "VPE loader: "
916 err = -ENOEXEC; 1008 "program does not contain vpe_shared symbol.\n"
1009 " Unable to use AMVP (AP/SP) facilities.\n");
917 } 1010 }
918 1011
919 printk(" elf loaded\n"); 1012 printk(" elf loaded\n");
920 1013 return 0;
921cleanup:
922 return err;
923} 1014}
924 1015
925static void dump_vpe(struct vpe * v) 1016__attribute_used__ void dump_vpe(struct vpe * v)
926{ 1017{
927 struct tc *t; 1018 struct tc *t;
928 1019
1020 settc(v->minor);
1021
929 printk(KERN_DEBUG "VPEControl 0x%lx\n", read_vpe_c0_vpecontrol()); 1022 printk(KERN_DEBUG "VPEControl 0x%lx\n", read_vpe_c0_vpecontrol());
930 printk(KERN_DEBUG "VPEConf0 0x%lx\n", read_vpe_c0_vpeconf0()); 1023 printk(KERN_DEBUG "VPEConf0 0x%lx\n", read_vpe_c0_vpeconf0());
931 1024
932 list_for_each_entry(t, &vpecontrol.tc_list, list) { 1025 list_for_each_entry(t, &vpecontrol.tc_list, list)
933 dump_tc(t); 1026 dump_tc(t);
934 }
935} 1027}
936 1028
937/* checks for VPE is unused and gets ready to load program */ 1029static void cleanup_tc(struct tc *tc)
1030{
1031 int tmp;
1032
1033 /* Put MVPE's into 'configuration state' */
1034 set_c0_mvpcontrol(MVPCONTROL_VPC);
1035
1036 settc(tc->index);
1037 tmp = read_tc_c0_tcstatus();
1038
1039 /* mark not allocated and not dynamically allocatable */
1040 tmp &= ~(TCSTATUS_A | TCSTATUS_DA);
1041 tmp |= TCSTATUS_IXMT; /* interrupt exempt */
1042 write_tc_c0_tcstatus(tmp);
1043
1044 write_tc_c0_tchalt(TCHALT_H);
1045
1046 /* bind it to anything other than VPE1 */
1047 write_tc_c0_tcbind(read_tc_c0_tcbind() & ~TCBIND_CURVPE); // | TCBIND_CURVPE
1048
1049 clear_c0_mvpcontrol(MVPCONTROL_VPC);
1050}
1051
1052static int getcwd(char *buff, int size)
1053{
1054 mm_segment_t old_fs;
1055 int ret;
1056
1057 old_fs = get_fs();
1058 set_fs(KERNEL_DS);
1059
1060 ret = sys_getcwd(buff,size);
1061
1062 set_fs(old_fs);
1063
1064 return ret;
1065}
1066
1067/* checks VPE is unused and gets ready to load program */
938static int vpe_open(struct inode *inode, struct file *filp) 1068static int vpe_open(struct inode *inode, struct file *filp)
939{ 1069{
940 int minor; 1070 int minor, ret;
941 struct vpe *v; 1071 struct vpe *v;
1072 struct vpe_notifications *not;
942 1073
943 /* assume only 1 device at the mo. */ 1074 /* assume only 1 device at the mo. */
944 if ((minor = MINOR(inode->i_rdev)) != 1) { 1075 if ((minor = iminor(inode)) != 1) {
945 printk(KERN_WARNING "VPE: only vpe1 is supported\n"); 1076 printk(KERN_WARNING "VPE loader: only vpe1 is supported\n");
946 return -ENODEV; 1077 return -ENODEV;
947 } 1078 }
948 1079
949 if ((v = get_vpe(minor)) == NULL) { 1080 if ((v = get_vpe(minor)) == NULL) {
950 printk(KERN_WARNING "VPE: unable to get vpe\n"); 1081 printk(KERN_WARNING "VPE loader: unable to get vpe\n");
951 return -ENODEV; 1082 return -ENODEV;
952 } 1083 }
953 1084
954 if (v->state != VPE_STATE_UNUSED) { 1085 if (v->state != VPE_STATE_UNUSED) {
955 unsigned long tmp;
956 struct tc *t;
957
958 printk(KERN_WARNING "VPE: device %d already in use\n", minor);
959
960 dvpe(); 1086 dvpe();
961 dump_vpe(v);
962
963 printk(KERN_WARNING "VPE: re-initialising %d\n", minor);
964
965 release_progmem(v->load_addr);
966 1087
967 t = get_tc(minor); 1088 printk(KERN_DEBUG "VPE loader: tc in use dumping regs\n");
968 settc(minor);
969 tmp = read_tc_c0_tcstatus();
970 1089
971 /* mark not allocated and not dynamically allocatable */ 1090 dump_tc(get_tc(minor));
972 tmp &= ~(TCSTATUS_A | TCSTATUS_DA);
973 tmp |= TCSTATUS_IXMT; /* interrupt exempt */
974 write_tc_c0_tcstatus(tmp);
975 1091
976 write_tc_c0_tchalt(TCHALT_H); 1092 list_for_each_entry(not, &v->notify, list) {
1093 not->stop(minor);
1094 }
977 1095
1096 release_progmem(v->load_addr);
1097 cleanup_tc(get_tc(minor));
978 } 1098 }
979 1099
980 // allocate it so when we get write ops we know it's expected. 1100 // allocate it so when we get write ops we know it's expected.
@@ -986,6 +1106,24 @@ static int vpe_open(struct inode *inode, struct file *filp)
986 v->load_addr = NULL; 1106 v->load_addr = NULL;
987 v->len = 0; 1107 v->len = 0;
988 1108
1109 v->uid = filp->f_uid;
1110 v->gid = filp->f_gid;
1111
1112#ifdef CONFIG_MIPS_APSP_KSPD
1113 /* get kspd to tell us when a syscall_exit happens */
1114 if (!kspd_events_reqd) {
1115 kspd_notify(&kspd_events);
1116 kspd_events_reqd++;
1117 }
1118#endif
1119
1120 v->cwd[0] = 0;
1121 ret = getcwd(v->cwd, VPE_PATH_MAX);
1122 if (ret < 0)
1123 printk(KERN_WARNING "VPE loader: open, getcwd returned %d\n", ret);
1124
1125 v->shared_ptr = NULL;
1126 v->__start = 0;
989 return 0; 1127 return 0;
990} 1128}
991 1129
@@ -995,7 +1133,7 @@ static int vpe_release(struct inode *inode, struct file *filp)
995 struct vpe *v; 1133 struct vpe *v;
996 Elf_Ehdr *hdr; 1134 Elf_Ehdr *hdr;
997 1135
998 minor = MINOR(inode->i_rdev); 1136 minor = iminor(inode);
999 if ((v = get_vpe(minor)) == NULL) 1137 if ((v = get_vpe(minor)) == NULL)
1000 return -ENODEV; 1138 return -ENODEV;
1001 1139
@@ -1006,14 +1144,22 @@ static int vpe_release(struct inode *inode, struct file *filp)
1006 if (vpe_elfload(v) >= 0) 1144 if (vpe_elfload(v) >= 0)
1007 vpe_run(v); 1145 vpe_run(v);
1008 else { 1146 else {
1009 printk(KERN_WARNING "VPE: ELF load failed.\n"); 1147 printk(KERN_WARNING "VPE loader: ELF load failed.\n");
1010 ret = -ENOEXEC; 1148 ret = -ENOEXEC;
1011 } 1149 }
1012 } else { 1150 } else {
1013 printk(KERN_WARNING "VPE: only elf files are supported\n"); 1151 printk(KERN_WARNING "VPE loader: only elf files are supported\n");
1014 ret = -ENOEXEC; 1152 ret = -ENOEXEC;
1015 } 1153 }
1016 1154
1155 /* It's good to be able to run the SP and if it chokes have a look at
1156 the /dev/rt?. But if we reset the pointer to the shared struct we
1157 loose what has happened. So perhaps if garbage is sent to the vpe
1158 device, use it as a trigger for the reset. Hopefully a nice
1159 executable will be along shortly. */
1160 if (ret < 0)
1161 v->shared_ptr = NULL;
1162
1017 // cleanup any temp buffers 1163 // cleanup any temp buffers
1018 if (v->pbuffer) 1164 if (v->pbuffer)
1019 vfree(v->pbuffer); 1165 vfree(v->pbuffer);
@@ -1028,26 +1174,24 @@ static ssize_t vpe_write(struct file *file, const char __user * buffer,
1028 size_t ret = count; 1174 size_t ret = count;
1029 struct vpe *v; 1175 struct vpe *v;
1030 1176
1031 minor = MINOR(file->f_dentry->d_inode->i_rdev); 1177 minor = iminor(file->f_dentry->d_inode);
1032 if ((v = get_vpe(minor)) == NULL) 1178 if ((v = get_vpe(minor)) == NULL)
1033 return -ENODEV; 1179 return -ENODEV;
1034 1180
1035 if (v->pbuffer == NULL) { 1181 if (v->pbuffer == NULL) {
1036 printk(KERN_ERR "vpe_write: no pbuffer\n"); 1182 printk(KERN_ERR "VPE loader: no buffer for program\n");
1037 return -ENOMEM; 1183 return -ENOMEM;
1038 } 1184 }
1039 1185
1040 if ((count + v->len) > v->plen) { 1186 if ((count + v->len) > v->plen) {
1041 printk(KERN_WARNING 1187 printk(KERN_WARNING
1042 "VPE Loader: elf size too big. Perhaps strip uneeded symbols\n"); 1188 "VPE loader: elf size too big. Perhaps strip uneeded symbols\n");
1043 return -ENOMEM; 1189 return -ENOMEM;
1044 } 1190 }
1045 1191
1046 count -= copy_from_user(v->pbuffer + v->len, buffer, count); 1192 count -= copy_from_user(v->pbuffer + v->len, buffer, count);
1047 if (!count) { 1193 if (!count)
1048 printk("vpe_write: copy_to_user failed\n");
1049 return -EFAULT; 1194 return -EFAULT;
1050 }
1051 1195
1052 v->len += count; 1196 v->len += count;
1053 return ret; 1197 return ret;
@@ -1149,16 +1293,70 @@ void *vpe_get_shared(int index)
1149{ 1293{
1150 struct vpe *v; 1294 struct vpe *v;
1151 1295
1152 if ((v = get_vpe(index)) == NULL) { 1296 if ((v = get_vpe(index)) == NULL)
1153 printk(KERN_WARNING "vpe: invalid vpe index %d\n", index);
1154 return NULL; 1297 return NULL;
1155 }
1156 1298
1157 return v->shared_ptr; 1299 return v->shared_ptr;
1158} 1300}
1159 1301
1160EXPORT_SYMBOL(vpe_get_shared); 1302EXPORT_SYMBOL(vpe_get_shared);
1161 1303
1304int vpe_getuid(int index)
1305{
1306 struct vpe *v;
1307
1308 if ((v = get_vpe(index)) == NULL)
1309 return -1;
1310
1311 return v->uid;
1312}
1313
1314EXPORT_SYMBOL(vpe_getuid);
1315
1316int vpe_getgid(int index)
1317{
1318 struct vpe *v;
1319
1320 if ((v = get_vpe(index)) == NULL)
1321 return -1;
1322
1323 return v->gid;
1324}
1325
1326EXPORT_SYMBOL(vpe_getgid);
1327
1328int vpe_notify(int index, struct vpe_notifications *notify)
1329{
1330 struct vpe *v;
1331
1332 if ((v = get_vpe(index)) == NULL)
1333 return -1;
1334
1335 list_add(&notify->list, &v->notify);
1336 return 0;
1337}
1338
1339EXPORT_SYMBOL(vpe_notify);
1340
1341char *vpe_getcwd(int index)
1342{
1343 struct vpe *v;
1344
1345 if ((v = get_vpe(index)) == NULL)
1346 return NULL;
1347
1348 return v->cwd;
1349}
1350
1351EXPORT_SYMBOL(vpe_getcwd);
1352
1353#ifdef CONFIG_MIPS_APSP_KSPD
1354static void kspd_sp_exit( int sp_id)
1355{
1356 cleanup_tc(get_tc(sp_id));
1357}
1358#endif
1359
1162static int __init vpe_module_init(void) 1360static int __init vpe_module_init(void)
1163{ 1361{
1164 struct vpe *v = NULL; 1362 struct vpe *v = NULL;
@@ -1201,7 +1399,8 @@ static int __init vpe_module_init(void)
1201 return -ENODEV; 1399 return -ENODEV;
1202 } 1400 }
1203 1401
1204 list_add(&t->tc, &v->tc); /* add the tc to the list of this vpe's tc's. */ 1402 /* add the tc to the list of this vpe's tc's. */
1403 list_add(&t->tc, &v->tc);
1205 1404
1206 /* deactivate all but vpe0 */ 1405 /* deactivate all but vpe0 */
1207 if (i != 0) { 1406 if (i != 0) {
@@ -1222,10 +1421,12 @@ static int __init vpe_module_init(void)
1222 ~(ST0_IM | ST0_IE | ST0_KSU)) 1421 ~(ST0_IM | ST0_IE | ST0_KSU))
1223 | ST0_CU0); 1422 | ST0_CU0);
1224 1423
1225 /* set config to be the same as vpe0, particularly kseg0 coherency alg */ 1424 /*
1425 * Set config to be the same as vpe0,
1426 * particularly kseg0 coherency alg
1427 */
1226 write_vpe_c0_config(read_c0_config()); 1428 write_vpe_c0_config(read_c0_config());
1227 } 1429 }
1228
1229 } 1430 }
1230 1431
1231 /* TC's */ 1432 /* TC's */
@@ -1234,23 +1435,28 @@ static int __init vpe_module_init(void)
1234 if (i != 0) { 1435 if (i != 0) {
1235 unsigned long tmp; 1436 unsigned long tmp;
1236 1437
1237 /* tc 0 will of course be running.... */
1238 if (i == 0)
1239 t->state = TC_STATE_RUNNING;
1240
1241 settc(i); 1438 settc(i);
1242 1439
1243 /* bind a TC to each VPE, May as well put all excess TC's 1440 /* Any TC that is bound to VPE0 gets left as is - in case
1244 on the last VPE */ 1441 we are running SMTC on VPE0. A TC that is bound to any
1245 if (i >= (((val & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT) + 1)) 1442 other VPE gets bound to VPE0, ideally I'd like to make
1246 write_tc_c0_tcbind(read_tc_c0_tcbind() | 1443 it homeless but it doesn't appear to let me bind a TC
1247 ((val & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT)); 1444 to a non-existent VPE. Which is perfectly reasonable.
1248 else 1445
1249 write_tc_c0_tcbind(read_tc_c0_tcbind() | i); 1446 The (un)bound state is visible to an EJTAG probe so may
1447 notify GDB...
1448 */
1449
1450 if (((tmp = read_tc_c0_tcbind()) & TCBIND_CURVPE)) {
1451 /* tc is bound >vpe0 */
1452 write_tc_c0_tcbind(tmp & ~TCBIND_CURVPE);
1453
1454 t->pvpe = get_vpe(0); /* set the parent vpe */
1455 }
1250 1456
1251 tmp = read_tc_c0_tcstatus(); 1457 tmp = read_tc_c0_tcstatus();
1252 1458
1253 /* mark not allocated and not dynamically allocatable */ 1459 /* mark not activated and not dynamically allocatable */
1254 tmp &= ~(TCSTATUS_A | TCSTATUS_DA); 1460 tmp &= ~(TCSTATUS_A | TCSTATUS_DA);
1255 tmp |= TCSTATUS_IXMT; /* interrupt exempt */ 1461 tmp |= TCSTATUS_IXMT; /* interrupt exempt */
1256 write_tc_c0_tcstatus(tmp); 1462 write_tc_c0_tcstatus(tmp);
@@ -1262,6 +1468,9 @@ static int __init vpe_module_init(void)
1262 /* release config state */ 1468 /* release config state */
1263 clear_c0_mvpcontrol(MVPCONTROL_VPC); 1469 clear_c0_mvpcontrol(MVPCONTROL_VPC);
1264 1470
1471#ifdef CONFIG_MIPS_APSP_KSPD
1472 kspd_events.kspd_sp_exit = kspd_sp_exit;
1473#endif
1265 return 0; 1474 return 0;
1266} 1475}
1267 1476
@@ -1281,5 +1490,5 @@ static void __exit vpe_module_exit(void)
1281module_init(vpe_module_init); 1490module_init(vpe_module_init);
1282module_exit(vpe_module_exit); 1491module_exit(vpe_module_exit);
1283MODULE_DESCRIPTION("MIPS VPE Loader"); 1492MODULE_DESCRIPTION("MIPS VPE Loader");
1284MODULE_AUTHOR("Elizabeth Clarke, MIPS Technologies, Inc"); 1493MODULE_AUTHOR("Elizabeth Oldham, MIPS Technologies, Inc.");
1285MODULE_LICENSE("GPL"); 1494MODULE_LICENSE("GPL");
diff --git a/arch/mips/lasat/Makefile b/arch/mips/lasat/Makefile
index 0d5aec436725..99f5046fdf49 100644
--- a/arch/mips/lasat/Makefile
+++ b/arch/mips/lasat/Makefile
@@ -3,7 +3,7 @@
3# 3#
4 4
5obj-y += reset.o setup.o prom.o lasat_board.o \ 5obj-y += reset.o setup.o prom.o lasat_board.o \
6 at93c.o interrupt.o lasatIRQ.o 6 at93c.o interrupt.o
7 7
8obj-$(CONFIG_LASAT_SYSCTL) += sysctl.o 8obj-$(CONFIG_LASAT_SYSCTL) += sysctl.o
9obj-$(CONFIG_DS1603) += ds1603.o 9obj-$(CONFIG_DS1603) += ds1603.o
diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c
index 852a41901a5e..2d3472b21ebb 100644
--- a/arch/mips/lasat/interrupt.c
+++ b/arch/mips/lasat/interrupt.c
@@ -27,14 +27,13 @@
27#include <asm/bootinfo.h> 27#include <asm/bootinfo.h>
28#include <asm/irq.h> 28#include <asm/irq.h>
29#include <asm/lasat/lasatint.h> 29#include <asm/lasat/lasatint.h>
30#include <asm/time.h>
30#include <asm/gdb-stub.h> 31#include <asm/gdb-stub.h>
31 32
32static volatile int *lasat_int_status = NULL; 33static volatile int *lasat_int_status = NULL;
33static volatile int *lasat_int_mask = NULL; 34static volatile int *lasat_int_mask = NULL;
34static volatile int lasat_int_mask_shift; 35static volatile int lasat_int_mask_shift;
35 36
36extern asmlinkage void lasatIRQ(void);
37
38void disable_lasat_irq(unsigned int irq_nr) 37void disable_lasat_irq(unsigned int irq_nr)
39{ 38{
40 unsigned long flags; 39 unsigned long flags;
@@ -109,11 +108,17 @@ static unsigned long get_int_status_200(void)
109 return int_status; 108 return int_status;
110} 109}
111 110
112void lasat_hw0_irqdispatch(struct pt_regs *regs) 111asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
113{ 112{
114 unsigned long int_status; 113 unsigned long int_status;
114 unsigned int cause = read_c0_cause();
115 int irq; 115 int irq;
116 116
117 if (cause & CAUSEF_IP7) { /* R4000 count / compare IRQ */
118 ll_timer_interrupt(7, regs);
119 return;
120 }
121
117 int_status = get_int_status(); 122 int_status = get_int_status();
118 123
119 /* if int_status == 0, then the interrupt has already been cleared */ 124 /* if int_status == 0, then the interrupt has already been cleared */
@@ -147,9 +152,6 @@ void __init arch_init_irq(void)
147 panic("arch_init_irq: mips_machtype incorrect"); 152 panic("arch_init_irq: mips_machtype incorrect");
148 } 153 }
149 154
150 /* Now safe to set the exception vector. */
151 set_except_vector(0, lasatIRQ);
152
153 for (i = 0; i <= LASATINT_END; i++) { 155 for (i = 0; i <= LASATINT_END; i++) {
154 irq_desc[i].status = IRQ_DISABLED; 156 irq_desc[i].status = IRQ_DISABLED;
155 irq_desc[i].action = 0; 157 irq_desc[i].action = 0;
diff --git a/arch/mips/lasat/lasatIRQ.S b/arch/mips/lasat/lasatIRQ.S
deleted file mode 100644
index 2a2b0d056561..000000000000
--- a/arch/mips/lasat/lasatIRQ.S
+++ /dev/null
@@ -1,69 +0,0 @@
1/*
2 * Carsten Langgaard, carstenl@mips.com
3 * Copyright (C) 1999, 2000 MIPS Technologies, Inc. All rights reserved.
4 *
5 * This program is free software; you can distribute it and/or modify it
6 * under the terms of the GNU General Public License (Version 2) as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
17 *
18 * Interrupt exception dispatch code.
19 */
20#include <asm/asm.h>
21#include <asm/mipsregs.h>
22#include <asm/regdef.h>
23#include <asm/stackframe.h>
24
25 .text
26 .set noreorder
27 .align 5
28 NESTED(lasatIRQ, PT_SIZE, sp)
29 .set noat
30 SAVE_ALL
31 CLI
32 .set at
33 .set noreorder
34
35 mfc0 s0, CP0_CAUSE # get irq mask
36
37 /* First we check for r4k counter/timer IRQ. */
38 andi a0, s0, CAUSEF_IP7
39 beq a0, zero, 1f
40 andi a0, s0, CAUSEF_IP2 # delay slot, check hw0 interrupt
41
42 /* Wheee, a timer interrupt. */
43 li a0, 7
44 jal ll_timer_interrupt
45 move a1, sp
46
47 j ret_from_irq
48 nop
49
501:
51 /* Wheee, combined hardware level zero interrupt. */
52 jal lasat_hw0_irqdispatch
53 move a0, sp # delay slot
54
55 j ret_from_irq
56 nop # delay slot
57
581:
59 /*
60 * Here by mistake? This is possible, what can happen is that by the
61 * time we take the exception the IRQ pin goes low, so just leave if
62 * this is the case.
63 */
64 move a1,s0
65 mfc0 a1, CP0_EPC
66
67 j ret_from_irq
68 nop
69 END(lasatIRQ)
diff --git a/arch/mips/mips-boards/atlas/atlas_int.c b/arch/mips/mips-boards/atlas/atlas_int.c
index bc0ebc69bfb3..db53950b7cfb 100644
--- a/arch/mips/mips-boards/atlas/atlas_int.c
+++ b/arch/mips/mips-boards/atlas/atlas_int.c
@@ -39,8 +39,6 @@
39 39
40static struct atlas_ictrl_regs *atlas_hw0_icregs; 40static struct atlas_ictrl_regs *atlas_hw0_icregs;
41 41
42extern asmlinkage void mipsIRQ(void);
43
44#if 0 42#if 0
45#define DEBUG_INT(x...) printk(x) 43#define DEBUG_INT(x...) printk(x)
46#else 44#else
@@ -98,7 +96,7 @@ static inline int ls1bit32(unsigned int x)
98 return b; 96 return b;
99} 97}
100 98
101void atlas_hw0_irqdispatch(struct pt_regs *regs) 99static inline void atlas_hw0_irqdispatch(struct pt_regs *regs)
102{ 100{
103 unsigned long int_status; 101 unsigned long int_status;
104 int irq; 102 int irq;
@@ -116,6 +114,91 @@ void atlas_hw0_irqdispatch(struct pt_regs *regs)
116 do_IRQ(irq, regs); 114 do_IRQ(irq, regs);
117} 115}
118 116
117static inline int clz(unsigned long x)
118{
119 __asm__ (
120 " .set push \n"
121 " .set mips32 \n"
122 " clz %0, %1 \n"
123 " .set pop \n"
124 : "=r" (x)
125 : "r" (x));
126
127 return x;
128}
129
130/*
131 * Version of ffs that only looks at bits 12..15.
132 */
133static inline unsigned int irq_ffs(unsigned int pending)
134{
135#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
136 return -clz(pending) + 31 - CAUSEB_IP;
137#else
138 unsigned int a0 = 7;
139 unsigned int t0;
140
141 t0 = s0 & 0xf000;
142 t0 = t0 < 1;
143 t0 = t0 << 2;
144 a0 = a0 - t0;
145 s0 = s0 << t0;
146
147 t0 = s0 & 0xc000;
148 t0 = t0 < 1;
149 t0 = t0 << 1;
150 a0 = a0 - t0;
151 s0 = s0 << t0;
152
153 t0 = s0 & 0x8000;
154 t0 = t0 < 1;
155 //t0 = t0 << 2;
156 a0 = a0 - t0;
157 //s0 = s0 << t0;
158
159 return a0;
160#endif
161}
162
163/*
164 * IRQs on the Atlas board look basically (barring software IRQs which we
165 * don't use at all and all external interrupt sources are combined together
166 * on hardware interrupt 0 (MIPS IRQ 2)) like:
167 *
168 * MIPS IRQ Source
169 * -------- ------
170 * 0 Software (ignored)
171 * 1 Software (ignored)
172 * 2 Combined hardware interrupt (hw0)
173 * 3 Hardware (ignored)
174 * 4 Hardware (ignored)
175 * 5 Hardware (ignored)
176 * 6 Hardware (ignored)
177 * 7 R4k timer (what we use)
178 *
179 * We handle the IRQ according to _our_ priority which is:
180 *
181 * Highest ---- R4k Timer
182 * Lowest ---- Combined hardware interrupt
183 *
184 * then we just return, if multiple IRQs are pending then we will just take
185 * another exception, big deal.
186 */
187asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
188{
189 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
190 int irq;
191
192 irq = irq_ffs(pending);
193
194 if (irq == MIPSCPU_INT_ATLAS)
195 atlas_hw0_irqdispatch(regs);
196 else if (irq > 0)
197 do_IRQ(MIPSCPU_INT_BASE + irq, regs);
198 else
199 spurious_interrupt(regs);
200}
201
119void __init arch_init_irq(void) 202void __init arch_init_irq(void)
120{ 203{
121 int i; 204 int i;
@@ -128,9 +211,6 @@ void __init arch_init_irq(void)
128 */ 211 */
129 atlas_hw0_icregs->intrsten = 0xffffffff; 212 atlas_hw0_icregs->intrsten = 0xffffffff;
130 213
131 /* Now safe to set the exception vector. */
132 set_except_vector(0, mipsIRQ);
133
134 for (i = ATLASINT_BASE; i <= ATLASINT_END; i++) { 214 for (i = ATLASINT_BASE; i <= ATLASINT_END; i++) {
135 irq_desc[i].status = IRQ_DISABLED; 215 irq_desc[i].status = IRQ_DISABLED;
136 irq_desc[i].action = 0; 216 irq_desc[i].action = 0;
diff --git a/arch/mips/mips-boards/generic/Makefile b/arch/mips/mips-boards/generic/Makefile
index b21bc6887fa8..be47c1c2bc80 100644
--- a/arch/mips/mips-boards/generic/Makefile
+++ b/arch/mips/mips-boards/generic/Makefile
@@ -18,8 +18,8 @@
18# Makefile for the MIPS boards generic routines under Linux. 18# Makefile for the MIPS boards generic routines under Linux.
19# 19#
20 20
21obj-y := mipsIRQ.o reset.o display.o init.o memory.o \ 21obj-y := reset.o display.o init.o memory.o printf.o \
22 printf.o cmdline.o time.o 22 cmdline.o time.o
23obj-$(CONFIG_PCI) += pci.o 23obj-$(CONFIG_PCI) += pci.o
24obj-$(CONFIG_KGDB) += gdb_hook.o 24obj-$(CONFIG_KGDB) += gdb_hook.o
25 25
diff --git a/arch/mips/mips-boards/generic/gdb_hook.c b/arch/mips/mips-boards/generic/gdb_hook.c
index 91a2ccbe3730..6a1854de4579 100644
--- a/arch/mips/mips-boards/generic/gdb_hook.c
+++ b/arch/mips/mips-boards/generic/gdb_hook.c
@@ -25,7 +25,7 @@
25#include <asm/serial.h> 25#include <asm/serial.h>
26#include <asm/io.h> 26#include <asm/io.h>
27 27
28static struct serial_state rs_table[RS_TABLE_SIZE] = { 28static struct serial_state rs_table[] = {
29 SERIAL_PORT_DFNS /* Defined in serial.h */ 29 SERIAL_PORT_DFNS /* Defined in serial.h */
30}; 30};
31 31
diff --git a/arch/mips/mips-boards/generic/init.c b/arch/mips/mips-boards/generic/init.c
index eab5a705e989..df4e94735604 100644
--- a/arch/mips/mips-boards/generic/init.c
+++ b/arch/mips/mips-boards/generic/init.c
@@ -220,7 +220,6 @@ void __init kgdb_config (void)
220 generic_putDebugChar (*s++); 220 generic_putDebugChar (*s++);
221 } 221 }
222 222
223 kgdb_enabled = 1;
224 /* Breakpoint is invoked after interrupts are initialised */ 223 /* Breakpoint is invoked after interrupts are initialised */
225 } 224 }
226} 225}
@@ -338,6 +337,7 @@ void __init prom_init(void)
338 case MIPS_REVISION_CORID_CORE_MSC: 337 case MIPS_REVISION_CORID_CORE_MSC:
339 case MIPS_REVISION_CORID_CORE_FPGA2: 338 case MIPS_REVISION_CORID_CORE_FPGA2:
340 case MIPS_REVISION_CORID_CORE_FPGA3: 339 case MIPS_REVISION_CORID_CORE_FPGA3:
340 case MIPS_REVISION_CORID_CORE_24K:
341 case MIPS_REVISION_CORID_CORE_EMUL_MSC: 341 case MIPS_REVISION_CORID_CORE_EMUL_MSC:
342 _pcictrl_msc = (unsigned long)ioremap(MIPS_MSC01_PCI_REG_BASE, 0x2000); 342 _pcictrl_msc = (unsigned long)ioremap(MIPS_MSC01_PCI_REG_BASE, 0x2000);
343 343
diff --git a/arch/mips/mips-boards/generic/memory.c b/arch/mips/mips-boards/generic/memory.c
index 32c9210373ac..bc4d093685bb 100644
--- a/arch/mips/mips-boards/generic/memory.c
+++ b/arch/mips/mips-boards/generic/memory.c
@@ -22,10 +22,12 @@
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/mm.h> 23#include <linux/mm.h>
24#include <linux/bootmem.h> 24#include <linux/bootmem.h>
25#include <linux/pfn.h>
25#include <linux/string.h> 26#include <linux/string.h>
26 27
27#include <asm/bootinfo.h> 28#include <asm/bootinfo.h>
28#include <asm/page.h> 29#include <asm/page.h>
30#include <asm/sections.h>
29 31
30#include <asm/mips-boards/prom.h> 32#include <asm/mips-boards/prom.h>
31 33
@@ -46,9 +48,6 @@ static char *mtypes[3] = {
46}; 48};
47#endif 49#endif
48 50
49/* References to section boundaries */
50extern char _end;
51
52struct prom_pmemblock * __init prom_getmdesc(void) 51struct prom_pmemblock * __init prom_getmdesc(void)
53{ 52{
54 char *memsize_str; 53 char *memsize_str;
@@ -106,10 +105,10 @@ struct prom_pmemblock * __init prom_getmdesc(void)
106 105
107 mdesc[3].type = yamon_dontuse; 106 mdesc[3].type = yamon_dontuse;
108 mdesc[3].base = 0x00100000; 107 mdesc[3].base = 0x00100000;
109 mdesc[3].size = CPHYSADDR(PAGE_ALIGN(&_end)) - mdesc[3].base; 108 mdesc[3].size = CPHYSADDR(PFN_ALIGN((unsigned long)&_end)) - mdesc[3].base;
110 109
111 mdesc[4].type = yamon_free; 110 mdesc[4].type = yamon_free;
112 mdesc[4].base = CPHYSADDR(PAGE_ALIGN(&_end)); 111 mdesc[4].base = CPHYSADDR(PFN_ALIGN(&_end));
113 mdesc[4].size = memsize - mdesc[4].base; 112 mdesc[4].size = memsize - mdesc[4].base;
114 113
115 return &mdesc[0]; 114 return &mdesc[0];
diff --git a/arch/mips/mips-boards/generic/mipsIRQ.S b/arch/mips/mips-boards/generic/mipsIRQ.S
deleted file mode 100644
index ddd5c73a2971..000000000000
--- a/arch/mips/mips-boards/generic/mipsIRQ.S
+++ /dev/null
@@ -1,155 +0,0 @@
1/*
2 * Carsten Langgaard, carstenl@mips.com
3 * Copyright (C) 1999, 2000 MIPS Technologies, Inc. All rights reserved.
4 *
5 * ########################################################################
6 *
7 * This program is free software; you can distribute it and/or modify it
8 * under the terms of the GNU General Public License (Version 2) as
9 * published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
19 *
20 * ########################################################################
21 *
22 * Interrupt exception dispatch code.
23 *
24 */
25#include <linux/config.h>
26
27#include <asm/asm.h>
28#include <asm/mipsregs.h>
29#include <asm/regdef.h>
30#include <asm/stackframe.h>
31
32#ifdef CONFIG_MIPS_ATLAS
33#include <asm/mips-boards/atlasint.h>
34#define CASCADE_IRQ MIPSCPU_INT_ATLAS
35#define CASCADE_DISPATCH atlas_hw0_irqdispatch
36#endif
37#ifdef CONFIG_MIPS_MALTA
38#include <asm/mips-boards/maltaint.h>
39#define CASCADE_IRQ MIPSCPU_INT_I8259A
40#define CASCADE_DISPATCH malta_hw0_irqdispatch
41#endif
42#ifdef CONFIG_MIPS_SEAD
43#include <asm/mips-boards/seadint.h>
44#endif
45
46/* A lot of complication here is taken away because:
47 *
48 * 1) We handle one interrupt and return, sitting in a loop and moving across
49 * all the pending IRQ bits in the cause register is _NOT_ the answer, the
50 * common case is one pending IRQ so optimize in that direction.
51 *
52 * 2) We need not check against bits in the status register IRQ mask, that
53 * would make this routine slow as hell.
54 *
55 * 3) Linux only thinks in terms of all IRQs on or all IRQs off, nothing in
56 * between like BSD spl() brain-damage.
57 *
58 * Furthermore, the IRQs on the MIPS board look basically (barring software
59 * IRQs which we don't use at all and all external interrupt sources are
60 * combined together on hardware interrupt 0 (MIPS IRQ 2)) like:
61 *
62 * MIPS IRQ Source
63 * -------- ------
64 * 0 Software (ignored)
65 * 1 Software (ignored)
66 * 2 Combined hardware interrupt (hw0)
67 * 3 Hardware (ignored)
68 * 4 Hardware (ignored)
69 * 5 Hardware (ignored)
70 * 6 Hardware (ignored)
71 * 7 R4k timer (what we use)
72 *
73 * Note: On the SEAD board thing are a little bit different.
74 * Here IRQ 2 (hw0) is wired to the UART0 and IRQ 3 (hw1) is wired
75 * wired to UART1.
76 *
77 * We handle the IRQ according to _our_ priority which is:
78 *
79 * Highest ---- R4k Timer
80 * Lowest ---- Combined hardware interrupt
81 *
82 * then we just return, if multiple IRQs are pending then we will just take
83 * another exception, big deal.
84 */
85
86 .text
87 .set noreorder
88 .set noat
89 .align 5
90 NESTED(mipsIRQ, PT_SIZE, sp)
91 SAVE_ALL
92 CLI
93 .set at
94
95 mfc0 s0, CP0_CAUSE # get irq bits
96 mfc0 s1, CP0_STATUS # get irq mask
97 andi s0, ST0_IM # CAUSE.CE may be non-zero!
98 and s0, s1
99
100#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
101 .set mips32
102 clz a0, s0
103 .set mips0
104 negu a0
105 addu a0, 31-CAUSEB_IP
106 bltz a0, spurious
107#else
108 beqz s0, spurious
109 li a0, 7
110
111 and t0, s0, 0xf000
112 sltiu t0, t0, 1
113 sll t0, 2
114 subu a0, t0
115 sll s0, t0
116
117 and t0, s0, 0xc000
118 sltiu t0, t0, 1
119 sll t0, 1
120 subu a0, t0
121 sll s0, t0
122
123 and t0, s0, 0x8000
124 sltiu t0, t0, 1
125 # sll t0, 0
126 subu a0, t0
127 # sll s0, t0
128#endif
129
130#ifdef CASCADE_IRQ
131 li a1, CASCADE_IRQ
132 bne a0, a1, 1f
133 addu a0, MIPSCPU_INT_BASE
134
135 jal CASCADE_DISPATCH
136 move a0, sp
137
138 j ret_from_irq
139 nop
1401:
141#else
142 addu a0, MIPSCPU_INT_BASE
143#endif
144
145 jal do_IRQ
146 move a1, sp
147
148 j ret_from_irq
149 nop
150
151
152spurious:
153 j spurious_interrupt
154 nop
155 END(mipsIRQ)
diff --git a/arch/mips/mips-boards/generic/pci.c b/arch/mips/mips-boards/generic/pci.c
index 1f6f9df74ab2..9337f6c8873a 100644
--- a/arch/mips/mips-boards/generic/pci.c
+++ b/arch/mips/mips-boards/generic/pci.c
@@ -198,6 +198,7 @@ void __init mips_pcibios_init(void)
198 case MIPS_REVISION_CORID_CORE_MSC: 198 case MIPS_REVISION_CORID_CORE_MSC:
199 case MIPS_REVISION_CORID_CORE_FPGA2: 199 case MIPS_REVISION_CORID_CORE_FPGA2:
200 case MIPS_REVISION_CORID_CORE_FPGA3: 200 case MIPS_REVISION_CORID_CORE_FPGA3:
201 case MIPS_REVISION_CORID_CORE_24K:
201 case MIPS_REVISION_CORID_CORE_EMUL_MSC: 202 case MIPS_REVISION_CORID_CORE_EMUL_MSC:
202 /* Set up resource ranges from the controller's registers. */ 203 /* Set up resource ranges from the controller's registers. */
203 MSC_READ(MSC01_PCI_SC2PMBASL, start); 204 MSC_READ(MSC01_PCI_SC2PMBASL, start);
diff --git a/arch/mips/mips-boards/generic/time.c b/arch/mips/mips-boards/generic/time.c
index 93f3bf2c2b22..a9f6124b3a22 100644
--- a/arch/mips/mips-boards/generic/time.c
+++ b/arch/mips/mips-boards/generic/time.c
@@ -30,6 +30,7 @@
30#include <linux/mc146818rtc.h> 30#include <linux/mc146818rtc.h>
31 31
32#include <asm/mipsregs.h> 32#include <asm/mipsregs.h>
33#include <asm/mipsmtregs.h>
33#include <asm/ptrace.h> 34#include <asm/ptrace.h>
34#include <asm/hardirq.h> 35#include <asm/hardirq.h>
35#include <asm/irq.h> 36#include <asm/irq.h>
@@ -50,16 +51,23 @@ unsigned long cpu_khz;
50static char display_string[] = " LINUX ON ATLAS "; 51static char display_string[] = " LINUX ON ATLAS ";
51#endif 52#endif
52#if defined(CONFIG_MIPS_MALTA) 53#if defined(CONFIG_MIPS_MALTA)
54#if defined(CONFIG_MIPS_MT_SMTC)
55static char display_string[] = " SMTC LINUX ON MALTA ";
56#else
53static char display_string[] = " LINUX ON MALTA "; 57static char display_string[] = " LINUX ON MALTA ";
58#endif /* CONFIG_MIPS_MT_SMTC */
54#endif 59#endif
55#if defined(CONFIG_MIPS_SEAD) 60#if defined(CONFIG_MIPS_SEAD)
56static char display_string[] = " LINUX ON SEAD "; 61static char display_string[] = " LINUX ON SEAD ";
57#endif 62#endif
58static unsigned int display_count = 0; 63static unsigned int display_count;
59#define MAX_DISPLAY_COUNT (sizeof(display_string) - 8) 64#define MAX_DISPLAY_COUNT (sizeof(display_string) - 8)
60 65
61static unsigned int timer_tick_count=0; 66#define CPUCTR_IMASKBIT (0x100 << MIPSCPU_INT_CPUCTR)
67
68static unsigned int timer_tick_count;
62static int mips_cpu_timer_irq; 69static int mips_cpu_timer_irq;
70extern void smtc_timer_broadcast(int);
63 71
64static inline void scroll_display_message(void) 72static inline void scroll_display_message(void)
65{ 73{
@@ -75,15 +83,55 @@ static void mips_timer_dispatch (struct pt_regs *regs)
75 do_IRQ (mips_cpu_timer_irq, regs); 83 do_IRQ (mips_cpu_timer_irq, regs);
76} 84}
77 85
86/*
87 * Redeclare until I get around mopping the timer code insanity on MIPS.
88 */
78extern int null_perf_irq(struct pt_regs *regs); 89extern int null_perf_irq(struct pt_regs *regs);
79 90
80extern int (*perf_irq)(struct pt_regs *regs); 91extern int (*perf_irq)(struct pt_regs *regs);
81 92
82irqreturn_t mips_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 93irqreturn_t mips_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
83{ 94{
84 int r2 = cpu_has_mips_r2;
85 int cpu = smp_processor_id(); 95 int cpu = smp_processor_id();
96 int r2 = cpu_has_mips_r2;
97
98#ifdef CONFIG_MIPS_MT_SMTC
99 /*
100 * In an SMTC system, one Count/Compare set exists per VPE.
101 * Which TC within a VPE gets the interrupt is essentially
102 * random - we only know that it shouldn't be one with
103 * IXMT set. Whichever TC gets the interrupt needs to
104 * send special interprocessor interrupts to the other
105 * TCs to make sure that they schedule, etc.
106 *
107 * That code is specific to the SMTC kernel, not to
108 * the a particular platform, so it's invoked from
109 * the general MIPS timer_interrupt routine.
110 */
111
112 /*
113 * DVPE is necessary so long as cross-VPE interrupts
114 * are done via read-modify-write of Cause register.
115 */
116 int vpflags = dvpe();
117 write_c0_compare (read_c0_count() - 1);
118 clear_c0_cause(CPUCTR_IMASKBIT);
119 evpe(vpflags);
120
121 if (cpu_data[cpu].vpe_id == 0) {
122 timer_interrupt(irq, dev_id, regs);
123 scroll_display_message();
124 } else
125 write_c0_compare (read_c0_count() + ( mips_hpt_frequency/HZ));
126 smtc_timer_broadcast(cpu_data[cpu].vpe_id);
86 127
128 if (cpu != 0)
129 /*
130 * Other CPUs should do profiling and process accounting
131 */
132 local_timer_interrupt(irq, dev_id, regs);
133
134#else /* CONFIG_MIPS_MT_SMTC */
87 if (cpu == 0) { 135 if (cpu == 0) {
88 /* 136 /*
89 * CPU 0 handles the global timer interrupt job and process 137 * CPU 0 handles the global timer interrupt job and process
@@ -107,12 +155,14 @@ irqreturn_t mips_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
107 * More support needs to be added to kernel/time for 155 * More support needs to be added to kernel/time for
108 * counter/timer interrupts on multiple CPU's 156 * counter/timer interrupts on multiple CPU's
109 */ 157 */
110 write_c0_compare (read_c0_count() + (mips_hpt_frequency/HZ)); 158 write_c0_compare(read_c0_count() + (mips_hpt_frequency/HZ));
159
111 /* 160 /*
112 * other CPUs should do profiling and process accounting 161 * Other CPUs should do profiling and process accounting
113 */ 162 */
114 local_timer_interrupt (irq, dev_id, regs); 163 local_timer_interrupt(irq, dev_id, regs);
115 } 164 }
165#endif /* CONFIG_MIPS_MT_SMTC */
116 166
117out: 167out:
118 return IRQ_HANDLED; 168 return IRQ_HANDLED;
@@ -126,7 +176,7 @@ static unsigned int __init estimate_cpu_frequency(void)
126 unsigned int prid = read_c0_prid() & 0xffff00; 176 unsigned int prid = read_c0_prid() & 0xffff00;
127 unsigned int count; 177 unsigned int count;
128 178
129#ifdef CONFIG_MIPS_SEAD 179#if defined(CONFIG_MIPS_SEAD) || defined(CONFIG_MIPS_SIM)
130 /* 180 /*
131 * The SEAD board doesn't have a real time clock, so we can't 181 * The SEAD board doesn't have a real time clock, so we can't
132 * really calculate the timer frequency 182 * really calculate the timer frequency
@@ -211,7 +261,11 @@ void __init mips_timer_setup(struct irqaction *irq)
211 261
212 /* we are using the cpu counter for timer interrupts */ 262 /* we are using the cpu counter for timer interrupts */
213 irq->handler = mips_timer_interrupt; /* we use our own handler */ 263 irq->handler = mips_timer_interrupt; /* we use our own handler */
264#ifdef CONFIG_MIPS_MT_SMTC
265 setup_irq_smtc(mips_cpu_timer_irq, irq, CPUCTR_IMASKBIT);
266#else
214 setup_irq(mips_cpu_timer_irq, irq); 267 setup_irq(mips_cpu_timer_irq, irq);
268#endif /* CONFIG_MIPS_MT_SMTC */
215 269
216#ifdef CONFIG_SMP 270#ifdef CONFIG_SMP
217 /* irq_desc(riptor) is a global resource, when the interrupt overlaps 271 /* irq_desc(riptor) is a global resource, when the interrupt overlaps
diff --git a/arch/mips/mips-boards/malta/Makefile b/arch/mips/mips-boards/malta/Makefile
index fd4c143c0e2f..77ee5c6d33c1 100644
--- a/arch/mips/mips-boards/malta/Makefile
+++ b/arch/mips/mips-boards/malta/Makefile
@@ -20,3 +20,4 @@
20# 20#
21 21
22obj-y := malta_int.o malta_setup.o 22obj-y := malta_int.o malta_setup.o
23obj-$(CONFIG_SMP) += malta_smp.o
diff --git a/arch/mips/mips-boards/malta/malta_int.c b/arch/mips/mips-boards/malta/malta_int.c
index d06dc5ad6c9e..7cc0ba4f553a 100644
--- a/arch/mips/mips-boards/malta/malta_int.c
+++ b/arch/mips/mips-boards/malta/malta_int.c
@@ -40,7 +40,6 @@
40#include <asm/mips-boards/msc01_pci.h> 40#include <asm/mips-boards/msc01_pci.h>
41#include <asm/msc01_ic.h> 41#include <asm/msc01_ic.h>
42 42
43extern asmlinkage void mipsIRQ(void);
44extern void mips_timer_interrupt(void); 43extern void mips_timer_interrupt(void);
45 44
46static DEFINE_SPINLOCK(mips_irq_lock); 45static DEFINE_SPINLOCK(mips_irq_lock);
@@ -58,6 +57,7 @@ static inline int mips_pcibios_iack(void)
58 case MIPS_REVISION_CORID_CORE_MSC: 57 case MIPS_REVISION_CORID_CORE_MSC:
59 case MIPS_REVISION_CORID_CORE_FPGA2: 58 case MIPS_REVISION_CORID_CORE_FPGA2:
60 case MIPS_REVISION_CORID_CORE_FPGA3: 59 case MIPS_REVISION_CORID_CORE_FPGA3:
60 case MIPS_REVISION_CORID_CORE_24K:
61 case MIPS_REVISION_CORID_CORE_EMUL_MSC: 61 case MIPS_REVISION_CORID_CORE_EMUL_MSC:
62 MSC_READ(MSC01_PCI_IACK, irq); 62 MSC_READ(MSC01_PCI_IACK, irq);
63 irq &= 0xff; 63 irq &= 0xff;
@@ -114,13 +114,14 @@ static inline int get_int(void)
114 return irq; 114 return irq;
115} 115}
116 116
117void malta_hw0_irqdispatch(struct pt_regs *regs) 117static void malta_hw0_irqdispatch(struct pt_regs *regs)
118{ 118{
119 int irq; 119 int irq;
120 120
121 irq = get_int(); 121 irq = get_int();
122 if (irq < 0) 122 if (irq < 0) {
123 return; /* interrupt has already been cleared */ 123 return; /* interrupt has already been cleared */
124 }
124 125
125 do_IRQ(MALTA_INT_BASE+irq, regs); 126 do_IRQ(MALTA_INT_BASE+irq, regs);
126} 127}
@@ -143,6 +144,7 @@ void corehi_irqdispatch(struct pt_regs *regs)
143 case MIPS_REVISION_CORID_CORE_MSC: 144 case MIPS_REVISION_CORID_CORE_MSC:
144 case MIPS_REVISION_CORID_CORE_FPGA2: 145 case MIPS_REVISION_CORID_CORE_FPGA2:
145 case MIPS_REVISION_CORID_CORE_FPGA3: 146 case MIPS_REVISION_CORID_CORE_FPGA3:
147 case MIPS_REVISION_CORID_CORE_24K:
146 case MIPS_REVISION_CORID_CORE_EMUL_MSC: 148 case MIPS_REVISION_CORID_CORE_EMUL_MSC:
147 ll_msc_irq(regs); 149 ll_msc_irq(regs);
148 break; 150 break;
@@ -182,6 +184,92 @@ void corehi_irqdispatch(struct pt_regs *regs)
182 die("CoreHi interrupt", regs); 184 die("CoreHi interrupt", regs);
183} 185}
184 186
187static inline int clz(unsigned long x)
188{
189 __asm__ (
190 " .set push \n"
191 " .set mips32 \n"
192 " clz %0, %1 \n"
193 " .set pop \n"
194 : "=r" (x)
195 : "r" (x));
196
197 return x;
198}
199
200/*
201 * Version of ffs that only looks at bits 12..15.
202 */
203static inline unsigned int irq_ffs(unsigned int pending)
204{
205#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
206 return -clz(pending) + 31 - CAUSEB_IP;
207#else
208 unsigned int a0 = 7;
209 unsigned int t0;
210
211 t0 = s0 & 0xf000;
212 t0 = t0 < 1;
213 t0 = t0 << 2;
214 a0 = a0 - t0;
215 s0 = s0 << t0;
216
217 t0 = s0 & 0xc000;
218 t0 = t0 < 1;
219 t0 = t0 << 1;
220 a0 = a0 - t0;
221 s0 = s0 << t0;
222
223 t0 = s0 & 0x8000;
224 t0 = t0 < 1;
225 //t0 = t0 << 2;
226 a0 = a0 - t0;
227 //s0 = s0 << t0;
228
229 return a0;
230#endif
231}
232
233/*
234 * IRQs on the Malta board look basically (barring software IRQs which we
235 * don't use at all and all external interrupt sources are combined together
236 * on hardware interrupt 0 (MIPS IRQ 2)) like:
237 *
238 * MIPS IRQ Source
239 * -------- ------
240 * 0 Software (ignored)
241 * 1 Software (ignored)
242 * 2 Combined hardware interrupt (hw0)
243 * 3 Hardware (ignored)
244 * 4 Hardware (ignored)
245 * 5 Hardware (ignored)
246 * 6 Hardware (ignored)
247 * 7 R4k timer (what we use)
248 *
249 * We handle the IRQ according to _our_ priority which is:
250 *
251 * Highest ---- R4k Timer
252 * Lowest ---- Combined hardware interrupt
253 *
254 * then we just return, if multiple IRQs are pending then we will just take
255 * another exception, big deal.
256 */
257
258asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
259{
260 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
261 int irq;
262
263 irq = irq_ffs(pending);
264
265 if (irq == MIPSCPU_INT_I8259A)
266 malta_hw0_irqdispatch(regs);
267 else if (irq > 0)
268 do_IRQ(MIPSCPU_INT_BASE + irq, regs);
269 else
270 spurious_interrupt(regs);
271}
272
185static struct irqaction i8259irq = { 273static struct irqaction i8259irq = {
186 .handler = no_action, 274 .handler = no_action,
187 .name = "XT-PIC cascade" 275 .name = "XT-PIC cascade"
@@ -214,7 +302,6 @@ int __initdata msc_nr_eicirqs = sizeof(msc_eicirqmap)/sizeof(msc_irqmap_t);
214 302
215void __init arch_init_irq(void) 303void __init arch_init_irq(void)
216{ 304{
217 set_except_vector(0, mipsIRQ);
218 init_i8259_irqs(); 305 init_i8259_irqs();
219 306
220 if (!cpu_has_veic) 307 if (!cpu_has_veic)
@@ -224,6 +311,7 @@ void __init arch_init_irq(void)
224 case MIPS_REVISION_CORID_CORE_MSC: 311 case MIPS_REVISION_CORID_CORE_MSC:
225 case MIPS_REVISION_CORID_CORE_FPGA2: 312 case MIPS_REVISION_CORID_CORE_FPGA2:
226 case MIPS_REVISION_CORID_CORE_FPGA3: 313 case MIPS_REVISION_CORID_CORE_FPGA3:
314 case MIPS_REVISION_CORID_CORE_24K:
227 case MIPS_REVISION_CORID_CORE_EMUL_MSC: 315 case MIPS_REVISION_CORID_CORE_EMUL_MSC:
228 if (cpu_has_veic) 316 if (cpu_has_veic)
229 init_msc_irqs (MSC01E_INT_BASE, msc_eicirqmap, msc_nr_eicirqs); 317 init_msc_irqs (MSC01E_INT_BASE, msc_eicirqmap, msc_nr_eicirqs);
@@ -240,12 +328,17 @@ void __init arch_init_irq(void)
240 else if (cpu_has_vint) { 328 else if (cpu_has_vint) {
241 set_vi_handler (MIPSCPU_INT_I8259A, malta_hw0_irqdispatch); 329 set_vi_handler (MIPSCPU_INT_I8259A, malta_hw0_irqdispatch);
242 set_vi_handler (MIPSCPU_INT_COREHI, corehi_irqdispatch); 330 set_vi_handler (MIPSCPU_INT_COREHI, corehi_irqdispatch);
243 331#ifdef CONFIG_MIPS_MT_SMTC
332 setup_irq_smtc (MIPSCPU_INT_BASE+MIPSCPU_INT_I8259A, &i8259irq,
333 (0x100 << MIPSCPU_INT_I8259A));
334 setup_irq_smtc (MIPSCPU_INT_BASE+MIPSCPU_INT_COREHI,
335 &corehi_irqaction, (0x100 << MIPSCPU_INT_COREHI));
336#else /* Not SMTC */
244 setup_irq (MIPSCPU_INT_BASE+MIPSCPU_INT_I8259A, &i8259irq); 337 setup_irq (MIPSCPU_INT_BASE+MIPSCPU_INT_I8259A, &i8259irq);
245 setup_irq (MIPSCPU_INT_BASE+MIPSCPU_INT_COREHI, &corehi_irqaction); 338 setup_irq (MIPSCPU_INT_BASE+MIPSCPU_INT_COREHI, &corehi_irqaction);
339#endif /* CONFIG_MIPS_MT_SMTC */
246 } 340 }
247 else { 341 else {
248 set_except_vector(0, mipsIRQ);
249 setup_irq (MIPSCPU_INT_BASE+MIPSCPU_INT_I8259A, &i8259irq); 342 setup_irq (MIPSCPU_INT_BASE+MIPSCPU_INT_I8259A, &i8259irq);
250 setup_irq (MIPSCPU_INT_BASE+MIPSCPU_INT_COREHI, &corehi_irqaction); 343 setup_irq (MIPSCPU_INT_BASE+MIPSCPU_INT_COREHI, &corehi_irqaction);
251 } 344 }
diff --git a/arch/mips/mips-boards/malta/malta_smp.c b/arch/mips/mips-boards/malta/malta_smp.c
new file mode 100644
index 000000000000..6c6c8eeedbce
--- /dev/null
+++ b/arch/mips/mips-boards/malta/malta_smp.c
@@ -0,0 +1,128 @@
1/*
2 * Malta Platform-specific hooks for SMP operation
3 */
4
5#include <linux/kernel.h>
6#include <linux/sched.h>
7#include <linux/cpumask.h>
8#include <linux/interrupt.h>
9
10#include <asm/atomic.h>
11#include <asm/cpu.h>
12#include <asm/processor.h>
13#include <asm/system.h>
14#include <asm/hardirq.h>
15#include <asm/mmu_context.h>
16#include <asm/smp.h>
17#ifdef CONFIG_MIPS_MT_SMTC
18#include <asm/smtc_ipi.h>
19#endif /* CONFIG_MIPS_MT_SMTC */
20
21/* VPE/SMP Prototype implements platform interfaces directly */
22#if !defined(CONFIG_MIPS_MT_SMP)
23
24/*
25 * Cause the specified action to be performed on a targeted "CPU"
26 */
27
28void core_send_ipi(int cpu, unsigned int action)
29{
30/* "CPU" may be TC of same VPE, VPE of same CPU, or different CPU */
31#ifdef CONFIG_MIPS_MT_SMTC
32 smtc_send_ipi(cpu, LINUX_SMP_IPI, action);
33#endif /* CONFIG_MIPS_MT_SMTC */
34}
35
36/*
37 * Detect available CPUs/VPEs/TCs and populate phys_cpu_present_map
38 */
39
40void __init prom_build_cpu_map(void)
41{
42 int nextslot;
43
44 /*
45 * As of November, 2004, MIPSsim only simulates one core
46 * at a time. However, that core may be a MIPS MT core
47 * with multiple virtual processors and thread contexts.
48 */
49
50 if (read_c0_config3() & (1<<2)) {
51 nextslot = mipsmt_build_cpu_map(1);
52 }
53}
54
55/*
56 * Platform "CPU" startup hook
57 */
58
59void prom_boot_secondary(int cpu, struct task_struct *idle)
60{
61#ifdef CONFIG_MIPS_MT_SMTC
62 smtc_boot_secondary(cpu, idle);
63#endif /* CONFIG_MIPS_MT_SMTC */
64}
65
66/*
67 * Post-config but pre-boot cleanup entry point
68 */
69
70void prom_init_secondary(void)
71{
72#ifdef CONFIG_MIPS_MT_SMTC
73 void smtc_init_secondary(void);
74 int myvpe;
75
76 /* Don't enable Malta I/O interrupts (IP2) for secondary VPEs */
77 myvpe = read_c0_tcbind() & TCBIND_CURVPE;
78 if (myvpe != 0) {
79 /* Ideally, this should be done only once per VPE, but... */
80 clear_c0_status(STATUSF_IP2);
81 set_c0_status(STATUSF_IP0 | STATUSF_IP1 | STATUSF_IP3
82 | STATUSF_IP4 | STATUSF_IP5 | STATUSF_IP6
83 | STATUSF_IP7);
84 }
85
86 smtc_init_secondary();
87#endif /* CONFIG_MIPS_MT_SMTC */
88}
89
90/*
91 * Platform SMP pre-initialization
92 *
93 * As noted above, we can assume a single CPU for now
94 * but it may be multithreaded.
95 */
96
97void plat_smp_setup(void)
98{
99 if (read_c0_config3() & (1<<2))
100 mipsmt_build_cpu_map(0);
101}
102
103void __init plat_prepare_cpus(unsigned int max_cpus)
104{
105 if (read_c0_config3() & (1<<2))
106 mipsmt_prepare_cpus();
107}
108
109/*
110 * SMP initialization finalization entry point
111 */
112
113void prom_smp_finish(void)
114{
115#ifdef CONFIG_MIPS_MT_SMTC
116 smtc_smp_finish();
117#endif /* CONFIG_MIPS_MT_SMTC */
118}
119
120/*
121 * Hook for after all CPUs are online
122 */
123
124void prom_cpus_done(void)
125{
126}
127
128#endif /* CONFIG_MIPS32R2_MT_SMP */
diff --git a/arch/mips/mips-boards/sead/sead_int.c b/arch/mips/mips-boards/sead/sead_int.c
index 90fda0d9915f..9168d934c661 100644
--- a/arch/mips/mips-boards/sead/sead_int.c
+++ b/arch/mips/mips-boards/sead/sead_int.c
@@ -24,16 +24,94 @@
24#include <linux/irq.h> 24#include <linux/irq.h>
25 25
26#include <asm/irq_cpu.h> 26#include <asm/irq_cpu.h>
27#include <asm/mipsregs.h>
27#include <asm/system.h> 28#include <asm/system.h>
28 29
29#include <asm/mips-boards/seadint.h> 30#include <asm/mips-boards/seadint.h>
30 31
31extern asmlinkage void mipsIRQ(void); 32static inline int clz(unsigned long x)
33{
34 __asm__ (
35 " .set push \n"
36 " .set mips32 \n"
37 " clz %0, %1 \n"
38 " .set pop \n"
39 : "=r" (x)
40 : "r" (x));
41
42 return x;
43}
44
45/*
46 * Version of ffs that only looks at bits 12..15.
47 */
48static inline unsigned int irq_ffs(unsigned int pending)
49{
50#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
51 return -clz(pending) + 31 - CAUSEB_IP;
52#else
53 unsigned int a0 = 7;
54 unsigned int t0;
55
56 t0 = s0 & 0xf000;
57 t0 = t0 < 1;
58 t0 = t0 << 2;
59 a0 = a0 - t0;
60 s0 = s0 << t0;
61
62 t0 = s0 & 0xc000;
63 t0 = t0 < 1;
64 t0 = t0 << 1;
65 a0 = a0 - t0;
66 s0 = s0 << t0;
67
68 t0 = s0 & 0x8000;
69 t0 = t0 < 1;
70 //t0 = t0 << 2;
71 a0 = a0 - t0;
72 //s0 = s0 << t0;
73
74 return a0;
75#endif
76}
77
78/*
79 * IRQs on the SEAD board look basically are combined together on hardware
80 * interrupt 0 (MIPS IRQ 2)) like:
81 *
82 * MIPS IRQ Source
83 * -------- ------
84 * 0 Software (ignored)
85 * 1 Software (ignored)
86 * 2 UART0 (hw0)
87 * 3 UART1 (hw1)
88 * 4 Hardware (ignored)
89 * 5 Hardware (ignored)
90 * 6 Hardware (ignored)
91 * 7 R4k timer (what we use)
92 *
93 * We handle the IRQ according to _our_ priority which is:
94 *
95 * Highest ---- R4k Timer
96 * Lowest ---- Combined hardware interrupt
97 *
98 * then we just return, if multiple IRQs are pending then we will just take
99 * another exception, big deal.
100 */
101asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
102{
103 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
104 int irq;
105
106 irq = irq_ffs(pending);
107
108 if (irq >= 0)
109 do_IRQ(MIPSCPU_INT_BASE + irq, regs);
110 else
111 spurious_interrupt(regs);
112}
32 113
33void __init arch_init_irq(void) 114void __init arch_init_irq(void)
34{ 115{
35 mips_cpu_irq_init(MIPSCPU_INT_BASE); 116 mips_cpu_irq_init(MIPSCPU_INT_BASE);
36
37 /* Now safe to set the exception vector. */
38 set_except_vector(0, mipsIRQ);
39} 117}
diff --git a/arch/mips/mips-boards/sim/cmdline.c b/arch/mips/mips-boards/sim/cmdline.c
deleted file mode 100644
index fef9fbd8e710..000000000000
--- a/arch/mips/mips-boards/sim/cmdline.c
+++ /dev/null
@@ -1,59 +0,0 @@
1/*
2 * Carsten Langgaard, carstenl@mips.com
3 * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
4 *
5 * This program is free software; you can distribute it and/or modify it
6 * under the terms of the GNU General Public License (Version 2) as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
17 *
18 * Kernel command line creation using the prom monitor (YAMON) argc/argv.
19 */
20#include <linux/init.h>
21#include <linux/string.h>
22
23#include <asm/bootinfo.h>
24
25extern int prom_argc;
26extern int *_prom_argv;
27
28/*
29 * YAMON (32-bit PROM) pass arguments and environment as 32-bit pointer.
30 * This macro take care of sign extension.
31 */
32#define prom_argv(index) ((char *)(((int *)(int)_prom_argv)[(index)]))
33
34char arcs_cmdline[CL_SIZE];
35
36char * __init prom_getcmdline(void)
37{
38 return &(arcs_cmdline[0]);
39}
40
41
42void __init prom_init_cmdline(void)
43{
44 char *cp;
45 int actr;
46
47 actr = 1; /* Always ignore argv[0] */
48
49 cp = &(arcs_cmdline[0]);
50 while(actr < prom_argc) {
51 strcpy(cp, prom_argv(actr));
52 cp += strlen(prom_argv(actr));
53 *cp++ = ' ';
54 actr++;
55 }
56 if (cp != &(arcs_cmdline[0])) /* get rid of trailing space */
57 --cp;
58 *cp = '\0';
59}
diff --git a/arch/mips/mips-boards/sim/sim_cmdline.c b/arch/mips/mips-boards/sim/sim_cmdline.c
index 9df37c6fca36..c63021a5dc6c 100644
--- a/arch/mips/mips-boards/sim/sim_cmdline.c
+++ b/arch/mips/mips-boards/sim/sim_cmdline.c
@@ -26,8 +26,10 @@ char * __init prom_getcmdline(void)
26 return arcs_cmdline; 26 return arcs_cmdline;
27} 27}
28 28
29
30void __init prom_init_cmdline(void) 29void __init prom_init_cmdline(void)
31{ 30{
32 /* nothing to do */ 31 char *cp;
32 cp = arcs_cmdline;
33 /* Get boot line from environment? */
34 *cp = '\0';
33} 35}
diff --git a/arch/mips/mips-boards/sim/sim_int.c b/arch/mips/mips-boards/sim/sim_int.c
index a4d0a2c05031..2c15c8efec4e 100644
--- a/arch/mips/mips-boards/sim/sim_int.c
+++ b/arch/mips/mips-boards/sim/sim_int.c
@@ -25,17 +25,71 @@
25 25
26extern void mips_cpu_irq_init(int); 26extern void mips_cpu_irq_init(int);
27 27
28extern asmlinkage void simIRQ(void); 28static inline int clz(unsigned long x)
29{
30 __asm__ (
31 " .set push \n"
32 " .set mips32 \n"
33 " clz %0, %1 \n"
34 " .set pop \n"
35 : "=r" (x)
36 : "r" (x));
37
38 return x;
39}
40
41/*
42 * Version of ffs that only looks at bits 12..15.
43 */
44static inline unsigned int irq_ffs(unsigned int pending)
45{
46#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
47 return -clz(pending) + 31 - CAUSEB_IP;
48#else
49 unsigned int a0 = 7;
50 unsigned int t0;
51
52 t0 = s0 & 0xf000;
53 t0 = t0 < 1;
54 t0 = t0 << 2;
55 a0 = a0 - t0;
56 s0 = s0 << t0;
57
58 t0 = s0 & 0xc000;
59 t0 = t0 < 1;
60 t0 = t0 << 1;
61 a0 = a0 - t0;
62 s0 = s0 << t0;
29 63
30asmlinkage void sim_hw0_irqdispatch(struct pt_regs *regs) 64 t0 = s0 & 0x8000;
65 t0 = t0 < 1;
66 //t0 = t0 << 2;
67 a0 = a0 - t0;
68 //s0 = s0 << t0;
69
70 return a0;
71#endif
72}
73
74static inline void sim_hw0_irqdispatch(struct pt_regs *regs)
31{ 75{
32 do_IRQ(2, regs); 76 do_IRQ(2, regs);
33} 77}
34 78
35void __init arch_init_irq(void) 79asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
36{ 80{
37 /* Now safe to set the exception vector. */ 81 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
38 set_except_vector(0, simIRQ); 82 int irq;
83
84 irq = irq_ffs(pending);
39 85
86 if (irq > 0)
87 do_IRQ(MIPSCPU_INT_BASE + irq, regs);
88 else
89 spurious_interrupt(regs);
90}
91
92void __init arch_init_irq(void)
93{
40 mips_cpu_irq_init(MIPSCPU_INT_BASE); 94 mips_cpu_irq_init(MIPSCPU_INT_BASE);
41} 95}
diff --git a/arch/mips/mips-boards/sim/sim_irq.S b/arch/mips/mips-boards/sim/sim_irq.S
index da52297a2216..d16cf3822076 100644
--- a/arch/mips/mips-boards/sim/sim_irq.S
+++ b/arch/mips/mips-boards/sim/sim_irq.S
@@ -94,6 +94,8 @@
94 94
95 95
96spurious: 96spurious:
97 j spurious_interrupt 97 jal spurious_interrupt
98 nop
99 j ret_from_irq
98 nop 100 nop
99 END(simIRQ) 101 END(simIRQ)
diff --git a/arch/mips/mips-boards/sim/sim_mem.c b/arch/mips/mips-boards/sim/sim_mem.c
index e57f737bab10..f7ce76983328 100644
--- a/arch/mips/mips-boards/sim/sim_mem.c
+++ b/arch/mips/mips-boards/sim/sim_mem.c
@@ -18,9 +18,11 @@
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/mm.h> 19#include <linux/mm.h>
20#include <linux/bootmem.h> 20#include <linux/bootmem.h>
21#include <linux/pfn.h>
21 22
22#include <asm/bootinfo.h> 23#include <asm/bootinfo.h>
23#include <asm/page.h> 24#include <asm/page.h>
25#include <asm/sections.h>
24 26
25#include <asm/mips-boards/prom.h> 27#include <asm/mips-boards/prom.h>
26 28
@@ -39,9 +41,6 @@ static char *mtypes[3] = {
39}; 41};
40#endif 42#endif
41 43
42/* References to section boundaries */
43extern char _end;
44
45struct prom_pmemblock * __init prom_getmdesc(void) 44struct prom_pmemblock * __init prom_getmdesc(void)
46{ 45{
47 unsigned int memsize; 46 unsigned int memsize;
@@ -61,10 +60,10 @@ struct prom_pmemblock * __init prom_getmdesc(void)
61 60
62 mdesc[2].type = simmem_reserved; 61 mdesc[2].type = simmem_reserved;
63 mdesc[2].base = 0x00100000; 62 mdesc[2].base = 0x00100000;
64 mdesc[2].size = CPHYSADDR(PAGE_ALIGN(&_end)) - mdesc[2].base; 63 mdesc[2].size = CPHYSADDR(PFN_ALIGN(&_end)) - mdesc[2].base;
65 64
66 mdesc[3].type = simmem_free; 65 mdesc[3].type = simmem_free;
67 mdesc[3].base = CPHYSADDR(PAGE_ALIGN(&_end)); 66 mdesc[3].base = CPHYSADDR(PFN_ALIGN(&_end));
68 mdesc[3].size = memsize - mdesc[3].base; 67 mdesc[3].size = memsize - mdesc[3].base;
69 68
70 return &mdesc[0]; 69 return &mdesc[0];
diff --git a/arch/mips/mips-boards/sim/sim_smp.c b/arch/mips/mips-boards/sim/sim_smp.c
index a9f0c2bfe4ad..b7084e7c4bf9 100644
--- a/arch/mips/mips-boards/sim/sim_smp.c
+++ b/arch/mips/mips-boards/sim/sim_smp.c
@@ -44,8 +44,6 @@
44void core_send_ipi(int cpu, unsigned int action) 44void core_send_ipi(int cpu, unsigned int action)
45{ 45{
46#ifdef CONFIG_MIPS_MT_SMTC 46#ifdef CONFIG_MIPS_MT_SMTC
47 void smtc_send_ipi(int, int, unsigned int);
48
49 smtc_send_ipi(cpu, LINUX_SMP_IPI, action); 47 smtc_send_ipi(cpu, LINUX_SMP_IPI, action);
50#endif /* CONFIG_MIPS_MT_SMTC */ 48#endif /* CONFIG_MIPS_MT_SMTC */
51/* "CPU" may be TC of same VPE, VPE of same CPU, or different CPU */ 49/* "CPU" may be TC of same VPE, VPE of same CPU, or different CPU */
@@ -59,15 +57,8 @@ void core_send_ipi(int cpu, unsigned int action)
59void __init prom_build_cpu_map(void) 57void __init prom_build_cpu_map(void)
60{ 58{
61#ifdef CONFIG_MIPS_MT_SMTC 59#ifdef CONFIG_MIPS_MT_SMTC
62 extern int mipsmt_build_cpu_map(int startslot);
63 int nextslot; 60 int nextslot;
64 61
65 cpus_clear(phys_cpu_present_map);
66
67 /* Register the boot CPU */
68
69 smp_prepare_boot_cpu();
70
71 /* 62 /*
72 * As of November, 2004, MIPSsim only simulates one core 63 * As of November, 2004, MIPSsim only simulates one core
73 * at a time. However, that core may be a MIPS MT core 64 * at a time. However, that core may be a MIPS MT core
@@ -87,8 +78,6 @@ void __init prom_build_cpu_map(void)
87void prom_boot_secondary(int cpu, struct task_struct *idle) 78void prom_boot_secondary(int cpu, struct task_struct *idle)
88{ 79{
89#ifdef CONFIG_MIPS_MT_SMTC 80#ifdef CONFIG_MIPS_MT_SMTC
90 extern void smtc_boot_secondary(int cpu, struct task_struct *t);
91
92 smtc_boot_secondary(cpu, idle); 81 smtc_boot_secondary(cpu, idle);
93#endif /* CONFIG_MIPS_MT_SMTC */ 82#endif /* CONFIG_MIPS_MT_SMTC */
94} 83}
@@ -113,7 +102,6 @@ void prom_init_secondary(void)
113void prom_prepare_cpus(unsigned int max_cpus) 102void prom_prepare_cpus(unsigned int max_cpus)
114{ 103{
115#ifdef CONFIG_MIPS_MT_SMTC 104#ifdef CONFIG_MIPS_MT_SMTC
116 void mipsmt_prepare_cpus(int c);
117 /* 105 /*
118 * As noted above, we can assume a single CPU for now 106 * As noted above, we can assume a single CPU for now
119 * but it may be multithreaded. 107 * but it may be multithreaded.
@@ -132,8 +120,6 @@ void prom_prepare_cpus(unsigned int max_cpus)
132void prom_smp_finish(void) 120void prom_smp_finish(void)
133{ 121{
134#ifdef CONFIG_MIPS_MT_SMTC 122#ifdef CONFIG_MIPS_MT_SMTC
135 void smtc_smp_finish(void);
136
137 smtc_smp_finish(); 123 smtc_smp_finish();
138#endif /* CONFIG_MIPS_MT_SMTC */ 124#endif /* CONFIG_MIPS_MT_SMTC */
139} 125}
diff --git a/arch/mips/mm/c-r3k.c b/arch/mips/mm/c-r3k.c
index 9dd1352d5748..bb041a22f20a 100644
--- a/arch/mips/mm/c-r3k.c
+++ b/arch/mips/mm/c-r3k.c
@@ -260,6 +260,10 @@ static void r3k_flush_cache_page(struct vm_area_struct *vma, unsigned long page,
260{ 260{
261} 261}
262 262
263static void local_r3k_flush_data_cache_page(unsigned long addr)
264{
265}
266
263static void r3k_flush_data_cache_page(unsigned long addr) 267static void r3k_flush_data_cache_page(unsigned long addr)
264{ 268{
265} 269}
@@ -335,6 +339,7 @@ void __init r3k_cache_init(void)
335 flush_icache_range = r3k_flush_icache_range; 339 flush_icache_range = r3k_flush_icache_range;
336 340
337 flush_cache_sigtramp = r3k_flush_cache_sigtramp; 341 flush_cache_sigtramp = r3k_flush_cache_sigtramp;
342 local_flush_data_cache_page = local_r3k_flush_data_cache_page;
338 flush_data_cache_page = r3k_flush_data_cache_page; 343 flush_data_cache_page = r3k_flush_data_cache_page;
339 344
340 _dma_cache_wback_inv = r3k_dma_cache_wback_inv; 345 _dma_cache_wback_inv = r3k_dma_cache_wback_inv;
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 32b7f6aeb983..4182e1176fae 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -154,7 +154,8 @@ static inline void blast_icache32_r4600_v1_page_indexed(unsigned long page)
154 154
155static inline void tx49_blast_icache32_page_indexed(unsigned long page) 155static inline void tx49_blast_icache32_page_indexed(unsigned long page)
156{ 156{
157 unsigned long start = page; 157 unsigned long indexmask = current_cpu_data.icache.waysize - 1;
158 unsigned long start = INDEX_BASE + (page & indexmask);
158 unsigned long end = start + PAGE_SIZE; 159 unsigned long end = start + PAGE_SIZE;
159 unsigned long ws_inc = 1UL << current_cpu_data.icache.waybit; 160 unsigned long ws_inc = 1UL << current_cpu_data.icache.waybit;
160 unsigned long ws_end = current_cpu_data.icache.ways << 161 unsigned long ws_end = current_cpu_data.icache.ways <<
@@ -749,12 +750,12 @@ static void __init probe_pcache(void)
749 icache_size = 1 << (12 + ((config & CONF_IC) >> 9)); 750 icache_size = 1 << (12 + ((config & CONF_IC) >> 9));
750 c->icache.linesz = 16 << ((config & CONF_IB) >> 5); 751 c->icache.linesz = 16 << ((config & CONF_IB) >> 5);
751 c->icache.ways = 2; 752 c->icache.ways = 2;
752 c->icache.waybit = ffs(icache_size/2) - 1; 753 c->icache.waybit = __ffs(icache_size/2);
753 754
754 dcache_size = 1 << (12 + ((config & CONF_DC) >> 6)); 755 dcache_size = 1 << (12 + ((config & CONF_DC) >> 6));
755 c->dcache.linesz = 16 << ((config & CONF_DB) >> 4); 756 c->dcache.linesz = 16 << ((config & CONF_DB) >> 4);
756 c->dcache.ways = 2; 757 c->dcache.ways = 2;
757 c->dcache.waybit= ffs(dcache_size/2) - 1; 758 c->dcache.waybit= __ffs(dcache_size/2);
758 759
759 c->options |= MIPS_CPU_CACHE_CDEX_P; 760 c->options |= MIPS_CPU_CACHE_CDEX_P;
760 break; 761 break;
@@ -837,12 +838,12 @@ static void __init probe_pcache(void)
837 icache_size = 1 << (10 + ((config & CONF_IC) >> 9)); 838 icache_size = 1 << (10 + ((config & CONF_IC) >> 9));
838 c->icache.linesz = 16 << ((config & CONF_IB) >> 5); 839 c->icache.linesz = 16 << ((config & CONF_IB) >> 5);
839 c->icache.ways = 2; 840 c->icache.ways = 2;
840 c->icache.waybit = ffs(icache_size/2) - 1; 841 c->icache.waybit = __ffs(icache_size/2);
841 842
842 dcache_size = 1 << (10 + ((config & CONF_DC) >> 6)); 843 dcache_size = 1 << (10 + ((config & CONF_DC) >> 6));
843 c->dcache.linesz = 16 << ((config & CONF_DB) >> 4); 844 c->dcache.linesz = 16 << ((config & CONF_DB) >> 4);
844 c->dcache.ways = 2; 845 c->dcache.ways = 2;
845 c->dcache.waybit = ffs(dcache_size/2) - 1; 846 c->dcache.waybit = __ffs(dcache_size/2);
846 847
847 c->options |= MIPS_CPU_CACHE_CDEX_P; 848 c->options |= MIPS_CPU_CACHE_CDEX_P;
848 break; 849 break;
@@ -873,12 +874,12 @@ static void __init probe_pcache(void)
873 icache_size = 1 << (12 + ((config & CONF_IC) >> 9)); 874 icache_size = 1 << (12 + ((config & CONF_IC) >> 9));
874 c->icache.linesz = 16 << ((config & CONF_IB) >> 5); 875 c->icache.linesz = 16 << ((config & CONF_IB) >> 5);
875 c->icache.ways = 4; 876 c->icache.ways = 4;
876 c->icache.waybit = ffs(icache_size / c->icache.ways) - 1; 877 c->icache.waybit = __ffs(icache_size / c->icache.ways);
877 878
878 dcache_size = 1 << (12 + ((config & CONF_DC) >> 6)); 879 dcache_size = 1 << (12 + ((config & CONF_DC) >> 6));
879 c->dcache.linesz = 16 << ((config & CONF_DB) >> 4); 880 c->dcache.linesz = 16 << ((config & CONF_DB) >> 4);
880 c->dcache.ways = 4; 881 c->dcache.ways = 4;
881 c->dcache.waybit = ffs(dcache_size / c->dcache.ways) - 1; 882 c->dcache.waybit = __ffs(dcache_size / c->dcache.ways);
882 883
883#if !defined(CONFIG_SMP) || !defined(RM9000_CDEX_SMP_WAR) 884#if !defined(CONFIG_SMP) || !defined(RM9000_CDEX_SMP_WAR)
884 c->options |= MIPS_CPU_CACHE_CDEX_P; 885 c->options |= MIPS_CPU_CACHE_CDEX_P;
@@ -906,7 +907,7 @@ static void __init probe_pcache(void)
906 icache_size = c->icache.sets * 907 icache_size = c->icache.sets *
907 c->icache.ways * 908 c->icache.ways *
908 c->icache.linesz; 909 c->icache.linesz;
909 c->icache.waybit = ffs(icache_size/c->icache.ways) - 1; 910 c->icache.waybit = __ffs(icache_size/c->icache.ways);
910 911
911 if (config & 0x8) /* VI bit */ 912 if (config & 0x8) /* VI bit */
912 c->icache.flags |= MIPS_CACHE_VTAG; 913 c->icache.flags |= MIPS_CACHE_VTAG;
@@ -926,7 +927,7 @@ static void __init probe_pcache(void)
926 dcache_size = c->dcache.sets * 927 dcache_size = c->dcache.sets *
927 c->dcache.ways * 928 c->dcache.ways *
928 c->dcache.linesz; 929 c->dcache.linesz;
929 c->dcache.waybit = ffs(dcache_size/c->dcache.ways) - 1; 930 c->dcache.waybit = __ffs(dcache_size/c->dcache.ways);
930 931
931 c->options |= MIPS_CPU_PREFETCH; 932 c->options |= MIPS_CPU_PREFETCH;
932 break; 933 break;
@@ -1198,6 +1199,7 @@ void __init r4k_cache_init(void)
1198 1199
1199 flush_cache_sigtramp = r4k_flush_cache_sigtramp; 1200 flush_cache_sigtramp = r4k_flush_cache_sigtramp;
1200 flush_icache_all = r4k_flush_icache_all; 1201 flush_icache_all = r4k_flush_icache_all;
1202 local_flush_data_cache_page = local_r4k_flush_data_cache_page;
1201 flush_data_cache_page = r4k_flush_data_cache_page; 1203 flush_data_cache_page = r4k_flush_data_cache_page;
1202 flush_icache_range = r4k_flush_icache_range; 1204 flush_icache_range = r4k_flush_icache_range;
1203 1205
diff --git a/arch/mips/mm/c-sb1.c b/arch/mips/mm/c-sb1.c
index 2f08b535f20e..f9b129491b1e 100644
--- a/arch/mips/mm/c-sb1.c
+++ b/arch/mips/mm/c-sb1.c
@@ -528,6 +528,7 @@ void sb1_cache_init(void)
528 flush_cache_page = sb1_flush_cache_page; 528 flush_cache_page = sb1_flush_cache_page;
529 529
530 flush_cache_sigtramp = sb1_flush_cache_sigtramp; 530 flush_cache_sigtramp = sb1_flush_cache_sigtramp;
531 local_flush_data_cache_page = (void *) sb1_nop;
531 flush_data_cache_page = (void *) sb1_nop; 532 flush_data_cache_page = (void *) sb1_nop;
532 533
533 /* Full flush */ 534 /* Full flush */
diff --git a/arch/mips/mm/c-tx39.c b/arch/mips/mm/c-tx39.c
index fe232e3988e3..5dfc9b1901f6 100644
--- a/arch/mips/mm/c-tx39.c
+++ b/arch/mips/mm/c-tx39.c
@@ -216,6 +216,11 @@ static void tx39_flush_cache_page(struct vm_area_struct *vma, unsigned long page
216 tx39_blast_icache_page_indexed(page); 216 tx39_blast_icache_page_indexed(page);
217} 217}
218 218
219static void local_tx39_flush_data_cache_page(void * addr)
220{
221 tx39_blast_dcache_page(addr);
222}
223
219static void tx39_flush_data_cache_page(unsigned long addr) 224static void tx39_flush_data_cache_page(unsigned long addr)
220{ 225{
221 tx39_blast_dcache_page(addr); 226 tx39_blast_dcache_page(addr);
@@ -381,6 +386,7 @@ void __init tx39_cache_init(void)
381 flush_icache_range = (void *) tx39h_flush_icache_all; 386 flush_icache_range = (void *) tx39h_flush_icache_all;
382 387
383 flush_cache_sigtramp = (void *) tx39h_flush_icache_all; 388 flush_cache_sigtramp = (void *) tx39h_flush_icache_all;
389 local_flush_data_cache_page = (void *) tx39h_flush_icache_all;
384 flush_data_cache_page = (void *) tx39h_flush_icache_all; 390 flush_data_cache_page = (void *) tx39h_flush_icache_all;
385 391
386 _dma_cache_wback_inv = tx39h_dma_cache_wback_inv; 392 _dma_cache_wback_inv = tx39h_dma_cache_wback_inv;
@@ -406,6 +412,7 @@ void __init tx39_cache_init(void)
406 flush_icache_range = tx39_flush_icache_range; 412 flush_icache_range = tx39_flush_icache_range;
407 413
408 flush_cache_sigtramp = tx39_flush_cache_sigtramp; 414 flush_cache_sigtramp = tx39_flush_cache_sigtramp;
415 local_flush_data_cache_page = local_tx39_flush_data_cache_page;
409 flush_data_cache_page = tx39_flush_data_cache_page; 416 flush_data_cache_page = tx39_flush_data_cache_page;
410 417
411 _dma_cache_wback_inv = tx39_dma_cache_wback_inv; 418 _dma_cache_wback_inv = tx39_dma_cache_wback_inv;
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 591c22b080e4..83a56296be86 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -30,6 +30,7 @@ void (*flush_icache_page)(struct vm_area_struct *vma, struct page *page);
30 30
31/* MIPS specific cache operations */ 31/* MIPS specific cache operations */
32void (*flush_cache_sigtramp)(unsigned long addr); 32void (*flush_cache_sigtramp)(unsigned long addr);
33void (*local_flush_data_cache_page)(void * addr);
33void (*flush_data_cache_page)(unsigned long addr); 34void (*flush_data_cache_page)(unsigned long addr);
34void (*flush_icache_all)(void); 35void (*flush_icache_all)(void);
35 36
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index 2d9624fd10ec..e3a617224868 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -157,7 +157,6 @@ no_context:
157 * Oops. The kernel tried to access some bad page. We'll have to 157 * Oops. The kernel tried to access some bad page. We'll have to
158 * terminate things with extreme prejudice. 158 * terminate things with extreme prejudice.
159 */ 159 */
160
161 bust_spinlocks(1); 160 bust_spinlocks(1);
162 161
163 printk(KERN_ALERT "CPU %d Unable to handle kernel paging request at " 162 printk(KERN_ALERT "CPU %d Unable to handle kernel paging request at "
@@ -188,11 +187,20 @@ do_sigbus:
188 /* Kernel mode? Handle exceptions or die */ 187 /* Kernel mode? Handle exceptions or die */
189 if (!user_mode(regs)) 188 if (!user_mode(regs))
190 goto no_context; 189 goto no_context;
191 190 else
192 /* 191 /*
193 * Send a sigbus, regardless of whether we were in kernel 192 * Send a sigbus, regardless of whether we were in kernel
194 * or user mode. 193 * or user mode.
195 */ 194 */
195#if 0
196 printk("do_page_fault() #3: sending SIGBUS to %s for "
197 "invalid %s\n%0*lx (epc == %0*lx, ra == %0*lx)\n",
198 tsk->comm,
199 write ? "write access to" : "read access from",
200 field, address,
201 field, (unsigned long) regs->cp0_epc,
202 field, (unsigned long) regs->regs[31]);
203#endif
196 tsk->thread.cp0_badvaddr = address; 204 tsk->thread.cp0_badvaddr = address;
197 info.si_signo = SIGBUS; 205 info.si_signo = SIGBUS;
198 info.si_errno = 0; 206 info.si_errno = 0;
@@ -201,7 +209,6 @@ do_sigbus:
201 force_sig_info(SIGBUS, &info, tsk); 209 force_sig_info(SIGBUS, &info, tsk);
202 210
203 return; 211 return;
204
205vmalloc_fault: 212vmalloc_fault:
206 { 213 {
207 /* 214 /*
diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c
index 1f7b37b38f5c..0c544375b856 100644
--- a/arch/mips/mm/highmem.c
+++ b/arch/mips/mm/highmem.c
@@ -83,6 +83,7 @@ void __kunmap_atomic(void *kvaddr, enum km_type type)
83 preempt_check_resched(); 83 preempt_check_resched();
84} 84}
85 85
86#ifndef CONFIG_LIMITED_DMA
86/* 87/*
87 * This is the same as kmap_atomic() but can map memory that doesn't 88 * This is the same as kmap_atomic() but can map memory that doesn't
88 * have a struct page associated with it. 89 * have a struct page associated with it.
@@ -101,6 +102,7 @@ void *kmap_atomic_pfn(unsigned long pfn, enum km_type type)
101 102
102 return (void*) vaddr; 103 return (void*) vaddr;
103} 104}
105#endif /* CONFIG_LIMITED_DMA */
104 106
105struct page *__kmap_atomic_to_page(void *ptr) 107struct page *__kmap_atomic_to_page(void *ptr)
106{ 108{
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index ad89c442f299..c22308b93ff0 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -276,6 +276,20 @@ void __init mem_init(void)
276} 276}
277#endif /* !CONFIG_NEED_MULTIPLE_NODES */ 277#endif /* !CONFIG_NEED_MULTIPLE_NODES */
278 278
279void free_init_pages(char *what, unsigned long begin, unsigned long end)
280{
281 unsigned long addr;
282
283 for (addr = begin; addr < end; addr += PAGE_SIZE) {
284 ClearPageReserved(virt_to_page(addr));
285 init_page_count(virt_to_page(addr));
286 memset((void *)addr, 0xcc, PAGE_SIZE);
287 free_page(addr);
288 totalram_pages++;
289 }
290 printk(KERN_INFO "Freeing %s: %ldk freed\n", what, (end - begin) >> 10);
291}
292
279#ifdef CONFIG_BLK_DEV_INITRD 293#ifdef CONFIG_BLK_DEV_INITRD
280void free_initrd_mem(unsigned long start, unsigned long end) 294void free_initrd_mem(unsigned long start, unsigned long end)
281{ 295{
@@ -284,16 +298,7 @@ void free_initrd_mem(unsigned long start, unsigned long end)
284 start = (unsigned long)phys_to_virt(CPHYSADDR(start)); 298 start = (unsigned long)phys_to_virt(CPHYSADDR(start));
285 end = (unsigned long)phys_to_virt(CPHYSADDR(end)); 299 end = (unsigned long)phys_to_virt(CPHYSADDR(end));
286#endif 300#endif
287 if (start < end) 301 free_init_pages("initrd memory", start, end);
288 printk(KERN_INFO "Freeing initrd memory: %ldk freed\n",
289 (end - start) >> 10);
290
291 for (; start < end; start += PAGE_SIZE) {
292 ClearPageReserved(virt_to_page(start));
293 init_page_count(virt_to_page(start));
294 free_page(start);
295 totalram_pages++;
296 }
297} 302}
298#endif 303#endif
299 304
@@ -301,24 +306,17 @@ extern unsigned long prom_free_prom_memory(void);
301 306
302void free_initmem(void) 307void free_initmem(void)
303{ 308{
304 unsigned long addr, page, freed; 309 unsigned long start, end, freed;
305 310
306 freed = prom_free_prom_memory(); 311 freed = prom_free_prom_memory();
312 if (freed)
313 printk(KERN_INFO "Freeing firmware memory: %ldk freed\n",freed);
307 314
308 addr = (unsigned long) &__init_begin; 315 start = (unsigned long)(&__init_begin);
309 while (addr < (unsigned long) &__init_end) { 316 end = (unsigned long)(&__init_end);
310#ifdef CONFIG_64BIT 317#ifdef CONFIG_64BIT
311 page = PAGE_OFFSET | CPHYSADDR(addr); 318 start = PAGE_OFFSET | CPHYSADDR(start);
312#else 319 end = PAGE_OFFSET | CPHYSADDR(end);
313 page = addr;
314#endif 320#endif
315 ClearPageReserved(virt_to_page(page)); 321 free_init_pages("unused kernel memory", start, end);
316 init_page_count(virt_to_page(page));
317 free_page(page);
318 totalram_pages++;
319 freed += PAGE_SIZE;
320 addr += PAGE_SIZE;
321 }
322 printk(KERN_INFO "Freeing unused kernel memory: %ldk freed\n",
323 freed >> 10);
324} 322}
diff --git a/arch/mips/mm/sc-rm7k.c b/arch/mips/mm/sc-rm7k.c
index 3b6cc9ba1b05..31ec73052423 100644
--- a/arch/mips/mm/sc-rm7k.c
+++ b/arch/mips/mm/sc-rm7k.c
@@ -138,7 +138,7 @@ void __init rm7k_sc_init(void)
138 138
139 c->scache.linesz = sc_lsize; 139 c->scache.linesz = sc_lsize;
140 c->scache.ways = 4; 140 c->scache.ways = 4;
141 c->scache.waybit= ffs(scache_size / c->scache.ways) - 1; 141 c->scache.waybit= __ffs(scache_size / c->scache.ways);
142 c->scache.waysize = scache_size / c->scache.ways; 142 c->scache.waysize = scache_size / c->scache.ways;
143 c->scache.sets = scache_size / (c->scache.linesz * c->scache.ways); 143 c->scache.sets = scache_size / (c->scache.linesz * c->scache.ways);
144 printk(KERN_INFO "Secondary cache size %dK, linesize %d bytes.\n", 144 printk(KERN_INFO "Secondary cache size %dK, linesize %d bytes.\n",
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index a865f2394cb0..9dca099ba16b 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -32,13 +32,35 @@ extern void build_tlb_refill_handler(void);
32 "nop; nop; nop; nop; nop; nop;\n\t" \ 32 "nop; nop; nop; nop; nop; nop;\n\t" \
33 ".set reorder\n\t") 33 ".set reorder\n\t")
34 34
35/* Atomicity and interruptability */
36#ifdef CONFIG_MIPS_MT_SMTC
37
38#include <asm/smtc.h>
39#include <asm/mipsmtregs.h>
40
41#define ENTER_CRITICAL(flags) \
42 { \
43 unsigned int mvpflags; \
44 local_irq_save(flags);\
45 mvpflags = dvpe()
46#define EXIT_CRITICAL(flags) \
47 evpe(mvpflags); \
48 local_irq_restore(flags); \
49 }
50#else
51
52#define ENTER_CRITICAL(flags) local_irq_save(flags)
53#define EXIT_CRITICAL(flags) local_irq_restore(flags)
54
55#endif /* CONFIG_MIPS_MT_SMTC */
56
35void local_flush_tlb_all(void) 57void local_flush_tlb_all(void)
36{ 58{
37 unsigned long flags; 59 unsigned long flags;
38 unsigned long old_ctx; 60 unsigned long old_ctx;
39 int entry; 61 int entry;
40 62
41 local_irq_save(flags); 63 ENTER_CRITICAL(flags);
42 /* Save old context and create impossible VPN2 value */ 64 /* Save old context and create impossible VPN2 value */
43 old_ctx = read_c0_entryhi(); 65 old_ctx = read_c0_entryhi();
44 write_c0_entrylo0(0); 66 write_c0_entrylo0(0);
@@ -57,7 +79,7 @@ void local_flush_tlb_all(void)
57 } 79 }
58 tlbw_use_hazard(); 80 tlbw_use_hazard();
59 write_c0_entryhi(old_ctx); 81 write_c0_entryhi(old_ctx);
60 local_irq_restore(flags); 82 EXIT_CRITICAL(flags);
61} 83}
62 84
63/* All entries common to a mm share an asid. To effectively flush 85/* All entries common to a mm share an asid. To effectively flush
@@ -87,6 +109,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
87 unsigned long flags; 109 unsigned long flags;
88 int size; 110 int size;
89 111
112 ENTER_CRITICAL(flags);
90 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; 113 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
91 size = (size + 1) >> 1; 114 size = (size + 1) >> 1;
92 local_irq_save(flags); 115 local_irq_save(flags);
@@ -120,7 +143,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
120 } else { 143 } else {
121 drop_mmu_context(mm, cpu); 144 drop_mmu_context(mm, cpu);
122 } 145 }
123 local_irq_restore(flags); 146 EXIT_CRITICAL(flags);
124 } 147 }
125} 148}
126 149
@@ -129,9 +152,9 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
129 unsigned long flags; 152 unsigned long flags;
130 int size; 153 int size;
131 154
155 ENTER_CRITICAL(flags);
132 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; 156 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
133 size = (size + 1) >> 1; 157 size = (size + 1) >> 1;
134 local_irq_save(flags);
135 if (size <= current_cpu_data.tlbsize / 2) { 158 if (size <= current_cpu_data.tlbsize / 2) {
136 int pid = read_c0_entryhi(); 159 int pid = read_c0_entryhi();
137 160
@@ -162,7 +185,7 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
162 } else { 185 } else {
163 local_flush_tlb_all(); 186 local_flush_tlb_all();
164 } 187 }
165 local_irq_restore(flags); 188 EXIT_CRITICAL(flags);
166} 189}
167 190
168void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) 191void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
@@ -175,7 +198,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
175 198
176 newpid = cpu_asid(cpu, vma->vm_mm); 199 newpid = cpu_asid(cpu, vma->vm_mm);
177 page &= (PAGE_MASK << 1); 200 page &= (PAGE_MASK << 1);
178 local_irq_save(flags); 201 ENTER_CRITICAL(flags);
179 oldpid = read_c0_entryhi(); 202 oldpid = read_c0_entryhi();
180 write_c0_entryhi(page | newpid); 203 write_c0_entryhi(page | newpid);
181 mtc0_tlbw_hazard(); 204 mtc0_tlbw_hazard();
@@ -194,7 +217,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
194 217
195 finish: 218 finish:
196 write_c0_entryhi(oldpid); 219 write_c0_entryhi(oldpid);
197 local_irq_restore(flags); 220 EXIT_CRITICAL(flags);
198 } 221 }
199} 222}
200 223
@@ -207,7 +230,7 @@ void local_flush_tlb_one(unsigned long page)
207 unsigned long flags; 230 unsigned long flags;
208 int oldpid, idx; 231 int oldpid, idx;
209 232
210 local_irq_save(flags); 233 ENTER_CRITICAL(flags);
211 oldpid = read_c0_entryhi(); 234 oldpid = read_c0_entryhi();
212 page &= (PAGE_MASK << 1); 235 page &= (PAGE_MASK << 1);
213 write_c0_entryhi(page); 236 write_c0_entryhi(page);
@@ -226,7 +249,7 @@ void local_flush_tlb_one(unsigned long page)
226 } 249 }
227 write_c0_entryhi(oldpid); 250 write_c0_entryhi(oldpid);
228 251
229 local_irq_restore(flags); 252 EXIT_CRITICAL(flags);
230} 253}
231 254
232/* 255/*
@@ -249,7 +272,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
249 if (current->active_mm != vma->vm_mm) 272 if (current->active_mm != vma->vm_mm)
250 return; 273 return;
251 274
252 local_irq_save(flags); 275 ENTER_CRITICAL(flags);
253 276
254 pid = read_c0_entryhi() & ASID_MASK; 277 pid = read_c0_entryhi() & ASID_MASK;
255 address &= (PAGE_MASK << 1); 278 address &= (PAGE_MASK << 1);
@@ -277,7 +300,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
277 else 300 else
278 tlb_write_indexed(); 301 tlb_write_indexed();
279 tlbw_use_hazard(); 302 tlbw_use_hazard();
280 local_irq_restore(flags); 303 EXIT_CRITICAL(flags);
281} 304}
282 305
283#if 0 306#if 0
@@ -291,7 +314,7 @@ static void r4k_update_mmu_cache_hwbug(struct vm_area_struct * vma,
291 pte_t *ptep; 314 pte_t *ptep;
292 int idx; 315 int idx;
293 316
294 local_irq_save(flags); 317 ENTER_CRITICAL(flags);
295 address &= (PAGE_MASK << 1); 318 address &= (PAGE_MASK << 1);
296 asid = read_c0_entryhi() & ASID_MASK; 319 asid = read_c0_entryhi() & ASID_MASK;
297 write_c0_entryhi(address | asid); 320 write_c0_entryhi(address | asid);
@@ -310,7 +333,7 @@ static void r4k_update_mmu_cache_hwbug(struct vm_area_struct * vma,
310 else 333 else
311 tlb_write_indexed(); 334 tlb_write_indexed();
312 tlbw_use_hazard(); 335 tlbw_use_hazard();
313 local_irq_restore(flags); 336 EXIT_CRITICAL(flags);
314} 337}
315#endif 338#endif
316 339
@@ -322,7 +345,7 @@ void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
322 unsigned long old_pagemask; 345 unsigned long old_pagemask;
323 unsigned long old_ctx; 346 unsigned long old_ctx;
324 347
325 local_irq_save(flags); 348 ENTER_CRITICAL(flags);
326 /* Save old context and create impossible VPN2 value */ 349 /* Save old context and create impossible VPN2 value */
327 old_ctx = read_c0_entryhi(); 350 old_ctx = read_c0_entryhi();
328 old_pagemask = read_c0_pagemask(); 351 old_pagemask = read_c0_pagemask();
@@ -342,7 +365,7 @@ void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
342 BARRIER; 365 BARRIER;
343 write_c0_pagemask(old_pagemask); 366 write_c0_pagemask(old_pagemask);
344 local_flush_tlb_all(); 367 local_flush_tlb_all();
345 local_irq_restore(flags); 368 EXIT_CRITICAL(flags);
346} 369}
347 370
348/* 371/*
@@ -362,7 +385,7 @@ __init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
362 unsigned long old_pagemask; 385 unsigned long old_pagemask;
363 unsigned long old_ctx; 386 unsigned long old_ctx;
364 387
365 local_irq_save(flags); 388 ENTER_CRITICAL(flags);
366 /* Save old context and create impossible VPN2 value */ 389 /* Save old context and create impossible VPN2 value */
367 old_ctx = read_c0_entryhi(); 390 old_ctx = read_c0_entryhi();
368 old_pagemask = read_c0_pagemask(); 391 old_pagemask = read_c0_pagemask();
@@ -386,10 +409,11 @@ __init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
386 write_c0_entryhi(old_ctx); 409 write_c0_entryhi(old_ctx);
387 write_c0_pagemask(old_pagemask); 410 write_c0_pagemask(old_pagemask);
388out: 411out:
389 local_irq_restore(flags); 412 EXIT_CRITICAL(flags);
390 return ret; 413 return ret;
391} 414}
392 415
416extern void __init sanitize_tlb_entries(void);
393static void __init probe_tlb(unsigned long config) 417static void __init probe_tlb(unsigned long config)
394{ 418{
395 struct cpuinfo_mips *c = &current_cpu_data; 419 struct cpuinfo_mips *c = &current_cpu_data;
@@ -402,6 +426,14 @@ static void __init probe_tlb(unsigned long config)
402 */ 426 */
403 if ((c->processor_id & 0xff0000) == PRID_COMP_LEGACY) 427 if ((c->processor_id & 0xff0000) == PRID_COMP_LEGACY)
404 return; 428 return;
429#ifdef CONFIG_MIPS_MT_SMTC
430 /*
431 * If TLB is shared in SMTC system, total size already
432 * has been calculated and written into cpu_data tlbsize
433 */
434 if((smtc_status & SMTC_TLB_SHARED) == SMTC_TLB_SHARED)
435 return;
436#endif /* CONFIG_MIPS_MT_SMTC */
405 437
406 reg = read_c0_config1(); 438 reg = read_c0_config1();
407 if (!((config >> 7) & 3)) 439 if (!((config >> 7) & 3))
@@ -410,6 +442,15 @@ static void __init probe_tlb(unsigned long config)
410 c->tlbsize = ((reg >> 25) & 0x3f) + 1; 442 c->tlbsize = ((reg >> 25) & 0x3f) + 1;
411} 443}
412 444
445static int __initdata ntlb = 0;
446static int __init set_ntlb(char *str)
447{
448 get_option(&str, &ntlb);
449 return 1;
450}
451
452__setup("ntlb=", set_ntlb);
453
413void __init tlb_init(void) 454void __init tlb_init(void)
414{ 455{
415 unsigned int config = read_c0_config(); 456 unsigned int config = read_c0_config();
@@ -432,5 +473,15 @@ void __init tlb_init(void)
432 473
433 /* Did I tell you that ARC SUCKS? */ 474 /* Did I tell you that ARC SUCKS? */
434 475
476 if (ntlb) {
477 if (ntlb > 1 && ntlb <= current_cpu_data.tlbsize) {
478 int wired = current_cpu_data.tlbsize - ntlb;
479 write_c0_wired(wired);
480 write_c0_index(wired-1);
481 printk ("Restricting TLB to %d entries\n", ntlb);
482 } else
483 printk("Ignoring invalid argument ntlb=%d\n", ntlb);
484 }
485
435 build_tlb_refill_handler(); 486 build_tlb_refill_handler();
436} 487}
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 599b3c297186..053dbacac56b 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -7,6 +7,16 @@
7 * 7 *
8 * Copyright (C) 2004,2005 by Thiemo Seufer 8 * Copyright (C) 2004,2005 by Thiemo Seufer
9 * Copyright (C) 2005 Maciej W. Rozycki 9 * Copyright (C) 2005 Maciej W. Rozycki
10 * Copyright (C) 2006 Ralf Baechle (ralf@linux-mips.org)
11 *
12 * ... and the days got worse and worse and now you see
13 * I've gone completly out of my mind.
14 *
15 * They're coming to take me a away haha
16 * they're coming to take me a away hoho hihi haha
17 * to the funny farm where code is beautiful all the time ...
18 *
19 * (Condolences to Napoleon XIV)
10 */ 20 */
11 21
12#include <stdarg.h> 22#include <stdarg.h>
@@ -68,6 +78,7 @@ enum fields
68 BIMM = 0x040, 78 BIMM = 0x040,
69 JIMM = 0x080, 79 JIMM = 0x080,
70 FUNC = 0x100, 80 FUNC = 0x100,
81 SET = 0x200
71}; 82};
72 83
73#define OP_MASK 0x2f 84#define OP_MASK 0x2f
@@ -86,6 +97,8 @@ enum fields
86#define JIMM_SH 0 97#define JIMM_SH 0
87#define FUNC_MASK 0x2f 98#define FUNC_MASK 0x2f
88#define FUNC_SH 0 99#define FUNC_SH 0
100#define SET_MASK 0x7
101#define SET_SH 0
89 102
90enum opcode { 103enum opcode {
91 insn_invalid, 104 insn_invalid,
@@ -129,8 +142,8 @@ static __initdata struct insn insn_table[] = {
129 { insn_bne, M(bne_op,0,0,0,0,0), RS | RT | BIMM }, 142 { insn_bne, M(bne_op,0,0,0,0,0), RS | RT | BIMM },
130 { insn_daddiu, M(daddiu_op,0,0,0,0,0), RS | RT | SIMM }, 143 { insn_daddiu, M(daddiu_op,0,0,0,0,0), RS | RT | SIMM },
131 { insn_daddu, M(spec_op,0,0,0,0,daddu_op), RS | RT | RD }, 144 { insn_daddu, M(spec_op,0,0,0,0,daddu_op), RS | RT | RD },
132 { insn_dmfc0, M(cop0_op,dmfc_op,0,0,0,0), RT | RD }, 145 { insn_dmfc0, M(cop0_op,dmfc_op,0,0,0,0), RT | RD | SET},
133 { insn_dmtc0, M(cop0_op,dmtc_op,0,0,0,0), RT | RD }, 146 { insn_dmtc0, M(cop0_op,dmtc_op,0,0,0,0), RT | RD | SET},
134 { insn_dsll, M(spec_op,0,0,0,0,dsll_op), RT | RD | RE }, 147 { insn_dsll, M(spec_op,0,0,0,0,dsll_op), RT | RD | RE },
135 { insn_dsll32, M(spec_op,0,0,0,0,dsll32_op), RT | RD | RE }, 148 { insn_dsll32, M(spec_op,0,0,0,0,dsll32_op), RT | RD | RE },
136 { insn_dsra, M(spec_op,0,0,0,0,dsra_op), RT | RD | RE }, 149 { insn_dsra, M(spec_op,0,0,0,0,dsra_op), RT | RD | RE },
@@ -145,8 +158,8 @@ static __initdata struct insn insn_table[] = {
145 { insn_lld, M(lld_op,0,0,0,0,0), RS | RT | SIMM }, 158 { insn_lld, M(lld_op,0,0,0,0,0), RS | RT | SIMM },
146 { insn_lui, M(lui_op,0,0,0,0,0), RT | SIMM }, 159 { insn_lui, M(lui_op,0,0,0,0,0), RT | SIMM },
147 { insn_lw, M(lw_op,0,0,0,0,0), RS | RT | SIMM }, 160 { insn_lw, M(lw_op,0,0,0,0,0), RS | RT | SIMM },
148 { insn_mfc0, M(cop0_op,mfc_op,0,0,0,0), RT | RD }, 161 { insn_mfc0, M(cop0_op,mfc_op,0,0,0,0), RT | RD | SET},
149 { insn_mtc0, M(cop0_op,mtc_op,0,0,0,0), RT | RD }, 162 { insn_mtc0, M(cop0_op,mtc_op,0,0,0,0), RT | RD | SET},
150 { insn_ori, M(ori_op,0,0,0,0,0), RS | RT | UIMM }, 163 { insn_ori, M(ori_op,0,0,0,0,0), RS | RT | UIMM },
151 { insn_rfe, M(cop0_op,cop_op,0,0,0,rfe_op), 0 }, 164 { insn_rfe, M(cop0_op,cop_op,0,0,0,rfe_op), 0 },
152 { insn_sc, M(sc_op,0,0,0,0,0), RS | RT | SIMM }, 165 { insn_sc, M(sc_op,0,0,0,0,0), RS | RT | SIMM },
@@ -242,6 +255,14 @@ static __init u32 build_func(u32 arg)
242 return arg & FUNC_MASK; 255 return arg & FUNC_MASK;
243} 256}
244 257
258static __init u32 build_set(u32 arg)
259{
260 if (arg & ~SET_MASK)
261 printk(KERN_WARNING "TLB synthesizer field overflow\n");
262
263 return arg & SET_MASK;
264}
265
245/* 266/*
246 * The order of opcode arguments is implicitly left to right, 267 * The order of opcode arguments is implicitly left to right,
247 * starting with RS and ending with FUNC or IMM. 268 * starting with RS and ending with FUNC or IMM.
@@ -273,6 +294,7 @@ static void __init build_insn(u32 **buf, enum opcode opc, ...)
273 if (ip->fields & BIMM) op |= build_bimm(va_arg(ap, s32)); 294 if (ip->fields & BIMM) op |= build_bimm(va_arg(ap, s32));
274 if (ip->fields & JIMM) op |= build_jimm(va_arg(ap, u32)); 295 if (ip->fields & JIMM) op |= build_jimm(va_arg(ap, u32));
275 if (ip->fields & FUNC) op |= build_func(va_arg(ap, u32)); 296 if (ip->fields & FUNC) op |= build_func(va_arg(ap, u32));
297 if (ip->fields & SET) op |= build_set(va_arg(ap, u32));
276 va_end(ap); 298 va_end(ap);
277 299
278 **buf = op; 300 **buf = op;
@@ -358,8 +380,8 @@ I_u1s2(_bgezl);
358I_u1s2(_bltz); 380I_u1s2(_bltz);
359I_u1s2(_bltzl); 381I_u1s2(_bltzl);
360I_u1u2s3(_bne); 382I_u1u2s3(_bne);
361I_u1u2(_dmfc0); 383I_u1u2u3(_dmfc0);
362I_u1u2(_dmtc0); 384I_u1u2u3(_dmtc0);
363I_u2u1s3(_daddiu); 385I_u2u1s3(_daddiu);
364I_u3u1u2(_daddu); 386I_u3u1u2(_daddu);
365I_u2u1u3(_dsll); 387I_u2u1u3(_dsll);
@@ -376,8 +398,8 @@ I_u2s3u1(_ll);
376I_u2s3u1(_lld); 398I_u2s3u1(_lld);
377I_u1s2(_lui); 399I_u1s2(_lui);
378I_u2s3u1(_lw); 400I_u2s3u1(_lw);
379I_u1u2(_mfc0); 401I_u1u2u3(_mfc0);
380I_u1u2(_mtc0); 402I_u1u2u3(_mtc0);
381I_u2u1u3(_ori); 403I_u2u1u3(_ori);
382I_0(_rfe); 404I_0(_rfe);
383I_u2s3u1(_sc); 405I_u2s3u1(_sc);
@@ -451,8 +473,8 @@ L_LA(_r3000_write_probe_fail)
451# define i_SLL(buf, rs, rt, sh) i_dsll(buf, rs, rt, sh) 473# define i_SLL(buf, rs, rt, sh) i_dsll(buf, rs, rt, sh)
452# define i_SRA(buf, rs, rt, sh) i_dsra(buf, rs, rt, sh) 474# define i_SRA(buf, rs, rt, sh) i_dsra(buf, rs, rt, sh)
453# define i_SRL(buf, rs, rt, sh) i_dsrl(buf, rs, rt, sh) 475# define i_SRL(buf, rs, rt, sh) i_dsrl(buf, rs, rt, sh)
454# define i_MFC0(buf, rt, rd) i_dmfc0(buf, rt, rd) 476# define i_MFC0(buf, rt, rd...) i_dmfc0(buf, rt, rd)
455# define i_MTC0(buf, rt, rd) i_dmtc0(buf, rt, rd) 477# define i_MTC0(buf, rt, rd...) i_dmtc0(buf, rt, rd)
456# define i_ADDIU(buf, rs, rt, val) i_daddiu(buf, rs, rt, val) 478# define i_ADDIU(buf, rs, rt, val) i_daddiu(buf, rs, rt, val)
457# define i_ADDU(buf, rs, rt, rd) i_daddu(buf, rs, rt, rd) 479# define i_ADDU(buf, rs, rt, rd) i_daddu(buf, rs, rt, rd)
458# define i_SUBU(buf, rs, rt, rd) i_dsubu(buf, rs, rt, rd) 480# define i_SUBU(buf, rs, rt, rd) i_dsubu(buf, rs, rt, rd)
@@ -464,8 +486,8 @@ L_LA(_r3000_write_probe_fail)
464# define i_SLL(buf, rs, rt, sh) i_sll(buf, rs, rt, sh) 486# define i_SLL(buf, rs, rt, sh) i_sll(buf, rs, rt, sh)
465# define i_SRA(buf, rs, rt, sh) i_sra(buf, rs, rt, sh) 487# define i_SRA(buf, rs, rt, sh) i_sra(buf, rs, rt, sh)
466# define i_SRL(buf, rs, rt, sh) i_srl(buf, rs, rt, sh) 488# define i_SRL(buf, rs, rt, sh) i_srl(buf, rs, rt, sh)
467# define i_MFC0(buf, rt, rd) i_mfc0(buf, rt, rd) 489# define i_MFC0(buf, rt, rd...) i_mfc0(buf, rt, rd)
468# define i_MTC0(buf, rt, rd) i_mtc0(buf, rt, rd) 490# define i_MTC0(buf, rt, rd...) i_mtc0(buf, rt, rd)
469# define i_ADDIU(buf, rs, rt, val) i_addiu(buf, rs, rt, val) 491# define i_ADDIU(buf, rs, rt, val) i_addiu(buf, rs, rt, val)
470# define i_ADDU(buf, rs, rt, rd) i_addu(buf, rs, rt, rd) 492# define i_ADDU(buf, rs, rt, rd) i_addu(buf, rs, rt, rd)
471# define i_SUBU(buf, rs, rt, rd) i_subu(buf, rs, rt, rd) 493# define i_SUBU(buf, rs, rt, rd) i_subu(buf, rs, rt, rd)
@@ -670,14 +692,15 @@ static void __init il_bgezl(u32 **p, struct reloc **r, unsigned int reg,
670#define K1 27 692#define K1 27
671 693
672/* Some CP0 registers */ 694/* Some CP0 registers */
673#define C0_INDEX 0 695#define C0_INDEX 0, 0
674#define C0_ENTRYLO0 2 696#define C0_ENTRYLO0 2, 0
675#define C0_ENTRYLO1 3 697#define C0_TCBIND 2, 2
676#define C0_CONTEXT 4 698#define C0_ENTRYLO1 3, 0
677#define C0_BADVADDR 8 699#define C0_CONTEXT 4, 0
678#define C0_ENTRYHI 10 700#define C0_BADVADDR 8, 0
679#define C0_EPC 14 701#define C0_ENTRYHI 10, 0
680#define C0_XCONTEXT 20 702#define C0_EPC 14, 0
703#define C0_XCONTEXT 20, 0
681 704
682#ifdef CONFIG_64BIT 705#ifdef CONFIG_64BIT
683# define GET_CONTEXT(buf, reg) i_MFC0(buf, reg, C0_XCONTEXT) 706# define GET_CONTEXT(buf, reg) i_MFC0(buf, reg, C0_XCONTEXT)
@@ -742,7 +765,7 @@ static void __init build_r3000_tlb_refill_handler(void)
742 } 765 }
743#endif 766#endif
744 767
745 memcpy((void *)CAC_BASE, tlb_handler, 0x80); 768 memcpy((void *)ebase, tlb_handler, 0x80);
746} 769}
747 770
748/* 771/*
@@ -951,12 +974,20 @@ build_get_pmde64(u32 **p, struct label **l, struct reloc **r,
951 /* No i_nop needed here, since the next insn doesn't touch TMP. */ 974 /* No i_nop needed here, since the next insn doesn't touch TMP. */
952 975
953#ifdef CONFIG_SMP 976#ifdef CONFIG_SMP
977# ifdef CONFIG_MIPS_MT_SMTC
978 /*
979 * SMTC uses TCBind value as "CPU" index
980 */
981 i_mfc0(p, ptr, C0_TCBIND);
982 i_dsrl(p, ptr, ptr, 19);
983# else
954 /* 984 /*
955 * 64 bit SMP running in XKPHYS has smp_processor_id() << 3 985 * 64 bit SMP running in XKPHYS has smp_processor_id() << 3
956 * stored in CONTEXT. 986 * stored in CONTEXT.
957 */ 987 */
958 i_dmfc0(p, ptr, C0_CONTEXT); 988 i_dmfc0(p, ptr, C0_CONTEXT);
959 i_dsrl(p, ptr, ptr, 23); 989 i_dsrl(p, ptr, ptr, 23);
990#endif
960 i_LA_mostly(p, tmp, pgdc); 991 i_LA_mostly(p, tmp, pgdc);
961 i_daddu(p, ptr, ptr, tmp); 992 i_daddu(p, ptr, ptr, tmp);
962 i_dmfc0(p, tmp, C0_BADVADDR); 993 i_dmfc0(p, tmp, C0_BADVADDR);
@@ -1014,9 +1045,21 @@ build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr)
1014 1045
1015 /* 32 bit SMP has smp_processor_id() stored in CONTEXT. */ 1046 /* 32 bit SMP has smp_processor_id() stored in CONTEXT. */
1016#ifdef CONFIG_SMP 1047#ifdef CONFIG_SMP
1048#ifdef CONFIG_MIPS_MT_SMTC
1049 /*
1050 * SMTC uses TCBind value as "CPU" index
1051 */
1052 i_mfc0(p, ptr, C0_TCBIND);
1053 i_LA_mostly(p, tmp, pgdc);
1054 i_srl(p, ptr, ptr, 19);
1055#else
1056 /*
1057 * smp_processor_id() << 3 is stored in CONTEXT.
1058 */
1017 i_mfc0(p, ptr, C0_CONTEXT); 1059 i_mfc0(p, ptr, C0_CONTEXT);
1018 i_LA_mostly(p, tmp, pgdc); 1060 i_LA_mostly(p, tmp, pgdc);
1019 i_srl(p, ptr, ptr, 23); 1061 i_srl(p, ptr, ptr, 23);
1062#endif
1020 i_addu(p, ptr, tmp, ptr); 1063 i_addu(p, ptr, tmp, ptr);
1021#else 1064#else
1022 i_LA_mostly(p, ptr, pgdc); 1065 i_LA_mostly(p, ptr, pgdc);
@@ -1247,7 +1290,7 @@ static void __init build_r4000_tlb_refill_handler(void)
1247 } 1290 }
1248#endif 1291#endif
1249 1292
1250 memcpy((void *)CAC_BASE, final_handler, 0x100); 1293 memcpy((void *)ebase, final_handler, 0x100);
1251} 1294}
1252 1295
1253/* 1296/*
diff --git a/arch/mips/momentum/jaguar_atx/Makefile b/arch/mips/momentum/jaguar_atx/Makefile
index 20bbd3ea44a8..67372f3f9654 100644
--- a/arch/mips/momentum/jaguar_atx/Makefile
+++ b/arch/mips/momentum/jaguar_atx/Makefile
@@ -6,7 +6,7 @@
6# unless it's something special (ie not a .c file). 6# unless it's something special (ie not a .c file).
7# 7#
8 8
9obj-y += int-handler.o irq.o prom.o reset.o setup.o 9obj-y += irq.o prom.o reset.o setup.o
10 10
11obj-$(CONFIG_SERIAL_8250_CONSOLE) += ja-console.o 11obj-$(CONFIG_SERIAL_8250_CONSOLE) += ja-console.o
12obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o 12obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
diff --git a/arch/mips/momentum/jaguar_atx/int-handler.S b/arch/mips/momentum/jaguar_atx/int-handler.S
deleted file mode 100644
index 55bc789733f2..000000000000
--- a/arch/mips/momentum/jaguar_atx/int-handler.S
+++ /dev/null
@@ -1,128 +0,0 @@
1/*
2 * Copyright 2002 Momentum Computer Inc.
3 * Author: Matthew Dharm <mdharm@momenco.com>
4 *
5 * Based on work:
6 * Copyright 2001 MontaVista Software Inc.
7 * Author: jsun@mvista.com or jsun@junsun.net
8 *
9 * First-level interrupt dispatcher for Jaguar-ATX board.
10 *
11 * This program is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU General Public License as published by the
13 * Free Software Foundation; either version 2 of the License, or (at your
14 * option) any later version.
15 */
16#include <asm/asm.h>
17#include <asm/mipsregs.h>
18#include <asm/addrspace.h>
19#include <asm/regdef.h>
20#include <asm/stackframe.h>
21
22/*
23 * First level interrupt dispatcher for Ocelot-CS board
24 */
25 .align 5
26 NESTED(jaguar_handle_int, PT_SIZE, sp)
27 SAVE_ALL
28 CLI
29 .set at
30 mfc0 t0, CP0_CAUSE
31 mfc0 t2, CP0_STATUS
32
33 and t0, t2
34
35 andi t1, t0, STATUSF_IP0 /* sw0 software interrupt */
36 bnez t1, ll_sw0_irq
37 andi t1, t0, STATUSF_IP1 /* sw1 software interrupt */
38 bnez t1, ll_sw1_irq
39 andi t1, t0, STATUSF_IP2 /* int0 hardware line */
40 bnez t1, ll_pcixa_irq
41 andi t1, t0, STATUSF_IP3 /* int1 hardware line */
42 bnez t1, ll_pcixb_irq
43 andi t1, t0, STATUSF_IP4 /* int2 hardware line */
44 bnez t1, ll_pcia_irq
45 andi t1, t0, STATUSF_IP5 /* int3 hardware line */
46 bnez t1, ll_pcib_irq
47 andi t1, t0, STATUSF_IP6 /* int4 hardware line */
48 bnez t1, ll_uart_irq
49 andi t1, t0, STATUSF_IP7 /* cpu timer */
50 bnez t1, ll_cputimer_irq
51
52 nop
53 nop
54
55 /* now look at extended interrupts */
56 mfc0 t0, CP0_CAUSE
57 cfc0 t1, CP0_S1_INTCONTROL
58
59 /* shift the mask 8 bits left to line up the bits */
60 sll t2, t1, 8
61
62 and t0, t2
63 srl t0, t0, 16
64
65 andi t1, t0, STATUSF_IP8 /* int6 hardware line */
66 bnez t1, ll_mv64340_decode_irq
67
68 nop
69 nop
70
71 .set reorder
72
73 /* wrong alarm or masked ... */
74 j spurious_interrupt
75 nop
76 END(jaguar_handle_int)
77
78 .align 5
79ll_sw0_irq:
80 li a0, 0
81 move a1, sp
82 jal do_IRQ
83 j ret_from_irq
84ll_sw1_irq:
85 li a0, 1
86 move a1, sp
87 jal do_IRQ
88 j ret_from_irq
89ll_pcixa_irq:
90 li a0, 2
91 move a1, sp
92 jal do_IRQ
93 j ret_from_irq
94
95ll_pcixb_irq:
96 li a0, 3
97 move a1, sp
98 jal do_IRQ
99 j ret_from_irq
100
101ll_pcia_irq:
102 li a0, 4
103 move a1, sp
104 jal do_IRQ
105 j ret_from_irq
106
107ll_pcib_irq:
108 li a0, 5
109 move a1, sp
110 jal do_IRQ
111 j ret_from_irq
112
113ll_uart_irq:
114 li a0, 6
115 move a1, sp
116 jal do_IRQ
117 j ret_from_irq
118
119ll_cputimer_irq:
120 li a0, 7
121 move a1, sp
122 jal ll_timer_interrupt
123 j ret_from_irq
124
125ll_mv64340_decode_irq:
126 move a0, sp
127 jal ll_mv64340_irq
128 j ret_from_irq
diff --git a/arch/mips/momentum/jaguar_atx/irq.c b/arch/mips/momentum/jaguar_atx/irq.c
index 15588f91ace2..ec4032b38f19 100644
--- a/arch/mips/momentum/jaguar_atx/irq.c
+++ b/arch/mips/momentum/jaguar_atx/irq.c
@@ -10,7 +10,7 @@
10 * Copyright 2001 MontaVista Software Inc. 10 * Copyright 2001 MontaVista Software Inc.
11 * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net 11 * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
12 * 12 *
13 * Copyright (C) 2000, 2001 Ralf Baechle (ralf@gnu.org) 13 * Copyright (C) 2000, 01, 06 Ralf Baechle (ralf@linux-mips.org)
14 * 14 *
15 * This program is free software; you can redistribute it and/or modify it 15 * This program is free software; you can redistribute it and/or modify it
16 * under the terms of the GNU General Public License as published by the 16 * under the terms of the GNU General Public License as published by the
@@ -38,8 +38,37 @@
38#include <linux/types.h> 38#include <linux/types.h>
39#include <asm/irq_cpu.h> 39#include <asm/irq_cpu.h>
40#include <asm/mipsregs.h> 40#include <asm/mipsregs.h>
41#include <asm/time.h>
41 42
42extern asmlinkage void jaguar_handle_int(void); 43asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
44{
45 unsigned int pending = read_c0_cause() & read_c0_status();
46
47 if (pending & STATUSF_IP0)
48 do_IRQ(0, regs);
49 else if (pending & STATUSF_IP1)
50 do_IRQ(1, regs);
51 else if (pending & STATUSF_IP2)
52 do_IRQ(2, regs);
53 else if (pending & STATUSF_IP3)
54 do_IRQ(3, regs);
55 else if (pending & STATUSF_IP4)
56 do_IRQ(4, regs);
57 else if (pending & STATUSF_IP5)
58 do_IRQ(5, regs);
59 else if (pending & STATUSF_IP6)
60 do_IRQ(6, regs);
61 else if (pending & STATUSF_IP7)
62 ll_timer_interrupt(7, regs);
63 else {
64 /*
65 * Now look at the extended interrupts
66 */
67 pending = (read_c0_cause() & (read_c0_intcontrol() << 8)) >> 16;
68 if (pending & STATUSF_IP8)
69 ll_mv64340_irq(regs);
70 }
71}
43 72
44static struct irqaction cascade_mv64340 = { 73static struct irqaction cascade_mv64340 = {
45 no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL 74 no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL
@@ -53,8 +82,6 @@ void __init arch_init_irq(void)
53 */ 82 */
54 clear_c0_status(ST0_IM); 83 clear_c0_status(ST0_IM);
55 84
56 /* Sets the first-level interrupt dispatcher. */
57 set_except_vector(0, jaguar_handle_int);
58 mips_cpu_irq_init(0); 85 mips_cpu_irq_init(0);
59 rm7k_cpu_irq_init(8); 86 rm7k_cpu_irq_init(8);
60 87
diff --git a/arch/mips/momentum/jaguar_atx/setup.c b/arch/mips/momentum/jaguar_atx/setup.c
index 91d9637143d7..1379c76845dc 100644
--- a/arch/mips/momentum/jaguar_atx/setup.c
+++ b/arch/mips/momentum/jaguar_atx/setup.c
@@ -381,24 +381,24 @@ void __init plat_setup(void)
381 * shut down ethernet ports, just to be sure our memory doesn't get 381 * shut down ethernet ports, just to be sure our memory doesn't get
382 * corrupted by random ethernet traffic. 382 * corrupted by random ethernet traffic.
383 */ 383 */
384 MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8); 384 MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8);
385 MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8); 385 MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8);
386 MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(2), 0xff << 8); 386 MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(2), 0xff << 8);
387 MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8); 387 MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8);
388 MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8); 388 MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8);
389 MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(2), 0xff << 8); 389 MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(2), 0xff << 8);
390 while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff); 390 while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff);
391 while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff); 391 while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff);
392 while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(2)) & 0xff); 392 while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(2)) & 0xff);
393 while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff); 393 while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff);
394 while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff); 394 while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff);
395 while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(2)) & 0xff); 395 while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(2)) & 0xff);
396 MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0), 396 MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0),
397 MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1); 397 MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1);
398 MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1), 398 MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1),
399 MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1); 399 MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1);
400 MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(2), 400 MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(2),
401 MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(2)) & ~1); 401 MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(2)) & ~1);
402 402
403 /* Turn off the Bit-Error LED */ 403 /* Turn off the Bit-Error LED */
404 JAGUAR_FPGA_WRITE(0x80, CLR); 404 JAGUAR_FPGA_WRITE(0x80, CLR);
diff --git a/arch/mips/momentum/ocelot_3/Makefile b/arch/mips/momentum/ocelot_3/Makefile
index aab8fd89f830..8bcea64dd27b 100644
--- a/arch/mips/momentum/ocelot_3/Makefile
+++ b/arch/mips/momentum/ocelot_3/Makefile
@@ -5,4 +5,4 @@
5# removes any old dependencies. DON'T put your own dependencies here 5# removes any old dependencies. DON'T put your own dependencies here
6# unless it's something special (ie not a .c file). 6# unless it's something special (ie not a .c file).
7# 7#
8obj-y += int-handler.o irq.o prom.o reset.o setup.o 8obj-y += irq.o prom.o reset.o setup.o
diff --git a/arch/mips/momentum/ocelot_3/int-handler.S b/arch/mips/momentum/ocelot_3/int-handler.S
deleted file mode 100644
index 4522f09ed769..000000000000
--- a/arch/mips/momentum/ocelot_3/int-handler.S
+++ /dev/null
@@ -1,137 +0,0 @@
1/*
2 * Copyright 2002 Momentum Computer Inc.
3 * Author: Matthew Dharm <mdharm@momenco.com>
4 *
5 * Copyright 2001 MontaVista Software Inc.
6 * Author: jsun@mvista.com or jsun@junsun.net
7 *
8 * Copyright 2004 PMC-Sierra
9 * Author: Manish Lachwani (lachwani@pmc-sierra.com)
10 *
11 * Copyright (C) 2004 MontaVista Software Inc.
12 * Author: Manish Lachwani, mlachwani@mvista.com
13 *
14 * First-level interrupt dispatcher for Ocelot-3 board.
15 *
16 * This program is free software; you can redistribute it and/or modify it
17 * under the terms of the GNU General Public License as published by the
18 * Free Software Foundation; either version 2 of the License, or (at your
19 * option) any later version.
20 */
21#include <asm/asm.h>
22#include <asm/mipsregs.h>
23#include <asm/addrspace.h>
24#include <asm/regdef.h>
25#include <asm/stackframe.h>
26
27/*
28 * First level interrupt dispatcher for Ocelot-3 board
29 */
30 .align 5
31 NESTED(ocelot3_handle_int, PT_SIZE, sp)
32 SAVE_ALL
33 CLI
34 .set at
35
36 mfc0 t0, CP0_CAUSE
37 mfc0 t2, CP0_STATUS
38
39 and t0, t2
40
41 andi t1, t0, STATUSF_IP0 /* sw0 software interrupt (IRQ0) */
42 bnez t1, ll_sw0_irq
43
44 andi t1, t0, STATUSF_IP1 /* sw1 software interrupt (IRQ1) */
45 bnez t1, ll_sw1_irq
46
47 andi t1, t0, STATUSF_IP2 /* int0 hardware line (IRQ2) */
48 bnez t1, ll_pci0slot1_irq
49
50 andi t1, t0, STATUSF_IP3 /* int1 hardware line (IRQ3) */
51 bnez t1, ll_pci0slot2_irq
52
53 andi t1, t0, STATUSF_IP4 /* int2 hardware line (IRQ4) */
54 bnez t1, ll_pci1slot1_irq
55
56 andi t1, t0, STATUSF_IP5 /* int3 hardware line (IRQ5) */
57 bnez t1, ll_pci1slot2_irq
58
59 andi t1, t0, STATUSF_IP6 /* int4 hardware line (IRQ6) */
60 bnez t1, ll_uart_irq
61
62 andi t1, t0, STATUSF_IP7 /* cpu timer (IRQ7) */
63 bnez t1, ll_cputimer_irq
64
65 /* now look at extended interrupts */
66 mfc0 t0, CP0_CAUSE
67 cfc0 t1, CP0_S1_INTCONTROL
68
69 /* shift the mask 8 bits left to line up the bits */
70 sll t2, t1, 8
71
72 and t0, t2
73 srl t0, t0, 16
74
75 andi t1, t0, STATUSF_IP8 /* int6 hardware line (IRQ9) */
76 bnez t1, ll_mv64340_decode_irq
77
78 .set reorder
79
80 /* wrong alarm or masked ... */
81 j spurious_interrupt
82 nop
83 END(ocelot3_handle_int)
84
85 .align 5
86ll_sw0_irq:
87 li a0, 0 /* IRQ 1 */
88 move a1, sp
89 jal do_IRQ
90 j ret_from_irq
91ll_sw1_irq:
92 li a0, 1 /* IRQ 2 */
93 move a1, sp
94 jal do_IRQ
95 j ret_from_irq
96
97ll_pci0slot1_irq:
98 li a0, 2 /* IRQ 3 */
99 move a1, sp
100 jal do_IRQ
101 j ret_from_irq
102
103ll_pci0slot2_irq:
104 li a0, 3 /* IRQ 4 */
105 move a1, sp
106 jal do_IRQ
107 j ret_from_irq
108
109ll_pci1slot1_irq:
110 li a0, 4 /* IRQ 5 */
111 move a1, sp
112 jal do_IRQ
113 j ret_from_irq
114
115ll_pci1slot2_irq:
116 li a0, 5 /* IRQ 6 */
117 move a1, sp
118 jal do_IRQ
119 j ret_from_irq
120
121ll_uart_irq:
122 li a0, 6 /* IRQ 7 */
123 move a1, sp
124 jal do_IRQ
125 j ret_from_irq
126
127ll_cputimer_irq:
128 li a0, 7 /* IRQ 8 */
129 move a1, sp
130 jal do_IRQ
131 j ret_from_irq
132
133ll_mv64340_decode_irq:
134 move a0, sp
135 jal ll_mv64340_irq
136 j ret_from_irq
137
diff --git a/arch/mips/momentum/ocelot_3/irq.c b/arch/mips/momentum/ocelot_3/irq.c
index 42464dbd4ad2..87c63c340ae3 100644
--- a/arch/mips/momentum/ocelot_3/irq.c
+++ b/arch/mips/momentum/ocelot_3/irq.c
@@ -53,8 +53,6 @@
53#include <asm/mipsregs.h> 53#include <asm/mipsregs.h>
54#include <asm/system.h> 54#include <asm/system.h>
55 55
56extern asmlinkage void ocelot3_handle_int(void);
57
58static struct irqaction cascade_mv64340 = { 56static struct irqaction cascade_mv64340 = {
59 no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL 57 no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL
60}; 58};
@@ -67,9 +65,6 @@ void __init arch_init_irq(void)
67 */ 65 */
68 clear_c0_status(ST0_IM | ST0_BEV); 66 clear_c0_status(ST0_IM | ST0_BEV);
69 67
70 /* Sets the first-level interrupt dispatcher. */
71 set_except_vector(0, ocelot3_handle_int);
72 mips_cpu_irq_init(0);
73 rm7k_cpu_irq_init(8); 68 rm7k_cpu_irq_init(8);
74 69
75 /* set up the cascading interrupts */ 70 /* set up the cascading interrupts */
@@ -79,3 +74,36 @@ void __init arch_init_irq(void)
79 set_c0_status(ST0_IM); /* IE in the status register */ 74 set_c0_status(ST0_IM); /* IE in the status register */
80 75
81} 76}
77
78asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
79{
80 unsigned int pending = read_c0_cause() & read_c0_status();
81
82 if (pending & STATUSF_IP0)
83 do_IRQ(0, regs);
84 else if (pending & STATUSF_IP1)
85 do_IRQ(1, regs);
86 else if (pending & STATUSF_IP2)
87 do_IRQ(2, regs);
88 else if (pending & STATUSF_IP3)
89 do_IRQ(3, regs);
90 else if (pending & STATUSF_IP4)
91 do_IRQ(4, regs);
92 else if (pending & STATUSF_IP5)
93 do_IRQ(5, regs);
94 else if (pending & STATUSF_IP6)
95 do_IRQ(6, regs);
96 else if (pending & STATUSF_IP7)
97 do_IRQ(7, regs);
98 else {
99 /*
100 * Now look at the extended interrupts
101 */
102 pending = (read_c0_cause() & (read_c0_intcontrol() << 8)) >> 16;
103
104 if (pending & STATUSF_IP8)
105 ll_mv64340_irq(regs);
106 else
107 spurious_interrupt(regs);
108 }
109}
diff --git a/arch/mips/momentum/ocelot_3/setup.c b/arch/mips/momentum/ocelot_3/setup.c
index 370e75d0e75c..c69195234309 100644
--- a/arch/mips/momentum/ocelot_3/setup.c
+++ b/arch/mips/momentum/ocelot_3/setup.c
@@ -329,22 +329,22 @@ void __init plat_setup(void)
329 /* shut down ethernet ports, just to be sure our memory doesn't get 329 /* shut down ethernet ports, just to be sure our memory doesn't get
330 * corrupted by random ethernet traffic. 330 * corrupted by random ethernet traffic.
331 */ 331 */
332 MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8); 332 MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8);
333 MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8); 333 MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8);
334 MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8); 334 MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8);
335 MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8); 335 MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8);
336 do {} 336 do {}
337 while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff); 337 while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff);
338 do {} 338 do {}
339 while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff); 339 while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff);
340 do {} 340 do {}
341 while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff); 341 while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff);
342 do {} 342 do {}
343 while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff); 343 while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff);
344 MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0), 344 MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0),
345 MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1); 345 MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1);
346 MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1), 346 MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1),
347 MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1); 347 MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1);
348 348
349 /* Turn off the Bit-Error LED */ 349 /* Turn off the Bit-Error LED */
350 OCELOT_FPGA_WRITE(0x80, CLR); 350 OCELOT_FPGA_WRITE(0x80, CLR);
diff --git a/arch/mips/momentum/ocelot_c/Makefile b/arch/mips/momentum/ocelot_c/Makefile
index 91240777f978..94802b4db472 100644
--- a/arch/mips/momentum/ocelot_c/Makefile
+++ b/arch/mips/momentum/ocelot_c/Makefile
@@ -2,7 +2,7 @@
2# Makefile for Momentum Computer's Ocelot-C and -CS boards. 2# Makefile for Momentum Computer's Ocelot-C and -CS boards.
3# 3#
4 4
5obj-y += cpci-irq.o int-handler.o irq.o prom.o reset.o \ 5obj-y += cpci-irq.o irq.o prom.o reset.o \
6 setup.o uart-irq.o 6 setup.o uart-irq.o
7 7
8obj-$(CONFIG_KGDB) += dbg_io.o 8obj-$(CONFIG_KGDB) += dbg_io.o
diff --git a/arch/mips/momentum/ocelot_c/int-handler.S b/arch/mips/momentum/ocelot_c/int-handler.S
deleted file mode 100644
index 52349d9bf1be..000000000000
--- a/arch/mips/momentum/ocelot_c/int-handler.S
+++ /dev/null
@@ -1,102 +0,0 @@
1/*
2 * Copyright 2002 Momentum Computer Inc.
3 * Author: Matthew Dharm <mdharm@momenco.com>
4 *
5 * Copyright 2001 MontaVista Software Inc.
6 * Author: jsun@mvista.com or jsun@junsun.net
7 *
8 * First-level interrupt dispatcher for Ocelot-CS board.
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 */
15#include <asm/asm.h>
16#include <asm/mipsregs.h>
17#include <asm/addrspace.h>
18#include <asm/regdef.h>
19#include <asm/stackframe.h>
20#include "ocelot_c_fpga.h"
21
22/*
23 * First level interrupt dispatcher for Ocelot-CS board
24 */
25 .align 5
26 NESTED(ocelot_handle_int, PT_SIZE, sp)
27 SAVE_ALL
28 CLI
29 .set at
30 mfc0 t0, CP0_CAUSE
31 mfc0 t2, CP0_STATUS
32
33 and t0, t2
34
35 andi t1, t0, STATUSF_IP0 /* sw0 software interrupt */
36 bnez t1, ll_sw0_irq
37 andi t1, t0, STATUSF_IP1 /* sw1 software interrupt */
38 bnez t1, ll_sw1_irq
39 andi t1, t0, STATUSF_IP2 /* int0 hardware line */
40 bnez t1, ll_scsi_irq
41 andi t1, t0, STATUSF_IP3 /* int1 hardware line */
42 bnez t1, ll_uart_decode_irq
43 andi t1, t0, STATUSF_IP4 /* int2 hardware line */
44 bnez t1, ll_pmc_irq
45 andi t1, t0, STATUSF_IP5 /* int3 hardware line */
46 bnez t1, ll_cpci_decode_irq
47 andi t1, t0, STATUSF_IP6 /* int4 hardware line */
48 bnez t1, ll_mv64340_decode_irq
49 andi t1, t0, STATUSF_IP7 /* cpu timer */
50 bnez t1, ll_cputimer_irq
51
52 .set reorder
53
54 /* wrong alarm or masked ... */
55 j spurious_interrupt
56 nop
57 END(ocelot_handle_int)
58
59 .align 5
60ll_sw0_irq:
61 li a0, 0
62 move a1, sp
63 jal do_IRQ
64 j ret_from_irq
65ll_sw1_irq:
66 li a0, 1
67 move a1, sp
68 jal do_IRQ
69 j ret_from_irq
70ll_scsi_irq:
71 li a0, 2
72 move a1, sp
73 jal do_IRQ
74 j ret_from_irq
75
76ll_uart_decode_irq:
77 move a0, sp
78 jal ll_uart_irq
79 j ret_from_irq
80
81ll_pmc_irq:
82 li a0, 4
83 move a1, sp
84 jal do_IRQ
85 j ret_from_irq
86
87ll_cpci_decode_irq:
88 move a0, sp
89 jal ll_cpci_irq
90 j ret_from_irq
91
92ll_mv64340_decode_irq:
93 move a0, sp
94 jal ll_mv64340_irq
95 j ret_from_irq
96
97ll_cputimer_irq:
98 li a0, 7
99 move a1, sp
100 jal do_IRQ
101 j ret_from_irq
102
diff --git a/arch/mips/momentum/ocelot_c/irq.c b/arch/mips/momentum/ocelot_c/irq.c
index a5764bc20e36..86f61ce59e53 100644
--- a/arch/mips/momentum/ocelot_c/irq.c
+++ b/arch/mips/momentum/ocelot_c/irq.c
@@ -48,7 +48,6 @@
48#include <asm/mipsregs.h> 48#include <asm/mipsregs.h>
49#include <asm/system.h> 49#include <asm/system.h>
50 50
51extern asmlinkage void ocelot_handle_int(void);
52extern void uart_irq_init(void); 51extern void uart_irq_init(void);
53extern void cpci_irq_init(void); 52extern void cpci_irq_init(void);
54 53
@@ -60,6 +59,33 @@ static struct irqaction cascade_mv64340 = {
60 no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade via MV64340", NULL, NULL 59 no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade via MV64340", NULL, NULL
61}; 60};
62 61
62extern void ll_uart_irq(struct pt_regs *regs);
63extern void ll_cpci_irq(struct pt_regs *regs);
64
65asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
66{
67 unsigned int pending = read_c0_cause() & read_c0_status();
68
69 if (pending & STATUSF_IP0)
70 do_IRQ(0, regs);
71 else if (pending & STATUSF_IP1)
72 do_IRQ(1, regs);
73 else if (pending & STATUSF_IP2)
74 do_IRQ(2, regs);
75 else if (pending & STATUSF_IP3)
76 ll_uart_irq(regs);
77 else if (pending & STATUSF_IP4)
78 do_IRQ(4, regs);
79 else if (pending & STATUSF_IP5)
80 ll_cpci_irq(regs);
81 else if (pending & STATUSF_IP6)
82 ll_mv64340_irq(regs);
83 else if (pending & STATUSF_IP7)
84 do_IRQ(7, regs);
85 else
86 spurious_interrupt(regs);
87}
88
63void __init arch_init_irq(void) 89void __init arch_init_irq(void)
64{ 90{
65 /* 91 /*
@@ -68,8 +94,6 @@ void __init arch_init_irq(void)
68 */ 94 */
69 clear_c0_status(ST0_IM); 95 clear_c0_status(ST0_IM);
70 96
71 /* Sets the first-level interrupt dispatcher. */
72 set_except_vector(0, ocelot_handle_int);
73 mips_cpu_irq_init(0); 97 mips_cpu_irq_init(0);
74 98
75 /* set up the cascading interrupts */ 99 /* set up the cascading interrupts */
diff --git a/arch/mips/momentum/ocelot_g/Makefile b/arch/mips/momentum/ocelot_g/Makefile
index e5f1cb086973..adb5665d40a9 100644
--- a/arch/mips/momentum/ocelot_g/Makefile
+++ b/arch/mips/momentum/ocelot_g/Makefile
@@ -2,7 +2,7 @@
2# Makefile for Momentum Computer's Ocelot-G board. 2# Makefile for Momentum Computer's Ocelot-G board.
3# 3#
4 4
5obj-y += int-handler.o irq.o gt-irq.o prom.o reset.o setup.o 5obj-y += irq.o gt-irq.o prom.o reset.o setup.o
6obj-$(CONFIG_KGDB) += dbg_io.o 6obj-$(CONFIG_KGDB) += dbg_io.o
7 7
8EXTRA_AFLAGS := $(CFLAGS) 8EXTRA_AFLAGS := $(CFLAGS)
diff --git a/arch/mips/momentum/ocelot_g/int-handler.S b/arch/mips/momentum/ocelot_g/int-handler.S
deleted file mode 100644
index 772e8f713176..000000000000
--- a/arch/mips/momentum/ocelot_g/int-handler.S
+++ /dev/null
@@ -1,131 +0,0 @@
1/*
2 * Copyright 2001 MontaVista Software Inc.
3 * Author: jsun@mvista.com or jsun@junsun.net
4 *
5 * First-level interrupt dispatcher for ocelot board.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version.
11 */
12#include <asm/asm.h>
13#include <asm/mipsregs.h>
14#include <asm/addrspace.h>
15#include <asm/regdef.h>
16#include <asm/stackframe.h>
17
18/*
19 * first level interrupt dispatcher for ocelot board -
20 * We check for the timer first, then check PCI ints A and D.
21 * Then check for serial IRQ and fall through.
22 */
23 .align 5
24 NESTED(ocelot_handle_int, PT_SIZE, sp)
25 SAVE_ALL
26 CLI
27 .set at
28 mfc0 t0, CP0_CAUSE
29 mfc0 t2, CP0_STATUS
30
31 and t0, t2
32
33 andi t1, t0, STATUSF_IP2 /* int0 hardware line */
34 bnez t1, ll_pri_enet_irq
35 andi t1, t0, STATUSF_IP3 /* int1 hardware line */
36 bnez t1, ll_sec_enet_irq
37 andi t1, t0, STATUSF_IP4 /* int2 hardware line */
38 bnez t1, ll_uart_irq
39 andi t1, t0, STATUSF_IP5 /* int3 hardware line */
40 bnez t1, ll_cpci_irq
41 andi t1, t0, STATUSF_IP6 /* int4 hardware line */
42 bnez t1, ll_galileo_p0_irq
43 andi t1, t0, STATUSF_IP7 /* cpu timer */
44 bnez t1, ll_cputimer_irq
45
46 /* now look at the extended interrupts */
47 mfc0 t0, CP0_CAUSE
48 cfc0 t1, CP0_S1_INTCONTROL
49
50 /* shift the mask 8 bits left to line up the bits */
51 sll t2, t1, 8
52
53 and t0, t2
54 srl t0, t0, 16
55
56 andi t1, t0, STATUSF_IP8 /* int6 hardware line */
57 bnez t1, ll_galileo_p1_irq
58 andi t1, t0, STATUSF_IP9 /* int7 hardware line */
59 bnez t1, ll_pmc_irq
60 andi t1, t0, STATUSF_IP10 /* int8 hardware line */
61 bnez t1, ll_cpci_abcd_irq
62 andi t1, t0, STATUSF_IP11 /* int9 hardware line */
63 bnez t1, ll_testpoint_irq
64
65 .set reorder
66
67 /* wrong alarm or masked ... */
68 j spurious_interrupt
69 nop
70 END(ocelot_handle_int)
71
72 .align 5
73ll_pri_enet_irq:
74 li a0, 2
75 move a1, sp
76 jal do_IRQ
77 j ret_from_irq
78
79ll_sec_enet_irq:
80 li a0, 3
81 move a1, sp
82 jal do_IRQ
83 j ret_from_irq
84
85ll_uart_irq:
86 li a0, 4
87 move a1, sp
88 jal do_IRQ
89 j ret_from_irq
90
91ll_cpci_irq:
92 li a0, 5
93 move a1, sp
94 jal do_IRQ
95 j ret_from_irq
96
97ll_galileo_p0_irq:
98 li a0, 6
99 move a1, sp
100 jal do_IRQ
101 j ret_from_irq
102
103ll_cputimer_irq:
104 li a0, 7
105 move a1, sp
106 jal do_IRQ
107 j ret_from_irq
108
109ll_galileo_p1_irq:
110 li a0, 8
111 move a1, sp
112 jal do_IRQ
113 j ret_from_irq
114
115ll_pmc_irq:
116 li a0, 9
117 move a1, sp
118 jal do_IRQ
119 j ret_from_irq
120
121ll_cpci_abcd_irq:
122 li a0, 10
123 move a1, sp
124 jal do_IRQ
125 j ret_from_irq
126
127ll_testpoint_irq:
128 li a0, 11
129 move a1, sp
130 jal do_IRQ
131 j ret_from_irq
diff --git a/arch/mips/momentum/ocelot_g/irq.c b/arch/mips/momentum/ocelot_g/irq.c
index 5eb85b164205..7a4a419804f1 100644
--- a/arch/mips/momentum/ocelot_g/irq.c
+++ b/arch/mips/momentum/ocelot_g/irq.c
@@ -48,7 +48,41 @@
48#include <asm/mipsregs.h> 48#include <asm/mipsregs.h>
49#include <asm/system.h> 49#include <asm/system.h>
50 50
51extern asmlinkage void ocelot_handle_int(void); 51asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
52{
53 unsigned int pending = read_c0_cause() & read_c0_status();
54
55 if (pending & STATUSF_IP2)
56 do_IRQ(2, regs);
57 else if (pending & STATUSF_IP3)
58 do_IRQ(3, regs);
59 else if (pending & STATUSF_IP4)
60 do_IRQ(4, regs);
61 else if (pending & STATUSF_IP5)
62 do_IRQ(5, regs);
63 else if (pending & STATUSF_IP6)
64 do_IRQ(6, regs);
65 else if (pending & STATUSF_IP7)
66 do_IRQ(7, regs);
67 else {
68 /*
69 * Now look at the extended interrupts
70 */
71 pending = (read_c0_cause() & (read_c0_intcontrol() << 8)) >> 16;
72
73 if (pending & STATUSF_IP8)
74 do_IRQ(8, regs);
75 else if (pending & STATUSF_IP9)
76 do_IRQ(9, regs);
77 else if (pending & STATUSF_IP10)
78 do_IRQ(10, regs);
79 else if (pending & STATUSF_IP11)
80 do_IRQ(11, regs);
81 else
82 spurious_interrupt(regs);
83 }
84}
85
52extern void gt64240_irq_init(void); 86extern void gt64240_irq_init(void);
53 87
54void __init arch_init_irq(void) 88void __init arch_init_irq(void)
@@ -60,8 +94,6 @@ void __init arch_init_irq(void)
60 clear_c0_status(ST0_IM); 94 clear_c0_status(ST0_IM);
61 local_irq_disable(); 95 local_irq_disable();
62 96
63 /* Sets the first-level interrupt dispatcher. */
64 set_except_vector(0, ocelot_handle_int);
65 mips_cpu_irq_init(0); 97 mips_cpu_irq_init(0);
66 rm7k_cpu_irq_init(8); 98 rm7k_cpu_irq_init(8);
67 99
diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c
index 935dd851f480..f2b4862aaae5 100644
--- a/arch/mips/oprofile/common.c
+++ b/arch/mips/oprofile/common.c
@@ -27,7 +27,7 @@ static int op_mips_setup(void)
27 model->reg_setup(ctr); 27 model->reg_setup(ctr);
28 28
29 /* Configure the registers on all cpus. */ 29 /* Configure the registers on all cpus. */
30 on_each_cpu(model->cpu_setup, 0, 0, 1); 30 on_each_cpu(model->cpu_setup, NULL, 0, 1);
31 31
32 return 0; 32 return 0;
33} 33}
@@ -114,5 +114,6 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
114 114
115void oprofile_arch_exit(void) 115void oprofile_arch_exit(void)
116{ 116{
117 model->exit(); 117 if (model)
118 model->exit();
118} 119}
diff --git a/arch/mips/philips/pnx8550/common/Makefile b/arch/mips/philips/pnx8550/common/Makefile
index 6e38f3bc443c..b7c638166e9f 100644
--- a/arch/mips/philips/pnx8550/common/Makefile
+++ b/arch/mips/philips/pnx8550/common/Makefile
@@ -22,6 +22,6 @@
22# under Linux. 22# under Linux.
23# 23#
24 24
25obj-y := setup.o prom.o mipsIRQ.o int.o reset.o time.o proc.o platform.o 25obj-y := setup.o prom.o int.o reset.o time.o proc.o platform.o
26obj-$(CONFIG_PCI) += pci.o 26obj-$(CONFIG_PCI) += pci.o
27obj-$(CONFIG_KGDB) += gdb_hook.o 27obj-$(CONFIG_KGDB) += gdb_hook.o
diff --git a/arch/mips/philips/pnx8550/common/int.c b/arch/mips/philips/pnx8550/common/int.c
index c500e2d41f2c..39ee6314f627 100644
--- a/arch/mips/philips/pnx8550/common/int.c
+++ b/arch/mips/philips/pnx8550/common/int.c
@@ -38,8 +38,6 @@
38#include <int.h> 38#include <int.h>
39#include <uart.h> 39#include <uart.h>
40 40
41extern asmlinkage void cp0_irqdispatch(void);
42
43static DEFINE_SPINLOCK(irq_lock); 41static DEFINE_SPINLOCK(irq_lock);
44 42
45/* default prio for interrupts */ 43/* default prio for interrupts */
@@ -55,7 +53,7 @@ static char gic_prio[PNX8550_INT_GIC_TOTINT] = {
55 1 // 70 53 1 // 70
56}; 54};
57 55
58void hw0_irqdispatch(int irq, struct pt_regs *regs) 56static void hw0_irqdispatch(int irq, struct pt_regs *regs)
59{ 57{
60 /* find out which interrupt */ 58 /* find out which interrupt */
61 irq = PNX8550_GIC_VECTOR_0 >> 3; 59 irq = PNX8550_GIC_VECTOR_0 >> 3;
@@ -68,7 +66,7 @@ void hw0_irqdispatch(int irq, struct pt_regs *regs)
68} 66}
69 67
70 68
71void timer_irqdispatch(int irq, struct pt_regs *regs) 69static void timer_irqdispatch(int irq, struct pt_regs *regs)
72{ 70{
73 irq = (0x01c0 & read_c0_config7()) >> 6; 71 irq = (0x01c0 & read_c0_config7()) >> 6;
74 72
@@ -88,6 +86,20 @@ void timer_irqdispatch(int irq, struct pt_regs *regs)
88 } 86 }
89} 87}
90 88
89asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
90{
91 unsigned int pending = read_c0_status() & read_c0_cause();
92
93 if (pending & STATUSF_IP2)
94 do_IRQ(2, regs);
95 else if (pending & STATUSF_IP7) {
96 if (read_c0_config7() & 0x01c0)
97 timer_irqdispatch(7, regs);
98 }
99
100 spurious_interrupt(regs);
101}
102
91static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask) 103static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask)
92{ 104{
93 unsigned long status = read_c0_status(); 105 unsigned long status = read_c0_status();
@@ -223,9 +235,6 @@ void __init arch_init_irq(void)
223 int i; 235 int i;
224 int configPR; 236 int configPR;
225 237
226 /* init of cp0 interrupts */
227 set_except_vector(0, cp0_irqdispatch);
228
229 for (i = 0; i < PNX8550_INT_CP0_TOTINT; i++) { 238 for (i = 0; i < PNX8550_INT_CP0_TOTINT; i++) {
230 irq_desc[i].handler = &level_irq_type; 239 irq_desc[i].handler = &level_irq_type;
231 pnx8550_ack(i); /* mask the irq just in case */ 240 pnx8550_ack(i); /* mask the irq just in case */
diff --git a/arch/mips/philips/pnx8550/common/mipsIRQ.S b/arch/mips/philips/pnx8550/common/mipsIRQ.S
deleted file mode 100644
index 338bffda3fab..000000000000
--- a/arch/mips/philips/pnx8550/common/mipsIRQ.S
+++ /dev/null
@@ -1,76 +0,0 @@
1/*
2 * Copyright (c) 2002 Philips, Inc. All rights.
3 * Copyright (c) 2002 Red Hat, Inc. All rights.
4 *
5 * This software may be freely redistributed under the terms of the
6 * GNU General Public License.
7 *
8 * You should have received a copy of the GNU General Public License
9 * along with this program; if not, write to the Free Software
10 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
11 *
12 * Based upon arch/mips/galileo-boards/ev64240/int-handler.S
13 *
14 */
15#include <asm/asm.h>
16#include <asm/mipsregs.h>
17#include <asm/addrspace.h>
18#include <asm/regdef.h>
19#include <asm/stackframe.h>
20
21/*
22 * cp0_irqdispatch
23 *
24 * Code to handle in-core interrupt exception.
25 */
26
27 .align 5
28 .set reorder
29 .set noat
30 NESTED(cp0_irqdispatch, PT_SIZE, sp)
31 SAVE_ALL
32 CLI
33 .set at
34 mfc0 t0,CP0_CAUSE
35 mfc0 t2,CP0_STATUS
36
37 and t0,t2
38
39 andi t1,t0,STATUSF_IP2 /* int0 hardware line */
40 bnez t1,ll_hw0_irq
41 nop
42
43 andi t1,t0,STATUSF_IP7 /* int5 hardware line */
44 bnez t1,ll_timer_irq
45 nop
46
47 /* wrong alarm or masked ... */
48
49 j spurious_interrupt
50 nop
51 END(cp0_irqdispatch)
52
53 .align 5
54 .set reorder
55ll_hw0_irq:
56 li a0,2
57 move a1,sp
58 jal hw0_irqdispatch
59 nop
60 j ret_from_irq
61 nop
62
63 .align 5
64 .set reorder
65ll_timer_irq:
66 mfc0 t3,CP0_CONFIG,7
67 andi t4,t3,0x01c0
68 beqz t4,ll_timer_out
69 nop
70 li a0,7
71 move a1,sp
72 jal timer_irqdispatch
73 nop
74
75ll_timer_out: j ret_from_irq
76 nop
diff --git a/arch/mips/philips/pnx8550/common/platform.c b/arch/mips/philips/pnx8550/common/platform.c
index a592260fd673..5436b4b97455 100644
--- a/arch/mips/philips/pnx8550/common/platform.c
+++ b/arch/mips/philips/pnx8550/common/platform.c
@@ -18,6 +18,7 @@
18#include <linux/resource.h> 18#include <linux/resource.h>
19#include <linux/serial.h> 19#include <linux/serial.h>
20#include <linux/serial_ip3106.h> 20#include <linux/serial_ip3106.h>
21#include <linux/platform_device.h>
21 22
22#include <int.h> 23#include <int.h>
23#include <usb.h> 24#include <usb.h>
diff --git a/arch/mips/pmc-sierra/yosemite/Makefile b/arch/mips/pmc-sierra/yosemite/Makefile
index ae96a71a3089..e931e0d44229 100644
--- a/arch/mips/pmc-sierra/yosemite/Makefile
+++ b/arch/mips/pmc-sierra/yosemite/Makefile
@@ -2,7 +2,7 @@
2# Makefile for the PMC-Sierra Titan 2# Makefile for the PMC-Sierra Titan
3# 3#
4 4
5obj-y += irq-handler.o irq.o i2c-yosemite.o prom.o py-console.o setup.o 5obj-y += irq.o i2c-yosemite.o prom.o py-console.o setup.o
6 6
7obj-$(CONFIG_KGDB) += dbg_io.o 7obj-$(CONFIG_KGDB) += dbg_io.o
8obj-$(CONFIG_SMP) += smp.o 8obj-$(CONFIG_SMP) += smp.o
diff --git a/arch/mips/pmc-sierra/yosemite/irq-handler.S b/arch/mips/pmc-sierra/yosemite/irq-handler.S
deleted file mode 100644
index 33b9c40d4f5c..000000000000
--- a/arch/mips/pmc-sierra/yosemite/irq-handler.S
+++ /dev/null
@@ -1,93 +0,0 @@
1/*
2 * Copyright 2003, 04 PMC-Sierra Inc.
3 * Author: Manish Lachwani (lachwani@pmc-sierra.com
4 * Copyright 2004 Ralf Baechle (ralf@linux-mips.org)
5 *
6 * First-level interrupt router for the PMC-Sierra Titan board
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * Titan supports Hypertransport or PCI but not both. Hence, one interrupt
14 * line is shared between the PCI slot A and Hypertransport. This is the
15 * Processor INTB #0.
16 */
17
18#include <linux/config.h>
19#include <asm/asm.h>
20#include <asm/mipsregs.h>
21#include <asm/addrspace.h>
22#include <asm/regdef.h>
23#include <asm/stackframe.h>
24
25 .align 5
26 NESTED(titan_handle_int, PT_SIZE, sp)
27 SAVE_ALL
28 CLI
29 .set at
30 .set noreorder
31 la ra, ret_from_irq
32 mfc0 t0, CP0_CAUSE
33 mfc0 t2, CP0_STATUS
34
35 and t0, t2
36
37 andi t2, t0, STATUSF_IP7 /* INTB5 hardware line */
38 bnez t2, ll_timer_irq /* Timer */
39 andi t1, t0, STATUSF_IP2 /* INTB0 hardware line */
40 bnez t1, ll_pcia_irq /* 64-bit PCI */
41 andi t2, t0, STATUSF_IP3 /* INTB1 hardware line */
42 bnez t2, ll_pcib_irq /* second 64-bit PCI slot */
43 andi t1, t0, STATUSF_IP4 /* INTB2 hardware line */
44 bnez t1, ll_duart_irq /* UART */
45 andi t2, t0, STATUSF_IP5 /* SMP inter-core interrupts */
46 bnez t2, ll_smp_irq
47 andi t1, t0, STATUSF_IP6
48 bnez t1, ll_ht_irq /* Hypertransport */
49
50 move a0, sp
51 j do_extended_irq
52 END(titan_handle_int)
53
54 .set reorder
55 .align 5
56
57ll_pcia_irq:
58 li a0, 2
59 move a1, sp
60#ifdef CONFIG_HYPERTRANSPORT
61 j ll_ht_smp_irq_handler
62#else
63 j do_IRQ
64#endif
65
66ll_pcib_irq:
67 li a0, 3
68 move a1, sp
69 j do_IRQ
70
71ll_duart_irq:
72 li a0, 4
73 move a1, sp
74 j do_IRQ
75
76ll_smp_irq:
77 li a0, 5
78 move a1, sp
79#ifdef CONFIG_SMP
80 j titan_mailbox_irq
81#else
82 j do_IRQ
83#endif
84
85ll_ht_irq:
86 li a0, 6
87 move a1, sp
88 j ll_ht_smp_irq_handler
89
90ll_timer_irq:
91 li a0, 7
92 move a1, sp
93 j do_IRQ
diff --git a/arch/mips/pmc-sierra/yosemite/irq.c b/arch/mips/pmc-sierra/yosemite/irq.c
index f4e2897d9bf7..a1f524fc4c10 100644
--- a/arch/mips/pmc-sierra/yosemite/irq.c
+++ b/arch/mips/pmc-sierra/yosemite/irq.c
@@ -2,6 +2,8 @@
2 * Copyright (C) 2003 PMC-Sierra Inc. 2 * Copyright (C) 2003 PMC-Sierra Inc.
3 * Author: Manish Lachwani (lachwani@pmc-sierra.com) 3 * Author: Manish Lachwani (lachwani@pmc-sierra.com)
4 * 4 *
5 * Copyright (C) 2006 Ralf Baechle (ralf@linux-mips.org)
6 *
5 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 8 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your 9 * Free Software Foundation; either version 2 of the License, or (at your
@@ -55,7 +57,6 @@
55#define HYPERTRANSPORT_INTC 0x7a /* INTC# */ 57#define HYPERTRANSPORT_INTC 0x7a /* INTC# */
56#define HYPERTRANSPORT_INTD 0x7b /* INTD# */ 58#define HYPERTRANSPORT_INTD 0x7b /* INTD# */
57 59
58extern asmlinkage void titan_handle_int(void);
59extern void jaguar_mailbox_irq(struct pt_regs *); 60extern void jaguar_mailbox_irq(struct pt_regs *);
60 61
61/* 62/*
@@ -125,6 +126,35 @@ asmlinkage void do_extended_irq(struct pt_regs *regs)
125 126
126} 127}
127 128
129asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
130{
131 unsigned int cause = read_c0_cause();
132 unsigned int status = read_c0_status();
133 unsigned int pending = cause & status;
134
135 if (pending & STATUSF_IP7) {
136 do_IRQ(7, regs);
137 } else if (pending & STATUSF_IP2) {
138#ifdef CONFIG_HYPERTRANSPORT
139 ll_ht_smp_irq_handler(2, regs);
140#else
141 do_IRQ(2, regs);
142#endif
143 } else if (pending & STATUSF_IP3) {
144 do_IRQ(3, regs);
145 } else if (pending & STATUSF_IP4) {
146 do_IRQ(4, regs);
147 } else if (pending & STATUSF_IP5) {
148#ifdef CONFIG_SMP
149 titan_mailbox_irq(regs);
150#else
151 do_IRQ(5, regs);
152#endif
153 } else if (pending & STATUSF_IP6) {
154 do_IRQ(4, regs);
155 }
156}
157
128#ifdef CONFIG_KGDB 158#ifdef CONFIG_KGDB
129extern void init_second_port(void); 159extern void init_second_port(void);
130#endif 160#endif
@@ -136,7 +166,6 @@ void __init arch_init_irq(void)
136{ 166{
137 clear_c0_status(ST0_IM); 167 clear_c0_status(ST0_IM);
138 168
139 set_except_vector(0, titan_handle_int);
140 mips_cpu_irq_init(0); 169 mips_cpu_irq_init(0);
141 rm7k_cpu_irq_init(8); 170 rm7k_cpu_irq_init(8);
142 rm9k_cpu_irq_init(12); 171 rm9k_cpu_irq_init(12);
diff --git a/arch/mips/qemu/Makefile b/arch/mips/qemu/Makefile
index 6a8e8bcef552..730f459f3e99 100644
--- a/arch/mips/qemu/Makefile
+++ b/arch/mips/qemu/Makefile
@@ -2,6 +2,6 @@
2# Makefile for Qemu specific kernel interface routines under Linux. 2# Makefile for Qemu specific kernel interface routines under Linux.
3# 3#
4 4
5obj-y = q-firmware.o q-int.o q-irq.o q-mem.o q-setup.o 5obj-y = q-firmware.o q-irq.o q-mem.o q-setup.o
6 6
7obj-$(CONFIG_SMP) += q-smp.o 7obj-$(CONFIG_SMP) += q-smp.o
diff --git a/arch/mips/qemu/q-int.S b/arch/mips/qemu/q-int.S
deleted file mode 100644
index 6e3dfe5eb14b..000000000000
--- a/arch/mips/qemu/q-int.S
+++ /dev/null
@@ -1,17 +0,0 @@
1/*
2 * Qemu interrupt handler code.
3 *
4 * Copyright (C) 2005 by Ralf Baechle
5 */
6#include <asm/asm.h>
7#include <asm/regdef.h>
8#include <asm/stackframe.h>
9
10 .align 5
11 NESTED(qemu_handle_int, PT_SIZE, sp)
12 SAVE_ALL
13 CLI
14 move a0, sp
15 PTR_LA ra, ret_from_irq
16 j do_qemu_int
17 END(qemu_handle_int)
diff --git a/arch/mips/qemu/q-irq.c b/arch/mips/qemu/q-irq.c
index 2c4e0704ff10..3352374c4c7d 100644
--- a/arch/mips/qemu/q-irq.c
+++ b/arch/mips/qemu/q-irq.c
@@ -9,7 +9,7 @@
9 9
10extern asmlinkage void qemu_handle_int(void); 10extern asmlinkage void qemu_handle_int(void);
11 11
12asmlinkage void do_qemu_int(struct pt_regs *regs) 12asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
13{ 13{
14 unsigned int pending = read_c0_status() & read_c0_cause(); 14 unsigned int pending = read_c0_status() & read_c0_cause();
15 15
@@ -29,7 +29,6 @@ asmlinkage void do_qemu_int(struct pt_regs *regs)
29 29
30void __init arch_init_irq(void) 30void __init arch_init_irq(void)
31{ 31{
32 set_except_vector(0, qemu_handle_int);
33 mips_hpt_frequency = QEMU_C0_COUNTER_CLOCK; /* 100MHz */ 32 mips_hpt_frequency = QEMU_C0_COUNTER_CLOCK; /* 100MHz */
34 33
35 init_i8259_irqs(); 34 init_i8259_irqs();
diff --git a/arch/mips/sgi-ip22/Makefile b/arch/mips/sgi-ip22/Makefile
index eb0820fe50bd..6aa4c0cd169c 100644
--- a/arch/mips/sgi-ip22/Makefile
+++ b/arch/mips/sgi-ip22/Makefile
@@ -3,7 +3,7 @@
3# under Linux. 3# under Linux.
4# 4#
5 5
6obj-y += ip22-mc.o ip22-hpc.o ip22-int.o ip22-irq.o ip22-berr.o \ 6obj-y += ip22-mc.o ip22-hpc.o ip22-int.o ip22-berr.o \
7 ip22-time.o ip22-nvram.o ip22-reset.o ip22-setup.o 7 ip22-time.o ip22-nvram.o ip22-reset.o ip22-setup.o
8 8
9obj-$(CONFIG_EISA) += ip22-eisa.o 9obj-$(CONFIG_EISA) += ip22-eisa.o
diff --git a/arch/mips/sgi-ip22/ip22-int.c b/arch/mips/sgi-ip22/ip22-int.c
index d16fb43b1a93..fc6a7e2b189c 100644
--- a/arch/mips/sgi-ip22/ip22-int.c
+++ b/arch/mips/sgi-ip22/ip22-int.c
@@ -37,7 +37,6 @@ static char lc1msk_to_irqnr[256];
37static char lc2msk_to_irqnr[256]; 37static char lc2msk_to_irqnr[256];
38static char lc3msk_to_irqnr[256]; 38static char lc3msk_to_irqnr[256];
39 39
40extern asmlinkage void indyIRQ(void);
41extern int ip22_eisa_init(void); 40extern int ip22_eisa_init(void);
42 41
43static void enable_local0_irq(unsigned int irq) 42static void enable_local0_irq(unsigned int irq)
@@ -224,7 +223,7 @@ static struct hw_interrupt_type ip22_local3_irq_type = {
224 .end = end_local3_irq, 223 .end = end_local3_irq,
225}; 224};
226 225
227void indy_local0_irqdispatch(struct pt_regs *regs) 226static void indy_local0_irqdispatch(struct pt_regs *regs)
228{ 227{
229 u8 mask = sgint->istat0 & sgint->imask0; 228 u8 mask = sgint->istat0 & sgint->imask0;
230 u8 mask2; 229 u8 mask2;
@@ -242,7 +241,7 @@ void indy_local0_irqdispatch(struct pt_regs *regs)
242 return; 241 return;
243} 242}
244 243
245void indy_local1_irqdispatch(struct pt_regs *regs) 244static void indy_local1_irqdispatch(struct pt_regs *regs)
246{ 245{
247 u8 mask = sgint->istat1 & sgint->imask1; 246 u8 mask = sgint->istat1 & sgint->imask1;
248 u8 mask2; 247 u8 mask2;
@@ -262,7 +261,7 @@ void indy_local1_irqdispatch(struct pt_regs *regs)
262 261
263extern void ip22_be_interrupt(int irq, struct pt_regs *regs); 262extern void ip22_be_interrupt(int irq, struct pt_regs *regs);
264 263
265void indy_buserror_irq(struct pt_regs *regs) 264static void indy_buserror_irq(struct pt_regs *regs)
266{ 265{
267 int irq = SGI_BUSERR_IRQ; 266 int irq = SGI_BUSERR_IRQ;
268 267
@@ -307,6 +306,56 @@ static struct irqaction map1_cascade = {
307#define SGI_INTERRUPTS SGINT_LOCAL3 306#define SGI_INTERRUPTS SGINT_LOCAL3
308#endif 307#endif
309 308
309extern void indy_r4k_timer_interrupt(struct pt_regs *regs);
310extern void indy_8254timer_irq(struct pt_regs *regs);
311
312/*
313 * IRQs on the INDY look basically (barring software IRQs which we don't use
314 * at all) like:
315 *
316 * MIPS IRQ Source
317 * -------- ------
318 * 0 Software (ignored)
319 * 1 Software (ignored)
320 * 2 Local IRQ level zero
321 * 3 Local IRQ level one
322 * 4 8254 Timer zero
323 * 5 8254 Timer one
324 * 6 Bus Error
325 * 7 R4k timer (what we use)
326 *
327 * We handle the IRQ according to _our_ priority which is:
328 *
329 * Highest ---- R4k Timer
330 * Local IRQ zero
331 * Local IRQ one
332 * Bus Error
333 * 8254 Timer zero
334 * Lowest ---- 8254 Timer one
335 *
336 * then we just return, if multiple IRQs are pending then we will just take
337 * another exception, big deal.
338 */
339
340asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
341{
342 unsigned int pending = read_c0_cause();
343
344 /*
345 * First we check for r4k counter/timer IRQ.
346 */
347 if (pending & CAUSEF_IP7)
348 indy_r4k_timer_interrupt(regs);
349 else if (pending & CAUSEF_IP2)
350 indy_local0_irqdispatch(regs);
351 else if (pending & CAUSEF_IP3)
352 indy_local1_irqdispatch(regs);
353 else if (pending & CAUSEF_IP6)
354 indy_buserror_irq(regs);
355 else if (pending & (CAUSEF_IP4 | CAUSEF_IP5))
356 indy_8254timer_irq(regs);
357}
358
310extern void mips_cpu_irq_init(unsigned int irq_base); 359extern void mips_cpu_irq_init(unsigned int irq_base);
311 360
312void __init arch_init_irq(void) 361void __init arch_init_irq(void)
@@ -369,8 +418,6 @@ void __init arch_init_irq(void)
369 sgint->cmeimask0 = 0; 418 sgint->cmeimask0 = 0;
370 sgint->cmeimask1 = 0; 419 sgint->cmeimask1 = 0;
371 420
372 set_except_vector(0, indyIRQ);
373
374 /* init CPU irqs */ 421 /* init CPU irqs */
375 mips_cpu_irq_init(SGINT_CPU); 422 mips_cpu_irq_init(SGINT_CPU);
376 423
diff --git a/arch/mips/sgi-ip22/ip22-irq.S b/arch/mips/sgi-ip22/ip22-irq.S
deleted file mode 100644
index 6ccbd9e1d967..000000000000
--- a/arch/mips/sgi-ip22/ip22-irq.S
+++ /dev/null
@@ -1,118 +0,0 @@
1/*
2 * ip22-irq.S: Interrupt exception dispatch code for FullHouse and
3 * Guiness.
4 *
5 * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
6 */
7
8#include <asm/asm.h>
9#include <asm/mipsregs.h>
10#include <asm/regdef.h>
11#include <asm/stackframe.h>
12
13/* A lot of complication here is taken away because:
14 *
15 * 1) We handle one interrupt and return, sitting in a loop and moving across
16 * all the pending IRQ bits in the cause register is _NOT_ the answer, the
17 * common case is one pending IRQ so optimize in that direction.
18 *
19 * 2) We need not check against bits in the status register IRQ mask, that
20 * would make this routine slow as hell.
21 *
22 * 3) Linux only thinks in terms of all IRQs on or all IRQs off, nothing in
23 * between like BSD spl() brain-damage.
24 *
25 * Furthermore, the IRQs on the INDY look basically (barring software IRQs
26 * which we don't use at all) like:
27 *
28 * MIPS IRQ Source
29 * -------- ------
30 * 0 Software (ignored)
31 * 1 Software (ignored)
32 * 2 Local IRQ level zero
33 * 3 Local IRQ level one
34 * 4 8254 Timer zero
35 * 5 8254 Timer one
36 * 6 Bus Error
37 * 7 R4k timer (what we use)
38 *
39 * We handle the IRQ according to _our_ priority which is:
40 *
41 * Highest ---- R4k Timer
42 * Local IRQ zero
43 * Local IRQ one
44 * Bus Error
45 * 8254 Timer zero
46 * Lowest ---- 8254 Timer one
47 *
48 * then we just return, if multiple IRQs are pending then we will just take
49 * another exception, big deal.
50 */
51
52 .text
53 .set noreorder
54 .set noat
55 .align 5
56 NESTED(indyIRQ, PT_SIZE, sp)
57 SAVE_ALL
58 CLI
59 .set at
60 mfc0 s0, CP0_CAUSE # get irq mask
61
62 /* First we check for r4k counter/timer IRQ. */
63 andi a0, s0, CAUSEF_IP7
64 beq a0, zero, 1f
65 andi a0, s0, CAUSEF_IP2 # delay slot, check local level zero
66
67 /* Wheee, a timer interrupt. */
68 jal indy_r4k_timer_interrupt
69 move a0, sp # delay slot
70 j ret_from_irq
71 nop # delay slot
72
731:
74 beq a0, zero, 1f
75 andi a0, s0, CAUSEF_IP3 # delay slot, check local level one
76
77 /* Wheee, local level zero interrupt. */
78 jal indy_local0_irqdispatch
79 move a0, sp # delay slot
80
81 j ret_from_irq
82 nop # delay slot
83
841:
85 beq a0, zero, 1f
86 andi a0, s0, CAUSEF_IP6 # delay slot, check bus error
87
88 /* Wheee, local level one interrupt. */
89 jal indy_local1_irqdispatch
90 move a0, sp # delay slot
91 j ret_from_irq
92 nop # delay slot
93
941:
95 beq a0, zero, 1f
96 andi a0, s0, (CAUSEF_IP4 | CAUSEF_IP5) # delay slot
97
98 /* Wheee, an asynchronous bus error... */
99 jal indy_buserror_irq
100 move a0, sp # delay slot
101 j ret_from_irq
102 nop # delay slot
103
1041:
105 /* Here by mistake? It is possible, that by the time we take
106 * the exception the IRQ pin goes low, so just leave if this
107 * is the case.
108 */
109 beq a0, zero, 1f
110 nop # delay slot
111
112 /* Must be one of the 8254 timers... */
113 jal indy_8254timer_irq
114 move a0, sp # delay slot
1151:
116 j ret_from_irq
117 nop # delay slot
118 END(indyIRQ)
diff --git a/arch/mips/sgi-ip27/Makefile b/arch/mips/sgi-ip27/Makefile
index 4ba340780c35..686ba14e2882 100644
--- a/arch/mips/sgi-ip27/Makefile
+++ b/arch/mips/sgi-ip27/Makefile
@@ -2,7 +2,7 @@
2# Makefile for the IP27 specific kernel interface routines under Linux. 2# Makefile for the IP27 specific kernel interface routines under Linux.
3# 3#
4 4
5obj-y := ip27-berr.o ip27-console.o ip27-irq.o ip27-init.o ip27-irq-glue.o \ 5obj-y := ip27-berr.o ip27-console.o ip27-irq.o ip27-init.o \
6 ip27-klconfig.o ip27-klnuma.o ip27-memory.o ip27-nmi.o ip27-reset.o \ 6 ip27-klconfig.o ip27-klnuma.o ip27-memory.o ip27-nmi.o ip27-reset.o \
7 ip27-timer.o ip27-hubio.o ip27-xtalk.o 7 ip27-timer.o ip27-hubio.o ip27-xtalk.o
8 8
diff --git a/arch/mips/sgi-ip27/TODO b/arch/mips/sgi-ip27/TODO
index 32106131b0d0..19f1512c8f2e 100644
--- a/arch/mips/sgi-ip27/TODO
+++ b/arch/mips/sgi-ip27/TODO
@@ -9,10 +9,6 @@ ip27-init.c:find_lbaord_real. DONE
9in irix? 9in irix?
106. Investigate why things do not work without the setup_test() call 106. Investigate why things do not work without the setup_test() call
11being invoked on all nodes in ip27-memory.c. 11being invoked on all nodes in ip27-memory.c.
127. Too many CLIs in the locore handlers :
13For the low level handlers set up by set_except_vector(),
14__tlb_refill_debug_tramp, __xtlb_refill_debug_tramp and cacheerror,
15investigate whether the code should do CLI, STI or KMODE.
168. Too many do_page_faults invoked - investigate. 128. Too many do_page_faults invoked - investigate.
179. start_thread must turn off UX64 ... and define tlb_refill_debug. 139. start_thread must turn off UX64 ... and define tlb_refill_debug.
1810. Need a bad pmd table, bad pte table. __bad_pmd_table/__bad_pagetable 1410. Need a bad pmd table, bad pte table. __bad_pmd_table/__bad_pagetable
diff --git a/arch/mips/sgi-ip27/ip27-irq-glue.S b/arch/mips/sgi-ip27/ip27-irq-glue.S
deleted file mode 100644
index c304df715e0a..000000000000
--- a/arch/mips/sgi-ip27/ip27-irq-glue.S
+++ /dev/null
@@ -1,45 +0,0 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1999 Ralf Baechle
7 * Copyright (C) 1999 Silicon Graphics, Inc.
8 */
9#include <asm/asm.h>
10#include <asm/mipsregs.h>
11#include <asm/regdef.h>
12#include <asm/stackframe.h>
13
14 .text
15 .align 5
16NESTED(ip27_irq, PT_SIZE, sp)
17 SAVE_ALL
18 CLI
19
20 mfc0 s0, CP0_CAUSE
21 mfc0 t0, CP0_STATUS
22 and s0, t0
23 move a0, sp
24 PTR_LA ra, ret_from_irq
25
26 /* First check for RT interrupt. */
27 andi t0, s0, CAUSEF_IP4
28 bnez t0, ip4
29 andi t0, s0, CAUSEF_IP2
30 bnez t0, ip2
31 andi t0, s0, CAUSEF_IP3
32 bnez t0, ip3
33 andi t0, s0, CAUSEF_IP5
34 bnez t0, ip5
35 andi t0, s0, CAUSEF_IP6
36 bnez t0, ip6
37 j ra
38
39ip2: j ip27_do_irq_mask0 # PI_INT_PEND_0 or CC_PEND_{A|B}
40ip3: j ip27_do_irq_mask1 # PI_INT_PEND_1
41ip4: j ip27_rt_timer_interrupt
42ip5: j ip27_prof_timer
43ip6: j ip27_hub_error
44
45 END(ip27_irq)
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c
index 2854ac4c9be1..2e643d2f51cb 100644
--- a/arch/mips/sgi-ip27/ip27-irq.c
+++ b/arch/mips/sgi-ip27/ip27-irq.c
@@ -130,7 +130,7 @@ static int ms1bit(unsigned long x)
130 * Kanoj 05.13.00 130 * Kanoj 05.13.00
131 */ 131 */
132 132
133void ip27_do_irq_mask0(struct pt_regs *regs) 133static void ip27_do_irq_mask0(struct pt_regs *regs)
134{ 134{
135 int irq, swlevel; 135 int irq, swlevel;
136 hubreg_t pend0, mask0; 136 hubreg_t pend0, mask0;
@@ -171,7 +171,7 @@ void ip27_do_irq_mask0(struct pt_regs *regs)
171 LOCAL_HUB_L(PI_INT_PEND0); 171 LOCAL_HUB_L(PI_INT_PEND0);
172} 172}
173 173
174void ip27_do_irq_mask1(struct pt_regs *regs) 174static void ip27_do_irq_mask1(struct pt_regs *regs)
175{ 175{
176 int irq, swlevel; 176 int irq, swlevel;
177 hubreg_t pend1, mask1; 177 hubreg_t pend1, mask1;
@@ -196,12 +196,12 @@ void ip27_do_irq_mask1(struct pt_regs *regs)
196 LOCAL_HUB_L(PI_INT_PEND1); 196 LOCAL_HUB_L(PI_INT_PEND1);
197} 197}
198 198
199void ip27_prof_timer(struct pt_regs *regs) 199static void ip27_prof_timer(struct pt_regs *regs)
200{ 200{
201 panic("CPU %d got a profiling interrupt", smp_processor_id()); 201 panic("CPU %d got a profiling interrupt", smp_processor_id());
202} 202}
203 203
204void ip27_hub_error(struct pt_regs *regs) 204static void ip27_hub_error(struct pt_regs *regs)
205{ 205{
206 panic("CPU %d got a hub error interrupt", smp_processor_id()); 206 panic("CPU %d got a hub error interrupt", smp_processor_id());
207} 207}
@@ -421,9 +421,26 @@ int __devinit request_bridge_irq(struct bridge_controller *bc)
421 return irq; 421 return irq;
422} 422}
423 423
424extern void ip27_rt_timer_interrupt(struct pt_regs *regs);
425
426asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
427{
428 unsigned long pending = read_c0_cause() & read_c0_status();
429
430 if (pending & CAUSEF_IP4)
431 ip27_rt_timer_interrupt(regs);
432 else if (pending & CAUSEF_IP2) /* PI_INT_PEND_0 or CC_PEND_{A|B} */
433 ip27_do_irq_mask0(regs);
434 else if (pending & CAUSEF_IP3) /* PI_INT_PEND_1 */
435 ip27_do_irq_mask1(regs);
436 else if (pending & CAUSEF_IP5)
437 ip27_prof_timer(regs);
438 else if (pending & CAUSEF_IP6)
439 ip27_hub_error(regs);
440}
441
424void __init arch_init_irq(void) 442void __init arch_init_irq(void)
425{ 443{
426 set_except_vector(0, ip27_irq);
427} 444}
428 445
429void install_ipi(void) 446void install_ipi(void)
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c
index cddf1cedf007..36b662e27b6e 100644
--- a/arch/mips/sgi-ip27/ip27-timer.c
+++ b/arch/mips/sgi-ip27/ip27-timer.c
@@ -122,7 +122,7 @@ again:
122 xtime.tv_sec > last_rtc_update + 660 && 122 xtime.tv_sec > last_rtc_update + 660 &&
123 (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && 123 (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 &&
124 (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { 124 (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) {
125 if (rtc_set_time(xtime.tv_sec) == 0) { 125 if (rtc_mips_set_time(xtime.tv_sec) == 0) {
126 last_rtc_update = xtime.tv_sec; 126 last_rtc_update = xtime.tv_sec;
127 } else { 127 } else {
128 last_rtc_update = xtime.tv_sec - 600; 128 last_rtc_update = xtime.tv_sec - 600;
diff --git a/arch/mips/sgi-ip32/Makefile b/arch/mips/sgi-ip32/Makefile
index 470898f4afe1..530bf848c3d0 100644
--- a/arch/mips/sgi-ip32/Makefile
+++ b/arch/mips/sgi-ip32/Makefile
@@ -3,7 +3,7 @@
3# under Linux. 3# under Linux.
4# 4#
5 5
6obj-y += ip32-berr.o ip32-irq.o ip32-irq-glue.o ip32-setup.o ip32-reset.o \ 6obj-y += ip32-berr.o ip32-irq.o ip32-setup.o ip32-reset.o \
7 crime.o ip32-memory.o 7 crime.o ip32-memory.o
8 8
9EXTRA_AFLAGS := $(CFLAGS) 9EXTRA_AFLAGS := $(CFLAGS)
diff --git a/arch/mips/sgi-ip32/ip32-irq-glue.S b/arch/mips/sgi-ip32/ip32-irq-glue.S
deleted file mode 100644
index 200924e1c4f5..000000000000
--- a/arch/mips/sgi-ip32/ip32-irq-glue.S
+++ /dev/null
@@ -1,86 +0,0 @@
1/*
2 * Low level interrupt handler for the SGI O2 aka IP32 aka Moosehead
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * Copyright (C) 2000 Harald Koerfgen
9 * Copyright (C) 2001 Keith M Wesolowski
10 */
11#include <asm/asm.h>
12#include <asm/regdef.h>
13#include <asm/mipsregs.h>
14#include <asm/stackframe.h>
15#include <asm/addrspace.h>
16
17 .text
18 .set noreorder
19 .set noat
20 .align 5
21 NESTED(ip32_handle_int, PT_SIZE, ra)
22 .set noat
23 SAVE_ALL
24 CLI # TEST: interrupts should be off
25 .set at
26 .set noreorder
27
28 mfc0 s0,CP0_CAUSE
29
30 andi t1, s0, IE_IRQ0
31 bnez t1, handle_irq0
32 andi t1, s0, IE_IRQ1
33 bnez t1, handle_irq1
34 andi t1, s0, IE_IRQ2
35 bnez t1, handle_irq2
36 andi t1, s0, IE_IRQ3
37 bnez t1, handle_irq3
38 andi t1, s0, IE_IRQ4
39 bnez t1, handle_irq4
40 andi t1, s0, IE_IRQ5
41 bnez t1, handle_irq5
42 nop
43
44 /* Either someone has triggered the "software interrupts"
45 * or we lost an interrupt somehow. Ignore it.
46 */
47 j ret_from_irq
48 nop
49
50handle_irq0:
51 jal ip32_irq0
52 move a0, sp
53 j ret_from_irq
54 nop
55
56handle_irq1:
57 jal ip32_irq1
58 move a0, sp
59 j ret_from_irq
60 nop
61
62handle_irq2:
63 jal ip32_irq2
64 move a0, sp
65 j ret_from_irq
66 nop
67
68handle_irq3:
69 jal ip32_irq3
70 move a0, sp
71 j ret_from_irq
72 nop
73
74handle_irq4:
75 jal ip32_irq4
76 move a0, sp
77 j ret_from_irq
78 nop
79
80handle_irq5:
81 jal ip32_irq5
82 move a0, sp
83 j ret_from_irq
84 nop
85
86 END(ip32_handle_int)
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c
index 2eb22d692ed9..de01c9815bdd 100644
--- a/arch/mips/sgi-ip32/ip32-irq.c
+++ b/arch/mips/sgi-ip32/ip32-irq.c
@@ -130,8 +130,6 @@ struct irqaction memerr_irq = { crime_memerr_intr, SA_INTERRUPT,
130struct irqaction cpuerr_irq = { crime_cpuerr_intr, SA_INTERRUPT, 130struct irqaction cpuerr_irq = { crime_cpuerr_intr, SA_INTERRUPT,
131 CPU_MASK_NONE, "CRIME CPU error", NULL, NULL }; 131 CPU_MASK_NONE, "CRIME CPU error", NULL, NULL };
132 132
133extern void ip32_handle_int(void);
134
135/* 133/*
136 * For interrupts wired from a single device to the CPU. Only the clock 134 * For interrupts wired from a single device to the CPU. Only the clock
137 * uses this it seems, which is IRQ 0 and IP7. 135 * uses this it seems, which is IRQ 0 and IP7.
@@ -503,48 +501,67 @@ static void ip32_unknown_interrupt(struct pt_regs *regs)
503 501
504/* CRIME 1.1 appears to deliver all interrupts to this one pin. */ 502/* CRIME 1.1 appears to deliver all interrupts to this one pin. */
505/* change this to loop over all edge-triggered irqs, exception masked out ones */ 503/* change this to loop over all edge-triggered irqs, exception masked out ones */
506void ip32_irq0(struct pt_regs *regs) 504static void ip32_irq0(struct pt_regs *regs)
507{ 505{
508 uint64_t crime_int; 506 uint64_t crime_int;
509 int irq = 0; 507 int irq = 0;
510 508
511 crime_int = crime->istat & crime_mask; 509 crime_int = crime->istat & crime_mask;
512 irq = ffs(crime_int); 510 irq = __ffs(crime_int);
513 crime_int = 1 << (irq - 1); 511 crime_int = 1 << irq;
514 512
515 if (crime_int & CRIME_MACEISA_INT_MASK) { 513 if (crime_int & CRIME_MACEISA_INT_MASK) {
516 unsigned long mace_int = mace->perif.ctrl.istat; 514 unsigned long mace_int = mace->perif.ctrl.istat;
517 irq = ffs(mace_int & maceisa_mask) + 32; 515 irq = __ffs(mace_int & maceisa_mask) + 32;
518 } 516 }
517 irq++;
519 DBG("*irq %u*\n", irq); 518 DBG("*irq %u*\n", irq);
520 do_IRQ(irq, regs); 519 do_IRQ(irq, regs);
521} 520}
522 521
523void ip32_irq1(struct pt_regs *regs) 522static void ip32_irq1(struct pt_regs *regs)
524{ 523{
525 ip32_unknown_interrupt(regs); 524 ip32_unknown_interrupt(regs);
526} 525}
527 526
528void ip32_irq2(struct pt_regs *regs) 527static void ip32_irq2(struct pt_regs *regs)
529{ 528{
530 ip32_unknown_interrupt(regs); 529 ip32_unknown_interrupt(regs);
531} 530}
532 531
533void ip32_irq3(struct pt_regs *regs) 532static void ip32_irq3(struct pt_regs *regs)
534{ 533{
535 ip32_unknown_interrupt(regs); 534 ip32_unknown_interrupt(regs);
536} 535}
537 536
538void ip32_irq4(struct pt_regs *regs) 537static void ip32_irq4(struct pt_regs *regs)
539{ 538{
540 ip32_unknown_interrupt(regs); 539 ip32_unknown_interrupt(regs);
541} 540}
542 541
543void ip32_irq5(struct pt_regs *regs) 542static void ip32_irq5(struct pt_regs *regs)
544{ 543{
545 ll_timer_interrupt(IP32_R4K_TIMER_IRQ, regs); 544 ll_timer_interrupt(IP32_R4K_TIMER_IRQ, regs);
546} 545}
547 546
547asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
548{
549 unsigned int pending = read_c0_cause();
550
551 if (likely(pending & IE_IRQ0))
552 ip32_irq0(regs);
553 else if (unlikely(pending & IE_IRQ1))
554 ip32_irq1(regs);
555 else if (unlikely(pending & IE_IRQ2))
556 ip32_irq2(regs);
557 else if (unlikely(pending & IE_IRQ3))
558 ip32_irq3(regs);
559 else if (unlikely(pending & IE_IRQ4))
560 ip32_irq4(regs);
561 else if (likely(pending & IE_IRQ5))
562 ip32_irq5(regs);
563}
564
548void __init arch_init_irq(void) 565void __init arch_init_irq(void)
549{ 566{
550 unsigned int irq; 567 unsigned int irq;
@@ -556,7 +573,6 @@ void __init arch_init_irq(void)
556 crime->soft_int = 0; 573 crime->soft_int = 0;
557 mace->perif.ctrl.istat = 0; 574 mace->perif.ctrl.istat = 0;
558 mace->perif.ctrl.imask = 0; 575 mace->perif.ctrl.imask = 0;
559 set_except_vector(0, ip32_handle_int);
560 576
561 for (irq = 0; irq <= IP32_IRQ_MAX; irq++) { 577 for (irq = 0; irq <= IP32_IRQ_MAX; irq++) {
562 hw_irq_controller *controller; 578 hw_irq_controller *controller;
diff --git a/arch/mips/sibyte/bcm1480/Makefile b/arch/mips/sibyte/bcm1480/Makefile
index 538d5a51ae94..7b36ff3873b7 100644
--- a/arch/mips/sibyte/bcm1480/Makefile
+++ b/arch/mips/sibyte/bcm1480/Makefile
@@ -1,4 +1,4 @@
1obj-y := setup.o irq.o irq_handler.o time.o 1obj-y := setup.o irq.o time.o
2 2
3obj-$(CONFIG_SMP) += smp.o 3obj-$(CONFIG_SMP) += smp.o
4 4
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 9cf7d713b13c..e61760b14d99 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -187,9 +187,6 @@ static void bcm1480_set_affinity(unsigned int irq, cpumask_t mask)
187#endif 187#endif
188 188
189 189
190/* Defined in arch/mips/sibyte/bcm1480/irq_handler.S */
191extern void bcm1480_irq_handler(void);
192
193/*****************************************************************************/ 190/*****************************************************************************/
194 191
195static unsigned int startup_bcm1480_irq(unsigned int irq) 192static unsigned int startup_bcm1480_irq(unsigned int irq)
@@ -422,7 +419,6 @@ void __init arch_init_irq(void)
422#endif 419#endif
423 /* Enable necessary IPs, disable the rest */ 420 /* Enable necessary IPs, disable the rest */
424 change_c0_status(ST0_IM, imask); 421 change_c0_status(ST0_IM, imask);
425 set_except_vector(0, bcm1480_irq_handler);
426 422
427#ifdef CONFIG_KGDB 423#ifdef CONFIG_KGDB
428 if (kgdb_flag) { 424 if (kgdb_flag) {
@@ -473,3 +469,76 @@ void bcm1480_kgdb_interrupt(struct pt_regs *regs)
473} 469}
474 470
475#endif /* CONFIG_KGDB */ 471#endif /* CONFIG_KGDB */
472
473static inline int dclz(unsigned long long x)
474{
475 int lz;
476
477 __asm__ (
478 " .set push \n"
479 " .set mips64 \n"
480 " dclz %0, %1 \n"
481 " .set pop \n"
482 : "=r" (lz)
483 : "r" (x));
484
485 return lz;
486}
487
488extern void bcm1480_timer_interrupt(struct pt_regs *regs);
489extern void bcm1480_mailbox_interrupt(struct pt_regs *regs);
490extern void bcm1480_kgdb_interrupt(struct pt_regs *regs);
491
492asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
493{
494 unsigned int pending;
495
496#ifdef CONFIG_SIBYTE_BCM1480_PROF
497 /* Set compare to count to silence count/compare timer interrupts */
498 write_c0_compare(read_c0_count());
499#endif
500
501 pending = read_c0_cause();
502
503#ifdef CONFIG_SIBYTE_BCM1480_PROF
504 if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */
505 sbprof_cpu_intr(exception_epc(regs));
506#endif
507
508 if (pending & CAUSEF_IP4)
509 bcm1480_timer_interrupt(regs);
510
511#ifdef CONFIG_SMP
512 if (pending & CAUSEF_IP3)
513 bcm1480_mailbox_interrupt(regs);
514#endif
515
516#ifdef CONFIG_KGDB
517 if (pending & CAUSEF_IP6)
518 bcm1480_kgdb_interrupt(regs); /* KGDB (uart 1) */
519#endif
520
521 if (pending & CAUSEF_IP2) {
522 unsigned long long mask_h, mask_l;
523 unsigned long base;
524
525 /*
526 * Default...we've hit an IP[2] interrupt, which means we've
527 * got to check the 1480 interrupt registers to figure out what
528 * to do. Need to detect which CPU we're on, now that
529 * smp_affinity is supported.
530 */
531 base = A_BCM1480_IMR_MAPPER(smp_processor_id());
532 mask_h = __raw_readq(
533 IOADDR(base + R_BCM1480_IMR_INTERRUPT_STATUS_BASE_H));
534 mask_l = __raw_readq(
535 IOADDR(base + R_BCM1480_IMR_INTERRUPT_STATUS_BASE_L));
536
537 if (!mask_h) {
538 if (mask_h ^ 1)
539 do_IRQ(63 - dclz(mask_h), regs);
540 else
541 do_IRQ(127 - dclz(mask_l), regs);
542 }
543 }
544}
diff --git a/arch/mips/sibyte/bcm1480/irq_handler.S b/arch/mips/sibyte/bcm1480/irq_handler.S
deleted file mode 100644
index 408db88d050f..000000000000
--- a/arch/mips/sibyte/bcm1480/irq_handler.S
+++ /dev/null
@@ -1,165 +0,0 @@
1/*
2 * Copyright (C) 2000,2001,2002,2003,2004 Broadcom Corporation
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 */
18
19/*
20 * bcm1480_irq_handler() is the routine that is actually called when an
21 * interrupt occurs. It is installed as the exception vector handler in
22 * init_IRQ() in arch/mips/sibyte/bcm1480/irq.c
23 *
24 * In the handle we figure out which interrupts need handling, and use that
25 * to call the dispatcher, which will take care of actually calling
26 * registered handlers
27 *
28 * Note that we take care of all raised interrupts in one go at the handler.
29 * This is more BSDish than the Indy code, and also, IMHO, more sane.
30 */
31#include <linux/config.h>
32
33#include <asm/addrspace.h>
34#include <asm/asm.h>
35#include <asm/mipsregs.h>
36#include <asm/regdef.h>
37#include <asm/stackframe.h>
38#include <asm/sibyte/sb1250_defs.h>
39#include <asm/sibyte/bcm1480_regs.h>
40#include <asm/sibyte/bcm1480_int.h>
41
42/*
43 * What a pain. We have to be really careful saving the upper 32 bits of any
44 * register across function calls if we don't want them trashed--since were
45 * running in -o32, the calling routing never saves the full 64 bits of a
46 * register across a function call. Being the interrupt handler, we're
47 * guaranteed that interrupts are disabled during this code so we don't have
48 * to worry about random interrupts blasting the high 32 bits.
49 */
50
51 .text
52 .set push
53 .set noreorder
54 .set noat
55 .set mips64
56 #.set mips4
57 .align 5
58 NESTED(bcm1480_irq_handler, PT_SIZE, sp)
59 SAVE_ALL
60 CLI
61
62#ifdef CONFIG_SIBYTE_BCM1480_PROF
63 /* Set compare to count to silence count/compare timer interrupts */
64 mfc0 t1, CP0_COUNT
65 mtc0 t1, CP0_COMPARE /* pause to clear IP[7] bit of cause ? */
66#endif
67 /* Read cause */
68 mfc0 s0, CP0_CAUSE
69
70#ifdef CONFIG_SIBYTE_BCM1480_PROF
71 /* Cpu performance counter interrupt is routed to IP[7] */
72 andi t1, s0, CAUSEF_IP7
73 beqz t1, 0f
74 srl t1, s0, (CAUSEB_BD-2) /* Shift BD bit to bit 2 */
75 and t1, t1, 0x4 /* mask to get just BD bit */
76#ifdef CONFIG_MIPS64
77 dmfc0 a0, CP0_EPC
78 daddu a0, a0, t1 /* a0 = EPC + (BD ? 4 : 0) */
79#else
80 mfc0 a0, CP0_EPC
81 addu a0, a0, t1 /* a0 = EPC + (BD ? 4 : 0) */
82#endif
83 jal sbprof_cpu_intr
84 nop
85 j ret_from_irq
86 nop
870:
88#endif
89
90 /* Timer interrupt is routed to IP[4] */
91 andi t1, s0, CAUSEF_IP4
92 beqz t1, 1f
93 nop
94 jal bcm1480_timer_interrupt
95 move a0, sp /* Pass the registers along */
96 j ret_from_irq
97 nop /* delay slot */
981:
99
100#ifdef CONFIG_SMP
101 /* Mailbox interrupt is routed to IP[3] */
102 andi t1, s0, CAUSEF_IP3
103 beqz t1, 2f
104 nop
105 jal bcm1480_mailbox_interrupt
106 move a0, sp
107 j ret_from_irq
108 nop /* delay slot */
1092:
110#endif
111
112#ifdef CONFIG_KGDB
113 /* KGDB (uart 1) interrupt is routed to IP[6] */
114 andi t1, s0, CAUSEF_IP6
115 beqz t1, 3f
116 nop /* delay slot */
117 jal bcm1480_kgdb_interrupt
118 move a0, sp
119 j ret_from_irq
120 nop /* delay slot */
1213:
122#endif
123
124 and t1, s0, CAUSEF_IP2
125 beqz t1, 9f
126 nop
127
128 /*
129 * Default...we've hit an IP[2] interrupt, which means we've got
130 * to check the 1480 interrupt registers to figure out what to do
131 * Need to detect which CPU we're on, now that smp_affinity is
132 * supported.
133 */
134 PTR_LA v0, CKSEG1 + A_BCM1480_IMR_CPU0_BASE
135#ifdef CONFIG_SMP
136 lw t1, TI_CPU($28)
137 sll t1, t1, BCM1480_IMR_REGISTER_SPACING_SHIFT
138 addu v0, v0, t1
139#endif
140
141 /* Read IP[2] status (get both high and low halves of status) */
142 ld s0, R_BCM1480_IMR_INTERRUPT_STATUS_BASE_H(v0)
143 ld s1, R_BCM1480_IMR_INTERRUPT_STATUS_BASE_L(v0)
144
145 move s2, zero /* intr number */
146 li s3, 64
147
148 beqz s0, 9f /* No interrupts. Return. */
149 move a1, sp
150
151 xori s4, s0, 1 /* if s0 (_H) == 1, it's a low intr, so... */
152 movz s2, s3, s4 /* start the intr number at 64, and */
153 movz s0, s1, s4 /* look at the low status value. */
154
155 dclz s1, s0 /* Find the next interrupt. */
156 dsubu a0, zero, s1
157 daddiu a0, a0, 63
158 jal do_IRQ
159 daddu a0, a0, s2
160
1619: j ret_from_irq
162 nop
163
164 .set pop
165 END(bcm1480_irq_handler)
diff --git a/arch/mips/sibyte/sb1250/Makefile b/arch/mips/sibyte/sb1250/Makefile
index a8af84697588..a2fdbd62f8ac 100644
--- a/arch/mips/sibyte/sb1250/Makefile
+++ b/arch/mips/sibyte/sb1250/Makefile
@@ -1,4 +1,4 @@
1obj-y := setup.o irq.o irq_handler.o time.o 1obj-y := setup.o irq.o time.o
2 2
3obj-$(CONFIG_SMP) += smp.o 3obj-$(CONFIG_SMP) += smp.o
4obj-$(CONFIG_SIBYTE_TBPROF) += bcm1250_tbprof.o 4obj-$(CONFIG_SIBYTE_TBPROF) += bcm1250_tbprof.o
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c
index 589537bfcc3d..0f6e54db4888 100644
--- a/arch/mips/sibyte/sb1250/irq.c
+++ b/arch/mips/sibyte/sb1250/irq.c
@@ -163,10 +163,6 @@ static void sb1250_set_affinity(unsigned int irq, cpumask_t mask)
163} 163}
164#endif 164#endif
165 165
166
167/* Defined in arch/mips/sibyte/sb1250/irq_handler.S */
168extern void sb1250_irq_handler(void);
169
170/*****************************************************************************/ 166/*****************************************************************************/
171 167
172static unsigned int startup_sb1250_irq(unsigned int irq) 168static unsigned int startup_sb1250_irq(unsigned int irq)
@@ -379,7 +375,6 @@ void __init arch_init_irq(void)
379#endif 375#endif
380 /* Enable necessary IPs, disable the rest */ 376 /* Enable necessary IPs, disable the rest */
381 change_c0_status(ST0_IM, imask); 377 change_c0_status(ST0_IM, imask);
382 set_except_vector(0, sb1250_irq_handler);
383 378
384#ifdef CONFIG_KGDB 379#ifdef CONFIG_KGDB
385 if (kgdb_flag) { 380 if (kgdb_flag) {
@@ -409,7 +404,7 @@ void __init arch_init_irq(void)
409#define duart_out(reg, val) csr_out32(val, IOADDR(A_DUART_CHANREG(kgdb_port,reg))) 404#define duart_out(reg, val) csr_out32(val, IOADDR(A_DUART_CHANREG(kgdb_port,reg)))
410#define duart_in(reg) csr_in32(IOADDR(A_DUART_CHANREG(kgdb_port,reg))) 405#define duart_in(reg) csr_in32(IOADDR(A_DUART_CHANREG(kgdb_port,reg)))
411 406
412void sb1250_kgdb_interrupt(struct pt_regs *regs) 407static void sb1250_kgdb_interrupt(struct pt_regs *regs)
413{ 408{
414 /* 409 /*
415 * Clear break-change status (allow some time for the remote 410 * Clear break-change status (allow some time for the remote
@@ -424,3 +419,74 @@ void sb1250_kgdb_interrupt(struct pt_regs *regs)
424} 419}
425 420
426#endif /* CONFIG_KGDB */ 421#endif /* CONFIG_KGDB */
422
423static inline int dclz(unsigned long long x)
424{
425 int lz;
426
427 __asm__ (
428 " .set push \n"
429 " .set mips64 \n"
430 " dclz %0, %1 \n"
431 " .set pop \n"
432 : "=r" (lz)
433 : "r" (x));
434
435 return lz;
436}
437
438asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
439{
440 unsigned int pending;
441
442#ifdef CONFIG_SIBYTE_SB1250_PROF
443 /* Set compare to count to silence count/compare timer interrupts */
444 write_c0_count(read_c0_count());
445#endif
446
447 /*
448 * What a pain. We have to be really careful saving the upper 32 bits
449 * of any * register across function calls if we don't want them
450 * trashed--since were running in -o32, the calling routing never saves
451 * the full 64 bits of a register across a function call. Being the
452 * interrupt handler, we're guaranteed that interrupts are disabled
453 * during this code so we don't have to worry about random interrupts
454 * blasting the high 32 bits.
455 */
456
457 pending = read_c0_cause();
458
459#ifdef CONFIG_SIBYTE_SB1250_PROF
460 if (pending & CAUSEF_IP7) { /* Cpu performance counter interrupt */
461 sbprof_cpu_intr(exception_epc(regs));
462 }
463#endif
464
465 if (pending & CAUSEF_IP4)
466 sb1250_timer_interrupt(regs);
467
468#ifdef CONFIG_SMP
469 if (pending & CAUSEF_IP3)
470 sb1250_mailbox_interrupt(regs);
471#endif
472
473#ifdef CONFIG_KGDB
474 if (pending & CAUSEF_IP6) /* KGDB (uart 1) */
475 sb1250_kgdb_interrupt(regs);
476#endif
477
478 if (pending & CAUSEF_IP2) {
479 unsigned long long mask;
480
481 /*
482 * Default...we've hit an IP[2] interrupt, which means we've
483 * got to check the 1250 interrupt registers to figure out what
484 * to do. Need to detect which CPU we're on, now that
485 ~ smp_affinity is supported.
486 */
487 mask = __raw_readq(IOADDR(A_IMR_REGISTER(smp_processor_id(),
488 R_IMR_INTERRUPT_STATUS_BASE)));
489 if (mask)
490 do_IRQ(63 - dclz(mask), regs);
491 }
492}
diff --git a/arch/mips/sibyte/sb1250/irq_handler.S b/arch/mips/sibyte/sb1250/irq_handler.S
deleted file mode 100644
index 60edc8fb302b..000000000000
--- a/arch/mips/sibyte/sb1250/irq_handler.S
+++ /dev/null
@@ -1,147 +0,0 @@
1/*
2 * Copyright (C) 2000, 2001, 2002, 2003 Broadcom Corporation
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 */
18
19/*
20 * sb1250_handle_int() is the routine that is actually called when an interrupt
21 * occurs. It is installed as the exception vector handler in arch_init_irq()
22 * in arch/mips/sibyte/sb1250/irq.c
23 *
24 * In the handle we figure out which interrupts need handling, and use that to
25 * call the dispatcher, which will take care of actually calling registered
26 * handlers
27 *
28 * Note that we take care of all raised interrupts in one go at the handler.
29 * This is more BSDish than the Indy code, and also, IMHO, more sane.
30 */
31#include <linux/config.h>
32
33#include <asm/addrspace.h>
34#include <asm/asm.h>
35#include <asm/mipsregs.h>
36#include <asm/regdef.h>
37#include <asm/stackframe.h>
38#include <asm/sibyte/sb1250_defs.h>
39#include <asm/sibyte/sb1250_regs.h>
40#include <asm/sibyte/sb1250_int.h>
41
42/*
43 * What a pain. We have to be really careful saving the upper 32 bits of any
44 * register across function calls if we don't want them trashed--since were
45 * running in -o32, the calling routing never saves the full 64 bits of a
46 * register across a function call. Being the interrupt handler, we're
47 * guaranteed that interrupts are disabled during this code so we don't have
48 * to worry about random interrupts blasting the high 32 bits.
49 */
50
51 .text
52 .set push
53 .set noreorder
54 .set noat
55 .set mips64
56 .align 5
57 NESTED(sb1250_irq_handler, PT_SIZE, sp)
58 SAVE_ALL
59 CLI
60
61#ifdef CONFIG_SIBYTE_SB1250_PROF
62 /* Set compare to count to silence count/compare timer interrupts */
63 mfc0 t1, CP0_COUNT
64 mtc0 t1, CP0_COMPARE /* pause to clear IP[7] bit of cause ? */
65#endif
66 /* Read cause */
67 mfc0 s0, CP0_CAUSE
68
69#ifdef CONFIG_SIBYTE_SB1250_PROF
70 /* Cpu performance counter interrupt is routed to IP[7] */
71 andi t1, s0, CAUSEF_IP7
72 beqz t1, 0f
73 srl t1, s0, (CAUSEB_BD-2) /* Shift BD bit to bit 2 */
74 and t1, t1, 0x4 /* mask to get just BD bit */
75 mfc0 a0, CP0_EPC
76 jal sbprof_cpu_intr
77 addu a0, a0, t1 /* a0 = EPC + (BD ? 4 : 0) */
78 j ret_from_irq
79 nop
800:
81#endif
82
83 /* Timer interrupt is routed to IP[4] */
84 andi t1, s0, CAUSEF_IP4
85 beqz t1, 1f
86 nop
87 jal sb1250_timer_interrupt
88 move a0, sp /* Pass the registers along */
89 j ret_from_irq
90 nop # delay slot
911:
92
93#ifdef CONFIG_SMP
94 /* Mailbox interrupt is routed to IP[3] */
95 andi t1, s0, CAUSEF_IP3
96 beqz t1, 2f
97 nop
98 jal sb1250_mailbox_interrupt
99 move a0, sp
100 j ret_from_irq
101 nop # delay slot
1022:
103#endif
104
105#ifdef CONFIG_KGDB
106 /* KGDB (uart 1) interrupt is routed to IP[6] */
107 andi t1, s0, CAUSEF_IP6
108 beqz t1, 1f
109 nop # delay slot
110 jal sb1250_kgdb_interrupt
111 move a0, sp
112 j ret_from_irq
113 nop # delay slot
1141:
115#endif
116
117 and t1, s0, CAUSEF_IP2
118 beqz t1, 4f
119 nop
120
121 /*
122 * Default...we've hit an IP[2] interrupt, which means we've got to
123 * check the 1250 interrupt registers to figure out what to do
124 * Need to detect which CPU we're on, now that smp_affinity is supported.
125 */
126 PTR_LA v0, CKSEG1 + A_IMR_CPU0_BASE
127#ifdef CONFIG_SMP
128 lw t1, TI_CPU($28)
129 sll t1, IMR_REGISTER_SPACING_SHIFT
130 addu v0, t1
131#endif
132 ld s0, R_IMR_INTERRUPT_STATUS_BASE(v0) /* read IP[2] status */
133
134 beqz s0, 4f /* No interrupts. Return */
135 move a1, sp
136
1373: dclz s1, s0 /* Find the next interrupt */
138 dsubu a0, zero, s1
139 daddiu a0, a0, 63
140 jal do_IRQ
141 nop
142
1434: j ret_from_irq
144 nop
145
146 .set pop
147 END(sb1250_irq_handler)
diff --git a/arch/mips/sni/Makefile b/arch/mips/sni/Makefile
index 1e5676e4be86..9c7eaa5fb210 100644
--- a/arch/mips/sni/Makefile
+++ b/arch/mips/sni/Makefile
@@ -2,6 +2,6 @@
2# Makefile for the SNI specific part of the kernel 2# Makefile for the SNI specific part of the kernel
3# 3#
4 4
5obj-y += int-handler.o irq.o pcimt_scache.o reset.o setup.o 5obj-y += irq.o pcimt_scache.o reset.o setup.o
6 6
7EXTRA_AFLAGS := $(CFLAGS) 7EXTRA_AFLAGS := $(CFLAGS)
diff --git a/arch/mips/sni/int-handler.S b/arch/mips/sni/int-handler.S
deleted file mode 100644
index 2cdc09f55f18..000000000000
--- a/arch/mips/sni/int-handler.S
+++ /dev/null
@@ -1,106 +0,0 @@
1/*
2 * SNI RM200 PCI specific interrupt handler code.
3 *
4 * Copyright (C) 1994, 95, 96, 97, 98, 1999, 2000, 01 by Ralf Baechle
5 */
6#include <asm/asm.h>
7#include <asm/mipsregs.h>
8#include <asm/regdef.h>
9#include <asm/sni.h>
10#include <asm/stackframe.h>
11
12/*
13 * The PCI ASIC has the nasty property that it may delay writes if it is busy.
14 * As a consequence from writes that have not graduated when we exit from the
15 * interrupt handler we might catch a spurious interrupt. To avoid this we
16 * force the PCI ASIC to graduate all writes by executing a read from the
17 * PCI bus.
18 */
19 .set noreorder
20 .set noat
21 .align 5
22 NESTED(sni_rm200_pci_handle_int, PT_SIZE, sp)
23 SAVE_ALL
24 CLI
25 .set at
26
27 /* Blinken light ... */
28 lb t0, led_cache
29 addiu t0, 1
30 sb t0, led_cache
31 sb t0, PCIMT_CSLED # write only register
32 .data
33led_cache: .byte 0
34 .text
35
36 mfc0 t0, CP0_STATUS
37 mfc0 t1, CP0_CAUSE
38 and t0, t1
39
40 andi t1, t0, 0x0800 # hardware interrupt 1
41 bnez t1, _hwint1
42 andi t1, t0, 0x4000 # hardware interrupt 4
43 bnez t1, _hwint4
44 andi t1, t0, 0x2000 # hardware interrupt 3
45 bnez t1, _hwint3
46 andi t1, t0, 0x1000 # hardware interrupt 2
47 bnez t1, _hwint2
48 andi t1, t0, 0x8000 # hardware interrupt 5
49 bnez t1, _hwint5
50 andi t1, t0, 0x0400 # hardware interrupt 0
51 bnez t1, _hwint0
52 nop
53
54 j restore_all # spurious interrupt
55 nop
56
57 ##############################################################################
58
59/* hwint0 should deal with MP agent, ASIC PCI, EISA NMI and debug
60 button interrupts. */
61_hwint0: jal pciasic_hwint0
62 move a0, sp
63 j ret_from_irq
64 nop
65
66/*
67 * hwint 1 deals with EISA and SCSI interrupts
68 */
69_hwint1: jal pciasic_hwint1
70 move a0, sp
71 j ret_from_irq
72 nop
73
74
75/*
76 * This interrupt was used for the com1 console on the first prototypes;
77 * it's unsed otherwise
78 */
79_hwint2: jal pciasic_hwint2
80 move a0, sp
81 j ret_from_irq
82 nop
83
84/*
85 * hwint 3 are the PCI interrupts A - D
86 */
87_hwint3: jal pciasic_hwint3
88 move a0, sp
89 j ret_from_irq
90 nop
91
92/*
93 * hwint 4 is used for only the onboard PCnet 32.
94 */
95_hwint4: jal pciasic_hwint4
96 move a0, sp
97 j ret_from_irq
98 nop
99
100/* hwint5 is the r4k count / compare interrupt */
101_hwint5: jal pciasic_hwint5
102 move a0, sp
103 j ret_from_irq
104 nop
105
106 END(sni_rm200_pci_handle_int)
diff --git a/arch/mips/sni/irq.c b/arch/mips/sni/irq.c
index 952038aa4b90..7365b4853ddb 100644
--- a/arch/mips/sni/irq.c
+++ b/arch/mips/sni/irq.c
@@ -19,8 +19,6 @@
19 19
20DEFINE_SPINLOCK(pciasic_lock); 20DEFINE_SPINLOCK(pciasic_lock);
21 21
22extern asmlinkage void sni_rm200_pci_handle_int(void);
23
24static void enable_pciasic_irq(unsigned int irq) 22static void enable_pciasic_irq(unsigned int irq)
25{ 23{
26 unsigned int mask = 1 << (irq - PCIMT_IRQ_INT2); 24 unsigned int mask = 1 << (irq - PCIMT_IRQ_INT2);
@@ -71,20 +69,20 @@ static struct hw_interrupt_type pciasic_irq_type = {
71 * hwint0 should deal with MP agent, ASIC PCI, EISA NMI and debug 69 * hwint0 should deal with MP agent, ASIC PCI, EISA NMI and debug
72 * button interrupts. Later ... 70 * button interrupts. Later ...
73 */ 71 */
74void pciasic_hwint0(struct pt_regs *regs) 72static void pciasic_hwint0(struct pt_regs *regs)
75{ 73{
76 panic("Received int0 but no handler yet ..."); 74 panic("Received int0 but no handler yet ...");
77} 75}
78 76
79/* This interrupt was used for the com1 console on the first prototypes. */ 77/* This interrupt was used for the com1 console on the first prototypes. */
80void pciasic_hwint2(struct pt_regs *regs) 78static void pciasic_hwint2(struct pt_regs *regs)
81{ 79{
82 /* I think this shouldn't happen on production machines. */ 80 /* I think this shouldn't happen on production machines. */
83 panic("hwint2 and no handler yet"); 81 panic("hwint2 and no handler yet");
84} 82}
85 83
86/* hwint5 is the r4k count / compare interrupt */ 84/* hwint5 is the r4k count / compare interrupt */
87void pciasic_hwint5(struct pt_regs *regs) 85static void pciasic_hwint5(struct pt_regs *regs)
88{ 86{
89 panic("hwint5 and no handler yet"); 87 panic("hwint5 and no handler yet");
90} 88}
@@ -105,7 +103,7 @@ static unsigned int ls1bit8(unsigned int x)
105 * 103 *
106 * The EISA_INT bit in CSITPEND is high active, all others are low active. 104 * The EISA_INT bit in CSITPEND is high active, all others are low active.
107 */ 105 */
108void pciasic_hwint1(struct pt_regs *regs) 106static void pciasic_hwint1(struct pt_regs *regs)
109{ 107{
110 u8 pend = *(volatile char *)PCIMT_CSITPEND; 108 u8 pend = *(volatile char *)PCIMT_CSITPEND;
111 unsigned long flags; 109 unsigned long flags;
@@ -135,7 +133,7 @@ void pciasic_hwint1(struct pt_regs *regs)
135/* 133/*
136 * hwint 3 should deal with the PCI A - D interrupts, 134 * hwint 3 should deal with the PCI A - D interrupts,
137 */ 135 */
138void pciasic_hwint3(struct pt_regs *regs) 136static void pciasic_hwint3(struct pt_regs *regs)
139{ 137{
140 u8 pend = *(volatile char *)PCIMT_CSITPEND; 138 u8 pend = *(volatile char *)PCIMT_CSITPEND;
141 int irq; 139 int irq;
@@ -150,13 +148,34 @@ void pciasic_hwint3(struct pt_regs *regs)
150/* 148/*
151 * hwint 4 is used for only the onboard PCnet 32. 149 * hwint 4 is used for only the onboard PCnet 32.
152 */ 150 */
153void pciasic_hwint4(struct pt_regs *regs) 151static void pciasic_hwint4(struct pt_regs *regs)
154{ 152{
155 clear_c0_status(IE_IRQ4); 153 clear_c0_status(IE_IRQ4);
156 do_IRQ(PCIMT_IRQ_ETHERNET, regs); 154 do_IRQ(PCIMT_IRQ_ETHERNET, regs);
157 set_c0_status(IE_IRQ4); 155 set_c0_status(IE_IRQ4);
158} 156}
159 157
158asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
159{
160 unsigned int pending = read_c0_status() & read_c0_cause();
161 static unsigned char led_cache;
162
163 *(volatile unsigned char *) PCIMT_CSLED = ++led_cache;
164
165 if (pending & 0x0800)
166 pciasic_hwint1(regs);
167 else if (pending & 0x4000)
168 pciasic_hwint4(regs);
169 else if (pending & 0x2000)
170 pciasic_hwint3(regs);
171 else if (pending & 0x1000)
172 pciasic_hwint2(regs);
173 else if (pending & 0x8000)
174 pciasic_hwint5(regs);
175 else if (pending & 0x0400)
176 pciasic_hwint0(regs);
177}
178
160void __init init_pciasic(void) 179void __init init_pciasic(void)
161{ 180{
162 unsigned long flags; 181 unsigned long flags;
@@ -176,8 +195,6 @@ void __init arch_init_irq(void)
176{ 195{
177 int i; 196 int i;
178 197
179 set_except_vector(0, sni_rm200_pci_handle_int);
180
181 init_i8259_irqs(); /* Integrated i8259 */ 198 init_i8259_irqs(); /* Integrated i8259 */
182 init_pciasic(); 199 init_pciasic();
183 200
diff --git a/arch/mips/tx4927/common/Makefile b/arch/mips/tx4927/common/Makefile
index 8fa126b296e1..9cb9535ebacb 100644
--- a/arch/mips/tx4927/common/Makefile
+++ b/arch/mips/tx4927/common/Makefile
@@ -6,7 +6,7 @@
6# unless it's something special (ie not a .c file). 6# unless it's something special (ie not a .c file).
7# 7#
8 8
9obj-y += tx4927_prom.o tx4927_setup.o tx4927_irq.o tx4927_irq_handler.o 9obj-y += tx4927_prom.o tx4927_setup.o tx4927_irq.o
10 10
11obj-$(CONFIG_TOSHIBA_FPCIB0) += smsc_fdc37m81x.o 11obj-$(CONFIG_TOSHIBA_FPCIB0) += smsc_fdc37m81x.o
12obj-$(CONFIG_KGDB) += tx4927_dbgio.o 12obj-$(CONFIG_KGDB) += tx4927_dbgio.o
diff --git a/arch/mips/tx4927/common/tx4927_irq.c b/arch/mips/tx4927/common/tx4927_irq.c
index 5ab2e2b76018..8ca68015cf40 100644
--- a/arch/mips/tx4927/common/tx4927_irq.c
+++ b/arch/mips/tx4927/common/tx4927_irq.c
@@ -525,8 +525,6 @@ static void tx4927_irq_pic_end(unsigned int irq)
525 */ 525 */
526void __init tx4927_irq_init(void) 526void __init tx4927_irq_init(void)
527{ 527{
528 extern asmlinkage void tx4927_irq_handler(void);
529
530 TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "-\n"); 528 TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "-\n");
531 529
532 TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "=Calling tx4927_irq_cp0_init()\n"); 530 TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "=Calling tx4927_irq_cp0_init()\n");
@@ -535,16 +533,12 @@ void __init tx4927_irq_init(void)
535 TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "=Calling tx4927_irq_pic_init()\n"); 533 TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "=Calling tx4927_irq_pic_init()\n");
536 tx4927_irq_pic_init(); 534 tx4927_irq_pic_init();
537 535
538 TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT,
539 "=Calling set_except_vector(tx4927_irq_handler)\n");
540 set_except_vector(0, tx4927_irq_handler);
541
542 TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "+\n"); 536 TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "+\n");
543 537
544 return; 538 return;
545} 539}
546 540
547int tx4927_irq_nested(void) 541static int tx4927_irq_nested(void)
548{ 542{
549 int sw_irq = 0; 543 int sw_irq = 0;
550 u32 level2; 544 u32 level2;
@@ -582,3 +576,25 @@ int tx4927_irq_nested(void)
582 576
583 return (sw_irq); 577 return (sw_irq);
584} 578}
579
580asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
581{
582 unsigned int pending = read_c0_status() & read_c0_cause();
583
584 if (pending & STATUSF_IP7) /* cpu timer */
585 do_IRQ(TX4927_IRQ_CPU_TIMER, regs);
586 else if (pending & STATUSF_IP2) { /* tx4927 pic */
587 unsigned int irq = tx4927_irq_nested();
588
589 if (unlikely(irq == 0)) {
590 spurious_interrupt(regs);
591 return;
592 }
593 do_IRQ(irq, regs);
594 } else if (pending & STATUSF_IP0) /* user line 0 */
595 do_IRQ(TX4927_IRQ_USER0, regs);
596 else if (pending & STATUSF_IP1) /* user line 1 */
597 do_IRQ(TX4927_IRQ_USER1, regs);
598 else
599 spurious_interrupt(regs);
600}
diff --git a/arch/mips/tx4927/common/tx4927_irq_handler.S b/arch/mips/tx4927/common/tx4927_irq_handler.S
deleted file mode 100644
index dd3ceda9d712..000000000000
--- a/arch/mips/tx4927/common/tx4927_irq_handler.S
+++ /dev/null
@@ -1,103 +0,0 @@
1/*
2 * linux/arch/mips/tx4927/common/tx4927_irq_handler.S
3 *
4 * Primary interrupt handler for tx4927 based systems
5 *
6 * Author: MontaVista Software, Inc.
7 * Author: jsun@mvista.com or jsun@junsun.net
8 * source@mvista.com
9 *
10 * Copyright 2001-2002 MontaVista Software Inc.
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 2 of the License, or (at your
15 * option) any later version.
16 *
17 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
23 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
25 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
26 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * You should have received a copy of the GNU General Public License along
29 * with this program; if not, write to the Free Software Foundation, Inc.,
30 * 675 Mass Ave, Cambridge, MA 02139, USA.
31 */
32#include <asm/asm.h>
33#include <asm/mipsregs.h>
34#include <asm/addrspace.h>
35#include <asm/regdef.h>
36#include <asm/stackframe.h>
37#include <asm/tx4927/tx4927.h>
38
39 .align 5
40 NESTED(tx4927_irq_handler, PT_SIZE, sp)
41 SAVE_ALL
42 CLI
43 .set at
44
45 mfc0 t0, CP0_CAUSE
46 mfc0 t1, CP0_STATUS
47 and t0, t1
48
49 andi t1, t0, STATUSF_IP7 /* cpu timer */
50 bnez t1, ll_ip7
51
52 /* IP6..IP3 multiplexed -- do not use */
53
54 andi t1, t0, STATUSF_IP2 /* tx4927 pic */
55 bnez t1, ll_ip2
56
57 andi t1, t0, STATUSF_IP0 /* user line 0 */
58 bnez t1, ll_ip0
59
60 andi t1, t0, STATUSF_IP1 /* user line 1 */
61 bnez t1, ll_ip1
62
63 .set reorder
64
65 /* wrong alarm or masked ... */
66 j spurious_interrupt
67 nop
68 END(tx4927_irq_handler)
69
70 .align 5
71
72
73ll_ip7:
74 li a0, TX4927_IRQ_CPU_TIMER
75 move a1, sp
76 jal do_IRQ
77 j ret_from_irq
78
79ll_ip2:
80 jal tx4927_irq_nested
81 nop
82 beqz v0, goto_spurious_interrupt
83 nop
84 move a0, v0
85 move a1, sp
86 jal do_IRQ
87 j ret_from_irq
88
89goto_spurious_interrupt:
90 j spurious_interrupt
91 nop
92
93ll_ip1:
94 li a0, TX4927_IRQ_USER1
95 move a1, sp
96 jal do_IRQ
97 j ret_from_irq
98
99ll_ip0:
100 li a0, TX4927_IRQ_USER0
101 move a1, sp
102 jal do_IRQ
103 j ret_from_irq
diff --git a/arch/mips/tx4938/common/Makefile b/arch/mips/tx4938/common/Makefile
index 74c95c5bcdbf..2033ae77f632 100644
--- a/arch/mips/tx4938/common/Makefile
+++ b/arch/mips/tx4938/common/Makefile
@@ -6,6 +6,6 @@
6# unless it's something special (ie not a .c file). 6# unless it's something special (ie not a .c file).
7# 7#
8 8
9obj-y += prom.o setup.o irq.o irq_handler.o rtc_rx5c348.o 9obj-y += prom.o setup.o irq.o rtc_rx5c348.o
10obj-$(CONFIG_KGDB) += dbgio.o 10obj-$(CONFIG_KGDB) += dbgio.o
11 11
diff --git a/arch/mips/tx4938/common/irq.c b/arch/mips/tx4938/common/irq.c
index 4f90d7faf634..873805178d8e 100644
--- a/arch/mips/tx4938/common/irq.c
+++ b/arch/mips/tx4938/common/irq.c
@@ -392,11 +392,8 @@ tx4938_irq_pic_end(unsigned int irq)
392void __init 392void __init
393tx4938_irq_init(void) 393tx4938_irq_init(void)
394{ 394{
395 extern asmlinkage void tx4938_irq_handler(void);
396
397 tx4938_irq_cp0_init(); 395 tx4938_irq_cp0_init();
398 tx4938_irq_pic_init(); 396 tx4938_irq_pic_init();
399 set_except_vector(0, tx4938_irq_handler);
400 397
401 return; 398 return;
402} 399}
@@ -422,3 +419,21 @@ tx4938_irq_nested(void)
422 wbflush(); 419 wbflush();
423 return (sw_irq); 420 return (sw_irq);
424} 421}
422
423asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
424{
425 unsigned int pending = read_c0_cause() & read_c0_status();
426
427 if (pending & STATUSF_IP7)
428 do_IRQ(TX4938_IRQ_CPU_TIMER, regs);
429 else if (pending & STATUSF_IP2) {
430 int irq = tx4938_irq_nested();
431 if (irq)
432 do_IRQ(irq, regs);
433 else
434 spurious_interrupt(regs);
435 } else if (pending & STATUSF_IP1)
436 do_IRQ(TX4938_IRQ_USER1, regs);
437 else if (pending & STATUSF_IP0)
438 do_IRQ(TX4938_IRQ_USER0, regs);
439}
diff --git a/arch/mips/tx4938/common/irq_handler.S b/arch/mips/tx4938/common/irq_handler.S
deleted file mode 100644
index 1b2f72bac42d..000000000000
--- a/arch/mips/tx4938/common/irq_handler.S
+++ /dev/null
@@ -1,84 +0,0 @@
1/*
2 * linux/arch/mips/tx4938/common/handler.S
3 *
4 * Primary interrupt handler for tx4938 based systems
5 * Copyright (C) 2000-2001 Toshiba Corporation
6 *
7 * 2003-2005 (c) MontaVista Software, Inc. This file is licensed under the
8 * terms of the GNU General Public License version 2. This program is
9 * licensed "as is" without any warranty of any kind, whether express
10 * or implied.
11 *
12 * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com)
13 */
14#include <asm/asm.h>
15#include <asm/mipsregs.h>
16#include <asm/addrspace.h>
17#include <asm/regdef.h>
18#include <asm/stackframe.h>
19#include <asm/tx4938/rbtx4938.h>
20
21
22 .align 5
23 NESTED(tx4938_irq_handler, PT_SIZE, sp)
24 SAVE_ALL
25 CLI
26 .set at
27
28 mfc0 t0, CP0_CAUSE
29 mfc0 t1, CP0_STATUS
30 and t0, t1
31
32 andi t1, t0, STATUSF_IP7 /* cpu timer */
33 bnez t1, ll_ip7
34
35 /* IP6..IP3 multiplexed -- do not use */
36
37 andi t1, t0, STATUSF_IP2 /* tx4938 pic */
38 bnez t1, ll_ip2
39
40 andi t1, t0, STATUSF_IP1 /* user line 1 */
41 bnez t1, ll_ip1
42
43 andi t1, t0, STATUSF_IP0 /* user line 0 */
44 bnez t1, ll_ip0
45
46 .set reorder
47
48 nop
49 END(tx4938_irq_handler)
50
51 .align 5
52
53
54ll_ip7:
55 li a0, TX4938_IRQ_CPU_TIMER
56 move a1, sp
57 jal do_IRQ
58 j ret_from_irq
59
60
61ll_ip2:
62 jal tx4938_irq_nested
63 nop
64 beqz v0, goto_spurious_interrupt
65 nop
66 move a0, v0
67 move a1, sp
68 jal do_IRQ
69 j ret_from_irq
70
71goto_spurious_interrupt:
72 j ret_from_irq
73
74ll_ip1:
75 li a0, TX4938_IRQ_USER1
76 move a1, sp
77 jal do_IRQ
78 j ret_from_irq
79
80ll_ip0:
81 li a0, TX4938_IRQ_USER0
82 move a1, sp
83 jal do_IRQ
84 j ret_from_irq
diff --git a/arch/mips/vr41xx/Kconfig b/arch/mips/vr41xx/Kconfig
index a7add16c9aa4..055a2cdfc841 100644
--- a/arch/mips/vr41xx/Kconfig
+++ b/arch/mips/vr41xx/Kconfig
@@ -4,6 +4,8 @@ config CASIO_E55
4 select DMA_NONCOHERENT 4 select DMA_NONCOHERENT
5 select IRQ_CPU 5 select IRQ_CPU
6 select ISA 6 select ISA
7 select SYS_HAS_CPU_VR41XX
8 select SYS_SUPPORTS_32BIT_KERNEL
7 select SYS_SUPPORTS_LITTLE_ENDIAN 9 select SYS_SUPPORTS_LITTLE_ENDIAN
8 10
9config IBM_WORKPAD 11config IBM_WORKPAD
@@ -12,6 +14,8 @@ config IBM_WORKPAD
12 select DMA_NONCOHERENT 14 select DMA_NONCOHERENT
13 select IRQ_CPU 15 select IRQ_CPU
14 select ISA 16 select ISA
17 select SYS_HAS_CPU_VR41XX
18 select SYS_SUPPORTS_32BIT_KERNEL
15 select SYS_SUPPORTS_LITTLE_ENDIAN 19 select SYS_SUPPORTS_LITTLE_ENDIAN
16 20
17config NEC_CMBVR4133 21config NEC_CMBVR4133
@@ -21,6 +25,9 @@ config NEC_CMBVR4133
21 select DMA_NONCOHERENT 25 select DMA_NONCOHERENT
22 select IRQ_CPU 26 select IRQ_CPU
23 select HW_HAS_PCI 27 select HW_HAS_PCI
28 select SYS_HAS_CPU_VR41XX
29 select SYS_SUPPORTS_32BIT_KERNEL
30 select SYS_SUPPORTS_LITTLE_ENDIAN
24 31
25config ROCKHOPPER 32config ROCKHOPPER
26 bool "Support for Rockhopper baseboard" 33 bool "Support for Rockhopper baseboard"
@@ -34,6 +41,8 @@ config TANBAC_TB022X
34 select DMA_NONCOHERENT 41 select DMA_NONCOHERENT
35 select HW_HAS_PCI 42 select HW_HAS_PCI
36 select IRQ_CPU 43 select IRQ_CPU
44 select SYS_HAS_CPU_VR41XX
45 select SYS_SUPPORTS_32BIT_KERNEL
37 select SYS_SUPPORTS_LITTLE_ENDIAN 46 select SYS_SUPPORTS_LITTLE_ENDIAN
38 help 47 help
39 The TANBAC VR4131 multichip module(TB0225) and 48 The TANBAC VR4131 multichip module(TB0225) and
@@ -65,6 +74,8 @@ config VICTOR_MPC30X
65 select DMA_NONCOHERENT 74 select DMA_NONCOHERENT
66 select HW_HAS_PCI 75 select HW_HAS_PCI
67 select IRQ_CPU 76 select IRQ_CPU
77 select SYS_HAS_CPU_VR41XX
78 select SYS_SUPPORTS_32BIT_KERNEL
68 select SYS_SUPPORTS_LITTLE_ENDIAN 79 select SYS_SUPPORTS_LITTLE_ENDIAN
69 80
70config ZAO_CAPCELLA 81config ZAO_CAPCELLA
@@ -73,6 +84,8 @@ config ZAO_CAPCELLA
73 select DMA_NONCOHERENT 84 select DMA_NONCOHERENT
74 select HW_HAS_PCI 85 select HW_HAS_PCI
75 select IRQ_CPU 86 select IRQ_CPU
87 select SYS_HAS_CPU_VR41XX
88 select SYS_SUPPORTS_32BIT_KERNEL
76 select SYS_SUPPORTS_LITTLE_ENDIAN 89 select SYS_SUPPORTS_LITTLE_ENDIAN
77 90
78config PCI_VR41XX 91config PCI_VR41XX
diff --git a/arch/mips/vr41xx/common/Makefile b/arch/mips/vr41xx/common/Makefile
index 9096302a7ecc..aa373974c80f 100644
--- a/arch/mips/vr41xx/common/Makefile
+++ b/arch/mips/vr41xx/common/Makefile
@@ -2,7 +2,7 @@
2# Makefile for common code of the NEC VR4100 series. 2# Makefile for common code of the NEC VR4100 series.
3# 3#
4 4
5obj-y += bcu.o cmu.o icu.o init.o int-handler.o irq.o pmu.o type.o 5obj-y += bcu.o cmu.o icu.o init.o irq.o pmu.o type.o
6obj-$(CONFIG_VRC4173) += vrc4173.o 6obj-$(CONFIG_VRC4173) += vrc4173.o
7 7
8EXTRA_AFLAGS := $(CFLAGS) 8EXTRA_AFLAGS := $(CFLAGS)
diff --git a/arch/mips/vr41xx/common/int-handler.S b/arch/mips/vr41xx/common/int-handler.S
deleted file mode 100644
index 2b6043f16d09..000000000000
--- a/arch/mips/vr41xx/common/int-handler.S
+++ /dev/null
@@ -1,114 +0,0 @@
1/*
2 * FILE NAME
3 * arch/mips/vr41xx/common/int-handler.S
4 *
5 * BRIEF MODULE DESCRIPTION
6 * Interrupt dispatcher for the NEC VR4100 series.
7 *
8 * Author: Yoichi Yuasa
9 * yyuasa@mvista.com or source@mvista.com
10 *
11 * Copyright 2001 MontaVista Software Inc.
12 *
13 * This program is free software; you can redistribute it and/or modify it
14 * under the terms of the GNU General Public License as published by the
15 * Free Software Foundation; either version 2 of the License, or (at your
16 * option) any later version.
17 *
18 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
19 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
23 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
24 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
26 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
27 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 *
29 * You should have received a copy of the GNU General Public License along
30 * with this program; if not, write to the Free Software Foundation, Inc.,
31 * 675 Mass Ave, Cambridge, MA 02139, USA.
32 */
33/*
34 * Changes:
35 * MontaVista Software Inc. <yyuasa@mvista.com> or <source@mvista.com>
36 * - New creation, NEC VR4100 series are supported.
37 *
38 * Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
39 * - Coped with INTASSIGN of NEC VR4133.
40 */
41#include <asm/asm.h>
42#include <asm/regdef.h>
43#include <asm/mipsregs.h>
44#include <asm/stackframe.h>
45
46 .text
47 .set noreorder
48
49 .align 5
50 NESTED(vr41xx_handle_interrupt, PT_SIZE, ra)
51 .set noat
52 SAVE_ALL
53 CLI
54 .set at
55 .set noreorder
56
57 /*
58 * Get the pending interrupts
59 */
60 mfc0 t0, CP0_CAUSE
61 mfc0 t1, CP0_STATUS
62 andi t0, 0xff00
63 and t0, t0, t1
64
65 andi t1, t0, CAUSEF_IP7 # MIPS timer interrupt
66 bnez t1, handle_irq
67 li a0, 7
68
69 andi t1, t0, 0x7800 # check for Int1-4
70 beqz t1, 1f
71
72 andi t1, t0, CAUSEF_IP3 # check for Int1
73 bnez t1, handle_int
74 li a0, 3
75
76 andi t1, t0, CAUSEF_IP4 # check for Int2
77 bnez t1, handle_int
78 li a0, 4
79
80 andi t1, t0, CAUSEF_IP5 # check for Int3
81 bnez t1, handle_int
82 li a0, 5
83
84 andi t1, t0, CAUSEF_IP6 # check for Int4
85 bnez t1, handle_int
86 li a0, 6
87
881:
89 andi t1, t0, CAUSEF_IP2 # check for Int0
90 bnez t1, handle_int
91 li a0, 2
92
93 andi t1, t0, CAUSEF_IP0 # check for IP0
94 bnez t1, handle_irq
95 li a0, 0
96
97 andi t1, t0, CAUSEF_IP1 # check for IP1
98 bnez t1, handle_irq
99 li a0, 1
100
101 j spurious_interrupt
102 nop
103
104handle_int:
105 jal irq_dispatch
106 move a1, sp
107 j ret_from_irq
108 nop
109
110handle_irq:
111 jal do_IRQ
112 move a1, sp
113 j ret_from_irq
114 END(vr41xx_handle_interrupt)
diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c
index 61aa264275ff..86796bb63c3c 100644
--- a/arch/mips/vr41xx/common/irq.c
+++ b/arch/mips/vr41xx/common/irq.c
@@ -59,7 +59,7 @@ int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int, struct pt_regs *)
59 59
60EXPORT_SYMBOL_GPL(cascade_irq); 60EXPORT_SYMBOL_GPL(cascade_irq);
61 61
62asmlinkage void irq_dispatch(unsigned int irq, struct pt_regs *regs) 62static void irq_dispatch(unsigned int irq, struct pt_regs *regs)
63{ 63{
64 irq_cascade_t *cascade; 64 irq_cascade_t *cascade;
65 irq_desc_t *desc; 65 irq_desc_t *desc;
@@ -84,11 +84,32 @@ asmlinkage void irq_dispatch(unsigned int irq, struct pt_regs *regs)
84 do_IRQ(irq, regs); 84 do_IRQ(irq, regs);
85} 85}
86 86
87extern asmlinkage void vr41xx_handle_interrupt(void); 87asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
88{
89 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
90
91 if (pending & CAUSEF_IP7)
92 do_IRQ(7, regs);
93 else if (pending & 0x7800) {
94 if (pending & CAUSEF_IP3)
95 irq_dispatch(3, regs);
96 else if (pending & CAUSEF_IP4)
97 irq_dispatch(4, regs);
98 else if (pending & CAUSEF_IP5)
99 irq_dispatch(5, regs);
100 else if (pending & CAUSEF_IP6)
101 irq_dispatch(6, regs);
102 } else if (pending & CAUSEF_IP2)
103 irq_dispatch(2, regs);
104 else if (pending & CAUSEF_IP0)
105 do_IRQ(0, regs);
106 else if (pending & CAUSEF_IP1)
107 do_IRQ(1, regs);
108 else
109 spurious_interrupt(regs);
110}
88 111
89void __init arch_init_irq(void) 112void __init arch_init_irq(void)
90{ 113{
91 mips_cpu_irq_init(MIPS_CPU_IRQ_BASE); 114 mips_cpu_irq_init(MIPS_CPU_IRQ_BASE);
92
93 set_except_vector(0, vr41xx_handle_interrupt);
94} 115}
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 19f911c5dd58..910fb3afc0b5 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -138,6 +138,37 @@ config 64BIT
138 enable this option otherwise. The 64bit kernel is significantly bigger 138 enable this option otherwise. The 64bit kernel is significantly bigger
139 and slower than the 32bit one. 139 and slower than the 32bit one.
140 140
141choice
142 prompt "Kernel page size"
143 default PARISC_PAGE_SIZE_4KB if !64BIT
144 default PARISC_PAGE_SIZE_4KB if 64BIT
145# default PARISC_PAGE_SIZE_16KB if 64BIT
146
147config PARISC_PAGE_SIZE_4KB
148 bool "4KB"
149 help
150 This lets you select the page size of the kernel. For best
151 performance, a page size of 16KB is recommended. For best
152 compatibility with 32bit applications, a page size of 4KB should be
153 selected (the vast majority of 32bit binaries work perfectly fine
154 with a larger page size).
155
156 4KB For best 32bit compatibility
157 16KB For best performance
158 64KB For best performance, might give more overhead.
159
160 If you don't know what to do, choose 4KB.
161
162config PARISC_PAGE_SIZE_16KB
163 bool "16KB (EXPERIMENTAL)"
164 depends on PA8X00 && EXPERIMENTAL
165
166config PARISC_PAGE_SIZE_64KB
167 bool "64KB (EXPERIMENTAL)"
168 depends on PA8X00 && EXPERIMENTAL
169
170endchoice
171
141config SMP 172config SMP
142 bool "Symmetric multi-processing support" 173 bool "Symmetric multi-processing support"
143 ---help--- 174 ---help---
diff --git a/arch/parisc/defconfig b/arch/parisc/defconfig
index 59f7bc38e72e..b38b58eb9dc2 100644
--- a/arch/parisc/defconfig
+++ b/arch/parisc/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.16-pa6 3# Linux kernel version: 2.6.16-pa10
4# Sun Mar 26 19:50:07 2006 4# Sun Apr 2 15:26:38 2006
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -25,7 +25,7 @@ CONFIG_LOCALVERSION=""
25# CONFIG_LOCALVERSION_AUTO is not set 25# CONFIG_LOCALVERSION_AUTO is not set
26CONFIG_SWAP=y 26CONFIG_SWAP=y
27CONFIG_SYSVIPC=y 27CONFIG_SYSVIPC=y
28# CONFIG_POSIX_MQUEUE is not set 28CONFIG_POSIX_MQUEUE=y
29# CONFIG_BSD_PROCESS_ACCT is not set 29# CONFIG_BSD_PROCESS_ACCT is not set
30CONFIG_SYSCTL=y 30CONFIG_SYSCTL=y
31# CONFIG_AUDIT is not set 31# CONFIG_AUDIT is not set
@@ -35,7 +35,7 @@ CONFIG_INITRAMFS_SOURCE=""
35CONFIG_CC_OPTIMIZE_FOR_SIZE=y 35CONFIG_CC_OPTIMIZE_FOR_SIZE=y
36# CONFIG_EMBEDDED is not set 36# CONFIG_EMBEDDED is not set
37CONFIG_KALLSYMS=y 37CONFIG_KALLSYMS=y
38# CONFIG_KALLSYMS_ALL is not set 38CONFIG_KALLSYMS_ALL=y
39# CONFIG_KALLSYMS_EXTRA_PASS is not set 39# CONFIG_KALLSYMS_EXTRA_PASS is not set
40CONFIG_HOTPLUG=y 40CONFIG_HOTPLUG=y
41CONFIG_PRINTK=y 41CONFIG_PRINTK=y
@@ -57,7 +57,13 @@ CONFIG_BASE_SMALL=0
57# 57#
58# Loadable module support 58# Loadable module support
59# 59#
60# CONFIG_MODULES is not set 60CONFIG_MODULES=y
61CONFIG_MODULE_UNLOAD=y
62CONFIG_MODULE_FORCE_UNLOAD=y
63CONFIG_OBSOLETE_MODPARM=y
64# CONFIG_MODVERSIONS is not set
65# CONFIG_MODULE_SRCVERSION_ALL is not set
66CONFIG_KMOD=y
61 67
62# 68#
63# Block layer 69# Block layer
@@ -79,16 +85,19 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
79# 85#
80# Processor type and features 86# Processor type and features
81# 87#
82CONFIG_PA7000=y 88# CONFIG_PA7000 is not set
83# CONFIG_PA7100LC is not set 89CONFIG_PA7100LC=y
84# CONFIG_PA7200 is not set 90# CONFIG_PA7200 is not set
85# CONFIG_PA7300LC is not set 91# CONFIG_PA7300LC is not set
86# CONFIG_PA8X00 is not set 92# CONFIG_PA8X00 is not set
87CONFIG_PA11=y 93CONFIG_PA11=y
94CONFIG_PARISC_PAGE_SIZE_4KB=y
95# CONFIG_PARISC_PAGE_SIZE_16KB is not set
96# CONFIG_PARISC_PAGE_SIZE_64KB is not set
88# CONFIG_SMP is not set 97# CONFIG_SMP is not set
89CONFIG_ARCH_FLATMEM_ENABLE=y 98CONFIG_ARCH_FLATMEM_ENABLE=y
90CONFIG_PREEMPT_NONE=y 99# CONFIG_PREEMPT_NONE is not set
91# CONFIG_PREEMPT_VOLUNTARY is not set 100CONFIG_PREEMPT_VOLUNTARY=y
92# CONFIG_PREEMPT is not set 101# CONFIG_PREEMPT is not set
93# CONFIG_HZ_100 is not set 102# CONFIG_HZ_100 is not set
94CONFIG_HZ_250=y 103CONFIG_HZ_250=y
@@ -108,7 +117,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
108# Bus options (PCI, PCMCIA, EISA, GSC, ISA) 117# Bus options (PCI, PCMCIA, EISA, GSC, ISA)
109# 118#
110CONFIG_GSC=y 119CONFIG_GSC=y
111CONFIG_HPPB=y 120# CONFIG_HPPB is not set
112CONFIG_IOMMU_CCIO=y 121CONFIG_IOMMU_CCIO=y
113CONFIG_GSC_LASI=y 122CONFIG_GSC_LASI=y
114CONFIG_GSC_WAX=y 123CONFIG_GSC_WAX=y
@@ -126,7 +135,25 @@ CONFIG_IOMMU_SBA=y
126# 135#
127# PCCARD (PCMCIA/CardBus) support 136# PCCARD (PCMCIA/CardBus) support
128# 137#
129# CONFIG_PCCARD is not set 138CONFIG_PCCARD=y
139# CONFIG_PCMCIA_DEBUG is not set
140CONFIG_PCMCIA=y
141CONFIG_PCMCIA_LOAD_CIS=y
142CONFIG_PCMCIA_IOCTL=y
143CONFIG_CARDBUS=y
144
145#
146# PC-card bridges
147#
148CONFIG_YENTA=y
149CONFIG_YENTA_O2=y
150CONFIG_YENTA_RICOH=y
151CONFIG_YENTA_TI=y
152CONFIG_YENTA_ENE_TUNE=y
153CONFIG_YENTA_TOSHIBA=y
154CONFIG_PD6729=y
155CONFIG_I82092=y
156CONFIG_PCCARD_NONSTATIC=y
130 157
131# 158#
132# PCI Hotplug Support 159# PCI Hotplug Support
@@ -145,7 +172,7 @@ CONFIG_PDC_STABLE=y
145# Executable file formats 172# Executable file formats
146# 173#
147CONFIG_BINFMT_ELF=y 174CONFIG_BINFMT_ELF=y
148# CONFIG_BINFMT_MISC is not set 175CONFIG_BINFMT_MISC=m
149 176
150# 177#
151# Networking 178# Networking
@@ -159,13 +186,15 @@ CONFIG_NET=y
159CONFIG_PACKET=y 186CONFIG_PACKET=y
160CONFIG_PACKET_MMAP=y 187CONFIG_PACKET_MMAP=y
161CONFIG_UNIX=y 188CONFIG_UNIX=y
162# CONFIG_NET_KEY is not set 189CONFIG_XFRM=y
190CONFIG_XFRM_USER=m
191CONFIG_NET_KEY=m
163CONFIG_INET=y 192CONFIG_INET=y
164CONFIG_IP_MULTICAST=y 193CONFIG_IP_MULTICAST=y
165# CONFIG_IP_ADVANCED_ROUTER is not set 194# CONFIG_IP_ADVANCED_ROUTER is not set
166CONFIG_IP_FIB_HASH=y 195CONFIG_IP_FIB_HASH=y
167CONFIG_IP_PNP=y 196CONFIG_IP_PNP=y
168# CONFIG_IP_PNP_DHCP is not set 197CONFIG_IP_PNP_DHCP=y
169CONFIG_IP_PNP_BOOTP=y 198CONFIG_IP_PNP_BOOTP=y
170# CONFIG_IP_PNP_RARP is not set 199# CONFIG_IP_PNP_RARP is not set
171# CONFIG_NET_IPIP is not set 200# CONFIG_NET_IPIP is not set
@@ -173,19 +202,20 @@ CONFIG_IP_PNP_BOOTP=y
173# CONFIG_IP_MROUTE is not set 202# CONFIG_IP_MROUTE is not set
174# CONFIG_ARPD is not set 203# CONFIG_ARPD is not set
175# CONFIG_SYN_COOKIES is not set 204# CONFIG_SYN_COOKIES is not set
176# CONFIG_INET_AH is not set 205CONFIG_INET_AH=m
177# CONFIG_INET_ESP is not set 206CONFIG_INET_ESP=m
178# CONFIG_INET_IPCOMP is not set 207# CONFIG_INET_IPCOMP is not set
179# CONFIG_INET_TUNNEL is not set 208CONFIG_INET_TUNNEL=m
180# CONFIG_INET_DIAG is not set 209CONFIG_INET_DIAG=m
210CONFIG_INET_TCP_DIAG=m
181# CONFIG_TCP_CONG_ADVANCED is not set 211# CONFIG_TCP_CONG_ADVANCED is not set
182CONFIG_TCP_CONG_BIC=y 212CONFIG_TCP_CONG_BIC=y
183CONFIG_IPV6=y 213CONFIG_IPV6=y
184# CONFIG_IPV6_PRIVACY is not set 214# CONFIG_IPV6_PRIVACY is not set
185# CONFIG_INET6_AH is not set 215CONFIG_INET6_AH=y
186# CONFIG_INET6_ESP is not set 216CONFIG_INET6_ESP=y
187# CONFIG_INET6_IPCOMP is not set 217CONFIG_INET6_IPCOMP=y
188# CONFIG_INET6_TUNNEL is not set 218CONFIG_INET6_TUNNEL=y
189# CONFIG_IPV6_TUNNEL is not set 219# CONFIG_IPV6_TUNNEL is not set
190# CONFIG_NETFILTER is not set 220# CONFIG_NETFILTER is not set
191 221
@@ -207,7 +237,8 @@ CONFIG_IPV6=y
207# CONFIG_BRIDGE is not set 237# CONFIG_BRIDGE is not set
208# CONFIG_VLAN_8021Q is not set 238# CONFIG_VLAN_8021Q is not set
209# CONFIG_DECNET is not set 239# CONFIG_DECNET is not set
210# CONFIG_LLC2 is not set 240CONFIG_LLC=m
241CONFIG_LLC2=m
211# CONFIG_IPX is not set 242# CONFIG_IPX is not set
212# CONFIG_ATALK is not set 243# CONFIG_ATALK is not set
213# CONFIG_X25 is not set 244# CONFIG_X25 is not set
@@ -237,9 +268,9 @@ CONFIG_IPV6=y
237# 268#
238# Generic Driver Options 269# Generic Driver Options
239# 270#
240CONFIG_STANDALONE=y 271# CONFIG_STANDALONE is not set
241CONFIG_PREVENT_FIRMWARE_BUILD=y 272# CONFIG_PREVENT_FIRMWARE_BUILD is not set
242# CONFIG_FW_LOADER is not set 273CONFIG_FW_LOADER=y
243# CONFIG_DEBUG_DRIVER is not set 274# CONFIG_DEBUG_DRIVER is not set
244 275
245# 276#
@@ -256,13 +287,14 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
256# Parallel port support 287# Parallel port support
257# 288#
258CONFIG_PARPORT=y 289CONFIG_PARPORT=y
259CONFIG_PARPORT_PC=y 290CONFIG_PARPORT_PC=m
260# CONFIG_PARPORT_SERIAL is not set 291# CONFIG_PARPORT_SERIAL is not set
261# CONFIG_PARPORT_PC_FIFO is not set 292# CONFIG_PARPORT_PC_FIFO is not set
262# CONFIG_PARPORT_PC_SUPERIO is not set 293# CONFIG_PARPORT_PC_SUPERIO is not set
294CONFIG_PARPORT_PC_PCMCIA=m
263CONFIG_PARPORT_NOT_PC=y 295CONFIG_PARPORT_NOT_PC=y
264CONFIG_PARPORT_GSC=y 296CONFIG_PARPORT_GSC=y
265# CONFIG_PARPORT_1284 is not set 297CONFIG_PARPORT_1284=y
266 298
267# 299#
268# Plug and Play support 300# Plug and Play support
@@ -284,7 +316,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y
284# CONFIG_BLK_DEV_UB is not set 316# CONFIG_BLK_DEV_UB is not set
285CONFIG_BLK_DEV_RAM=y 317CONFIG_BLK_DEV_RAM=y
286CONFIG_BLK_DEV_RAM_COUNT=16 318CONFIG_BLK_DEV_RAM_COUNT=16
287CONFIG_BLK_DEV_RAM_SIZE=4096 319CONFIG_BLK_DEV_RAM_SIZE=6144
288CONFIG_BLK_DEV_INITRD=y 320CONFIG_BLK_DEV_INITRD=y
289# CONFIG_CDROM_PKTCDVD is not set 321# CONFIG_CDROM_PKTCDVD is not set
290# CONFIG_ATA_OVER_ETH is not set 322# CONFIG_ATA_OVER_ETH is not set
@@ -292,7 +324,60 @@ CONFIG_BLK_DEV_INITRD=y
292# 324#
293# ATA/ATAPI/MFM/RLL support 325# ATA/ATAPI/MFM/RLL support
294# 326#
295# CONFIG_IDE is not set 327CONFIG_IDE=y
328CONFIG_BLK_DEV_IDE=y
329
330#
331# Please see Documentation/ide.txt for help/info on IDE drives
332#
333# CONFIG_BLK_DEV_IDE_SATA is not set
334CONFIG_BLK_DEV_IDEDISK=y
335CONFIG_IDEDISK_MULTI_MODE=y
336CONFIG_BLK_DEV_IDECS=y
337CONFIG_BLK_DEV_IDECD=y
338# CONFIG_BLK_DEV_IDETAPE is not set
339# CONFIG_BLK_DEV_IDEFLOPPY is not set
340CONFIG_BLK_DEV_IDESCSI=y
341# CONFIG_IDE_TASK_IOCTL is not set
342
343#
344# IDE chipset support/bugfixes
345#
346CONFIG_IDE_GENERIC=y
347CONFIG_BLK_DEV_IDEPCI=y
348CONFIG_IDEPCI_SHARE_IRQ=y
349# CONFIG_BLK_DEV_OFFBOARD is not set
350CONFIG_BLK_DEV_GENERIC=y
351# CONFIG_BLK_DEV_OPTI621 is not set
352CONFIG_BLK_DEV_IDEDMA_PCI=y
353# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
354# CONFIG_IDEDMA_PCI_AUTO is not set
355# CONFIG_BLK_DEV_AEC62XX is not set
356# CONFIG_BLK_DEV_ALI15X3 is not set
357# CONFIG_BLK_DEV_AMD74XX is not set
358# CONFIG_BLK_DEV_CMD64X is not set
359# CONFIG_BLK_DEV_TRIFLEX is not set
360# CONFIG_BLK_DEV_CY82C693 is not set
361# CONFIG_BLK_DEV_CS5520 is not set
362# CONFIG_BLK_DEV_CS5530 is not set
363# CONFIG_BLK_DEV_HPT34X is not set
364# CONFIG_BLK_DEV_HPT366 is not set
365# CONFIG_BLK_DEV_SC1200 is not set
366# CONFIG_BLK_DEV_PIIX is not set
367# CONFIG_BLK_DEV_IT821X is not set
368CONFIG_BLK_DEV_NS87415=y
369# CONFIG_BLK_DEV_PDC202XX_OLD is not set
370# CONFIG_BLK_DEV_PDC202XX_NEW is not set
371# CONFIG_BLK_DEV_SVWKS is not set
372# CONFIG_BLK_DEV_SIIMAGE is not set
373# CONFIG_BLK_DEV_SLC90E66 is not set
374# CONFIG_BLK_DEV_TRM290 is not set
375# CONFIG_BLK_DEV_VIA82CXXX is not set
376# CONFIG_IDE_ARM is not set
377CONFIG_BLK_DEV_IDEDMA=y
378# CONFIG_IDEDMA_IVB is not set
379# CONFIG_IDEDMA_AUTO is not set
380# CONFIG_BLK_DEV_HD is not set
296 381
297# 382#
298# SCSI device support 383# SCSI device support
@@ -375,6 +460,15 @@ CONFIG_SCSI_NCR53C8XX_SYNC=20
375# CONFIG_SCSI_DEBUG is not set 460# CONFIG_SCSI_DEBUG is not set
376 461
377# 462#
463# PCMCIA SCSI adapter support
464#
465# CONFIG_PCMCIA_AHA152X is not set
466# CONFIG_PCMCIA_FDOMAIN is not set
467# CONFIG_PCMCIA_NINJA_SCSI is not set
468# CONFIG_PCMCIA_QLOGIC is not set
469# CONFIG_PCMCIA_SYM53C500 is not set
470
471#
378# Multi-device support (RAID and LVM) 472# Multi-device support (RAID and LVM)
379# 473#
380CONFIG_MD=y 474CONFIG_MD=y
@@ -382,12 +476,17 @@ CONFIG_BLK_DEV_MD=y
382CONFIG_MD_LINEAR=y 476CONFIG_MD_LINEAR=y
383CONFIG_MD_RAID0=y 477CONFIG_MD_RAID0=y
384CONFIG_MD_RAID1=y 478CONFIG_MD_RAID1=y
385# CONFIG_MD_RAID10 is not set 479CONFIG_MD_RAID10=y
386CONFIG_MD_RAID5=y 480CONFIG_MD_RAID5=y
387# CONFIG_MD_RAID6 is not set 481CONFIG_MD_RAID6=y
388# CONFIG_MD_MULTIPATH is not set 482# CONFIG_MD_MULTIPATH is not set
389# CONFIG_MD_FAULTY is not set 483# CONFIG_MD_FAULTY is not set
390# CONFIG_BLK_DEV_DM is not set 484CONFIG_BLK_DEV_DM=y
485# CONFIG_DM_CRYPT is not set
486# CONFIG_DM_SNAPSHOT is not set
487# CONFIG_DM_MIRROR is not set
488# CONFIG_DM_ZERO is not set
489# CONFIG_DM_MULTIPATH is not set
391 490
392# 491#
393# Fusion MPT device support 492# Fusion MPT device support
@@ -411,10 +510,10 @@ CONFIG_MD_RAID5=y
411# Network device support 510# Network device support
412# 511#
413CONFIG_NETDEVICES=y 512CONFIG_NETDEVICES=y
414# CONFIG_DUMMY is not set 513CONFIG_DUMMY=m
415# CONFIG_BONDING is not set 514CONFIG_BONDING=m
416# CONFIG_EQUALIZER is not set 515# CONFIG_EQUALIZER is not set
417# CONFIG_TUN is not set 516CONFIG_TUN=m
418 517
419# 518#
420# ARCnet devices 519# ARCnet devices
@@ -430,7 +529,7 @@ CONFIG_NETDEVICES=y
430# Ethernet (10 or 100Mbit) 529# Ethernet (10 or 100Mbit)
431# 530#
432CONFIG_NET_ETHERNET=y 531CONFIG_NET_ETHERNET=y
433# CONFIG_MII is not set 532CONFIG_MII=m
434CONFIG_LASI_82596=y 533CONFIG_LASI_82596=y
435# CONFIG_HAPPYMEAL is not set 534# CONFIG_HAPPYMEAL is not set
436# CONFIG_SUNGEM is not set 535# CONFIG_SUNGEM is not set
@@ -451,6 +550,8 @@ CONFIG_TULIP=y
451# CONFIG_WINBOND_840 is not set 550# CONFIG_WINBOND_840 is not set
452# CONFIG_DM9102 is not set 551# CONFIG_DM9102 is not set
453# CONFIG_ULI526X is not set 552# CONFIG_ULI526X is not set
553# CONFIG_PCMCIA_XIRCOM is not set
554# CONFIG_PCMCIA_XIRTULIP is not set
454# CONFIG_DEPCA is not set 555# CONFIG_DEPCA is not set
455# CONFIG_HP100 is not set 556# CONFIG_HP100 is not set
456CONFIG_NET_PCI=y 557CONFIG_NET_PCI=y
@@ -518,14 +619,33 @@ CONFIG_NET_RADIO=y
518# Obsolete Wireless cards support (pre-802.11) 619# Obsolete Wireless cards support (pre-802.11)
519# 620#
520# CONFIG_STRIP is not set 621# CONFIG_STRIP is not set
622# CONFIG_PCMCIA_WAVELAN is not set
623# CONFIG_PCMCIA_NETWAVE is not set
624
625#
626# Wireless 802.11 Frequency Hopping cards support
627#
628# CONFIG_PCMCIA_RAYCS is not set
521 629
522# 630#
523# Wireless 802.11b ISA/PCI cards support 631# Wireless 802.11b ISA/PCI cards support
524# 632#
525# CONFIG_HERMES is not set 633CONFIG_HERMES=y
634# CONFIG_PLX_HERMES is not set
635# CONFIG_TMD_HERMES is not set
636# CONFIG_NORTEL_HERMES is not set
637# CONFIG_PCI_HERMES is not set
526# CONFIG_ATMEL is not set 638# CONFIG_ATMEL is not set
527 639
528# 640#
641# Wireless 802.11b Pcmcia/Cardbus cards support
642#
643CONFIG_PCMCIA_HERMES=y
644CONFIG_PCMCIA_SPECTRUM=y
645# CONFIG_AIRO_CS is not set
646# CONFIG_PCMCIA_WL3501 is not set
647
648#
529# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support 649# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
530# 650#
531# CONFIG_PRISM54 is not set 651# CONFIG_PRISM54 is not set
@@ -533,13 +653,34 @@ CONFIG_NET_RADIO=y
533CONFIG_NET_WIRELESS=y 653CONFIG_NET_WIRELESS=y
534 654
535# 655#
656# PCMCIA network device support
657#
658CONFIG_NET_PCMCIA=y
659# CONFIG_PCMCIA_3C589 is not set
660# CONFIG_PCMCIA_3C574 is not set
661# CONFIG_PCMCIA_FMVJ18X is not set
662# CONFIG_PCMCIA_PCNET is not set
663# CONFIG_PCMCIA_NMCLAN is not set
664# CONFIG_PCMCIA_SMC91C92 is not set
665# CONFIG_PCMCIA_XIRC2PS is not set
666# CONFIG_PCMCIA_AXNET is not set
667
668#
536# Wan interfaces 669# Wan interfaces
537# 670#
538# CONFIG_WAN is not set 671# CONFIG_WAN is not set
539# CONFIG_FDDI is not set 672# CONFIG_FDDI is not set
540# CONFIG_HIPPI is not set 673# CONFIG_HIPPI is not set
541# CONFIG_PLIP is not set 674# CONFIG_PLIP is not set
542# CONFIG_PPP is not set 675CONFIG_PPP=m
676# CONFIG_PPP_MULTILINK is not set
677# CONFIG_PPP_FILTER is not set
678CONFIG_PPP_ASYNC=m
679CONFIG_PPP_SYNC_TTY=m
680CONFIG_PPP_DEFLATE=m
681CONFIG_PPP_BSDCOMP=m
682# CONFIG_PPP_MPPE is not set
683CONFIG_PPPOE=m
543# CONFIG_SLIP is not set 684# CONFIG_SLIP is not set
544# CONFIG_NET_FC is not set 685# CONFIG_NET_FC is not set
545# CONFIG_SHAPER is not set 686# CONFIG_SHAPER is not set
@@ -571,14 +712,16 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
571CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 712CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
572# CONFIG_INPUT_JOYDEV is not set 713# CONFIG_INPUT_JOYDEV is not set
573# CONFIG_INPUT_TSDEV is not set 714# CONFIG_INPUT_TSDEV is not set
574CONFIG_INPUT_EVDEV=y 715# CONFIG_INPUT_EVDEV is not set
575# CONFIG_INPUT_EVBUG is not set 716# CONFIG_INPUT_EVBUG is not set
576 717
577# 718#
578# Input Device Drivers 719# Input Device Drivers
579# 720#
580CONFIG_INPUT_KEYBOARD=y 721CONFIG_INPUT_KEYBOARD=y
581# CONFIG_KEYBOARD_ATKBD is not set 722CONFIG_KEYBOARD_ATKBD=y
723CONFIG_KEYBOARD_ATKBD_HP_KEYCODES=y
724# CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES is not set
582# CONFIG_KEYBOARD_SUNKBD is not set 725# CONFIG_KEYBOARD_SUNKBD is not set
583# CONFIG_KEYBOARD_LKKBD is not set 726# CONFIG_KEYBOARD_LKKBD is not set
584# CONFIG_KEYBOARD_XTKBD is not set 727# CONFIG_KEYBOARD_XTKBD is not set
@@ -586,52 +729,25 @@ CONFIG_INPUT_KEYBOARD=y
586# CONFIG_KEYBOARD_HIL_OLD is not set 729# CONFIG_KEYBOARD_HIL_OLD is not set
587CONFIG_KEYBOARD_HIL=y 730CONFIG_KEYBOARD_HIL=y
588CONFIG_INPUT_MOUSE=y 731CONFIG_INPUT_MOUSE=y
589# CONFIG_MOUSE_PS2 is not set 732CONFIG_MOUSE_PS2=y
590# CONFIG_MOUSE_SERIAL is not set 733CONFIG_MOUSE_SERIAL=y
591# CONFIG_MOUSE_VSXXXAA is not set 734# CONFIG_MOUSE_VSXXXAA is not set
592CONFIG_MOUSE_HIL=y 735CONFIG_MOUSE_HIL=y
593CONFIG_INPUT_JOYSTICK=y 736# CONFIG_INPUT_JOYSTICK is not set
594# CONFIG_JOYSTICK_ANALOG is not set 737# CONFIG_INPUT_TOUCHSCREEN is not set
595# CONFIG_JOYSTICK_A3D is not set 738# CONFIG_INPUT_MISC is not set
596# CONFIG_JOYSTICK_ADI is not set
597# CONFIG_JOYSTICK_COBRA is not set
598# CONFIG_JOYSTICK_GF2K is not set
599# CONFIG_JOYSTICK_GRIP is not set
600# CONFIG_JOYSTICK_GRIP_MP is not set
601# CONFIG_JOYSTICK_GUILLEMOT is not set
602# CONFIG_JOYSTICK_INTERACT is not set
603# CONFIG_JOYSTICK_SIDEWINDER is not set
604# CONFIG_JOYSTICK_TMDC is not set
605# CONFIG_JOYSTICK_IFORCE is not set
606# CONFIG_JOYSTICK_WARRIOR is not set
607# CONFIG_JOYSTICK_MAGELLAN is not set
608# CONFIG_JOYSTICK_SPACEORB is not set
609# CONFIG_JOYSTICK_SPACEBALL is not set
610# CONFIG_JOYSTICK_STINGER is not set
611# CONFIG_JOYSTICK_TWIDJOY is not set
612# CONFIG_JOYSTICK_DB9 is not set
613# CONFIG_JOYSTICK_GAMECON is not set
614# CONFIG_JOYSTICK_TURBOGRAFX is not set
615# CONFIG_JOYSTICK_JOYDUMP is not set
616CONFIG_INPUT_TOUCHSCREEN=y
617# CONFIG_TOUCHSCREEN_GUNZE is not set
618# CONFIG_TOUCHSCREEN_ELO is not set
619# CONFIG_TOUCHSCREEN_MTOUCH is not set
620# CONFIG_TOUCHSCREEN_MK712 is not set
621CONFIG_INPUT_MISC=y
622# CONFIG_INPUT_UINPUT is not set
623CONFIG_HP_SDC_RTC=y
624 739
625# 740#
626# Hardware I/O ports 741# Hardware I/O ports
627# 742#
628CONFIG_SERIO=y 743CONFIG_SERIO=y
629# CONFIG_SERIO_SERPORT is not set 744CONFIG_SERIO_SERPORT=y
630# CONFIG_SERIO_PARKBD is not set 745# CONFIG_SERIO_PARKBD is not set
631CONFIG_SERIO_GSCPS2=y 746CONFIG_SERIO_GSCPS2=y
632CONFIG_HP_SDC=y 747CONFIG_HP_SDC=y
633CONFIG_HIL_MLC=y 748CONFIG_HIL_MLC=y
634# CONFIG_SERIO_PCIPS2 is not set 749# CONFIG_SERIO_PCIPS2 is not set
750CONFIG_SERIO_LIBPS2=y
635# CONFIG_SERIO_RAW is not set 751# CONFIG_SERIO_RAW is not set
636# CONFIG_GAMEPORT is not set 752# CONFIG_GAMEPORT is not set
637 753
@@ -648,7 +764,8 @@ CONFIG_HW_CONSOLE=y
648# 764#
649CONFIG_SERIAL_8250=y 765CONFIG_SERIAL_8250=y
650CONFIG_SERIAL_8250_CONSOLE=y 766CONFIG_SERIAL_8250_CONSOLE=y
651CONFIG_SERIAL_8250_NR_UARTS=13 767CONFIG_SERIAL_8250_CS=y
768CONFIG_SERIAL_8250_NR_UARTS=17
652CONFIG_SERIAL_8250_RUNTIME_UARTS=4 769CONFIG_SERIAL_8250_RUNTIME_UARTS=4
653CONFIG_SERIAL_8250_EXTENDED=y 770CONFIG_SERIAL_8250_EXTENDED=y
654CONFIG_SERIAL_8250_MANY_PORTS=y 771CONFIG_SERIAL_8250_MANY_PORTS=y
@@ -666,10 +783,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
666# CONFIG_SERIAL_JSM is not set 783# CONFIG_SERIAL_JSM is not set
667CONFIG_UNIX98_PTYS=y 784CONFIG_UNIX98_PTYS=y
668CONFIG_LEGACY_PTYS=y 785CONFIG_LEGACY_PTYS=y
669CONFIG_LEGACY_PTY_COUNT=256 786CONFIG_LEGACY_PTY_COUNT=64
670CONFIG_PRINTER=y 787CONFIG_PRINTER=m
671# CONFIG_LP_CONSOLE is not set 788# CONFIG_LP_CONSOLE is not set
672# CONFIG_PPDEV is not set 789CONFIG_PPDEV=m
673# CONFIG_TIPAR is not set 790# CONFIG_TIPAR is not set
674 791
675# 792#
@@ -682,7 +799,7 @@ CONFIG_PRINTER=y
682# 799#
683# CONFIG_WATCHDOG is not set 800# CONFIG_WATCHDOG is not set
684CONFIG_GEN_RTC=y 801CONFIG_GEN_RTC=y
685# CONFIG_GEN_RTC_X is not set 802CONFIG_GEN_RTC_X=y
686# CONFIG_DTLK is not set 803# CONFIG_DTLK is not set
687# CONFIG_R3964 is not set 804# CONFIG_R3964 is not set
688# CONFIG_APPLICOM is not set 805# CONFIG_APPLICOM is not set
@@ -691,6 +808,13 @@ CONFIG_GEN_RTC=y
691# Ftape, the floppy tape device driver 808# Ftape, the floppy tape device driver
692# 809#
693# CONFIG_DRM is not set 810# CONFIG_DRM is not set
811
812#
813# PCMCIA character devices
814#
815# CONFIG_SYNCLINK_CS is not set
816# CONFIG_CARDMAN_4000 is not set
817# CONFIG_CARDMAN_4040 is not set
694# CONFIG_RAW_DRIVER is not set 818# CONFIG_RAW_DRIVER is not set
695 819
696# 820#
@@ -718,10 +842,8 @@ CONFIG_GEN_RTC=y
718# 842#
719# Hardware Monitoring support 843# Hardware Monitoring support
720# 844#
721CONFIG_HWMON=y 845# CONFIG_HWMON is not set
722# CONFIG_HWMON_VID is not set 846# CONFIG_HWMON_VID is not set
723# CONFIG_SENSORS_F71805F is not set
724# CONFIG_HWMON_DEBUG_CHIP is not set
725 847
726# 848#
727# Misc devices 849# Misc devices
@@ -749,8 +871,8 @@ CONFIG_FB_CFB_FILLRECT=y
749CONFIG_FB_CFB_COPYAREA=y 871CONFIG_FB_CFB_COPYAREA=y
750CONFIG_FB_CFB_IMAGEBLIT=y 872CONFIG_FB_CFB_IMAGEBLIT=y
751# CONFIG_FB_MACMODES is not set 873# CONFIG_FB_MACMODES is not set
752# CONFIG_FB_MODE_HELPERS is not set 874CONFIG_FB_MODE_HELPERS=y
753# CONFIG_FB_TILEBLITTING is not set 875CONFIG_FB_TILEBLITTING=y
754# CONFIG_FB_CIRRUS is not set 876# CONFIG_FB_CIRRUS is not set
755# CONFIG_FB_PM2 is not set 877# CONFIG_FB_PM2 is not set
756# CONFIG_FB_CYBER2000 is not set 878# CONFIG_FB_CYBER2000 is not set
@@ -778,8 +900,8 @@ CONFIG_FB_STI=y
778# Console display driver support 900# Console display driver support
779# 901#
780CONFIG_DUMMY_CONSOLE=y 902CONFIG_DUMMY_CONSOLE=y
781CONFIG_DUMMY_CONSOLE_COLUMNS=160 903CONFIG_DUMMY_CONSOLE_COLUMNS=128
782CONFIG_DUMMY_CONSOLE_ROWS=64 904CONFIG_DUMMY_CONSOLE_ROWS=48
783CONFIG_FRAMEBUFFER_CONSOLE=y 905CONFIG_FRAMEBUFFER_CONSOLE=y
784# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set 906# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
785CONFIG_STI_CONSOLE=y 907CONFIG_STI_CONSOLE=y
@@ -816,13 +938,14 @@ CONFIG_SOUND=y
816CONFIG_SND=y 938CONFIG_SND=y
817CONFIG_SND_TIMER=y 939CONFIG_SND_TIMER=y
818CONFIG_SND_PCM=y 940CONFIG_SND_PCM=y
941CONFIG_SND_HWDEP=y
819CONFIG_SND_SEQUENCER=y 942CONFIG_SND_SEQUENCER=y
820# CONFIG_SND_SEQ_DUMMY is not set 943# CONFIG_SND_SEQ_DUMMY is not set
821CONFIG_SND_OSSEMUL=y 944CONFIG_SND_OSSEMUL=y
822CONFIG_SND_MIXER_OSS=y 945CONFIG_SND_MIXER_OSS=y
823CONFIG_SND_PCM_OSS=y 946CONFIG_SND_PCM_OSS=y
824CONFIG_SND_SEQUENCER_OSS=y 947CONFIG_SND_SEQUENCER_OSS=y
825# CONFIG_SND_DYNAMIC_MINORS is not set 948CONFIG_SND_DYNAMIC_MINORS=y
826CONFIG_SND_SUPPORT_OLD_API=y 949CONFIG_SND_SUPPORT_OLD_API=y
827# CONFIG_SND_VERBOSE_PRINTK is not set 950# CONFIG_SND_VERBOSE_PRINTK is not set
828# CONFIG_SND_DEBUG is not set 951# CONFIG_SND_DEBUG is not set
@@ -830,6 +953,7 @@ CONFIG_SND_SUPPORT_OLD_API=y
830# 953#
831# Generic devices 954# Generic devices
832# 955#
956CONFIG_SND_OPL3_LIB=y
833CONFIG_SND_AC97_CODEC=y 957CONFIG_SND_AC97_CODEC=y
834CONFIG_SND_AC97_BUS=y 958CONFIG_SND_AC97_BUS=y
835# CONFIG_SND_DUMMY is not set 959# CONFIG_SND_DUMMY is not set
@@ -842,7 +966,7 @@ CONFIG_SND_AC97_BUS=y
842# PCI devices 966# PCI devices
843# 967#
844CONFIG_SND_AD1889=y 968CONFIG_SND_AD1889=y
845# CONFIG_SND_AD1889_OPL3 is not set 969CONFIG_SND_AD1889_OPL3=y
846# CONFIG_SND_ALI5451 is not set 970# CONFIG_SND_ALI5451 is not set
847# CONFIG_SND_ATIIXP is not set 971# CONFIG_SND_ATIIXP is not set
848# CONFIG_SND_ATIIXP_MODEM is not set 972# CONFIG_SND_ATIIXP_MODEM is not set
@@ -890,6 +1014,10 @@ CONFIG_SND_AD1889=y
890# CONFIG_SND_USB_AUDIO is not set 1014# CONFIG_SND_USB_AUDIO is not set
891 1015
892# 1016#
1017# PCMCIA devices
1018#
1019
1020#
893# GSC devices 1021# GSC devices
894# 1022#
895CONFIG_SND_HARMONY=y 1023CONFIG_SND_HARMONY=y
@@ -905,12 +1033,12 @@ CONFIG_SND_HARMONY=y
905CONFIG_USB_ARCH_HAS_HCD=y 1033CONFIG_USB_ARCH_HAS_HCD=y
906CONFIG_USB_ARCH_HAS_OHCI=y 1034CONFIG_USB_ARCH_HAS_OHCI=y
907CONFIG_USB=y 1035CONFIG_USB=y
908CONFIG_USB_DEBUG=y 1036# CONFIG_USB_DEBUG is not set
909 1037
910# 1038#
911# Miscellaneous USB options 1039# Miscellaneous USB options
912# 1040#
913# CONFIG_USB_DEVICEFS is not set 1041CONFIG_USB_DEVICEFS=y
914# CONFIG_USB_BANDWIDTH is not set 1042# CONFIG_USB_BANDWIDTH is not set
915# CONFIG_USB_DYNAMIC_MINORS is not set 1043# CONFIG_USB_DYNAMIC_MINORS is not set
916# CONFIG_USB_OTG is not set 1044# CONFIG_USB_OTG is not set
@@ -918,14 +1046,12 @@ CONFIG_USB_DEBUG=y
918# 1046#
919# USB Host Controller Drivers 1047# USB Host Controller Drivers
920# 1048#
921CONFIG_USB_EHCI_HCD=y 1049# CONFIG_USB_EHCI_HCD is not set
922# CONFIG_USB_EHCI_SPLIT_ISO is not set
923# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
924# CONFIG_USB_ISP116X_HCD is not set 1050# CONFIG_USB_ISP116X_HCD is not set
925CONFIG_USB_OHCI_HCD=y 1051CONFIG_USB_OHCI_HCD=y
926# CONFIG_USB_OHCI_BIG_ENDIAN is not set 1052# CONFIG_USB_OHCI_BIG_ENDIAN is not set
927CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1053CONFIG_USB_OHCI_LITTLE_ENDIAN=y
928# CONFIG_USB_UHCI_HCD is not set 1054CONFIG_USB_UHCI_HCD=y
929# CONFIG_USB_SL811_HCD is not set 1055# CONFIG_USB_SL811_HCD is not set
930 1056
931# 1057#
@@ -948,13 +1074,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
948# 1074#
949# USB Input Devices 1075# USB Input Devices
950# 1076#
951# CONFIG_USB_HID is not set 1077CONFIG_USB_HID=y
952 1078CONFIG_USB_HIDINPUT=y
953# 1079# CONFIG_USB_HIDINPUT_POWERBOOK is not set
954# USB HID Boot Protocol drivers 1080# CONFIG_HID_FF is not set
955# 1081# CONFIG_USB_HIDDEV is not set
956# CONFIG_USB_KBD is not set
957# CONFIG_USB_MOUSE is not set
958# CONFIG_USB_AIPTEK is not set 1082# CONFIG_USB_AIPTEK is not set
959# CONFIG_USB_WACOM is not set 1083# CONFIG_USB_WACOM is not set
960# CONFIG_USB_ACECAD is not set 1084# CONFIG_USB_ACECAD is not set
@@ -1020,8 +1144,8 @@ CONFIG_USB_MON=y
1020# CONFIG_USB_PHIDGETKIT is not set 1144# CONFIG_USB_PHIDGETKIT is not set
1021# CONFIG_USB_PHIDGETSERVO is not set 1145# CONFIG_USB_PHIDGETSERVO is not set
1022# CONFIG_USB_IDMOUSE is not set 1146# CONFIG_USB_IDMOUSE is not set
1023# CONFIG_USB_SISUSBVGA is not set
1024# CONFIG_USB_LD is not set 1147# CONFIG_USB_LD is not set
1148# CONFIG_USB_TEST is not set
1025 1149
1026# 1150#
1027# USB DSL modem support 1151# USB DSL modem support
@@ -1058,7 +1182,7 @@ CONFIG_JBD=y
1058# CONFIG_JBD_DEBUG is not set 1182# CONFIG_JBD_DEBUG is not set
1059# CONFIG_REISERFS_FS is not set 1183# CONFIG_REISERFS_FS is not set
1060# CONFIG_JFS_FS is not set 1184# CONFIG_JFS_FS is not set
1061# CONFIG_FS_POSIX_ACL is not set 1185CONFIG_FS_POSIX_ACL=y
1062# CONFIG_XFS_FS is not set 1186# CONFIG_XFS_FS is not set
1063# CONFIG_OCFS2_FS is not set 1187# CONFIG_OCFS2_FS is not set
1064# CONFIG_MINIX_FS is not set 1188# CONFIG_MINIX_FS is not set
@@ -1066,7 +1190,7 @@ CONFIG_JBD=y
1066CONFIG_INOTIFY=y 1190CONFIG_INOTIFY=y
1067# CONFIG_QUOTA is not set 1191# CONFIG_QUOTA is not set
1068CONFIG_DNOTIFY=y 1192CONFIG_DNOTIFY=y
1069# CONFIG_AUTOFS_FS is not set 1193CONFIG_AUTOFS_FS=y
1070# CONFIG_AUTOFS4_FS is not set 1194# CONFIG_AUTOFS4_FS is not set
1071# CONFIG_FUSE_FS is not set 1195# CONFIG_FUSE_FS is not set
1072 1196
@@ -1081,8 +1205,11 @@ CONFIG_JOLIET=y
1081# 1205#
1082# DOS/FAT/NT Filesystems 1206# DOS/FAT/NT Filesystems
1083# 1207#
1208CONFIG_FAT_FS=y
1084# CONFIG_MSDOS_FS is not set 1209# CONFIG_MSDOS_FS is not set
1085# CONFIG_VFAT_FS is not set 1210CONFIG_VFAT_FS=y
1211CONFIG_FAT_DEFAULT_CODEPAGE=437
1212CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1086# CONFIG_NTFS_FS is not set 1213# CONFIG_NTFS_FS is not set
1087 1214
1088# 1215#
@@ -1125,7 +1252,7 @@ CONFIG_NFS_V3=y
1125CONFIG_NFSD=y 1252CONFIG_NFSD=y
1126CONFIG_NFSD_V3=y 1253CONFIG_NFSD_V3=y
1127# CONFIG_NFSD_V3_ACL is not set 1254# CONFIG_NFSD_V3_ACL is not set
1128# CONFIG_NFSD_V4 is not set 1255CONFIG_NFSD_V4=y
1129CONFIG_NFSD_TCP=y 1256CONFIG_NFSD_TCP=y
1130CONFIG_ROOT_NFS=y 1257CONFIG_ROOT_NFS=y
1131CONFIG_LOCKD=y 1258CONFIG_LOCKD=y
@@ -1133,10 +1260,16 @@ CONFIG_LOCKD_V4=y
1133CONFIG_EXPORTFS=y 1260CONFIG_EXPORTFS=y
1134CONFIG_NFS_COMMON=y 1261CONFIG_NFS_COMMON=y
1135CONFIG_SUNRPC=y 1262CONFIG_SUNRPC=y
1136# CONFIG_RPCSEC_GSS_KRB5 is not set 1263CONFIG_SUNRPC_GSS=y
1137# CONFIG_RPCSEC_GSS_SPKM3 is not set 1264CONFIG_RPCSEC_GSS_KRB5=y
1138# CONFIG_SMB_FS is not set 1265CONFIG_RPCSEC_GSS_SPKM3=m
1139# CONFIG_CIFS is not set 1266CONFIG_SMB_FS=m
1267CONFIG_SMB_NLS_DEFAULT=y
1268CONFIG_SMB_NLS_REMOTE="cp437"
1269CONFIG_CIFS=m
1270# CONFIG_CIFS_STATS is not set
1271# CONFIG_CIFS_XATTR is not set
1272# CONFIG_CIFS_EXPERIMENTAL is not set
1140# CONFIG_NCP_FS is not set 1273# CONFIG_NCP_FS is not set
1141# CONFIG_CODA_FS is not set 1274# CONFIG_CODA_FS is not set
1142# CONFIG_AFS_FS is not set 1275# CONFIG_AFS_FS is not set
@@ -1153,50 +1286,50 @@ CONFIG_MSDOS_PARTITION=y
1153# 1286#
1154CONFIG_NLS=y 1287CONFIG_NLS=y
1155CONFIG_NLS_DEFAULT="iso8859-1" 1288CONFIG_NLS_DEFAULT="iso8859-1"
1156# CONFIG_NLS_CODEPAGE_437 is not set 1289CONFIG_NLS_CODEPAGE_437=y
1157# CONFIG_NLS_CODEPAGE_737 is not set 1290CONFIG_NLS_CODEPAGE_737=m
1158# CONFIG_NLS_CODEPAGE_775 is not set 1291CONFIG_NLS_CODEPAGE_775=m
1159# CONFIG_NLS_CODEPAGE_850 is not set 1292CONFIG_NLS_CODEPAGE_850=m
1160# CONFIG_NLS_CODEPAGE_852 is not set 1293CONFIG_NLS_CODEPAGE_852=m
1161# CONFIG_NLS_CODEPAGE_855 is not set 1294CONFIG_NLS_CODEPAGE_855=m
1162# CONFIG_NLS_CODEPAGE_857 is not set 1295CONFIG_NLS_CODEPAGE_857=m
1163# CONFIG_NLS_CODEPAGE_860 is not set 1296CONFIG_NLS_CODEPAGE_860=m
1164# CONFIG_NLS_CODEPAGE_861 is not set 1297CONFIG_NLS_CODEPAGE_861=m
1165# CONFIG_NLS_CODEPAGE_862 is not set 1298CONFIG_NLS_CODEPAGE_862=m
1166# CONFIG_NLS_CODEPAGE_863 is not set 1299CONFIG_NLS_CODEPAGE_863=m
1167# CONFIG_NLS_CODEPAGE_864 is not set 1300CONFIG_NLS_CODEPAGE_864=m
1168# CONFIG_NLS_CODEPAGE_865 is not set 1301CONFIG_NLS_CODEPAGE_865=m
1169# CONFIG_NLS_CODEPAGE_866 is not set 1302CONFIG_NLS_CODEPAGE_866=m
1170# CONFIG_NLS_CODEPAGE_869 is not set 1303CONFIG_NLS_CODEPAGE_869=m
1171# CONFIG_NLS_CODEPAGE_936 is not set 1304CONFIG_NLS_CODEPAGE_936=m
1172# CONFIG_NLS_CODEPAGE_950 is not set 1305CONFIG_NLS_CODEPAGE_950=m
1173# CONFIG_NLS_CODEPAGE_932 is not set 1306CONFIG_NLS_CODEPAGE_932=m
1174# CONFIG_NLS_CODEPAGE_949 is not set 1307CONFIG_NLS_CODEPAGE_949=m
1175# CONFIG_NLS_CODEPAGE_874 is not set 1308CONFIG_NLS_CODEPAGE_874=m
1176# CONFIG_NLS_ISO8859_8 is not set 1309CONFIG_NLS_ISO8859_8=m
1177# CONFIG_NLS_CODEPAGE_1250 is not set 1310CONFIG_NLS_CODEPAGE_1250=y
1178# CONFIG_NLS_CODEPAGE_1251 is not set 1311CONFIG_NLS_CODEPAGE_1251=m
1179# CONFIG_NLS_ASCII is not set 1312CONFIG_NLS_ASCII=m
1180# CONFIG_NLS_ISO8859_1 is not set 1313CONFIG_NLS_ISO8859_1=y
1181# CONFIG_NLS_ISO8859_2 is not set 1314CONFIG_NLS_ISO8859_2=m
1182# CONFIG_NLS_ISO8859_3 is not set 1315CONFIG_NLS_ISO8859_3=m
1183# CONFIG_NLS_ISO8859_4 is not set 1316CONFIG_NLS_ISO8859_4=m
1184# CONFIG_NLS_ISO8859_5 is not set 1317CONFIG_NLS_ISO8859_5=m
1185# CONFIG_NLS_ISO8859_6 is not set 1318CONFIG_NLS_ISO8859_6=m
1186# CONFIG_NLS_ISO8859_7 is not set 1319CONFIG_NLS_ISO8859_7=m
1187# CONFIG_NLS_ISO8859_9 is not set 1320CONFIG_NLS_ISO8859_9=m
1188# CONFIG_NLS_ISO8859_13 is not set 1321CONFIG_NLS_ISO8859_13=m
1189# CONFIG_NLS_ISO8859_14 is not set 1322CONFIG_NLS_ISO8859_14=m
1190# CONFIG_NLS_ISO8859_15 is not set 1323CONFIG_NLS_ISO8859_15=m
1191# CONFIG_NLS_KOI8_R is not set 1324CONFIG_NLS_KOI8_R=m
1192# CONFIG_NLS_KOI8_U is not set 1325CONFIG_NLS_KOI8_U=m
1193# CONFIG_NLS_UTF8 is not set 1326CONFIG_NLS_UTF8=y
1194 1327
1195# 1328#
1196# Profiling support 1329# Profiling support
1197# 1330#
1198CONFIG_PROFILING=y 1331CONFIG_PROFILING=y
1199CONFIG_OPROFILE=y 1332CONFIG_OPROFILE=m
1200 1333
1201# 1334#
1202# Kernel hacking 1335# Kernel hacking
@@ -1204,7 +1337,7 @@ CONFIG_OPROFILE=y
1204# CONFIG_PRINTK_TIME is not set 1337# CONFIG_PRINTK_TIME is not set
1205CONFIG_MAGIC_SYSRQ=y 1338CONFIG_MAGIC_SYSRQ=y
1206CONFIG_DEBUG_KERNEL=y 1339CONFIG_DEBUG_KERNEL=y
1207CONFIG_LOG_BUF_SHIFT=15 1340CONFIG_LOG_BUF_SHIFT=16
1208CONFIG_DETECT_SOFTLOCKUP=y 1341CONFIG_DETECT_SOFTLOCKUP=y
1209# CONFIG_SCHEDSTATS is not set 1342# CONFIG_SCHEDSTATS is not set
1210# CONFIG_DEBUG_SLAB is not set 1343# CONFIG_DEBUG_SLAB is not set
@@ -1217,42 +1350,43 @@ CONFIG_DEBUG_MUTEXES=y
1217# CONFIG_DEBUG_VM is not set 1350# CONFIG_DEBUG_VM is not set
1218CONFIG_FORCED_INLINING=y 1351CONFIG_FORCED_INLINING=y
1219# CONFIG_RCU_TORTURE_TEST is not set 1352# CONFIG_RCU_TORTURE_TEST is not set
1220CONFIG_DEBUG_RODATA=y 1353# CONFIG_DEBUG_RODATA is not set
1221 1354
1222# 1355#
1223# Security options 1356# Security options
1224# 1357#
1225# CONFIG_KEYS is not set 1358CONFIG_KEYS=y
1359CONFIG_KEYS_DEBUG_PROC_KEYS=y
1226# CONFIG_SECURITY is not set 1360# CONFIG_SECURITY is not set
1227 1361
1228# 1362#
1229# Cryptographic options 1363# Cryptographic options
1230# 1364#
1231CONFIG_CRYPTO=y 1365CONFIG_CRYPTO=y
1232# CONFIG_CRYPTO_HMAC is not set 1366CONFIG_CRYPTO_HMAC=y
1233# CONFIG_CRYPTO_NULL is not set 1367CONFIG_CRYPTO_NULL=m
1234# CONFIG_CRYPTO_MD4 is not set 1368CONFIG_CRYPTO_MD4=m
1235# CONFIG_CRYPTO_MD5 is not set 1369CONFIG_CRYPTO_MD5=y
1236# CONFIG_CRYPTO_SHA1 is not set 1370CONFIG_CRYPTO_SHA1=y
1237# CONFIG_CRYPTO_SHA256 is not set 1371CONFIG_CRYPTO_SHA256=m
1238# CONFIG_CRYPTO_SHA512 is not set 1372CONFIG_CRYPTO_SHA512=m
1239# CONFIG_CRYPTO_WP512 is not set 1373CONFIG_CRYPTO_WP512=m
1240# CONFIG_CRYPTO_TGR192 is not set 1374CONFIG_CRYPTO_TGR192=m
1241# CONFIG_CRYPTO_DES is not set 1375CONFIG_CRYPTO_DES=y
1242# CONFIG_CRYPTO_BLOWFISH is not set 1376CONFIG_CRYPTO_BLOWFISH=m
1243# CONFIG_CRYPTO_TWOFISH is not set 1377CONFIG_CRYPTO_TWOFISH=m
1244# CONFIG_CRYPTO_SERPENT is not set 1378CONFIG_CRYPTO_SERPENT=m
1245# CONFIG_CRYPTO_AES is not set 1379CONFIG_CRYPTO_AES=m
1246# CONFIG_CRYPTO_CAST5 is not set 1380CONFIG_CRYPTO_CAST5=m
1247# CONFIG_CRYPTO_CAST6 is not set 1381CONFIG_CRYPTO_CAST6=m
1248# CONFIG_CRYPTO_TEA is not set 1382CONFIG_CRYPTO_TEA=m
1249# CONFIG_CRYPTO_ARC4 is not set 1383CONFIG_CRYPTO_ARC4=m
1250# CONFIG_CRYPTO_KHAZAD is not set 1384CONFIG_CRYPTO_KHAZAD=m
1251# CONFIG_CRYPTO_ANUBIS is not set 1385CONFIG_CRYPTO_ANUBIS=m
1252# CONFIG_CRYPTO_DEFLATE is not set 1386CONFIG_CRYPTO_DEFLATE=y
1253# CONFIG_CRYPTO_MICHAEL_MIC is not set 1387CONFIG_CRYPTO_MICHAEL_MIC=m
1254# CONFIG_CRYPTO_CRC32C is not set 1388CONFIG_CRYPTO_CRC32C=m
1255# CONFIG_CRYPTO_TEST is not set 1389CONFIG_CRYPTO_TEST=m
1256 1390
1257# 1391#
1258# Hardware crypto devices 1392# Hardware crypto devices
@@ -1261,7 +1395,9 @@ CONFIG_CRYPTO=y
1261# 1395#
1262# Library routines 1396# Library routines
1263# 1397#
1264# CONFIG_CRC_CCITT is not set 1398CONFIG_CRC_CCITT=m
1265# CONFIG_CRC16 is not set 1399# CONFIG_CRC16 is not set
1266CONFIG_CRC32=y 1400CONFIG_CRC32=y
1267# CONFIG_LIBCRC32C is not set 1401CONFIG_LIBCRC32C=m
1402CONFIG_ZLIB_INFLATE=y
1403CONFIG_ZLIB_DEFLATE=y
diff --git a/arch/parisc/kernel/asm-offsets.c b/arch/parisc/kernel/asm-offsets.c
index e23c4e1e3a25..c11a5bc7c067 100644
--- a/arch/parisc/kernel/asm-offsets.c
+++ b/arch/parisc/kernel/asm-offsets.c
@@ -288,8 +288,11 @@ int main(void)
288 DEFINE(ASM_PGD_ENTRY_SIZE, PGD_ENTRY_SIZE); 288 DEFINE(ASM_PGD_ENTRY_SIZE, PGD_ENTRY_SIZE);
289 DEFINE(ASM_PMD_ENTRY_SIZE, PMD_ENTRY_SIZE); 289 DEFINE(ASM_PMD_ENTRY_SIZE, PMD_ENTRY_SIZE);
290 DEFINE(ASM_PTE_ENTRY_SIZE, PTE_ENTRY_SIZE); 290 DEFINE(ASM_PTE_ENTRY_SIZE, PTE_ENTRY_SIZE);
291 DEFINE(ASM_PFN_PTE_SHIFT, PFN_PTE_SHIFT);
291 DEFINE(ASM_PT_INITIAL, PT_INITIAL); 292 DEFINE(ASM_PT_INITIAL, PT_INITIAL);
292 DEFINE(ASM_PAGE_SIZE, PAGE_SIZE); 293 DEFINE(ASM_PAGE_SIZE, PAGE_SIZE);
294 DEFINE(ASM_PAGE_SIZE_DIV64, PAGE_SIZE/64);
295 DEFINE(ASM_PAGE_SIZE_DIV128, PAGE_SIZE/128);
293 BLANK(); 296 BLANK();
294 DEFINE(EXCDATA_IP, offsetof(struct exception_data, fault_ip)); 297 DEFINE(EXCDATA_IP, offsetof(struct exception_data, fault_ip));
295 DEFINE(EXCDATA_SPACE, offsetof(struct exception_data, fault_space)); 298 DEFINE(EXCDATA_SPACE, offsetof(struct exception_data, fault_space));
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c
index 360b7391cb8c..c057ad7605ba 100644
--- a/arch/parisc/kernel/cache.c
+++ b/arch/parisc/kernel/cache.c
@@ -4,7 +4,7 @@
4 * License. See the file "COPYING" in the main directory of this archive 4 * License. See the file "COPYING" in the main directory of this archive
5 * for more details. 5 * for more details.
6 * 6 *
7 * Copyright (C) 1999 Helge Deller (07-13-1999) 7 * Copyright (C) 1999-2006 Helge Deller <deller@gmx.de> (07-13-1999)
8 * Copyright (C) 1999 SuSE GmbH Nuernberg 8 * Copyright (C) 1999 SuSE GmbH Nuernberg
9 * Copyright (C) 2000 Philipp Rumpf (prumpf@tux.org) 9 * Copyright (C) 2000 Philipp Rumpf (prumpf@tux.org)
10 * 10 *
@@ -358,5 +358,5 @@ void parisc_setup_cache_timing(void)
358 if (!parisc_cache_flush_threshold) 358 if (!parisc_cache_flush_threshold)
359 parisc_cache_flush_threshold = FLUSH_THRESHOLD; 359 parisc_cache_flush_threshold = FLUSH_THRESHOLD;
360 360
361 printk("Setting cache flush threshold to %x (%d CPUs online)\n", parisc_cache_flush_threshold, num_online_cpus()); 361 printk(KERN_INFO "Setting cache flush threshold to %x (%d CPUs online)\n", parisc_cache_flush_threshold, num_online_cpus());
362} 362}
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index 7c95d7663c29..d9e53cf0372b 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -502,18 +502,20 @@
502 * all ILP32 processes and all the kernel for machines with 502 * all ILP32 processes and all the kernel for machines with
503 * under 4GB of memory) */ 503 * under 4GB of memory) */
504 .macro L3_ptep pgd,pte,index,va,fault 504 .macro L3_ptep pgd,pte,index,va,fault
505#if PT_NLEVELS == 3 /* we might have a 2-Level scheme, e.g. with 16kb page size */
505 extrd,u \va,63-ASM_PGDIR_SHIFT,ASM_BITS_PER_PGD,\index 506 extrd,u \va,63-ASM_PGDIR_SHIFT,ASM_BITS_PER_PGD,\index
506 copy %r0,\pte 507 copy %r0,\pte
507 extrd,u,*= \va,31,32,%r0 508 extrd,u,*= \va,63-ASM_PGDIR_SHIFT,64-ASM_PGDIR_SHIFT,%r0
508 ldw,s \index(\pgd),\pgd 509 ldw,s \index(\pgd),\pgd
509 extrd,u,*= \va,31,32,%r0 510 extrd,u,*= \va,63-ASM_PGDIR_SHIFT,64-ASM_PGDIR_SHIFT,%r0
510 bb,>=,n \pgd,_PxD_PRESENT_BIT,\fault 511 bb,>=,n \pgd,_PxD_PRESENT_BIT,\fault
511 extrd,u,*= \va,31,32,%r0 512 extrd,u,*= \va,63-ASM_PGDIR_SHIFT,64-ASM_PGDIR_SHIFT,%r0
512 shld \pgd,PxD_VALUE_SHIFT,\index 513 shld \pgd,PxD_VALUE_SHIFT,\index
513 extrd,u,*= \va,31,32,%r0 514 extrd,u,*= \va,63-ASM_PGDIR_SHIFT,64-ASM_PGDIR_SHIFT,%r0
514 copy \index,\pgd 515 copy \index,\pgd
515 extrd,u,*<> \va,31,32,%r0 516 extrd,u,*<> \va,63-ASM_PGDIR_SHIFT,64-ASM_PGDIR_SHIFT,%r0
516 ldo ASM_PGD_PMD_OFFSET(\pgd),\pgd 517 ldo ASM_PGD_PMD_OFFSET(\pgd),\pgd
518#endif
517 L2_ptep \pgd,\pte,\index,\va,\fault 519 L2_ptep \pgd,\pte,\index,\va,\fault
518 .endm 520 .endm
519 521
@@ -563,10 +565,18 @@
563 extrd,u,*= \pte,_PAGE_GATEWAY_BIT+32,1,%r0 565 extrd,u,*= \pte,_PAGE_GATEWAY_BIT+32,1,%r0
564 depd %r0,11,2,\prot /* If Gateway, Set PL2 to 0 */ 566 depd %r0,11,2,\prot /* If Gateway, Set PL2 to 0 */
565 567
566 /* Get rid of prot bits and convert to page addr for iitlbt and idtlbt */ 568 /* Enforce uncacheable pages.
569 * This should ONLY be use for MMIO on PA 2.0 machines.
570 * Memory/DMA is cache coherent on all PA2.0 machines we support
571 * (that means T-class is NOT supported) and the memory controllers
572 * on most of those machines only handles cache transactions.
573 */
574 extrd,u,*= \pte,_PAGE_NO_CACHE_BIT+32,1,%r0
575 depi 1,12,1,\prot
567 576
568 depd %r0,63,PAGE_SHIFT,\pte 577 /* Drop prot bits and convert to page addr for iitlbt and idtlbt */
569 extrd,s \pte,(63-PAGE_SHIFT)+(63-58),64-PAGE_SHIFT,\pte 578 extrd,u \pte,(63-ASM_PFN_PTE_SHIFT)+(63-58),64-PAGE_SHIFT,\pte
579 depdi _PAGE_SIZE_ENCODING_DEFAULT,63,63-58,\pte
570 .endm 580 .endm
571 581
572 /* Identical macro to make_insert_tlb above, except it 582 /* Identical macro to make_insert_tlb above, except it
@@ -584,9 +594,8 @@
584 594
585 /* Get rid of prot bits and convert to page addr for iitlba */ 595 /* Get rid of prot bits and convert to page addr for iitlba */
586 596
587 depi 0,31,PAGE_SHIFT,\pte 597 depi _PAGE_SIZE_ENCODING_DEFAULT,31,ASM_PFN_PTE_SHIFT,\pte
588 extru \pte,24,25,\pte 598 extru \pte,24,25,\pte
589
590 .endm 599 .endm
591 600
592 /* This is for ILP32 PA2.0 only. The TLB insertion needs 601 /* This is for ILP32 PA2.0 only. The TLB insertion needs
@@ -1201,10 +1210,9 @@ intr_save:
1201 */ 1210 */
1202 1211
1203 /* adjust isr/ior. */ 1212 /* adjust isr/ior. */
1204 1213 extrd,u %r16,63,SPACEID_SHIFT,%r1 /* get high bits from isr for ior */
1205 extrd,u %r16,63,7,%r1 /* get high bits from isr for ior */ 1214 depd %r1,31,SPACEID_SHIFT,%r17 /* deposit them into ior */
1206 depd %r1,31,7,%r17 /* deposit them into ior */ 1215 depdi 0,63,SPACEID_SHIFT,%r16 /* clear them from isr */
1207 depdi 0,63,7,%r16 /* clear them from isr */
1208#endif 1216#endif
1209 STREG %r16, PT_ISR(%r29) 1217 STREG %r16, PT_ISR(%r29)
1210 STREG %r17, PT_IOR(%r29) 1218 STREG %r17, PT_IOR(%r29)
diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S
index 0b47afc20690..3e79e62f7b0b 100644
--- a/arch/parisc/kernel/head.S
+++ b/arch/parisc/kernel/head.S
@@ -76,16 +76,16 @@ $bss_loop:
76 mtctl %r4,%cr24 /* Initialize kernel root pointer */ 76 mtctl %r4,%cr24 /* Initialize kernel root pointer */
77 mtctl %r4,%cr25 /* Initialize user root pointer */ 77 mtctl %r4,%cr25 /* Initialize user root pointer */
78 78
79#ifdef CONFIG_64BIT 79#if PT_NLEVELS == 3
80 /* Set pmd in pgd */ 80 /* Set pmd in pgd */
81 load32 PA(pmd0),%r5 81 load32 PA(pmd0),%r5
82 shrd %r5,PxD_VALUE_SHIFT,%r3 82 shrd %r5,PxD_VALUE_SHIFT,%r3
83 ldo (PxD_FLAG_PRESENT+PxD_FLAG_VALID)(%r3),%r3 83 ldo (PxD_FLAG_PRESENT+PxD_FLAG_VALID)(%r3),%r3
84 stw %r3,ASM_PGD_ENTRY*ASM_PGD_ENTRY_SIZE(%r4) 84 stw %r3,ASM_PGD_ENTRY*ASM_PGD_ENTRY_SIZE(%r4)
85 ldo ASM_PMD_ENTRY*ASM_PMD_ENTRY_SIZE(%r5),%r4 85 ldo ASM_PMD_ENTRY*ASM_PMD_ENTRY_SIZE(%r5),%r4
86#else 86#else
87 /* 2-level page table, so pmd == pgd */ 87 /* 2-level page table, so pmd == pgd */
88 ldo ASM_PGD_ENTRY*ASM_PGD_ENTRY_SIZE(%r4),%r4 88 ldo ASM_PGD_ENTRY*ASM_PGD_ENTRY_SIZE(%r4),%r4
89#endif 89#endif
90 90
91 /* Fill in pmd with enough pte directories */ 91 /* Fill in pmd with enough pte directories */
@@ -99,7 +99,7 @@ $bss_loop:
99 stw %r3,0(%r4) 99 stw %r3,0(%r4)
100 ldo (ASM_PAGE_SIZE >> PxD_VALUE_SHIFT)(%r3),%r3 100 ldo (ASM_PAGE_SIZE >> PxD_VALUE_SHIFT)(%r3),%r3
101 addib,> -1,%r1,1b 101 addib,> -1,%r1,1b
102#ifdef CONFIG_64BIT 102#if PT_NLEVELS == 3
103 ldo ASM_PMD_ENTRY_SIZE(%r4),%r4 103 ldo ASM_PMD_ENTRY_SIZE(%r4),%r4
104#else 104#else
105 ldo ASM_PGD_ENTRY_SIZE(%r4),%r4 105 ldo ASM_PGD_ENTRY_SIZE(%r4),%r4
@@ -107,13 +107,14 @@ $bss_loop:
107 107
108 108
109 /* Now initialize the PTEs themselves */ 109 /* Now initialize the PTEs themselves */
110 ldo _PAGE_KERNEL(%r0),%r3 /* Hardwired 0 phys addr start */ 110 ldo 0+_PAGE_KERNEL(%r0),%r3 /* Hardwired 0 phys addr start */
111 ldi (1<<(KERNEL_INITIAL_ORDER-PAGE_SHIFT)),%r11 /* PFN count */
111 load32 PA(pg0),%r1 112 load32 PA(pg0),%r1
112 113
113$pgt_fill_loop: 114$pgt_fill_loop:
114 STREGM %r3,ASM_PTE_ENTRY_SIZE(%r1) 115 STREGM %r3,ASM_PTE_ENTRY_SIZE(%r1)
115 ldo ASM_PAGE_SIZE(%r3),%r3 116 ldo (1<<PFN_PTE_SHIFT)(%r3),%r3 /* add one PFN */
116 bb,>= %r3,31-KERNEL_INITIAL_ORDER,$pgt_fill_loop 117 addib,> -1,%r11,$pgt_fill_loop
117 nop 118 nop
118 119
119 /* Load the return address...er...crash 'n burn */ 120 /* Load the return address...er...crash 'n burn */
diff --git a/arch/parisc/kernel/init_task.c b/arch/parisc/kernel/init_task.c
index 7e898fd64415..8384bf9cecd2 100644
--- a/arch/parisc/kernel/init_task.c
+++ b/arch/parisc/kernel/init_task.c
@@ -53,17 +53,17 @@ union thread_union init_thread_union
53 __attribute__((aligned(128))) __attribute__((__section__(".data.init_task"))) = 53 __attribute__((aligned(128))) __attribute__((__section__(".data.init_task"))) =
54 { INIT_THREAD_INFO(init_task) }; 54 { INIT_THREAD_INFO(init_task) };
55 55
56#ifdef __LP64__ 56#if PT_NLEVELS == 3
57/* NOTE: This layout exactly conforms to the hybrid L2/L3 page table layout 57/* NOTE: This layout exactly conforms to the hybrid L2/L3 page table layout
58 * with the first pmd adjacent to the pgd and below it. gcc doesn't actually 58 * with the first pmd adjacent to the pgd and below it. gcc doesn't actually
59 * guarantee that global objects will be laid out in memory in the same order 59 * guarantee that global objects will be laid out in memory in the same order
60 * as the order of declaration, so put these in different sections and use 60 * as the order of declaration, so put these in different sections and use
61 * the linker script to order them. */ 61 * the linker script to order them. */
62pmd_t pmd0[PTRS_PER_PMD] __attribute__ ((aligned(PAGE_SIZE))) __attribute__ ((__section__ (".data.vm0.pmd"))) = { {0}, }; 62pmd_t pmd0[PTRS_PER_PMD] __attribute__ ((__section__ (".data.vm0.pmd"), aligned(PAGE_SIZE)));
63
64#endif 63#endif
65pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__ ((aligned(PAGE_SIZE))) __attribute__ ((__section__ (".data.vm0.pgd"))) = { {0}, }; 64
66pte_t pg0[PT_INITIAL * PTRS_PER_PTE] __attribute__ ((aligned(PAGE_SIZE))) __attribute__ ((__section__ (".data.vm0.pte"))) = { {0}, }; 65pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__ ((__section__ (".data.vm0.pgd"), aligned(PAGE_SIZE)));
66pte_t pg0[PT_INITIAL * PTRS_PER_PTE] __attribute__ ((__section__ (".data.vm0.pte"), aligned(PAGE_SIZE)));
67 67
68/* 68/*
69 * Initial task structure. 69 * Initial task structure.
diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S
index 7a4f07e8d3c3..f600556414d1 100644
--- a/arch/parisc/kernel/pacache.S
+++ b/arch/parisc/kernel/pacache.S
@@ -65,7 +65,7 @@ flush_tlb_all_local:
65 */ 65 */
66 66
67 /* pcxt_ssm_bug - relied upon translation! PA 2.0 Arch. F-4 and F-5 */ 67 /* pcxt_ssm_bug - relied upon translation! PA 2.0 Arch. F-4 and F-5 */
68 rsm PSW_SM_I, %r19 /* save I-bit state */ 68 rsm PSW_SM_I, %r19 /* save I-bit state */
69 load32 PA(1f), %r1 69 load32 PA(1f), %r1
70 nop 70 nop
71 nop 71 nop
@@ -84,8 +84,7 @@ flush_tlb_all_local:
84 rfi 84 rfi
85 nop 85 nop
86 86
871: ldil L%PA(cache_info), %r1 871: load32 PA(cache_info), %r1
88 ldo R%PA(cache_info)(%r1), %r1
89 88
90 /* Flush Instruction Tlb */ 89 /* Flush Instruction Tlb */
91 90
@@ -212,8 +211,7 @@ flush_instruction_cache_local:
212 .entry 211 .entry
213 212
214 mtsp %r0, %sr1 213 mtsp %r0, %sr1
215 ldil L%cache_info, %r1 214 load32 cache_info, %r1
216 ldo R%cache_info(%r1), %r1
217 215
218 /* Flush Instruction Cache */ 216 /* Flush Instruction Cache */
219 217
@@ -254,8 +252,7 @@ flush_data_cache_local:
254 .entry 252 .entry
255 253
256 mtsp %r0, %sr1 254 mtsp %r0, %sr1
257 ldil L%cache_info, %r1 255 load32 cache_info, %r1
258 ldo R%cache_info(%r1), %r1
259 256
260 /* Flush Data Cache */ 257 /* Flush Data Cache */
261 258
@@ -303,7 +300,8 @@ copy_user_page_asm:
303 */ 300 */
304 301
305 ldd 0(%r25), %r19 302 ldd 0(%r25), %r19
306 ldi 32, %r1 /* PAGE_SIZE/128 == 32 */ 303 ldi ASM_PAGE_SIZE_DIV128, %r1
304
307 ldw 64(%r25), %r0 /* prefetch 1 cacheline ahead */ 305 ldw 64(%r25), %r0 /* prefetch 1 cacheline ahead */
308 ldw 128(%r25), %r0 /* prefetch 2 */ 306 ldw 128(%r25), %r0 /* prefetch 2 */
309 307
@@ -368,7 +366,7 @@ copy_user_page_asm:
368 * use ldd/std on a 32 bit kernel. 366 * use ldd/std on a 32 bit kernel.
369 */ 367 */
370 ldw 0(%r25), %r19 368 ldw 0(%r25), %r19
371 ldi 64, %r1 /* PAGE_SIZE/64 == 64 */ 369 ldi ASM_PAGE_SIZE_DIV64, %r1
372 370
3731: 3711:
374 ldw 4(%r25), %r20 372 ldw 4(%r25), %r20
@@ -461,6 +459,7 @@ copy_user_page_asm:
461 sub %r25, %r1, %r23 /* move physical addr into non shadowed reg */ 459 sub %r25, %r1, %r23 /* move physical addr into non shadowed reg */
462 460
463 ldil L%(TMPALIAS_MAP_START), %r28 461 ldil L%(TMPALIAS_MAP_START), %r28
462 /* FIXME for different page sizes != 4k */
464#ifdef CONFIG_64BIT 463#ifdef CONFIG_64BIT
465 extrd,u %r26,56,32, %r26 /* convert phys addr to tlb insert format */ 464 extrd,u %r26,56,32, %r26 /* convert phys addr to tlb insert format */
466 extrd,u %r23,56,32, %r23 /* convert phys addr to tlb insert format */ 465 extrd,u %r23,56,32, %r23 /* convert phys addr to tlb insert format */
@@ -551,6 +550,7 @@ __clear_user_page_asm:
551#ifdef CONFIG_64BIT 550#ifdef CONFIG_64BIT
552#if (TMPALIAS_MAP_START >= 0x80000000) 551#if (TMPALIAS_MAP_START >= 0x80000000)
553 depdi 0, 31,32, %r28 /* clear any sign extension */ 552 depdi 0, 31,32, %r28 /* clear any sign extension */
553 /* FIXME: page size dependend */
554#endif 554#endif
555 extrd,u %r26, 56,32, %r26 /* convert phys addr to tlb insert format */ 555 extrd,u %r26, 56,32, %r26 /* convert phys addr to tlb insert format */
556 depd %r25, 63,22, %r28 /* Form aliased virtual address 'to' */ 556 depd %r25, 63,22, %r28 /* Form aliased virtual address 'to' */
@@ -566,10 +566,10 @@ __clear_user_page_asm:
566 pdtlb 0(%r28) 566 pdtlb 0(%r28)
567 567
568#ifdef CONFIG_64BIT 568#ifdef CONFIG_64BIT
569 ldi 32, %r1 /* PAGE_SIZE/128 == 32 */ 569 ldi ASM_PAGE_SIZE_DIV128, %r1
570 570
571 /* PREFETCH (Write) has not (yet) been proven to help here */ 571 /* PREFETCH (Write) has not (yet) been proven to help here */
572/* #define PREFETCHW_OP ldd 256(%0), %r0 */ 572 /* #define PREFETCHW_OP ldd 256(%0), %r0 */
573 573
5741: std %r0, 0(%r28) 5741: std %r0, 0(%r28)
575 std %r0, 8(%r28) 575 std %r0, 8(%r28)
@@ -591,8 +591,7 @@ __clear_user_page_asm:
591 ldo 128(%r28), %r28 591 ldo 128(%r28), %r28
592 592
593#else /* ! CONFIG_64BIT */ 593#else /* ! CONFIG_64BIT */
594 594 ldi ASM_PAGE_SIZE_DIV64, %r1
595 ldi 64, %r1 /* PAGE_SIZE/64 == 64 */
596 595
5971: 5961:
598 stw %r0, 0(%r28) 597 stw %r0, 0(%r28)
diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
index d15a1d53e101..8b5df98e2b31 100644
--- a/arch/parisc/kernel/sys_parisc.c
+++ b/arch/parisc/kernel/sys_parisc.c
@@ -231,6 +231,14 @@ asmlinkage long parisc_fadvise64_64(int fd,
231 (loff_t)high_len << 32 | low_len, advice); 231 (loff_t)high_len << 32 | low_len, advice);
232} 232}
233 233
234asmlinkage long parisc_sync_file_range(int fd,
235 u32 hi_off, u32 lo_off, u32 hi_nbytes, u32 lo_nbytes,
236 unsigned int flags)
237{
238 return sys_sync_file_range(fd, (loff_t)hi_off << 32 | lo_off,
239 (loff_t)hi_nbytes << 32 | lo_nbytes, flags);
240}
241
234asmlinkage unsigned long sys_alloc_hugepages(int key, unsigned long addr, unsigned long len, int prot, int flag) 242asmlinkage unsigned long sys_alloc_hugepages(int key, unsigned long addr, unsigned long len, int prot, int flag)
235{ 243{
236 return -ENOMEM; 244 return -ENOMEM;
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S
index af88afef41bd..479d9a017cd1 100644
--- a/arch/parisc/kernel/syscall.S
+++ b/arch/parisc/kernel/syscall.S
@@ -55,7 +55,7 @@
55 * pointers. 55 * pointers.
56 */ 56 */
57 57
58 .align 4096 58 .align ASM_PAGE_SIZE
59linux_gateway_page: 59linux_gateway_page:
60 60
61 /* ADDRESS 0x00 to 0xb0 = 176 bytes / 4 bytes per insn = 44 insns */ 61 /* ADDRESS 0x00 to 0xb0 = 176 bytes / 4 bytes per insn = 44 insns */
@@ -632,7 +632,7 @@ cas_action:
632end_compare_and_swap: 632end_compare_and_swap:
633 633
634 /* Make sure nothing else is placed on this page */ 634 /* Make sure nothing else is placed on this page */
635 .align 4096 635 .align ASM_PAGE_SIZE
636 .export end_linux_gateway_page 636 .export end_linux_gateway_page
637end_linux_gateway_page: 637end_linux_gateway_page:
638 638
@@ -652,7 +652,7 @@ end_linux_gateway_page:
652 652
653 .section .rodata,"a" 653 .section .rodata,"a"
654 654
655 .align 4096 655 .align ASM_PAGE_SIZE
656 /* Light-weight-syscall table */ 656 /* Light-weight-syscall table */
657 /* Start of lws table. */ 657 /* Start of lws table. */
658 .export lws_table 658 .export lws_table
@@ -662,14 +662,14 @@ lws_table:
662 LWS_ENTRY(compare_and_swap64) /* 1 - ELF64 Atomic compare and swap */ 662 LWS_ENTRY(compare_and_swap64) /* 1 - ELF64 Atomic compare and swap */
663 /* End of lws table */ 663 /* End of lws table */
664 664
665 .align 4096 665 .align ASM_PAGE_SIZE
666 .export sys_call_table 666 .export sys_call_table
667.Lsys_call_table: 667.Lsys_call_table:
668sys_call_table: 668sys_call_table:
669#include "syscall_table.S" 669#include "syscall_table.S"
670 670
671#ifdef CONFIG_64BIT 671#ifdef CONFIG_64BIT
672 .align 4096 672 .align ASM_PAGE_SIZE
673 .export sys_call_table64 673 .export sys_call_table64
674.Lsys_call_table64: 674.Lsys_call_table64:
675sys_call_table64: 675sys_call_table64:
diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S
index bbeeb614cfab..e27b432f90a8 100644
--- a/arch/parisc/kernel/syscall_table.S
+++ b/arch/parisc/kernel/syscall_table.S
@@ -13,7 +13,7 @@
13 * Copyright (C) 2001 Helge Deller <deller at parisc-linux.org> 13 * Copyright (C) 2001 Helge Deller <deller at parisc-linux.org>
14 * Copyright (C) 2000-2001 Thomas Bogendoerfer <tsbogend at parisc-linux.org> 14 * Copyright (C) 2000-2001 Thomas Bogendoerfer <tsbogend at parisc-linux.org>
15 * Copyright (C) 2002 Randolph Chung <tausq with parisc-linux.org> 15 * Copyright (C) 2002 Randolph Chung <tausq with parisc-linux.org>
16 * 16 * Copyright (C) 2005-2006 Kyle McMartin <kyle at parisc-linux.org>
17 * 17 *
18 * This program is free software; you can redistribute it and/or modify 18 * This program is free software; you can redistribute it and/or modify
19 * it under the terms of the GNU General Public License as published by 19 * it under the terms of the GNU General Public License as published by
@@ -393,5 +393,11 @@
393 ENTRY_SAME(readlinkat) /* 285 */ 393 ENTRY_SAME(readlinkat) /* 285 */
394 ENTRY_SAME(fchmodat) 394 ENTRY_SAME(fchmodat)
395 ENTRY_SAME(faccessat) 395 ENTRY_SAME(faccessat)
396 ENTRY_SAME(unshare)
397 ENTRY_COMP(set_robust_list)
398 ENTRY_COMP(get_robust_list) /* 290 */
399 ENTRY_SAME(splice)
400 ENTRY_OURS(sync_file_range)
401 ENTRY_SAME(tee)
396 /* Nothing yet */ 402 /* Nothing yet */
397 403
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S
index 6d6436a6b624..94dcc03a28ed 100644
--- a/arch/parisc/kernel/vmlinux.lds.S
+++ b/arch/parisc/kernel/vmlinux.lds.S
@@ -6,6 +6,7 @@
6 * Copyright (C) 2000 Michael Ang <mang with subcarrier.org> 6 * Copyright (C) 2000 Michael Ang <mang with subcarrier.org>
7 * Copyright (C) 2002 Randolph Chung <tausq with parisc-linux.org> 7 * Copyright (C) 2002 Randolph Chung <tausq with parisc-linux.org>
8 * Copyright (C) 2003 James Bottomley <jejb with parisc-linux.org> 8 * Copyright (C) 2003 James Bottomley <jejb with parisc-linux.org>
9 * Copyright (C) 2006 Helge Deller <deller@gmx.de>
9 * 10 *
10 * 11 *
11 * This program is free software; you can redistribute it and/or modify 12 * This program is free software; you can redistribute it and/or modify
@@ -27,6 +28,7 @@
27/* needed for the processor specific cache alignment size */ 28/* needed for the processor specific cache alignment size */
28#include <asm/cache.h> 29#include <asm/cache.h>
29#include <asm/page.h> 30#include <asm/page.h>
31#include <asm/asm-offsets.h>
30 32
31/* ld script to make hppa Linux kernel */ 33/* ld script to make hppa Linux kernel */
32#ifndef CONFIG_64BIT 34#ifndef CONFIG_64BIT
@@ -68,7 +70,7 @@ SECTIONS
68 RODATA 70 RODATA
69 71
70 /* writeable */ 72 /* writeable */
71 . = ALIGN(4096); /* Make sure this is page aligned so 73 . = ALIGN(ASM_PAGE_SIZE); /* Make sure this is page aligned so
72 that we can properly leave these 74 that we can properly leave these
73 as writable */ 75 as writable */
74 data_start = .; 76 data_start = .;
@@ -81,23 +83,17 @@ SECTIONS
81 __start___unwind = .; /* unwind info */ 83 __start___unwind = .; /* unwind info */
82 .PARISC.unwind : { *(.PARISC.unwind) } 84 .PARISC.unwind : { *(.PARISC.unwind) }
83 __stop___unwind = .; 85 __stop___unwind = .;
84 86
87 /* rarely changed data like cpu maps */
88 . = ALIGN(16);
89 .data.read_mostly : { *(.data.read_mostly) }
90
91 . = ALIGN(L1_CACHE_BYTES);
85 .data : { /* Data */ 92 .data : { /* Data */
86 *(.data) 93 *(.data)
87 *(.data.vm0.pmd)
88 *(.data.vm0.pgd)
89 *(.data.vm0.pte)
90 CONSTRUCTORS 94 CONSTRUCTORS
91 } 95 }
92 96
93 . = ALIGN(4096);
94 /* nosave data is really only used for software suspend...it's here
95 * just in case we ever implement it */
96 __nosave_begin = .;
97 .data_nosave : { *(.data.nosave) }
98 . = ALIGN(4096);
99 __nosave_end = .;
100
101 . = ALIGN(L1_CACHE_BYTES); 97 . = ALIGN(L1_CACHE_BYTES);
102 .data.cacheline_aligned : { *(.data.cacheline_aligned) } 98 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
103 99
@@ -105,12 +101,29 @@ SECTIONS
105 . = ALIGN(16); 101 . = ALIGN(16);
106 .data.lock_aligned : { *(.data.lock_aligned) } 102 .data.lock_aligned : { *(.data.lock_aligned) }
107 103
108 /* rarely changed data like cpu maps */ 104 . = ALIGN(ASM_PAGE_SIZE);
109 . = ALIGN(16); 105 /* nosave data is really only used for software suspend...it's here
110 .data.read_mostly : { *(.data.read_mostly) } 106 * just in case we ever implement it */
107 __nosave_begin = .;
108 .data_nosave : { *(.data.nosave) }
109 . = ALIGN(ASM_PAGE_SIZE);
110 __nosave_end = .;
111 111
112 _edata = .; /* End of data section */ 112 _edata = .; /* End of data section */
113 113
114 __bss_start = .; /* BSS */
115 /* page table entries need to be PAGE_SIZE aligned */
116 . = ALIGN(ASM_PAGE_SIZE);
117 .data.vmpages : {
118 *(.data.vm0.pmd)
119 *(.data.vm0.pgd)
120 *(.data.vm0.pte)
121 }
122 .bss : { *(.bss) *(COMMON) }
123 __bss_stop = .;
124
125
126 /* assembler code expects init_task to be 16k aligned */
114 . = ALIGN(16384); /* init_task */ 127 . = ALIGN(16384); /* init_task */
115 .data.init_task : { *(.data.init_task) } 128 .data.init_task : { *(.data.init_task) }
116 129
@@ -126,6 +139,7 @@ SECTIONS
126 .dlt : { *(.dlt) } 139 .dlt : { *(.dlt) }
127#endif 140#endif
128 141
142 /* reserve space for interrupt stack by aligning __init* to 16k */
129 . = ALIGN(16384); 143 . = ALIGN(16384);
130 __init_begin = .; 144 __init_begin = .;
131 .init.text : { 145 .init.text : {
@@ -166,7 +180,7 @@ SECTIONS
166 from .altinstructions and .eh_frame */ 180 from .altinstructions and .eh_frame */
167 .exit.text : { *(.exit.text) } 181 .exit.text : { *(.exit.text) }
168 .exit.data : { *(.exit.data) } 182 .exit.data : { *(.exit.data) }
169 . = ALIGN(4096); 183 . = ALIGN(ASM_PAGE_SIZE);
170 __initramfs_start = .; 184 __initramfs_start = .;
171 .init.ramfs : { *(.init.ramfs) } 185 .init.ramfs : { *(.init.ramfs) }
172 __initramfs_end = .; 186 __initramfs_end = .;
@@ -174,14 +188,10 @@ SECTIONS
174 __per_cpu_start = .; 188 __per_cpu_start = .;
175 .data.percpu : { *(.data.percpu) } 189 .data.percpu : { *(.data.percpu) }
176 __per_cpu_end = .; 190 __per_cpu_end = .;
177 . = ALIGN(4096); 191 . = ALIGN(ASM_PAGE_SIZE);
178 __init_end = .; 192 __init_end = .;
179 /* freed after init ends here */ 193 /* freed after init ends here */
180 194
181 __bss_start = .; /* BSS */
182 .bss : { *(.bss) *(COMMON) }
183 __bss_stop = .;
184
185 _end = . ; 195 _end = . ;
186 196
187 /* Sections to be discarded */ 197 /* Sections to be discarded */
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index 0ad945d4c0a4..64785e46f93b 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -186,7 +186,7 @@ good_area:
186 break; 186 break;
187 case VM_FAULT_SIGBUS: 187 case VM_FAULT_SIGBUS:
188 /* 188 /*
189 * We hit a hared mapping outside of the file, or some 189 * We hit a shared mapping outside of the file, or some
190 * other thing happened to us that made us unable to 190 * other thing happened to us that made us unable to
191 * handle the page fault gracefully. 191 * handle the page fault gracefully.
192 */ 192 */
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 3796be67cd53..631712562656 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -6,6 +6,7 @@
6 * changed by Philipp Rumpf 6 * changed by Philipp Rumpf
7 * Copyright 1999 Philipp Rumpf (prumpf@tux.org) 7 * Copyright 1999 Philipp Rumpf (prumpf@tux.org)
8 * Copyright 2004 Randolph Chung (tausq@debian.org) 8 * Copyright 2004 Randolph Chung (tausq@debian.org)
9 * Copyright 2006 Helge Deller (deller@gmx.de)
9 * 10 *
10 */ 11 */
11 12
@@ -371,8 +372,8 @@ static void __init setup_bootmem(void)
371 372
372void free_initmem(void) 373void free_initmem(void)
373{ 374{
374 unsigned long addr; 375 unsigned long addr, init_begin, init_end;
375 376
376 printk(KERN_INFO "Freeing unused kernel memory: "); 377 printk(KERN_INFO "Freeing unused kernel memory: ");
377 378
378#ifdef CONFIG_DEBUG_KERNEL 379#ifdef CONFIG_DEBUG_KERNEL
@@ -395,8 +396,11 @@ void free_initmem(void)
395 local_irq_enable(); 396 local_irq_enable();
396#endif 397#endif
397 398
398 addr = (unsigned long)(&__init_begin); 399 /* align __init_begin and __init_end to page size,
399 for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) { 400 ignoring linker script where we might have tried to save RAM */
401 init_begin = PAGE_ALIGN((unsigned long)(&__init_begin));
402 init_end = PAGE_ALIGN((unsigned long)(&__init_end));
403 for (addr = init_begin; addr < init_end; addr += PAGE_SIZE) {
400 ClearPageReserved(virt_to_page(addr)); 404 ClearPageReserved(virt_to_page(addr));
401 init_page_count(virt_to_page(addr)); 405 init_page_count(virt_to_page(addr));
402 free_page(addr); 406 free_page(addr);
@@ -407,7 +411,7 @@ void free_initmem(void)
407 /* set up a new led state on systems shipped LED State panel */ 411 /* set up a new led state on systems shipped LED State panel */
408 pdc_chassis_send_status(PDC_CHASSIS_DIRECT_BCOMPLETE); 412 pdc_chassis_send_status(PDC_CHASSIS_DIRECT_BCOMPLETE);
409 413
410 printk("%luk freed\n", (unsigned long)(&__init_end - &__init_begin) >> 10); 414 printk("%luk freed\n", (init_end - init_begin) >> 10);
411} 415}
412 416
413 417
@@ -639,11 +643,13 @@ static void __init map_pages(unsigned long start_vaddr, unsigned long start_padd
639 * Map the fault vector writable so we can 643 * Map the fault vector writable so we can
640 * write the HPMC checksum. 644 * write the HPMC checksum.
641 */ 645 */
646#if defined(CONFIG_PARISC_PAGE_SIZE_4KB)
642 if (address >= ro_start && address < ro_end 647 if (address >= ro_start && address < ro_end
643 && address != fv_addr 648 && address != fv_addr
644 && address != gw_addr) 649 && address != gw_addr)
645 pte = __mk_pte(address, PAGE_KERNEL_RO); 650 pte = __mk_pte(address, PAGE_KERNEL_RO);
646 else 651 else
652#endif
647 pte = __mk_pte(address, pgprot); 653 pte = __mk_pte(address, pgprot);
648 654
649 if (address >= end_paddr) 655 if (address >= end_paddr)
@@ -874,8 +880,7 @@ unsigned long alloc_sid(void)
874 flush_tlb_all(); /* flush_tlb_all() calls recycle_sids() */ 880 flush_tlb_all(); /* flush_tlb_all() calls recycle_sids() */
875 spin_lock(&sid_lock); 881 spin_lock(&sid_lock);
876 } 882 }
877 if (free_space_ids == 0) 883 BUG_ON(free_space_ids == 0);
878 BUG();
879 } 884 }
880 885
881 free_space_ids--; 886 free_space_ids--;
@@ -899,8 +904,7 @@ void free_sid(unsigned long spaceid)
899 904
900 spin_lock(&sid_lock); 905 spin_lock(&sid_lock);
901 906
902 if (*dirty_space_offset & (1L << index)) 907 BUG_ON(*dirty_space_offset & (1L << index)); /* attempt to free space id twice */
903 BUG(); /* attempt to free space id twice */
904 908
905 *dirty_space_offset |= (1L << index); 909 *dirty_space_offset |= (1L << index);
906 dirty_space_ids++; 910 dirty_space_ids++;
@@ -975,7 +979,7 @@ static void recycle_sids(void)
975 979
976static unsigned long recycle_ndirty; 980static unsigned long recycle_ndirty;
977static unsigned long recycle_dirty_array[SID_ARRAY_SIZE]; 981static unsigned long recycle_dirty_array[SID_ARRAY_SIZE];
978static unsigned int recycle_inuse = 0; 982static unsigned int recycle_inuse;
979 983
980void flush_tlb_all(void) 984void flush_tlb_all(void)
981{ 985{
@@ -984,9 +988,7 @@ void flush_tlb_all(void)
984 do_recycle = 0; 988 do_recycle = 0;
985 spin_lock(&sid_lock); 989 spin_lock(&sid_lock);
986 if (dirty_space_ids > RECYCLE_THRESHOLD) { 990 if (dirty_space_ids > RECYCLE_THRESHOLD) {
987 if (recycle_inuse) { 991 BUG_ON(recycle_inuse); /* FIXME: Use a semaphore/wait queue here */
988 BUG(); /* FIXME: Use a semaphore/wait queue here */
989 }
990 get_dirty_sids(&recycle_ndirty,recycle_dirty_array); 992 get_dirty_sids(&recycle_ndirty,recycle_dirty_array);
991 recycle_inuse++; 993 recycle_inuse++;
992 do_recycle++; 994 do_recycle++;
diff --git a/arch/parisc/mm/ioremap.c b/arch/parisc/mm/ioremap.c
index 0db12818d7bc..27384567a1d0 100644
--- a/arch/parisc/mm/ioremap.c
+++ b/arch/parisc/mm/ioremap.c
@@ -2,7 +2,7 @@
2 * arch/parisc/mm/ioremap.c 2 * arch/parisc/mm/ioremap.c
3 * 3 *
4 * (C) Copyright 1995 1996 Linus Torvalds 4 * (C) Copyright 1995 1996 Linus Torvalds
5 * (C) Copyright 2001 Helge Deller <deller@gmx.de> 5 * (C) Copyright 2001-2006 Helge Deller <deller@gmx.de>
6 * (C) Copyright 2005 Kyle McMartin <kyle@parisc-linux.org> 6 * (C) Copyright 2005 Kyle McMartin <kyle@parisc-linux.org>
7 */ 7 */
8 8
@@ -138,6 +138,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l
138 if ((phys_addr >= 0x00080000 && end < 0x000fffff) || 138 if ((phys_addr >= 0x00080000 && end < 0x000fffff) ||
139 (phys_addr >= 0x00500000 && end < 0x03bfffff)) { 139 (phys_addr >= 0x00500000 && end < 0x03bfffff)) {
140 phys_addr |= F_EXTEND(0xfc000000); 140 phys_addr |= F_EXTEND(0xfc000000);
141 flags |= _PAGE_NO_CACHE;
141 } 142 }
142#endif 143#endif
143 144
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 167e70e95556..6729c98b66f9 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -366,6 +366,7 @@ config PPC_PMAC64
366 select U3_DART 366 select U3_DART
367 select MPIC_BROKEN_U3 367 select MPIC_BROKEN_U3
368 select GENERIC_TBSYNC 368 select GENERIC_TBSYNC
369 select PPC_970_NAP
369 default y 370 default y
370 371
371config PPC_PREP 372config PPC_PREP
@@ -383,6 +384,7 @@ config PPC_MAPLE
383 select MPIC_BROKEN_U3 384 select MPIC_BROKEN_U3
384 select GENERIC_TBSYNC 385 select GENERIC_TBSYNC
385 select PPC_UDBG_16550 386 select PPC_UDBG_16550
387 select PPC_970_NAP
386 default n 388 default n
387 help 389 help
388 This option enables support for the Maple 970FX Evaluation Board. 390 This option enables support for the Maple 970FX Evaluation Board.
@@ -457,6 +459,10 @@ config PPC_MPC106
457 bool 459 bool
458 default n 460 default n
459 461
462config PPC_970_NAP
463 bool
464 default n
465
460source "drivers/cpufreq/Kconfig" 466source "drivers/cpufreq/Kconfig"
461 467
462config CPU_FREQ_PMAC 468config CPU_FREQ_PMAC
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 6ec84d37a337..ed5b26aa8be3 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -104,6 +104,10 @@ ifndef CONFIG_FSL_BOOKE
104CFLAGS += -mstring 104CFLAGS += -mstring
105endif 105endif
106 106
107ifeq ($(CONFIG_6xx),y)
108CFLAGS += -mcpu=powerpc
109endif
110
107cpu-as-$(CONFIG_PPC64BRIDGE) += -Wa,-mppc64bridge 111cpu-as-$(CONFIG_PPC64BRIDGE) += -Wa,-mppc64bridge
108cpu-as-$(CONFIG_4xx) += -Wa,-m405 112cpu-as-$(CONFIG_4xx) += -Wa,-m405
109cpu-as-$(CONFIG_6xx) += -Wa,-maltivec 113cpu-as-$(CONFIG_6xx) += -Wa,-maltivec
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index fe22e54ab2b0..dbe421dc3c11 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -9,6 +9,7 @@ CONFIG_PPC_MERGE=y
9CONFIG_MMU=y 9CONFIG_MMU=y
10CONFIG_GENERIC_HARDIRQS=y 10CONFIG_GENERIC_HARDIRQS=y
11CONFIG_RWSEM_XCHGADD_ALGORITHM=y 11CONFIG_RWSEM_XCHGADD_ALGORITHM=y
12CONFIG_GENERIC_HWEIGHT=y
12CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
13CONFIG_PPC=y 14CONFIG_PPC=y
14CONFIG_EARLY_PRINTK=y 15CONFIG_EARLY_PRINTK=y
@@ -55,6 +56,7 @@ CONFIG_SYSCTL=y
55CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
56CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
57# CONFIG_CPUSETS is not set 58# CONFIG_CPUSETS is not set
59# CONFIG_RELAY is not set
58CONFIG_INITRAMFS_SOURCE="" 60CONFIG_INITRAMFS_SOURCE=""
59CONFIG_CC_OPTIMIZE_FOR_SIZE=y 61CONFIG_CC_OPTIMIZE_FOR_SIZE=y
60# CONFIG_EMBEDDED is not set 62# CONFIG_EMBEDDED is not set
@@ -69,10 +71,6 @@ CONFIG_BASE_FULL=y
69CONFIG_FUTEX=y 71CONFIG_FUTEX=y
70CONFIG_EPOLL=y 72CONFIG_EPOLL=y
71CONFIG_SHMEM=y 73CONFIG_SHMEM=y
72CONFIG_CC_ALIGN_FUNCTIONS=0
73CONFIG_CC_ALIGN_LABELS=0
74CONFIG_CC_ALIGN_LOOPS=0
75CONFIG_CC_ALIGN_JUMPS=0
76CONFIG_SLAB=y 74CONFIG_SLAB=y
77# CONFIG_TINY_SHMEM is not set 75# CONFIG_TINY_SHMEM is not set
78CONFIG_BASE_SMALL=0 76CONFIG_BASE_SMALL=0
@@ -84,7 +82,6 @@ CONFIG_BASE_SMALL=0
84CONFIG_MODULES=y 82CONFIG_MODULES=y
85CONFIG_MODULE_UNLOAD=y 83CONFIG_MODULE_UNLOAD=y
86# CONFIG_MODULE_FORCE_UNLOAD is not set 84# CONFIG_MODULE_FORCE_UNLOAD is not set
87CONFIG_OBSOLETE_MODPARM=y
88# CONFIG_MODVERSIONS is not set 85# CONFIG_MODVERSIONS is not set
89# CONFIG_MODULE_SRCVERSION_ALL is not set 86# CONFIG_MODULE_SRCVERSION_ALL is not set
90CONFIG_KMOD=y 87CONFIG_KMOD=y
@@ -93,6 +90,7 @@ CONFIG_STOP_MACHINE=y
93# 90#
94# Block layer 91# Block layer
95# 92#
93# CONFIG_BLK_DEV_IO_TRACE is not set
96 94
97# 95#
98# IO Schedulers 96# IO Schedulers
@@ -126,6 +124,7 @@ CONFIG_RTAS_FLASH=y
126CONFIG_MMIO_NVRAM=y 124CONFIG_MMIO_NVRAM=y
127CONFIG_CELL_IIC=y 125CONFIG_CELL_IIC=y
128# CONFIG_PPC_MPC106 is not set 126# CONFIG_PPC_MPC106 is not set
127# CONFIG_PPC_970_NAP is not set
129# CONFIG_CPU_FREQ is not set 128# CONFIG_CPU_FREQ is not set
130# CONFIG_WANT_EARLY_SERIAL is not set 129# CONFIG_WANT_EARLY_SERIAL is not set
131 130
@@ -167,7 +166,6 @@ CONFIG_HAVE_MEMORY_PRESENT=y
167CONFIG_SPARSEMEM_EXTREME=y 166CONFIG_SPARSEMEM_EXTREME=y
168# CONFIG_MEMORY_HOTPLUG is not set 167# CONFIG_MEMORY_HOTPLUG is not set
169CONFIG_SPLIT_PTLOCK_CPUS=4 168CONFIG_SPLIT_PTLOCK_CPUS=4
170CONFIG_MIGRATION=y
171# CONFIG_PPC_64K_PAGES is not set 169# CONFIG_PPC_64K_PAGES is not set
172CONFIG_SCHED_SMT=y 170CONFIG_SCHED_SMT=y
173CONFIG_PROC_DEVICETREE=y 171CONFIG_PROC_DEVICETREE=y
@@ -184,7 +182,6 @@ CONFIG_GENERIC_ISA_DMA=y
184# CONFIG_PPC_INDIRECT_PCI is not set 182# CONFIG_PPC_INDIRECT_PCI is not set
185CONFIG_PCI=y 183CONFIG_PCI=y
186CONFIG_PCI_DOMAINS=y 184CONFIG_PCI_DOMAINS=y
187CONFIG_PCI_LEGACY_PROC=y
188# CONFIG_PCI_DEBUG is not set 185# CONFIG_PCI_DEBUG is not set
189 186
190# 187#
@@ -226,6 +223,7 @@ CONFIG_SYN_COOKIES=y
226# CONFIG_INET_AH is not set 223# CONFIG_INET_AH is not set
227# CONFIG_INET_ESP is not set 224# CONFIG_INET_ESP is not set
228# CONFIG_INET_IPCOMP is not set 225# CONFIG_INET_IPCOMP is not set
226# CONFIG_INET_XFRM_TUNNEL is not set
229CONFIG_INET_TUNNEL=y 227CONFIG_INET_TUNNEL=y
230CONFIG_INET_DIAG=y 228CONFIG_INET_DIAG=y
231CONFIG_INET_TCP_DIAG=y 229CONFIG_INET_TCP_DIAG=y
@@ -242,6 +240,7 @@ CONFIG_IPV6=y
242CONFIG_INET6_AH=m 240CONFIG_INET6_AH=m
243CONFIG_INET6_ESP=m 241CONFIG_INET6_ESP=m
244CONFIG_INET6_IPCOMP=m 242CONFIG_INET6_IPCOMP=m
243CONFIG_INET6_XFRM_TUNNEL=m
245CONFIG_INET6_TUNNEL=m 244CONFIG_INET6_TUNNEL=m
246CONFIG_IPV6_TUNNEL=m 245CONFIG_IPV6_TUNNEL=m
247CONFIG_NETFILTER=y 246CONFIG_NETFILTER=y
@@ -632,6 +631,7 @@ CONFIG_SERIAL_NONSTANDARD=y
632# 631#
633CONFIG_SERIAL_8250=y 632CONFIG_SERIAL_8250=y
634CONFIG_SERIAL_8250_CONSOLE=y 633CONFIG_SERIAL_8250_CONSOLE=y
634CONFIG_SERIAL_8250_PCI=y
635CONFIG_SERIAL_8250_NR_UARTS=4 635CONFIG_SERIAL_8250_NR_UARTS=4
636CONFIG_SERIAL_8250_RUNTIME_UARTS=4 636CONFIG_SERIAL_8250_RUNTIME_UARTS=4
637# CONFIG_SERIAL_8250_EXTENDED is not set 637# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -717,7 +717,6 @@ CONFIG_I2C_ALGOBIT=y
717# CONFIG_I2C_PARPORT_LIGHT is not set 717# CONFIG_I2C_PARPORT_LIGHT is not set
718# CONFIG_I2C_PROSAVAGE is not set 718# CONFIG_I2C_PROSAVAGE is not set
719# CONFIG_I2C_SAVAGE4 is not set 719# CONFIG_I2C_SAVAGE4 is not set
720# CONFIG_SCx200_ACB is not set
721# CONFIG_I2C_SIS5595 is not set 720# CONFIG_I2C_SIS5595 is not set
722# CONFIG_I2C_SIS630 is not set 721# CONFIG_I2C_SIS630 is not set
723# CONFIG_I2C_SIS96X is not set 722# CONFIG_I2C_SIS96X is not set
@@ -736,9 +735,7 @@ CONFIG_I2C_ALGOBIT=y
736# CONFIG_SENSORS_PCF8574 is not set 735# CONFIG_SENSORS_PCF8574 is not set
737# CONFIG_SENSORS_PCA9539 is not set 736# CONFIG_SENSORS_PCA9539 is not set
738# CONFIG_SENSORS_PCF8591 is not set 737# CONFIG_SENSORS_PCF8591 is not set
739# CONFIG_SENSORS_RTC8564 is not set
740# CONFIG_SENSORS_MAX6875 is not set 738# CONFIG_SENSORS_MAX6875 is not set
741# CONFIG_RTC_X1205_I2C is not set
742# CONFIG_I2C_DEBUG_CORE is not set 739# CONFIG_I2C_DEBUG_CORE is not set
743# CONFIG_I2C_DEBUG_ALGO is not set 740# CONFIG_I2C_DEBUG_ALGO is not set
744# CONFIG_I2C_DEBUG_BUS is not set 741# CONFIG_I2C_DEBUG_BUS is not set
@@ -766,10 +763,6 @@ CONFIG_I2C_ALGOBIT=y
766# 763#
767 764
768# 765#
769# Multimedia Capabilities Port drivers
770#
771
772#
773# Multimedia devices 766# Multimedia devices
774# 767#
775# CONFIG_VIDEO_DEV is not set 768# CONFIG_VIDEO_DEV is not set
@@ -818,6 +811,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
818# CONFIG_MMC is not set 811# CONFIG_MMC is not set
819 812
820# 813#
814# LED devices
815#
816# CONFIG_NEW_LEDS is not set
817
818#
819# LED drivers
820#
821
822#
823# LED Triggers
824#
825
826#
821# InfiniBand support 827# InfiniBand support
822# 828#
823CONFIG_INFINIBAND=y 829CONFIG_INFINIBAND=y
@@ -834,6 +840,11 @@ CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
834# 840#
835 841
836# 842#
843# Real Time Clock
844#
845# CONFIG_RTC_CLASS is not set
846
847#
837# File systems 848# File systems
838# 849#
839CONFIG_EXT2_FS=y 850CONFIG_EXT2_FS=y
@@ -889,7 +900,6 @@ CONFIG_TMPFS=y
889CONFIG_HUGETLBFS=y 900CONFIG_HUGETLBFS=y
890CONFIG_HUGETLB_PAGE=y 901CONFIG_HUGETLB_PAGE=y
891CONFIG_RAMFS=y 902CONFIG_RAMFS=y
892# CONFIG_RELAYFS_FS is not set
893# CONFIG_CONFIGFS_FS is not set 903# CONFIG_CONFIGFS_FS is not set
894 904
895# 905#
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index 2c3fd2007676..a45627547d03 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_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.16-rc2 3# Linux kernel version: 2.6.17-rc1
4# Fri Feb 10 17:33:08 2006 4# Wed Apr 19 13:24:37 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -9,6 +9,7 @@ CONFIG_PPC_MERGE=y
9CONFIG_MMU=y 9CONFIG_MMU=y
10CONFIG_GENERIC_HARDIRQS=y 10CONFIG_GENERIC_HARDIRQS=y
11CONFIG_RWSEM_XCHGADD_ALGORITHM=y 11CONFIG_RWSEM_XCHGADD_ALGORITHM=y
12CONFIG_GENERIC_HWEIGHT=y
12CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
13CONFIG_PPC=y 14CONFIG_PPC=y
14CONFIG_EARLY_PRINTK=y 15CONFIG_EARLY_PRINTK=y
@@ -29,6 +30,7 @@ CONFIG_POWER4=y
29CONFIG_PPC_FPU=y 30CONFIG_PPC_FPU=y
30CONFIG_ALTIVEC=y 31CONFIG_ALTIVEC=y
31CONFIG_PPC_STD_MMU=y 32CONFIG_PPC_STD_MMU=y
33CONFIG_VIRT_CPU_ACCOUNTING=y
32CONFIG_SMP=y 34CONFIG_SMP=y
33CONFIG_NR_CPUS=4 35CONFIG_NR_CPUS=4
34 36
@@ -53,6 +55,7 @@ CONFIG_SYSCTL=y
53CONFIG_IKCONFIG=y 55CONFIG_IKCONFIG=y
54CONFIG_IKCONFIG_PROC=y 56CONFIG_IKCONFIG_PROC=y
55# CONFIG_CPUSETS is not set 57# CONFIG_CPUSETS is not set
58# CONFIG_RELAY is not set
56CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
57CONFIG_CC_OPTIMIZE_FOR_SIZE=y 60CONFIG_CC_OPTIMIZE_FOR_SIZE=y
58# CONFIG_EMBEDDED is not set 61# CONFIG_EMBEDDED is not set
@@ -67,10 +70,6 @@ CONFIG_BASE_FULL=y
67CONFIG_FUTEX=y 70CONFIG_FUTEX=y
68CONFIG_EPOLL=y 71CONFIG_EPOLL=y
69CONFIG_SHMEM=y 72CONFIG_SHMEM=y
70CONFIG_CC_ALIGN_FUNCTIONS=0
71CONFIG_CC_ALIGN_LABELS=0
72CONFIG_CC_ALIGN_LOOPS=0
73CONFIG_CC_ALIGN_JUMPS=0
74CONFIG_SLAB=y 73CONFIG_SLAB=y
75# CONFIG_TINY_SHMEM is not set 74# CONFIG_TINY_SHMEM is not set
76CONFIG_BASE_SMALL=0 75CONFIG_BASE_SMALL=0
@@ -82,7 +81,6 @@ CONFIG_BASE_SMALL=0
82CONFIG_MODULES=y 81CONFIG_MODULES=y
83CONFIG_MODULE_UNLOAD=y 82CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 83# CONFIG_MODULE_FORCE_UNLOAD is not set
85CONFIG_OBSOLETE_MODPARM=y
86CONFIG_MODVERSIONS=y 84CONFIG_MODVERSIONS=y
87CONFIG_MODULE_SRCVERSION_ALL=y 85CONFIG_MODULE_SRCVERSION_ALL=y
88CONFIG_KMOD=y 86CONFIG_KMOD=y
@@ -91,6 +89,7 @@ CONFIG_STOP_MACHINE=y
91# 89#
92# Block layer 90# Block layer
93# 91#
92# CONFIG_BLK_DEV_IO_TRACE is not set
94 93
95# 94#
96# IO Schedulers 95# IO Schedulers
@@ -185,7 +184,6 @@ CONFIG_GENERIC_ISA_DMA=y
185# CONFIG_PPC_INDIRECT_PCI is not set 184# CONFIG_PPC_INDIRECT_PCI is not set
186CONFIG_PCI=y 185CONFIG_PCI=y
187CONFIG_PCI_DOMAINS=y 186CONFIG_PCI_DOMAINS=y
188CONFIG_PCI_LEGACY_PROC=y
189# CONFIG_PCI_DEBUG is not set 187# CONFIG_PCI_DEBUG is not set
190 188
191# 189#
@@ -227,6 +225,7 @@ CONFIG_SYN_COOKIES=y
227CONFIG_INET_AH=m 225CONFIG_INET_AH=m
228CONFIG_INET_ESP=m 226CONFIG_INET_ESP=m
229CONFIG_INET_IPCOMP=m 227CONFIG_INET_IPCOMP=m
228CONFIG_INET_XFRM_TUNNEL=m
230CONFIG_INET_TUNNEL=y 229CONFIG_INET_TUNNEL=y
231CONFIG_INET_DIAG=y 230CONFIG_INET_DIAG=y
232CONFIG_INET_TCP_DIAG=y 231CONFIG_INET_TCP_DIAG=y
@@ -238,6 +237,8 @@ CONFIG_TCP_CONG_BIC=y
238# 237#
239# CONFIG_IP_VS is not set 238# CONFIG_IP_VS is not set
240# CONFIG_IPV6 is not set 239# CONFIG_IPV6 is not set
240# CONFIG_INET6_XFRM_TUNNEL is not set
241# CONFIG_INET6_TUNNEL is not set
241CONFIG_NETFILTER=y 242CONFIG_NETFILTER=y
242# CONFIG_NETFILTER_DEBUG is not set 243# CONFIG_NETFILTER_DEBUG is not set
243 244
@@ -261,6 +262,7 @@ CONFIG_IP_NF_IRC=m
261CONFIG_IP_NF_TFTP=m 262CONFIG_IP_NF_TFTP=m
262CONFIG_IP_NF_AMANDA=m 263CONFIG_IP_NF_AMANDA=m
263# CONFIG_IP_NF_PPTP is not set 264# CONFIG_IP_NF_PPTP is not set
265# CONFIG_IP_NF_H323 is not set
264CONFIG_IP_NF_QUEUE=m 266CONFIG_IP_NF_QUEUE=m
265 267
266# 268#
@@ -513,6 +515,7 @@ CONFIG_MD_RAID0=y
513CONFIG_MD_RAID1=y 515CONFIG_MD_RAID1=y
514CONFIG_MD_RAID10=m 516CONFIG_MD_RAID10=m
515CONFIG_MD_RAID5=y 517CONFIG_MD_RAID5=y
518# CONFIG_MD_RAID5_RESHAPE is not set
516CONFIG_MD_RAID6=m 519CONFIG_MD_RAID6=m
517CONFIG_MD_MULTIPATH=m 520CONFIG_MD_MULTIPATH=m
518CONFIG_MD_FAULTY=m 521CONFIG_MD_FAULTY=m
@@ -761,7 +764,6 @@ CONFIG_LEGACY_PTY_COUNT=256
761# Watchdog Cards 764# Watchdog Cards
762# 765#
763# CONFIG_WATCHDOG is not set 766# CONFIG_WATCHDOG is not set
764# CONFIG_RTC is not set
765CONFIG_GEN_RTC=y 767CONFIG_GEN_RTC=y
766# CONFIG_GEN_RTC_X is not set 768# CONFIG_GEN_RTC_X is not set
767# CONFIG_DTLK is not set 769# CONFIG_DTLK is not set
@@ -772,6 +774,7 @@ CONFIG_GEN_RTC=y
772# Ftape, the floppy tape device driver 774# Ftape, the floppy tape device driver
773# 775#
774CONFIG_AGP=m 776CONFIG_AGP=m
777# CONFIG_AGP_VIA is not set
775CONFIG_AGP_UNINORTH=m 778CONFIG_AGP_UNINORTH=m
776# CONFIG_DRM is not set 779# CONFIG_DRM is not set
777CONFIG_RAW_DRIVER=y 780CONFIG_RAW_DRIVER=y
@@ -813,7 +816,6 @@ CONFIG_I2C_POWERMAC=y
813# CONFIG_I2C_PARPORT_LIGHT is not set 816# CONFIG_I2C_PARPORT_LIGHT is not set
814# CONFIG_I2C_PROSAVAGE is not set 817# CONFIG_I2C_PROSAVAGE is not set
815# CONFIG_I2C_SAVAGE4 is not set 818# CONFIG_I2C_SAVAGE4 is not set
816# CONFIG_SCx200_ACB is not set
817# CONFIG_I2C_SIS5595 is not set 819# CONFIG_I2C_SIS5595 is not set
818# CONFIG_I2C_SIS630 is not set 820# CONFIG_I2C_SIS630 is not set
819# CONFIG_I2C_SIS96X is not set 821# CONFIG_I2C_SIS96X is not set
@@ -832,9 +834,7 @@ CONFIG_I2C_POWERMAC=y
832# CONFIG_SENSORS_PCF8574 is not set 834# CONFIG_SENSORS_PCF8574 is not set
833# CONFIG_SENSORS_PCA9539 is not set 835# CONFIG_SENSORS_PCA9539 is not set
834# CONFIG_SENSORS_PCF8591 is not set 836# CONFIG_SENSORS_PCF8591 is not set
835# CONFIG_SENSORS_RTC8564 is not set
836# CONFIG_SENSORS_MAX6875 is not set 837# CONFIG_SENSORS_MAX6875 is not set
837# CONFIG_RTC_X1205_I2C is not set
838# CONFIG_I2C_DEBUG_CORE is not set 838# CONFIG_I2C_DEBUG_CORE is not set
839# CONFIG_I2C_DEBUG_ALGO is not set 839# CONFIG_I2C_DEBUG_ALGO is not set
840# CONFIG_I2C_DEBUG_BUS is not set 840# CONFIG_I2C_DEBUG_BUS is not set
@@ -862,10 +862,6 @@ CONFIG_I2C_POWERMAC=y
862# 862#
863 863
864# 864#
865# Multimedia Capabilities Port drivers
866#
867
868#
869# Multimedia devices 865# Multimedia devices
870# 866#
871# CONFIG_VIDEO_DEV is not set 867# CONFIG_VIDEO_DEV is not set
@@ -874,6 +870,7 @@ CONFIG_I2C_POWERMAC=y
874# Digital Video Broadcasting Devices 870# Digital Video Broadcasting Devices
875# 871#
876# CONFIG_DVB is not set 872# CONFIG_DVB is not set
873# CONFIG_USB_DABUSB is not set
877 874
878# 875#
879# Graphics support 876# Graphics support
@@ -883,6 +880,7 @@ CONFIG_FB_CFB_FILLRECT=y
883CONFIG_FB_CFB_COPYAREA=y 880CONFIG_FB_CFB_COPYAREA=y
884CONFIG_FB_CFB_IMAGEBLIT=y 881CONFIG_FB_CFB_IMAGEBLIT=y
885CONFIG_FB_MACMODES=y 882CONFIG_FB_MACMODES=y
883CONFIG_FB_FIRMWARE_EDID=y
886CONFIG_FB_MODE_HELPERS=y 884CONFIG_FB_MODE_HELPERS=y
887CONFIG_FB_TILEBLITTING=y 885CONFIG_FB_TILEBLITTING=y
888# CONFIG_FB_CIRRUS is not set 886# CONFIG_FB_CIRRUS is not set
@@ -901,7 +899,6 @@ CONFIG_FB_NVIDIA=y
901CONFIG_FB_NVIDIA_I2C=y 899CONFIG_FB_NVIDIA_I2C=y
902# CONFIG_FB_RIVA is not set 900# CONFIG_FB_RIVA is not set
903# CONFIG_FB_MATROX is not set 901# CONFIG_FB_MATROX is not set
904# CONFIG_FB_RADEON_OLD is not set
905CONFIG_FB_RADEON=y 902CONFIG_FB_RADEON=y
906CONFIG_FB_RADEON_I2C=y 903CONFIG_FB_RADEON_I2C=y
907# CONFIG_FB_RADEON_DEBUG is not set 904# CONFIG_FB_RADEON_DEBUG is not set
@@ -958,9 +955,11 @@ CONFIG_SND_SEQUENCER=m
958CONFIG_SND_OSSEMUL=y 955CONFIG_SND_OSSEMUL=y
959CONFIG_SND_MIXER_OSS=m 956CONFIG_SND_MIXER_OSS=m
960CONFIG_SND_PCM_OSS=m 957CONFIG_SND_PCM_OSS=m
958CONFIG_SND_PCM_OSS_PLUGINS=y
961CONFIG_SND_SEQUENCER_OSS=y 959CONFIG_SND_SEQUENCER_OSS=y
962# CONFIG_SND_DYNAMIC_MINORS is not set 960# CONFIG_SND_DYNAMIC_MINORS is not set
963CONFIG_SND_SUPPORT_OLD_API=y 961CONFIG_SND_SUPPORT_OLD_API=y
962CONFIG_SND_VERBOSE_PROCFS=y
964# CONFIG_SND_VERBOSE_PRINTK is not set 963# CONFIG_SND_VERBOSE_PRINTK is not set
965# CONFIG_SND_DEBUG is not set 964# CONFIG_SND_DEBUG is not set
966 965
@@ -977,6 +976,7 @@ CONFIG_SND_SUPPORT_OLD_API=y
977# PCI devices 976# PCI devices
978# 977#
979# CONFIG_SND_AD1889 is not set 978# CONFIG_SND_AD1889 is not set
979# CONFIG_SND_ALS300 is not set
980# CONFIG_SND_ALS4000 is not set 980# CONFIG_SND_ALS4000 is not set
981# CONFIG_SND_ALI5451 is not set 981# CONFIG_SND_ALI5451 is not set
982# CONFIG_SND_ATIIXP is not set 982# CONFIG_SND_ATIIXP is not set
@@ -1009,6 +1009,7 @@ CONFIG_SND_SUPPORT_OLD_API=y
1009# CONFIG_SND_MIXART is not set 1009# CONFIG_SND_MIXART is not set
1010# CONFIG_SND_NM256 is not set 1010# CONFIG_SND_NM256 is not set
1011# CONFIG_SND_PCXHR is not set 1011# CONFIG_SND_PCXHR is not set
1012# CONFIG_SND_RIPTIDE is not set
1012# CONFIG_SND_RME32 is not set 1013# CONFIG_SND_RME32 is not set
1013# CONFIG_SND_RME96 is not set 1014# CONFIG_SND_RME96 is not set
1014# CONFIG_SND_RME9652 is not set 1015# CONFIG_SND_RME9652 is not set
@@ -1041,6 +1042,7 @@ CONFIG_SND_USB_AUDIO=m
1041# 1042#
1042CONFIG_USB_ARCH_HAS_HCD=y 1043CONFIG_USB_ARCH_HAS_HCD=y
1043CONFIG_USB_ARCH_HAS_OHCI=y 1044CONFIG_USB_ARCH_HAS_OHCI=y
1045CONFIG_USB_ARCH_HAS_EHCI=y
1044CONFIG_USB=y 1046CONFIG_USB=y
1045# CONFIG_USB_DEBUG is not set 1047# CONFIG_USB_DEBUG is not set
1046 1048
@@ -1068,7 +1070,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1068# 1070#
1069# USB Device Class drivers 1071# USB Device Class drivers
1070# 1072#
1071# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set
1072CONFIG_USB_ACM=m 1073CONFIG_USB_ACM=m
1073CONFIG_USB_PRINTER=y 1074CONFIG_USB_PRINTER=y
1074 1075
@@ -1126,15 +1127,6 @@ CONFIG_USB_HIDDEV=y
1126# CONFIG_USB_MICROTEK is not set 1127# CONFIG_USB_MICROTEK is not set
1127 1128
1128# 1129#
1129# USB Multimedia devices
1130#
1131# CONFIG_USB_DABUSB is not set
1132
1133#
1134# Video4Linux support is needed for USB Multimedia device support
1135#
1136
1137#
1138# USB Network Adapters 1130# USB Network Adapters
1139# 1131#
1140CONFIG_USB_CATC=m 1132CONFIG_USB_CATC=m
@@ -1194,6 +1186,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
1194CONFIG_USB_SERIAL_KLSI=m 1186CONFIG_USB_SERIAL_KLSI=m
1195CONFIG_USB_SERIAL_KOBIL_SCT=m 1187CONFIG_USB_SERIAL_KOBIL_SCT=m
1196CONFIG_USB_SERIAL_MCT_U232=m 1188CONFIG_USB_SERIAL_MCT_U232=m
1189# CONFIG_USB_SERIAL_NAVMAN is not set
1197CONFIG_USB_SERIAL_PL2303=m 1190CONFIG_USB_SERIAL_PL2303=m
1198# CONFIG_USB_SERIAL_HP4X is not set 1191# CONFIG_USB_SERIAL_HP4X is not set
1199CONFIG_USB_SERIAL_SAFE=m 1192CONFIG_USB_SERIAL_SAFE=m
@@ -1237,17 +1230,23 @@ CONFIG_USB_EZUSB=y
1237# CONFIG_MMC is not set 1230# CONFIG_MMC is not set
1238 1231
1239# 1232#
1233# LED devices
1234#
1235# CONFIG_NEW_LEDS is not set
1236
1237#
1240# InfiniBand support 1238# InfiniBand support
1241# 1239#
1242# CONFIG_INFINIBAND is not set 1240# CONFIG_INFINIBAND is not set
1243 1241
1244# 1242#
1245# SN Devices 1243# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1246# 1244#
1247 1245
1248# 1246#
1249# EDAC - error detection and reporting (RAS) 1247# Real Time Clock
1250# 1248#
1249# CONFIG_RTC_CLASS is not set
1251 1250
1252# 1251#
1253# File systems 1252# File systems
@@ -1319,7 +1318,6 @@ CONFIG_TMPFS=y
1319CONFIG_HUGETLBFS=y 1318CONFIG_HUGETLBFS=y
1320CONFIG_HUGETLB_PAGE=y 1319CONFIG_HUGETLB_PAGE=y
1321CONFIG_RAMFS=y 1320CONFIG_RAMFS=y
1322# CONFIG_RELAYFS_FS is not set
1323# CONFIG_CONFIGFS_FS is not set 1321# CONFIG_CONFIGFS_FS is not set
1324 1322
1325# 1323#
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index 1816a46742f6..a95e455a1944 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_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.16-rc6 3# Linux kernel version: 2.6.17-rc1
4# Wed Mar 15 16:19:52 2006 4# Wed Apr 19 11:46:44 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -9,6 +9,7 @@ CONFIG_PPC_MERGE=y
9CONFIG_MMU=y 9CONFIG_MMU=y
10CONFIG_GENERIC_HARDIRQS=y 10CONFIG_GENERIC_HARDIRQS=y
11CONFIG_RWSEM_XCHGADD_ALGORITHM=y 11CONFIG_RWSEM_XCHGADD_ALGORITHM=y
12CONFIG_GENERIC_HWEIGHT=y
12CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
13CONFIG_PPC=y 14CONFIG_PPC=y
14CONFIG_EARLY_PRINTK=y 15CONFIG_EARLY_PRINTK=y
@@ -30,6 +31,7 @@ CONFIG_POWER4=y
30CONFIG_PPC_FPU=y 31CONFIG_PPC_FPU=y
31# CONFIG_ALTIVEC is not set 32# CONFIG_ALTIVEC is not set
32CONFIG_PPC_STD_MMU=y 33CONFIG_PPC_STD_MMU=y
34CONFIG_VIRT_CPU_ACCOUNTING=y
33CONFIG_SMP=y 35CONFIG_SMP=y
34CONFIG_NR_CPUS=32 36CONFIG_NR_CPUS=32
35 37
@@ -55,6 +57,7 @@ CONFIG_AUDITSYSCALL=y
55CONFIG_IKCONFIG=y 57CONFIG_IKCONFIG=y
56CONFIG_IKCONFIG_PROC=y 58CONFIG_IKCONFIG_PROC=y
57# CONFIG_CPUSETS is not set 59# CONFIG_CPUSETS is not set
60# CONFIG_RELAY is not set
58CONFIG_INITRAMFS_SOURCE="" 61CONFIG_INITRAMFS_SOURCE=""
59CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
60# CONFIG_EMBEDDED is not set 63# CONFIG_EMBEDDED is not set
@@ -69,10 +72,6 @@ CONFIG_BASE_FULL=y
69CONFIG_FUTEX=y 72CONFIG_FUTEX=y
70CONFIG_EPOLL=y 73CONFIG_EPOLL=y
71CONFIG_SHMEM=y 74CONFIG_SHMEM=y
72CONFIG_CC_ALIGN_FUNCTIONS=0
73CONFIG_CC_ALIGN_LABELS=0
74CONFIG_CC_ALIGN_LOOPS=0
75CONFIG_CC_ALIGN_JUMPS=0
76CONFIG_SLAB=y 75CONFIG_SLAB=y
77# CONFIG_TINY_SHMEM is not set 76# CONFIG_TINY_SHMEM is not set
78CONFIG_BASE_SMALL=0 77CONFIG_BASE_SMALL=0
@@ -84,7 +83,6 @@ CONFIG_BASE_SMALL=0
84CONFIG_MODULES=y 83CONFIG_MODULES=y
85CONFIG_MODULE_UNLOAD=y 84CONFIG_MODULE_UNLOAD=y
86# CONFIG_MODULE_FORCE_UNLOAD is not set 85# CONFIG_MODULE_FORCE_UNLOAD is not set
87CONFIG_OBSOLETE_MODPARM=y
88CONFIG_MODVERSIONS=y 86CONFIG_MODVERSIONS=y
89CONFIG_MODULE_SRCVERSION_ALL=y 87CONFIG_MODULE_SRCVERSION_ALL=y
90CONFIG_KMOD=y 88CONFIG_KMOD=y
@@ -93,6 +91,7 @@ CONFIG_STOP_MACHINE=y
93# 91#
94# Block layer 92# Block layer
95# 93#
94# CONFIG_BLK_DEV_IO_TRACE is not set
96 95
97# 96#
98# IO Schedulers 97# IO Schedulers
@@ -165,7 +164,6 @@ CONFIG_GENERIC_ISA_DMA=y
165# CONFIG_PPC_INDIRECT_PCI is not set 164# CONFIG_PPC_INDIRECT_PCI is not set
166CONFIG_PCI=y 165CONFIG_PCI=y
167CONFIG_PCI_DOMAINS=y 166CONFIG_PCI_DOMAINS=y
168CONFIG_PCI_LEGACY_PROC=y
169# CONFIG_PCI_DEBUG is not set 167# CONFIG_PCI_DEBUG is not set
170 168
171# 169#
@@ -207,6 +205,7 @@ CONFIG_SYN_COOKIES=y
207CONFIG_INET_AH=m 205CONFIG_INET_AH=m
208CONFIG_INET_ESP=m 206CONFIG_INET_ESP=m
209CONFIG_INET_IPCOMP=m 207CONFIG_INET_IPCOMP=m
208CONFIG_INET_XFRM_TUNNEL=m
210CONFIG_INET_TUNNEL=y 209CONFIG_INET_TUNNEL=y
211CONFIG_INET_DIAG=y 210CONFIG_INET_DIAG=y
212CONFIG_INET_TCP_DIAG=y 211CONFIG_INET_TCP_DIAG=y
@@ -218,6 +217,8 @@ CONFIG_TCP_CONG_BIC=y
218# 217#
219# CONFIG_IP_VS is not set 218# CONFIG_IP_VS is not set
220# CONFIG_IPV6 is not set 219# CONFIG_IPV6 is not set
220# CONFIG_INET6_XFRM_TUNNEL is not set
221# CONFIG_INET6_TUNNEL is not set
221CONFIG_NETFILTER=y 222CONFIG_NETFILTER=y
222# CONFIG_NETFILTER_DEBUG is not set 223# CONFIG_NETFILTER_DEBUG is not set
223 224
@@ -236,11 +237,14 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
236CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 237CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
237CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 238CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
238# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 239# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
240# CONFIG_NETFILTER_XT_MATCH_ESP is not set
239CONFIG_NETFILTER_XT_MATCH_HELPER=m 241CONFIG_NETFILTER_XT_MATCH_HELPER=m
240CONFIG_NETFILTER_XT_MATCH_LENGTH=m 242CONFIG_NETFILTER_XT_MATCH_LENGTH=m
241CONFIG_NETFILTER_XT_MATCH_LIMIT=m 243CONFIG_NETFILTER_XT_MATCH_LIMIT=m
242CONFIG_NETFILTER_XT_MATCH_MAC=m 244CONFIG_NETFILTER_XT_MATCH_MAC=m
243CONFIG_NETFILTER_XT_MATCH_MARK=m 245CONFIG_NETFILTER_XT_MATCH_MARK=m
246# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
247# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
244CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 248CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
245CONFIG_NETFILTER_XT_MATCH_REALM=m 249CONFIG_NETFILTER_XT_MATCH_REALM=m
246CONFIG_NETFILTER_XT_MATCH_SCTP=m 250CONFIG_NETFILTER_XT_MATCH_SCTP=m
@@ -262,20 +266,19 @@ CONFIG_IP_NF_IRC=m
262CONFIG_IP_NF_TFTP=m 266CONFIG_IP_NF_TFTP=m
263CONFIG_IP_NF_AMANDA=m 267CONFIG_IP_NF_AMANDA=m
264# CONFIG_IP_NF_PPTP is not set 268# CONFIG_IP_NF_PPTP is not set
269# CONFIG_IP_NF_H323 is not set
265CONFIG_IP_NF_QUEUE=m 270CONFIG_IP_NF_QUEUE=m
266CONFIG_IP_NF_IPTABLES=m 271CONFIG_IP_NF_IPTABLES=m
267CONFIG_IP_NF_MATCH_IPRANGE=m 272CONFIG_IP_NF_MATCH_IPRANGE=m
268CONFIG_IP_NF_MATCH_MULTIPORT=m
269CONFIG_IP_NF_MATCH_TOS=m 273CONFIG_IP_NF_MATCH_TOS=m
270CONFIG_IP_NF_MATCH_RECENT=m 274CONFIG_IP_NF_MATCH_RECENT=m
271CONFIG_IP_NF_MATCH_ECN=m 275CONFIG_IP_NF_MATCH_ECN=m
272CONFIG_IP_NF_MATCH_DSCP=m 276CONFIG_IP_NF_MATCH_DSCP=m
273CONFIG_IP_NF_MATCH_AH_ESP=m 277# CONFIG_IP_NF_MATCH_AH is not set
274CONFIG_IP_NF_MATCH_TTL=m 278CONFIG_IP_NF_MATCH_TTL=m
275CONFIG_IP_NF_MATCH_OWNER=m 279CONFIG_IP_NF_MATCH_OWNER=m
276CONFIG_IP_NF_MATCH_ADDRTYPE=m 280CONFIG_IP_NF_MATCH_ADDRTYPE=m
277CONFIG_IP_NF_MATCH_HASHLIMIT=m 281CONFIG_IP_NF_MATCH_HASHLIMIT=m
278CONFIG_IP_NF_MATCH_POLICY=m
279CONFIG_IP_NF_FILTER=m 282CONFIG_IP_NF_FILTER=m
280CONFIG_IP_NF_TARGET_REJECT=m 283CONFIG_IP_NF_TARGET_REJECT=m
281CONFIG_IP_NF_TARGET_LOG=m 284CONFIG_IP_NF_TARGET_LOG=m
@@ -479,6 +482,7 @@ CONFIG_MD_RAID0=y
479CONFIG_MD_RAID1=y 482CONFIG_MD_RAID1=y
480CONFIG_MD_RAID10=m 483CONFIG_MD_RAID10=m
481CONFIG_MD_RAID5=y 484CONFIG_MD_RAID5=y
485# CONFIG_MD_RAID5_RESHAPE is not set
482CONFIG_MD_RAID6=m 486CONFIG_MD_RAID6=m
483CONFIG_MD_MULTIPATH=m 487CONFIG_MD_MULTIPATH=m
484CONFIG_MD_FAULTY=m 488CONFIG_MD_FAULTY=m
@@ -702,7 +706,6 @@ CONFIG_LEGACY_PTY_COUNT=256
702# Watchdog Cards 706# Watchdog Cards
703# 707#
704# CONFIG_WATCHDOG is not set 708# CONFIG_WATCHDOG is not set
705# CONFIG_RTC is not set
706CONFIG_GEN_RTC=y 709CONFIG_GEN_RTC=y
707# CONFIG_GEN_RTC_X is not set 710# CONFIG_GEN_RTC_X is not set
708# CONFIG_DTLK is not set 711# CONFIG_DTLK is not set
@@ -751,10 +754,6 @@ CONFIG_MAX_RAW_DEVS=256
751# 754#
752 755
753# 756#
754# Multimedia Capabilities Port drivers
755#
756
757#
758# Multimedia devices 757# Multimedia devices
759# 758#
760# CONFIG_VIDEO_DEV is not set 759# CONFIG_VIDEO_DEV is not set
@@ -779,6 +778,7 @@ CONFIG_MAX_RAW_DEVS=256
779# 778#
780CONFIG_USB_ARCH_HAS_HCD=y 779CONFIG_USB_ARCH_HAS_HCD=y
781CONFIG_USB_ARCH_HAS_OHCI=y 780CONFIG_USB_ARCH_HAS_OHCI=y
781CONFIG_USB_ARCH_HAS_EHCI=y
782# CONFIG_USB is not set 782# CONFIG_USB is not set
783 783
784# 784#
@@ -796,6 +796,11 @@ CONFIG_USB_ARCH_HAS_OHCI=y
796# CONFIG_MMC is not set 796# CONFIG_MMC is not set
797 797
798# 798#
799# LED devices
800#
801# CONFIG_NEW_LEDS is not set
802
803#
799# InfiniBand support 804# InfiniBand support
800# 805#
801# CONFIG_INFINIBAND is not set 806# CONFIG_INFINIBAND is not set
@@ -805,6 +810,11 @@ CONFIG_USB_ARCH_HAS_OHCI=y
805# 810#
806 811
807# 812#
813# Real Time Clock
814#
815# CONFIG_RTC_CLASS is not set
816
817#
808# File systems 818# File systems
809# 819#
810CONFIG_EXT2_FS=y 820CONFIG_EXT2_FS=y
@@ -878,7 +888,6 @@ CONFIG_TMPFS=y
878# CONFIG_HUGETLBFS is not set 888# CONFIG_HUGETLBFS is not set
879# CONFIG_HUGETLB_PAGE is not set 889# CONFIG_HUGETLB_PAGE is not set
880CONFIG_RAMFS=y 890CONFIG_RAMFS=y
881# CONFIG_RELAYFS_FS is not set
882# CONFIG_CONFIGFS_FS is not set 891# CONFIG_CONFIGFS_FS is not set
883 892
884# 893#
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index daaf038a1faa..58e68ce09b0f 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_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.16-rc2 3# Linux kernel version: 2.6.17-rc1
4# Fri Feb 10 17:33:32 2006 4# Wed Apr 19 11:48:00 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -9,6 +9,7 @@ CONFIG_PPC_MERGE=y
9CONFIG_MMU=y 9CONFIG_MMU=y
10CONFIG_GENERIC_HARDIRQS=y 10CONFIG_GENERIC_HARDIRQS=y
11CONFIG_RWSEM_XCHGADD_ALGORITHM=y 11CONFIG_RWSEM_XCHGADD_ALGORITHM=y
12CONFIG_GENERIC_HWEIGHT=y
12CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
13CONFIG_PPC=y 14CONFIG_PPC=y
14CONFIG_EARLY_PRINTK=y 15CONFIG_EARLY_PRINTK=y
@@ -30,6 +31,7 @@ CONFIG_POWER4=y
30CONFIG_PPC_FPU=y 31CONFIG_PPC_FPU=y
31CONFIG_ALTIVEC=y 32CONFIG_ALTIVEC=y
32CONFIG_PPC_STD_MMU=y 33CONFIG_PPC_STD_MMU=y
34CONFIG_VIRT_CPU_ACCOUNTING=y
33CONFIG_SMP=y 35CONFIG_SMP=y
34CONFIG_NR_CPUS=128 36CONFIG_NR_CPUS=128
35 37
@@ -55,6 +57,7 @@ CONFIG_AUDITSYSCALL=y
55CONFIG_IKCONFIG=y 57CONFIG_IKCONFIG=y
56CONFIG_IKCONFIG_PROC=y 58CONFIG_IKCONFIG_PROC=y
57CONFIG_CPUSETS=y 59CONFIG_CPUSETS=y
60# CONFIG_RELAY is not set
58CONFIG_INITRAMFS_SOURCE="" 61CONFIG_INITRAMFS_SOURCE=""
59CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
60# CONFIG_EMBEDDED is not set 63# CONFIG_EMBEDDED is not set
@@ -69,10 +72,6 @@ CONFIG_BASE_FULL=y
69CONFIG_FUTEX=y 72CONFIG_FUTEX=y
70CONFIG_EPOLL=y 73CONFIG_EPOLL=y
71CONFIG_SHMEM=y 74CONFIG_SHMEM=y
72CONFIG_CC_ALIGN_FUNCTIONS=0
73CONFIG_CC_ALIGN_LABELS=0
74CONFIG_CC_ALIGN_LOOPS=0
75CONFIG_CC_ALIGN_JUMPS=0
76CONFIG_SLAB=y 75CONFIG_SLAB=y
77# CONFIG_TINY_SHMEM is not set 76# CONFIG_TINY_SHMEM is not set
78CONFIG_BASE_SMALL=0 77CONFIG_BASE_SMALL=0
@@ -84,7 +83,6 @@ CONFIG_BASE_SMALL=0
84CONFIG_MODULES=y 83CONFIG_MODULES=y
85CONFIG_MODULE_UNLOAD=y 84CONFIG_MODULE_UNLOAD=y
86# CONFIG_MODULE_FORCE_UNLOAD is not set 85# CONFIG_MODULE_FORCE_UNLOAD is not set
87CONFIG_OBSOLETE_MODPARM=y
88CONFIG_MODVERSIONS=y 86CONFIG_MODVERSIONS=y
89CONFIG_MODULE_SRCVERSION_ALL=y 87CONFIG_MODULE_SRCVERSION_ALL=y
90CONFIG_KMOD=y 88CONFIG_KMOD=y
@@ -93,6 +91,7 @@ CONFIG_STOP_MACHINE=y
93# 91#
94# Block layer 92# Block layer
95# 93#
94# CONFIG_BLK_DEV_IO_TRACE is not set
96 95
97# 96#
98# IO Schedulers 97# IO Schedulers
@@ -188,7 +187,6 @@ CONFIG_PPC_I8259=y
188# CONFIG_PPC_INDIRECT_PCI is not set 187# CONFIG_PPC_INDIRECT_PCI is not set
189CONFIG_PCI=y 188CONFIG_PCI=y
190CONFIG_PCI_DOMAINS=y 189CONFIG_PCI_DOMAINS=y
191CONFIG_PCI_LEGACY_PROC=y
192# CONFIG_PCI_DEBUG is not set 190# CONFIG_PCI_DEBUG is not set
193 191
194# 192#
@@ -235,6 +233,7 @@ CONFIG_SYN_COOKIES=y
235CONFIG_INET_AH=m 233CONFIG_INET_AH=m
236CONFIG_INET_ESP=m 234CONFIG_INET_ESP=m
237CONFIG_INET_IPCOMP=m 235CONFIG_INET_IPCOMP=m
236CONFIG_INET_XFRM_TUNNEL=m
238CONFIG_INET_TUNNEL=y 237CONFIG_INET_TUNNEL=y
239CONFIG_INET_DIAG=y 238CONFIG_INET_DIAG=y
240CONFIG_INET_TCP_DIAG=y 239CONFIG_INET_TCP_DIAG=y
@@ -246,6 +245,8 @@ CONFIG_TCP_CONG_BIC=y
246# 245#
247# CONFIG_IP_VS is not set 246# CONFIG_IP_VS is not set
248# CONFIG_IPV6 is not set 247# CONFIG_IPV6 is not set
248# CONFIG_INET6_XFRM_TUNNEL is not set
249# CONFIG_INET6_TUNNEL is not set
249CONFIG_NETFILTER=y 250CONFIG_NETFILTER=y
250# CONFIG_NETFILTER_DEBUG is not set 251# CONFIG_NETFILTER_DEBUG is not set
251 252
@@ -272,6 +273,7 @@ CONFIG_IP_NF_IRC=m
272CONFIG_IP_NF_TFTP=m 273CONFIG_IP_NF_TFTP=m
273CONFIG_IP_NF_AMANDA=m 274CONFIG_IP_NF_AMANDA=m
274# CONFIG_IP_NF_PPTP is not set 275# CONFIG_IP_NF_PPTP is not set
276# CONFIG_IP_NF_H323 is not set
275CONFIG_IP_NF_QUEUE=m 277CONFIG_IP_NF_QUEUE=m
276 278
277# 279#
@@ -519,6 +521,7 @@ CONFIG_MD_RAID0=y
519CONFIG_MD_RAID1=y 521CONFIG_MD_RAID1=y
520CONFIG_MD_RAID10=m 522CONFIG_MD_RAID10=m
521CONFIG_MD_RAID5=y 523CONFIG_MD_RAID5=y
524# CONFIG_MD_RAID5_RESHAPE is not set
522CONFIG_MD_RAID6=m 525CONFIG_MD_RAID6=m
523CONFIG_MD_MULTIPATH=m 526CONFIG_MD_MULTIPATH=m
524CONFIG_MD_FAULTY=m 527CONFIG_MD_FAULTY=m
@@ -750,6 +753,7 @@ CONFIG_HW_CONSOLE=y
750# 753#
751CONFIG_SERIAL_8250=y 754CONFIG_SERIAL_8250=y
752CONFIG_SERIAL_8250_CONSOLE=y 755CONFIG_SERIAL_8250_CONSOLE=y
756CONFIG_SERIAL_8250_PCI=y
753CONFIG_SERIAL_8250_NR_UARTS=4 757CONFIG_SERIAL_8250_NR_UARTS=4
754CONFIG_SERIAL_8250_RUNTIME_UARTS=4 758CONFIG_SERIAL_8250_RUNTIME_UARTS=4
755# CONFIG_SERIAL_8250_EXTENDED is not set 759# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -767,7 +771,9 @@ CONFIG_LEGACY_PTY_COUNT=256
767# CONFIG_PRINTER is not set 771# CONFIG_PRINTER is not set
768# CONFIG_PPDEV is not set 772# CONFIG_PPDEV is not set
769# CONFIG_TIPAR is not set 773# CONFIG_TIPAR is not set
774CONFIG_HVC_DRIVER=y
770CONFIG_HVC_CONSOLE=y 775CONFIG_HVC_CONSOLE=y
776# CONFIG_HVC_RTAS is not set
771CONFIG_HVCS=m 777CONFIG_HVCS=m
772 778
773# 779#
@@ -779,7 +785,6 @@ CONFIG_HVCS=m
779# Watchdog Cards 785# Watchdog Cards
780# 786#
781# CONFIG_WATCHDOG is not set 787# CONFIG_WATCHDOG is not set
782# CONFIG_RTC is not set
783CONFIG_GEN_RTC=y 788CONFIG_GEN_RTC=y
784# CONFIG_GEN_RTC_X is not set 789# CONFIG_GEN_RTC_X is not set
785# CONFIG_DTLK is not set 790# CONFIG_DTLK is not set
@@ -830,7 +835,6 @@ CONFIG_I2C_ALGOBIT=y
830# CONFIG_I2C_PARPORT_LIGHT is not set 835# CONFIG_I2C_PARPORT_LIGHT is not set
831# CONFIG_I2C_PROSAVAGE is not set 836# CONFIG_I2C_PROSAVAGE is not set
832# CONFIG_I2C_SAVAGE4 is not set 837# CONFIG_I2C_SAVAGE4 is not set
833# CONFIG_SCx200_ACB is not set
834# CONFIG_I2C_SIS5595 is not set 838# CONFIG_I2C_SIS5595 is not set
835# CONFIG_I2C_SIS630 is not set 839# CONFIG_I2C_SIS630 is not set
836# CONFIG_I2C_SIS96X is not set 840# CONFIG_I2C_SIS96X is not set
@@ -849,9 +853,7 @@ CONFIG_I2C_ALGOBIT=y
849# CONFIG_SENSORS_PCF8574 is not set 853# CONFIG_SENSORS_PCF8574 is not set
850# CONFIG_SENSORS_PCA9539 is not set 854# CONFIG_SENSORS_PCA9539 is not set
851# CONFIG_SENSORS_PCF8591 is not set 855# CONFIG_SENSORS_PCF8591 is not set
852# CONFIG_SENSORS_RTC8564 is not set
853# CONFIG_SENSORS_MAX6875 is not set 856# CONFIG_SENSORS_MAX6875 is not set
854# CONFIG_RTC_X1205_I2C is not set
855# CONFIG_I2C_DEBUG_CORE is not set 857# CONFIG_I2C_DEBUG_CORE is not set
856# CONFIG_I2C_DEBUG_ALGO is not set 858# CONFIG_I2C_DEBUG_ALGO is not set
857# CONFIG_I2C_DEBUG_BUS is not set 859# CONFIG_I2C_DEBUG_BUS is not set
@@ -879,10 +881,6 @@ CONFIG_I2C_ALGOBIT=y
879# 881#
880 882
881# 883#
882# Multimedia Capabilities Port drivers
883#
884
885#
886# Multimedia devices 884# Multimedia devices
887# 885#
888# CONFIG_VIDEO_DEV is not set 886# CONFIG_VIDEO_DEV is not set
@@ -891,6 +889,7 @@ CONFIG_I2C_ALGOBIT=y
891# Digital Video Broadcasting Devices 889# Digital Video Broadcasting Devices
892# 890#
893# CONFIG_DVB is not set 891# CONFIG_DVB is not set
892# CONFIG_USB_DABUSB is not set
894 893
895# 894#
896# Graphics support 895# Graphics support
@@ -900,6 +899,7 @@ CONFIG_FB_CFB_FILLRECT=y
900CONFIG_FB_CFB_COPYAREA=y 899CONFIG_FB_CFB_COPYAREA=y
901CONFIG_FB_CFB_IMAGEBLIT=y 900CONFIG_FB_CFB_IMAGEBLIT=y
902CONFIG_FB_MACMODES=y 901CONFIG_FB_MACMODES=y
902CONFIG_FB_FIRMWARE_EDID=y
903CONFIG_FB_MODE_HELPERS=y 903CONFIG_FB_MODE_HELPERS=y
904CONFIG_FB_TILEBLITTING=y 904CONFIG_FB_TILEBLITTING=y
905# CONFIG_FB_CIRRUS is not set 905# CONFIG_FB_CIRRUS is not set
@@ -919,7 +919,6 @@ CONFIG_FB_MATROX_MYSTIQUE=y
919CONFIG_FB_MATROX_G=y 919CONFIG_FB_MATROX_G=y
920# CONFIG_FB_MATROX_I2C is not set 920# CONFIG_FB_MATROX_I2C is not set
921CONFIG_FB_MATROX_MULTIHEAD=y 921CONFIG_FB_MATROX_MULTIHEAD=y
922# CONFIG_FB_RADEON_OLD is not set
923CONFIG_FB_RADEON=y 922CONFIG_FB_RADEON=y
924CONFIG_FB_RADEON_I2C=y 923CONFIG_FB_RADEON_I2C=y
925# CONFIG_FB_RADEON_DEBUG is not set 924# CONFIG_FB_RADEON_DEBUG is not set
@@ -968,6 +967,7 @@ CONFIG_LCD_DEVICE=y
968# 967#
969CONFIG_USB_ARCH_HAS_HCD=y 968CONFIG_USB_ARCH_HAS_HCD=y
970CONFIG_USB_ARCH_HAS_OHCI=y 969CONFIG_USB_ARCH_HAS_OHCI=y
970CONFIG_USB_ARCH_HAS_EHCI=y
971CONFIG_USB=y 971CONFIG_USB=y
972# CONFIG_USB_DEBUG is not set 972# CONFIG_USB_DEBUG is not set
973 973
@@ -1048,15 +1048,6 @@ CONFIG_USB_HIDDEV=y
1048# CONFIG_USB_MICROTEK is not set 1048# CONFIG_USB_MICROTEK is not set
1049 1049
1050# 1050#
1051# USB Multimedia devices
1052#
1053# CONFIG_USB_DABUSB is not set
1054
1055#
1056# Video4Linux support is needed for USB Multimedia device support
1057#
1058
1059#
1060# USB Network Adapters 1051# USB Network Adapters
1061# 1052#
1062# CONFIG_USB_CATC is not set 1053# CONFIG_USB_CATC is not set
@@ -1109,6 +1100,11 @@ CONFIG_USB_MON=y
1109# CONFIG_MMC is not set 1100# CONFIG_MMC is not set
1110 1101
1111# 1102#
1103# LED devices
1104#
1105# CONFIG_NEW_LEDS is not set
1106
1107#
1112# InfiniBand support 1108# InfiniBand support
1113# 1109#
1114CONFIG_INFINIBAND=m 1110CONFIG_INFINIBAND=m
@@ -1121,12 +1117,13 @@ CONFIG_INFINIBAND_IPOIB=m
1121# CONFIG_INFINIBAND_SRP is not set 1117# CONFIG_INFINIBAND_SRP is not set
1122 1118
1123# 1119#
1124# SN Devices 1120# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1125# 1121#
1126 1122
1127# 1123#
1128# EDAC - error detection and reporting (RAS) 1124# Real Time Clock
1129# 1125#
1126# CONFIG_RTC_CLASS is not set
1130 1127
1131# 1128#
1132# File systems 1129# File systems
@@ -1202,7 +1199,6 @@ CONFIG_TMPFS=y
1202CONFIG_HUGETLBFS=y 1199CONFIG_HUGETLBFS=y
1203CONFIG_HUGETLB_PAGE=y 1200CONFIG_HUGETLB_PAGE=y
1204CONFIG_RAMFS=y 1201CONFIG_RAMFS=y
1205# CONFIG_RELAYFS_FS is not set
1206# CONFIG_CONFIGFS_FS is not set 1202# CONFIG_CONFIGFS_FS is not set
1207 1203
1208# 1204#
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 0cc0995b81b0..803858e86160 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -20,7 +20,7 @@ obj-$(CONFIG_PPC64) += setup_64.o binfmt_elf32.o sys_ppc32.o \
20 firmware.o sysfs.o 20 firmware.o sysfs.o
21obj-$(CONFIG_PPC64) += vdso64/ 21obj-$(CONFIG_PPC64) += vdso64/
22obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o 22obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o
23obj-$(CONFIG_POWER4) += idle_power4.o 23obj-$(CONFIG_PPC_970_NAP) += idle_power4.o
24obj-$(CONFIG_PPC_OF) += of_device.o prom_parse.o 24obj-$(CONFIG_PPC_OF) += of_device.o prom_parse.o
25procfs-$(CONFIG_PPC64) := proc_ppc64.o 25procfs-$(CONFIG_PPC64) := proc_ppc64.o
26obj-$(CONFIG_PROC_FS) += $(procfs-y) 26obj-$(CONFIG_PROC_FS) += $(procfs-y)
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 54b48f330051..8f85c5e8a55a 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -91,6 +91,7 @@ int main(void)
91#endif /* CONFIG_PPC64 */ 91#endif /* CONFIG_PPC64 */
92 92
93 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); 93 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
94 DEFINE(TI_LOCAL_FLAGS, offsetof(struct thread_info, local_flags));
94 DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); 95 DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
95 DEFINE(TI_TASK, offsetof(struct thread_info, task)); 96 DEFINE(TI_TASK, offsetof(struct thread_info, task));
96#ifdef CONFIG_PPC32 97#ifdef CONFIG_PPC32
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 39e348a3ade2..3f7182db9ed5 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -57,6 +57,8 @@ extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec);
57 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP) 57 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP)
58#define COMMON_USER_POWER5_PLUS (COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS|\ 58#define COMMON_USER_POWER5_PLUS (COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS|\
59 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP) 59 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP)
60#define COMMON_USER_POWER6 (COMMON_USER_PPC64 | PPC_FEATURE_ARCH_2_05 |\
61 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP)
60#define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ 62#define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
61 PPC_FEATURE_BOOKE) 63 PPC_FEATURE_BOOKE)
62 64
@@ -263,6 +265,20 @@ struct cpu_spec cpu_specs[] = {
263 .oprofile_type = PPC_OPROFILE_POWER4, 265 .oprofile_type = PPC_OPROFILE_POWER4,
264 .platform = "power5+", 266 .platform = "power5+",
265 }, 267 },
268 { /* Power6 */
269 .pvr_mask = 0xffff0000,
270 .pvr_value = 0x003e0000,
271 .cpu_name = "POWER6",
272 .cpu_features = CPU_FTRS_POWER6,
273 .cpu_user_features = COMMON_USER_POWER6,
274 .icache_bsize = 128,
275 .dcache_bsize = 128,
276 .num_pmcs = 6,
277 .cpu_setup = __setup_cpu_power4,
278 .oprofile_cpu_type = "ppc64/power6",
279 .oprofile_type = PPC_OPROFILE_POWER4,
280 .platform = "power6",
281 },
266 { /* Cell Broadband Engine */ 282 { /* Cell Broadband Engine */
267 .pvr_mask = 0xffff0000, 283 .pvr_mask = 0xffff0000,
268 .pvr_value = 0x00700000, 284 .pvr_value = 0x00700000,
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index b3a979467225..8866fd26c6b9 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -128,37 +128,36 @@ transfer_to_handler:
128 stw r12,4(r11) 128 stw r12,4(r11)
129#endif 129#endif
130 b 3f 130 b 3f
131
1312: /* if from kernel, check interrupted DOZE/NAP mode and 1322: /* if from kernel, check interrupted DOZE/NAP mode and
132 * check for stack overflow 133 * check for stack overflow
133 */ 134 */
135 lwz r9,THREAD_INFO-THREAD(r12)
136 cmplw r1,r9 /* if r1 <= current->thread_info */
137 ble- stack_ovf /* then the kernel stack overflowed */
1385:
134#ifdef CONFIG_6xx 139#ifdef CONFIG_6xx
135 mfspr r11,SPRN_HID0 140 tophys(r9,r9) /* check local flags */
136 mtcr r11 141 lwz r12,TI_LOCAL_FLAGS(r9)
137BEGIN_FTR_SECTION 142 mtcrf 0x01,r12
138 bt- 8,4f /* Check DOZE */ 143 bt- 31-TLF_NAPPING,4f
139END_FTR_SECTION_IFSET(CPU_FTR_CAN_DOZE)
140BEGIN_FTR_SECTION
141 bt- 9,4f /* Check NAP */
142END_FTR_SECTION_IFSET(CPU_FTR_CAN_NAP)
143#endif /* CONFIG_6xx */ 144#endif /* CONFIG_6xx */
144 .globl transfer_to_handler_cont 145 .globl transfer_to_handler_cont
145transfer_to_handler_cont: 146transfer_to_handler_cont:
146 lwz r11,THREAD_INFO-THREAD(r12)
147 cmplw r1,r11 /* if r1 <= current->thread_info */
148 ble- stack_ovf /* then the kernel stack overflowed */
1493: 1473:
150 mflr r9 148 mflr r9
151 lwz r11,0(r9) /* virtual address of handler */ 149 lwz r11,0(r9) /* virtual address of handler */
152 lwz r9,4(r9) /* where to go when done */ 150 lwz r9,4(r9) /* where to go when done */
153 FIX_SRR1(r10,r12)
154 mtspr SPRN_SRR0,r11 151 mtspr SPRN_SRR0,r11
155 mtspr SPRN_SRR1,r10 152 mtspr SPRN_SRR1,r10
156 mtlr r9 153 mtlr r9
157 SYNC 154 SYNC
158 RFI /* jump to handler, enable MMU */ 155 RFI /* jump to handler, enable MMU */
159 156
160#ifdef CONFIG_6xx 157#ifdef CONFIG_6xx
1614: b power_save_6xx_restore 1584: rlwinm r12,r12,0,~_TLF_NAPPING
159 stw r12,TI_LOCAL_FLAGS(r9)
160 b power_save_6xx_restore
162#endif 161#endif
163 162
164/* 163/*
@@ -167,10 +166,10 @@ transfer_to_handler_cont:
167 */ 166 */
168stack_ovf: 167stack_ovf:
169 /* sometimes we use a statically-allocated stack, which is OK. */ 168 /* sometimes we use a statically-allocated stack, which is OK. */
170 lis r11,_end@h 169 lis r12,_end@h
171 ori r11,r11,_end@l 170 ori r12,r12,_end@l
172 cmplw r1,r11 171 cmplw r1,r12
173 ble 3b /* r1 <= &_end is OK */ 172 ble 5b /* r1 <= &_end is OK */
174 SAVE_NVGPRS(r11) 173 SAVE_NVGPRS(r11)
175 addi r3,r1,STACK_FRAME_OVERHEAD 174 addi r3,r1,STACK_FRAME_OVERHEAD
176 lis r1,init_thread_union@ha 175 lis r1,init_thread_union@ha
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index a5ae04a57c78..b7d140430a41 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -376,11 +376,28 @@ label##_common: \
376 bl hdlr; \ 376 bl hdlr; \
377 b .ret_from_except 377 b .ret_from_except
378 378
379/*
380 * Like STD_EXCEPTION_COMMON, but for exceptions that can occur
381 * in the idle task and therefore need the special idle handling.
382 */
383#define STD_EXCEPTION_COMMON_IDLE(trap, label, hdlr) \
384 .align 7; \
385 .globl label##_common; \
386label##_common: \
387 EXCEPTION_PROLOG_COMMON(trap, PACA_EXGEN); \
388 FINISH_NAP; \
389 DISABLE_INTS; \
390 bl .save_nvgprs; \
391 addi r3,r1,STACK_FRAME_OVERHEAD; \
392 bl hdlr; \
393 b .ret_from_except
394
379#define STD_EXCEPTION_COMMON_LITE(trap, label, hdlr) \ 395#define STD_EXCEPTION_COMMON_LITE(trap, label, hdlr) \
380 .align 7; \ 396 .align 7; \
381 .globl label##_common; \ 397 .globl label##_common; \
382label##_common: \ 398label##_common: \
383 EXCEPTION_PROLOG_COMMON(trap, PACA_EXGEN); \ 399 EXCEPTION_PROLOG_COMMON(trap, PACA_EXGEN); \
400 FINISH_NAP; \
384 DISABLE_INTS; \ 401 DISABLE_INTS; \
385 bl .ppc64_runlatch_on; \ 402 bl .ppc64_runlatch_on; \
386 addi r3,r1,STACK_FRAME_OVERHEAD; \ 403 addi r3,r1,STACK_FRAME_OVERHEAD; \
@@ -388,6 +405,25 @@ label##_common: \
388 b .ret_from_except_lite 405 b .ret_from_except_lite
389 406
390/* 407/*
408 * When the idle code in power4_idle puts the CPU into NAP mode,
409 * it has to do so in a loop, and relies on the external interrupt
410 * and decrementer interrupt entry code to get it out of the loop.
411 * It sets the _TLF_NAPPING bit in current_thread_info()->local_flags
412 * to signal that it is in the loop and needs help to get out.
413 */
414#ifdef CONFIG_PPC_970_NAP
415#define FINISH_NAP \
416BEGIN_FTR_SECTION \
417 clrrdi r11,r1,THREAD_SHIFT; \
418 ld r9,TI_LOCAL_FLAGS(r11); \
419 andi. r10,r9,_TLF_NAPPING; \
420 bnel power4_fixup_nap; \
421END_FTR_SECTION_IFSET(CPU_FTR_CAN_NAP)
422#else
423#define FINISH_NAP
424#endif
425
426/*
391 * Start of pSeries system interrupt routines 427 * Start of pSeries system interrupt routines
392 */ 428 */
393 . = 0x100 429 . = 0x100
@@ -772,6 +808,7 @@ hardware_interrupt_iSeries_masked:
772 .globl machine_check_common 808 .globl machine_check_common
773machine_check_common: 809machine_check_common:
774 EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC) 810 EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC)
811 FINISH_NAP
775 DISABLE_INTS 812 DISABLE_INTS
776 bl .save_nvgprs 813 bl .save_nvgprs
777 addi r3,r1,STACK_FRAME_OVERHEAD 814 addi r3,r1,STACK_FRAME_OVERHEAD
@@ -783,7 +820,7 @@ machine_check_common:
783 STD_EXCEPTION_COMMON(0xb00, trap_0b, .unknown_exception) 820 STD_EXCEPTION_COMMON(0xb00, trap_0b, .unknown_exception)
784 STD_EXCEPTION_COMMON(0xd00, single_step, .single_step_exception) 821 STD_EXCEPTION_COMMON(0xd00, single_step, .single_step_exception)
785 STD_EXCEPTION_COMMON(0xe00, trap_0e, .unknown_exception) 822 STD_EXCEPTION_COMMON(0xe00, trap_0e, .unknown_exception)
786 STD_EXCEPTION_COMMON(0xf00, performance_monitor, .performance_monitor_exception) 823 STD_EXCEPTION_COMMON_IDLE(0xf00, performance_monitor, .performance_monitor_exception)
787 STD_EXCEPTION_COMMON(0x1300, instruction_breakpoint, .instruction_breakpoint_exception) 824 STD_EXCEPTION_COMMON(0x1300, instruction_breakpoint, .instruction_breakpoint_exception)
788#ifdef CONFIG_ALTIVEC 825#ifdef CONFIG_ALTIVEC
789 STD_EXCEPTION_COMMON(0x1700, altivec_assist, .altivec_assist_exception) 826 STD_EXCEPTION_COMMON(0x1700, altivec_assist, .altivec_assist_exception)
@@ -1034,6 +1071,7 @@ unrecov_slb:
1034 .globl hardware_interrupt_entry 1071 .globl hardware_interrupt_entry
1035hardware_interrupt_common: 1072hardware_interrupt_common:
1036 EXCEPTION_PROLOG_COMMON(0x500, PACA_EXGEN) 1073 EXCEPTION_PROLOG_COMMON(0x500, PACA_EXGEN)
1074 FINISH_NAP
1037hardware_interrupt_entry: 1075hardware_interrupt_entry:
1038 DISABLE_INTS 1076 DISABLE_INTS
1039 bl .ppc64_runlatch_on 1077 bl .ppc64_runlatch_on
@@ -1041,6 +1079,15 @@ hardware_interrupt_entry:
1041 bl .do_IRQ 1079 bl .do_IRQ
1042 b .ret_from_except_lite 1080 b .ret_from_except_lite
1043 1081
1082#ifdef CONFIG_PPC_970_NAP
1083power4_fixup_nap:
1084 andc r9,r9,r10
1085 std r9,TI_LOCAL_FLAGS(r11)
1086 ld r10,_LINK(r1) /* make idle task do the */
1087 std r10,_NIP(r1) /* equivalent of a blr */
1088 blr
1089#endif
1090
1044 .align 7 1091 .align 7
1045 .globl alignment_common 1092 .globl alignment_common
1046alignment_common: 1093alignment_common:
diff --git a/arch/powerpc/kernel/idle.c b/arch/powerpc/kernel/idle.c
index e9f321d74d85..d491052c8e0c 100644
--- a/arch/powerpc/kernel/idle.c
+++ b/arch/powerpc/kernel/idle.c
@@ -50,9 +50,9 @@ void cpu_idle(void)
50 50
51 set_thread_flag(TIF_POLLING_NRFLAG); 51 set_thread_flag(TIF_POLLING_NRFLAG);
52 while (1) { 52 while (1) {
53 ppc64_runlatch_off();
54
55 while (!need_resched() && !cpu_should_die()) { 53 while (!need_resched() && !cpu_should_die()) {
54 ppc64_runlatch_off();
55
56 if (ppc_md.power_save) { 56 if (ppc_md.power_save) {
57 clear_thread_flag(TIF_POLLING_NRFLAG); 57 clear_thread_flag(TIF_POLLING_NRFLAG);
58 /* 58 /*
diff --git a/arch/powerpc/kernel/idle_6xx.S b/arch/powerpc/kernel/idle_6xx.S
index 12a4efbaa08f..b45fa0e37212 100644
--- a/arch/powerpc/kernel/idle_6xx.S
+++ b/arch/powerpc/kernel/idle_6xx.S
@@ -22,8 +22,6 @@
22#include <asm/ppc_asm.h> 22#include <asm/ppc_asm.h>
23#include <asm/asm-offsets.h> 23#include <asm/asm-offsets.h>
24 24
25#undef DEBUG
26
27 .text 25 .text
28 26
29/* 27/*
@@ -109,12 +107,6 @@ BEGIN_FTR_SECTION
109 dcbf 0,r4 107 dcbf 0,r4
110 dcbf 0,r4 108 dcbf 0,r4
111END_FTR_SECTION_IFSET(CPU_FTR_NAP_DISABLE_L2_PR) 109END_FTR_SECTION_IFSET(CPU_FTR_NAP_DISABLE_L2_PR)
112#ifdef DEBUG
113 lis r6,nap_enter_count@ha
114 lwz r4,nap_enter_count@l(r6)
115 addi r4,r4,1
116 stw r4,nap_enter_count@l(r6)
117#endif
1182: 1102:
119BEGIN_FTR_SECTION 111BEGIN_FTR_SECTION
120 /* Go to low speed mode on some 750FX */ 112 /* Go to low speed mode on some 750FX */
@@ -144,48 +136,42 @@ BEGIN_FTR_SECTION
144 DSSALL 136 DSSALL
145 sync 137 sync
146END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) 138END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
139 rlwinm r9,r1,0,0,31-THREAD_SHIFT /* current thread_info */
140 lwz r8,TI_LOCAL_FLAGS(r9) /* set napping bit */
141 ori r8,r8,_TLF_NAPPING /* so when we take an exception */
142 stw r8,TI_LOCAL_FLAGS(r9) /* it will return to our caller */
147 mfmsr r7 143 mfmsr r7
148 ori r7,r7,MSR_EE 144 ori r7,r7,MSR_EE
149 oris r7,r7,MSR_POW@h 145 oris r7,r7,MSR_POW@h
150 sync 1461: sync
151 isync
152 mtmsr r7 147 mtmsr r7
153 isync 148 isync
154 sync 149 b 1b
155 blr 150
156
157/* 151/*
158 * Return from NAP/DOZE mode, restore some CPU specific registers, 152 * Return from NAP/DOZE mode, restore some CPU specific registers,
159 * we are called with DR/IR still off and r2 containing physical 153 * we are called with DR/IR still off and r2 containing physical
160 * address of current. 154 * address of current. R11 points to the exception frame (physical
155 * address). We have to preserve r10.
161 */ 156 */
162_GLOBAL(power_save_6xx_restore) 157_GLOBAL(power_save_6xx_restore)
163 mfspr r11,SPRN_HID0 158 lwz r9,_LINK(r11) /* interrupted in ppc6xx_idle: */
164 rlwinm. r11,r11,0,10,8 /* Clear NAP & copy NAP bit !state to cr1 EQ */ 159 stw r9,_NIP(r11) /* make it do a blr */
165 cror 4*cr1+eq,4*cr0+eq,4*cr0+eq
166BEGIN_FTR_SECTION
167 rlwinm r11,r11,0,9,7 /* Clear DOZE */
168END_FTR_SECTION_IFSET(CPU_FTR_CAN_DOZE)
169 mtspr SPRN_HID0, r11
170 160
171#ifdef DEBUG 161#ifdef CONFIG_SMP
172 beq cr1,1f 162 mfspr r12,SPRN_SPRG3
173 lis r11,(nap_return_count-KERNELBASE)@ha 163 lwz r11,TI_CPU(r12) /* get cpu number * 4 */
174 lwz r9,nap_return_count@l(r11)
175 addi r9,r9,1
176 stw r9,nap_return_count@l(r11)
1771:
178#endif
179
180 rlwinm r9,r1,0,0,18
181 tophys(r9,r9)
182 lwz r11,TI_CPU(r9)
183 slwi r11,r11,2 164 slwi r11,r11,2
165#else
166 li r11,0
167#endif
184 /* Todo make sure all these are in the same page 168 /* Todo make sure all these are in the same page
185 * and load r22 (@ha part + CPU offset) only once 169 * and load r11 (@ha part + CPU offset) only once
186 */ 170 */
187BEGIN_FTR_SECTION 171BEGIN_FTR_SECTION
188 beq cr1,1f 172 mfspr r9,SPRN_HID0
173 andis. r9,r9,HID0_NAP@h
174 beq 1f
189 addis r9,r11,(nap_save_msscr0-KERNELBASE)@ha 175 addis r9,r11,(nap_save_msscr0-KERNELBASE)@ha
190 lwz r9,nap_save_msscr0@l(r9) 176 lwz r9,nap_save_msscr0@l(r9)
191 mtspr SPRN_MSSCR0, r9 177 mtspr SPRN_MSSCR0, r9
@@ -210,10 +196,3 @@ _GLOBAL(nap_save_hid1)
210 196
211_GLOBAL(powersave_lowspeed) 197_GLOBAL(powersave_lowspeed)
212 .long 0 198 .long 0
213
214#ifdef DEBUG
215_GLOBAL(nap_enter_count)
216 .space 4
217_GLOBAL(nap_return_count)
218 .space 4
219#endif
diff --git a/arch/powerpc/kernel/idle_power4.S b/arch/powerpc/kernel/idle_power4.S
index 6dad1c02496e..d85c7c938eed 100644
--- a/arch/powerpc/kernel/idle_power4.S
+++ b/arch/powerpc/kernel/idle_power4.S
@@ -35,12 +35,16 @@ BEGIN_FTR_SECTION
35 DSSALL 35 DSSALL
36 sync 36 sync
37END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) 37END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
38 clrrdi r9,r1,THREAD_SHIFT /* current thread_info */
39 ld r8,TI_LOCAL_FLAGS(r9) /* set napping bit */
40 ori r8,r8,_TLF_NAPPING /* so when we take an exception */
41 std r8,TI_LOCAL_FLAGS(r9) /* it will return to our caller */
38 mfmsr r7 42 mfmsr r7
39 ori r7,r7,MSR_EE 43 ori r7,r7,MSR_EE
40 oris r7,r7,MSR_POW@h 44 oris r7,r7,MSR_POW@h
41 sync 451: sync
42 isync 46 isync
43 mtmsrd r7 47 mtmsrd r7
44 isync 48 isync
45 sync 49 b 1b
46 blr 50
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
index d9a7fdef59b9..4eba60a32890 100644
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
@@ -61,6 +61,7 @@ __setup("iommu=", setup_iommu);
61static unsigned long iommu_range_alloc(struct iommu_table *tbl, 61static unsigned long iommu_range_alloc(struct iommu_table *tbl,
62 unsigned long npages, 62 unsigned long npages,
63 unsigned long *handle, 63 unsigned long *handle,
64 unsigned long mask,
64 unsigned int align_order) 65 unsigned int align_order)
65{ 66{
66 unsigned long n, end, i, start; 67 unsigned long n, end, i, start;
@@ -97,9 +98,21 @@ static unsigned long iommu_range_alloc(struct iommu_table *tbl,
97 */ 98 */
98 if (start >= limit) 99 if (start >= limit)
99 start = largealloc ? tbl->it_largehint : tbl->it_hint; 100 start = largealloc ? tbl->it_largehint : tbl->it_hint;
100 101
101 again: 102 again:
102 103
104 if (limit + tbl->it_offset > mask) {
105 limit = mask - tbl->it_offset + 1;
106 /* If we're constrained on address range, first try
107 * at the masked hint to avoid O(n) search complexity,
108 * but on second pass, start at 0.
109 */
110 if ((start & mask) >= limit || pass > 0)
111 start = 0;
112 else
113 start &= mask;
114 }
115
103 n = find_next_zero_bit(tbl->it_map, limit, start); 116 n = find_next_zero_bit(tbl->it_map, limit, start);
104 117
105 /* Align allocation */ 118 /* Align allocation */
@@ -150,14 +163,14 @@ static unsigned long iommu_range_alloc(struct iommu_table *tbl,
150 163
151static dma_addr_t iommu_alloc(struct iommu_table *tbl, void *page, 164static dma_addr_t iommu_alloc(struct iommu_table *tbl, void *page,
152 unsigned int npages, enum dma_data_direction direction, 165 unsigned int npages, enum dma_data_direction direction,
153 unsigned int align_order) 166 unsigned long mask, unsigned int align_order)
154{ 167{
155 unsigned long entry, flags; 168 unsigned long entry, flags;
156 dma_addr_t ret = DMA_ERROR_CODE; 169 dma_addr_t ret = DMA_ERROR_CODE;
157 170
158 spin_lock_irqsave(&(tbl->it_lock), flags); 171 spin_lock_irqsave(&(tbl->it_lock), flags);
159 172
160 entry = iommu_range_alloc(tbl, npages, NULL, align_order); 173 entry = iommu_range_alloc(tbl, npages, NULL, mask, align_order);
161 174
162 if (unlikely(entry == DMA_ERROR_CODE)) { 175 if (unlikely(entry == DMA_ERROR_CODE)) {
163 spin_unlock_irqrestore(&(tbl->it_lock), flags); 176 spin_unlock_irqrestore(&(tbl->it_lock), flags);
@@ -236,7 +249,7 @@ static void iommu_free(struct iommu_table *tbl, dma_addr_t dma_addr,
236 249
237int iommu_map_sg(struct device *dev, struct iommu_table *tbl, 250int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
238 struct scatterlist *sglist, int nelems, 251 struct scatterlist *sglist, int nelems,
239 enum dma_data_direction direction) 252 unsigned long mask, enum dma_data_direction direction)
240{ 253{
241 dma_addr_t dma_next = 0, dma_addr; 254 dma_addr_t dma_next = 0, dma_addr;
242 unsigned long flags; 255 unsigned long flags;
@@ -274,7 +287,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
274 vaddr = (unsigned long)page_address(s->page) + s->offset; 287 vaddr = (unsigned long)page_address(s->page) + s->offset;
275 npages = PAGE_ALIGN(vaddr + slen) - (vaddr & PAGE_MASK); 288 npages = PAGE_ALIGN(vaddr + slen) - (vaddr & PAGE_MASK);
276 npages >>= PAGE_SHIFT; 289 npages >>= PAGE_SHIFT;
277 entry = iommu_range_alloc(tbl, npages, &handle, 0); 290 entry = iommu_range_alloc(tbl, npages, &handle, mask >> PAGE_SHIFT, 0);
278 291
279 DBG(" - vaddr: %lx, size: %lx\n", vaddr, slen); 292 DBG(" - vaddr: %lx, size: %lx\n", vaddr, slen);
280 293
@@ -479,7 +492,8 @@ void iommu_free_table(struct device_node *dn)
479 * byte within the page as vaddr. 492 * byte within the page as vaddr.
480 */ 493 */
481dma_addr_t iommu_map_single(struct iommu_table *tbl, void *vaddr, 494dma_addr_t iommu_map_single(struct iommu_table *tbl, void *vaddr,
482 size_t size, enum dma_data_direction direction) 495 size_t size, unsigned long mask,
496 enum dma_data_direction direction)
483{ 497{
484 dma_addr_t dma_handle = DMA_ERROR_CODE; 498 dma_addr_t dma_handle = DMA_ERROR_CODE;
485 unsigned long uaddr; 499 unsigned long uaddr;
@@ -492,7 +506,8 @@ dma_addr_t iommu_map_single(struct iommu_table *tbl, void *vaddr,
492 npages >>= PAGE_SHIFT; 506 npages >>= PAGE_SHIFT;
493 507
494 if (tbl) { 508 if (tbl) {
495 dma_handle = iommu_alloc(tbl, vaddr, npages, direction, 0); 509 dma_handle = iommu_alloc(tbl, vaddr, npages, direction,
510 mask >> PAGE_SHIFT, 0);
496 if (dma_handle == DMA_ERROR_CODE) { 511 if (dma_handle == DMA_ERROR_CODE) {
497 if (printk_ratelimit()) { 512 if (printk_ratelimit()) {
498 printk(KERN_INFO "iommu_alloc failed, " 513 printk(KERN_INFO "iommu_alloc failed, "
@@ -521,7 +536,7 @@ void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle,
521 * to the dma address (mapping) of the first page. 536 * to the dma address (mapping) of the first page.
522 */ 537 */
523void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size, 538void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size,
524 dma_addr_t *dma_handle, gfp_t flag) 539 dma_addr_t *dma_handle, unsigned long mask, gfp_t flag)
525{ 540{
526 void *ret = NULL; 541 void *ret = NULL;
527 dma_addr_t mapping; 542 dma_addr_t mapping;
@@ -551,7 +566,8 @@ void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size,
551 memset(ret, 0, size); 566 memset(ret, 0, size);
552 567
553 /* Set up tces to cover the allocated range */ 568 /* Set up tces to cover the allocated range */
554 mapping = iommu_alloc(tbl, ret, npages, DMA_BIDIRECTIONAL, order); 569 mapping = iommu_alloc(tbl, ret, npages, DMA_BIDIRECTIONAL,
570 mask >> PAGE_SHIFT, order);
555 if (mapping == DMA_ERROR_CODE) { 571 if (mapping == DMA_ERROR_CODE) {
556 free_pages((unsigned long)ret, order); 572 free_pages((unsigned long)ret, order);
557 ret = NULL; 573 ret = NULL;
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index bb5c9501234c..57d560c68897 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -272,18 +272,26 @@ unsigned int virt_irq_to_real_map[NR_IRQS];
272 * Don't use virtual irqs 0, 1, 2 for devices. 272 * Don't use virtual irqs 0, 1, 2 for devices.
273 * The pcnet32 driver considers interrupt numbers < 2 to be invalid, 273 * The pcnet32 driver considers interrupt numbers < 2 to be invalid,
274 * and 2 is the XICS IPI interrupt. 274 * and 2 is the XICS IPI interrupt.
275 * We limit virtual irqs to 17 less than NR_IRQS so that when we 275 * We limit virtual irqs to __irq_offet_value less than virt_irq_max so
276 * offset them by 16 (to reserve the first 16 for ISA interrupts) 276 * that when we offset them we don't end up with an interrupt
277 * we don't end up with an interrupt number >= NR_IRQS. 277 * number >= virt_irq_max.
278 */ 278 */
279#define MIN_VIRT_IRQ 3 279#define MIN_VIRT_IRQ 3
280#define MAX_VIRT_IRQ (NR_IRQS - NUM_ISA_INTERRUPTS - 1) 280
281#define NR_VIRT_IRQS (MAX_VIRT_IRQ - MIN_VIRT_IRQ + 1) 281unsigned int virt_irq_max;
282static unsigned int max_virt_irq;
283static unsigned int nr_virt_irqs;
282 284
283void 285void
284virt_irq_init(void) 286virt_irq_init(void)
285{ 287{
286 int i; 288 int i;
289
290 if ((virt_irq_max == 0) || (virt_irq_max > (NR_IRQS - 1)))
291 virt_irq_max = NR_IRQS - 1;
292 max_virt_irq = virt_irq_max - __irq_offset_value;
293 nr_virt_irqs = max_virt_irq - MIN_VIRT_IRQ + 1;
294
287 for (i = 0; i < NR_IRQS; i++) 295 for (i = 0; i < NR_IRQS; i++)
288 virt_irq_to_real_map[i] = UNDEFINED_IRQ; 296 virt_irq_to_real_map[i] = UNDEFINED_IRQ;
289} 297}
@@ -308,17 +316,17 @@ int virt_irq_create_mapping(unsigned int real_irq)
308 return real_irq; 316 return real_irq;
309 } 317 }
310 318
311 /* map to a number between MIN_VIRT_IRQ and MAX_VIRT_IRQ */ 319 /* map to a number between MIN_VIRT_IRQ and max_virt_irq */
312 virq = real_irq; 320 virq = real_irq;
313 if (virq > MAX_VIRT_IRQ) 321 if (virq > max_virt_irq)
314 virq = (virq % NR_VIRT_IRQS) + MIN_VIRT_IRQ; 322 virq = (virq % nr_virt_irqs) + MIN_VIRT_IRQ;
315 323
316 /* search for this number or a free slot */ 324 /* search for this number or a free slot */
317 first_virq = virq; 325 first_virq = virq;
318 while (virt_irq_to_real_map[virq] != UNDEFINED_IRQ) { 326 while (virt_irq_to_real_map[virq] != UNDEFINED_IRQ) {
319 if (virt_irq_to_real_map[virq] == real_irq) 327 if (virt_irq_to_real_map[virq] == real_irq)
320 return virq; 328 return virq;
321 if (++virq > MAX_VIRT_IRQ) 329 if (++virq > max_virt_irq)
322 virq = MIN_VIRT_IRQ; 330 virq = MIN_VIRT_IRQ;
323 if (virq == first_virq) 331 if (virq == first_virq)
324 goto nospace; /* oops, no free slots */ 332 goto nospace; /* oops, no free slots */
@@ -330,8 +338,8 @@ int virt_irq_create_mapping(unsigned int real_irq)
330 nospace: 338 nospace:
331 if (!warned) { 339 if (!warned) {
332 printk(KERN_CRIT "Interrupt table is full\n"); 340 printk(KERN_CRIT "Interrupt table is full\n");
333 printk(KERN_CRIT "Increase NR_IRQS (currently %d) " 341 printk(KERN_CRIT "Increase virt_irq_max (currently %d) "
334 "in your kernel sources and rebuild.\n", NR_IRQS); 342 "in your kernel sources and rebuild.\n", virt_irq_max);
335 warned = 1; 343 warned = 1;
336 } 344 }
337 return NO_IRQ; 345 return NO_IRQ;
@@ -349,8 +357,8 @@ unsigned int real_irq_to_virt_slowpath(unsigned int real_irq)
349 357
350 virq = real_irq; 358 virq = real_irq;
351 359
352 if (virq > MAX_VIRT_IRQ) 360 if (virq > max_virt_irq)
353 virq = (virq % NR_VIRT_IRQS) + MIN_VIRT_IRQ; 361 virq = (virq % nr_virt_irqs) + MIN_VIRT_IRQ;
354 362
355 first_virq = virq; 363 first_virq = virq;
356 364
@@ -360,7 +368,7 @@ unsigned int real_irq_to_virt_slowpath(unsigned int real_irq)
360 368
361 virq++; 369 virq++;
362 370
363 if (virq >= MAX_VIRT_IRQ) 371 if (virq >= max_virt_irq)
364 virq = 0; 372 virq = 0;
365 373
366 } while (first_virq != virq); 374 } while (first_virq != virq);
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c
index ad7a90212204..856ef1a832b9 100644
--- a/arch/powerpc/kernel/kprobes.c
+++ b/arch/powerpc/kernel/kprobes.c
@@ -88,7 +88,7 @@ void __kprobes arch_remove_kprobe(struct kprobe *p)
88 mutex_unlock(&kprobe_mutex); 88 mutex_unlock(&kprobe_mutex);
89} 89}
90 90
91static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs) 91static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
92{ 92{
93 kprobe_opcode_t insn = *p->ainsn.insn; 93 kprobe_opcode_t insn = *p->ainsn.insn;
94 94
@@ -101,21 +101,21 @@ static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
101 regs->nip = (unsigned long)p->ainsn.insn; 101 regs->nip = (unsigned long)p->ainsn.insn;
102} 102}
103 103
104static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) 104static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)
105{ 105{
106 kcb->prev_kprobe.kp = kprobe_running(); 106 kcb->prev_kprobe.kp = kprobe_running();
107 kcb->prev_kprobe.status = kcb->kprobe_status; 107 kcb->prev_kprobe.status = kcb->kprobe_status;
108 kcb->prev_kprobe.saved_msr = kcb->kprobe_saved_msr; 108 kcb->prev_kprobe.saved_msr = kcb->kprobe_saved_msr;
109} 109}
110 110
111static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb) 111static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb)
112{ 112{
113 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp; 113 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp;
114 kcb->kprobe_status = kcb->prev_kprobe.status; 114 kcb->kprobe_status = kcb->prev_kprobe.status;
115 kcb->kprobe_saved_msr = kcb->prev_kprobe.saved_msr; 115 kcb->kprobe_saved_msr = kcb->prev_kprobe.saved_msr;
116} 116}
117 117
118static inline void set_current_kprobe(struct kprobe *p, struct pt_regs *regs, 118static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
119 struct kprobe_ctlblk *kcb) 119 struct kprobe_ctlblk *kcb)
120{ 120{
121 __get_cpu_var(current_kprobe) = p; 121 __get_cpu_var(current_kprobe) = p;
@@ -141,7 +141,7 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe *rp,
141 } 141 }
142} 142}
143 143
144static inline int kprobe_handler(struct pt_regs *regs) 144static int __kprobes kprobe_handler(struct pt_regs *regs)
145{ 145{
146 struct kprobe *p; 146 struct kprobe *p;
147 int ret = 0; 147 int ret = 0;
@@ -334,7 +334,7 @@ static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs)
334 regs->nip = (unsigned long)p->addr + 4; 334 regs->nip = (unsigned long)p->addr + 4;
335} 335}
336 336
337static inline int post_kprobe_handler(struct pt_regs *regs) 337static int __kprobes post_kprobe_handler(struct pt_regs *regs)
338{ 338{
339 struct kprobe *cur = kprobe_running(); 339 struct kprobe *cur = kprobe_running();
340 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); 340 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
@@ -370,7 +370,7 @@ out:
370 return 1; 370 return 1;
371} 371}
372 372
373static inline int kprobe_fault_handler(struct pt_regs *regs, int trapnr) 373static int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr)
374{ 374{
375 struct kprobe *cur = kprobe_running(); 375 struct kprobe *cur = kprobe_running();
376 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); 376 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c
index 928b8581fcb0..ba34001fca8e 100644
--- a/arch/powerpc/kernel/module_64.c
+++ b/arch/powerpc/kernel/module_64.c
@@ -191,11 +191,19 @@ int module_frob_arch_sections(Elf64_Ehdr *hdr,
191 (void *)hdr 191 (void *)hdr
192 + sechdrs[sechdrs[i].sh_link].sh_offset); 192 + sechdrs[sechdrs[i].sh_link].sh_offset);
193 } 193 }
194 if (!me->arch.stubs_section || !me->arch.toc_section) { 194
195 printk("%s: doesn't contain .toc or .stubs.\n", me->name); 195 if (!me->arch.stubs_section) {
196 printk("%s: doesn't contain .stubs.\n", me->name);
196 return -ENOEXEC; 197 return -ENOEXEC;
197 } 198 }
198 199
200 /* If we don't have a .toc, just use .stubs. We need to set r2
201 to some reasonable value in case the module calls out to
202 other functions via a stub, or if a function pointer escapes
203 the module by some means. */
204 if (!me->arch.toc_section)
205 me->arch.toc_section = me->arch.stubs_section;
206
199 /* Override the stubs size */ 207 /* Override the stubs size */
200 sechdrs[me->arch.stubs_section].sh_size = get_stubs_size(hdr, sechdrs); 208 sechdrs[me->arch.stubs_section].sh_size = get_stubs_size(hdr, sechdrs);
201 return 0; 209 return 0;
@@ -342,7 +350,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
342 break; 350 break;
343 351
344 case R_PPC64_TOC16: 352 case R_PPC64_TOC16:
345 /* Subtact TOC pointer */ 353 /* Subtract TOC pointer */
346 value -= my_r2(sechdrs, me); 354 value -= my_r2(sechdrs, me);
347 if (value + 0x8000 > 0xffff) { 355 if (value + 0x8000 > 0xffff) {
348 printk("%s: bad TOC16 relocation (%lu)\n", 356 printk("%s: bad TOC16 relocation (%lu)\n",
@@ -355,7 +363,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
355 break; 363 break;
356 364
357 case R_PPC64_TOC16_DS: 365 case R_PPC64_TOC16_DS:
358 /* Subtact TOC pointer */ 366 /* Subtract TOC pointer */
359 value -= my_r2(sechdrs, me); 367 value -= my_r2(sechdrs, me);
360 if ((value & 3) != 0 || value + 0x8000 > 0xffff) { 368 if ((value & 3) != 0 || value + 0x8000 > 0xffff) {
361 printk("%s: bad TOC16_DS relocation (%lu)\n", 369 printk("%s: bad TOC16_DS relocation (%lu)\n",
diff --git a/arch/powerpc/kernel/pci_iommu.c b/arch/powerpc/kernel/pci_iommu.c
index c336f3e31cff..c1d95e14bbed 100644
--- a/arch/powerpc/kernel/pci_iommu.c
+++ b/arch/powerpc/kernel/pci_iommu.c
@@ -59,6 +59,25 @@ static inline struct iommu_table *devnode_table(struct device *dev)
59} 59}
60 60
61 61
62static inline unsigned long device_to_mask(struct device *hwdev)
63{
64 struct pci_dev *pdev;
65
66 if (!hwdev) {
67 pdev = ppc64_isabridge_dev;
68 if (!pdev) /* This is the best guess we can do */
69 return 0xfffffffful;
70 } else
71 pdev = to_pci_dev(hwdev);
72
73 if (pdev->dma_mask)
74 return pdev->dma_mask;
75
76 /* Assume devices without mask can take 32 bit addresses */
77 return 0xfffffffful;
78}
79
80
62/* Allocates a contiguous real buffer and creates mappings over it. 81/* Allocates a contiguous real buffer and creates mappings over it.
63 * Returns the virtual address of the buffer and sets dma_handle 82 * Returns the virtual address of the buffer and sets dma_handle
64 * to the dma address (mapping) of the first page. 83 * to the dma address (mapping) of the first page.
@@ -67,7 +86,7 @@ static void *pci_iommu_alloc_coherent(struct device *hwdev, size_t size,
67 dma_addr_t *dma_handle, gfp_t flag) 86 dma_addr_t *dma_handle, gfp_t flag)
68{ 87{
69 return iommu_alloc_coherent(devnode_table(hwdev), size, dma_handle, 88 return iommu_alloc_coherent(devnode_table(hwdev), size, dma_handle,
70 flag); 89 device_to_mask(hwdev), flag);
71} 90}
72 91
73static void pci_iommu_free_coherent(struct device *hwdev, size_t size, 92static void pci_iommu_free_coherent(struct device *hwdev, size_t size,
@@ -85,7 +104,8 @@ static void pci_iommu_free_coherent(struct device *hwdev, size_t size,
85static dma_addr_t pci_iommu_map_single(struct device *hwdev, void *vaddr, 104static dma_addr_t pci_iommu_map_single(struct device *hwdev, void *vaddr,
86 size_t size, enum dma_data_direction direction) 105 size_t size, enum dma_data_direction direction)
87{ 106{
88 return iommu_map_single(devnode_table(hwdev), vaddr, size, direction); 107 return iommu_map_single(devnode_table(hwdev), vaddr, size,
108 device_to_mask(hwdev), direction);
89} 109}
90 110
91 111
@@ -100,7 +120,7 @@ static int pci_iommu_map_sg(struct device *pdev, struct scatterlist *sglist,
100 int nelems, enum dma_data_direction direction) 120 int nelems, enum dma_data_direction direction)
101{ 121{
102 return iommu_map_sg(pdev, devnode_table(pdev), sglist, 122 return iommu_map_sg(pdev, devnode_table(pdev), sglist,
103 nelems, direction); 123 nelems, device_to_mask(pdev), direction);
104} 124}
105 125
106static void pci_iommu_unmap_sg(struct device *pdev, struct scatterlist *sglist, 126static void pci_iommu_unmap_sg(struct device *pdev, struct scatterlist *sglist,
@@ -112,7 +132,19 @@ static void pci_iommu_unmap_sg(struct device *pdev, struct scatterlist *sglist,
112/* We support DMA to/from any memory page via the iommu */ 132/* We support DMA to/from any memory page via the iommu */
113static int pci_iommu_dma_supported(struct device *dev, u64 mask) 133static int pci_iommu_dma_supported(struct device *dev, u64 mask)
114{ 134{
115 return 1; 135 struct iommu_table *tbl = devnode_table(dev);
136
137 if (!tbl || tbl->it_offset > mask) {
138 printk(KERN_INFO "Warning: IOMMU table offset too big for device mask\n");
139 if (tbl)
140 printk(KERN_INFO "mask: 0x%08lx, table offset: 0x%08lx\n",
141 mask, tbl->it_offset);
142 else
143 printk(KERN_INFO "mask: 0x%08lx, table unavailable\n",
144 mask);
145 return 0;
146 } else
147 return 1;
116} 148}
117 149
118void pci_iommu_init(void) 150void pci_iommu_init(void)
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c
index dfa5398ab3c8..4b052ae5dc34 100644
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
@@ -81,6 +81,7 @@ EXPORT_SYMBOL(strcat);
81EXPORT_SYMBOL(strlen); 81EXPORT_SYMBOL(strlen);
82EXPORT_SYMBOL(strcmp); 82EXPORT_SYMBOL(strcmp);
83EXPORT_SYMBOL(strcasecmp); 83EXPORT_SYMBOL(strcasecmp);
84EXPORT_SYMBOL(strncasecmp);
84 85
85EXPORT_SYMBOL(csum_partial); 86EXPORT_SYMBOL(csum_partial);
86EXPORT_SYMBOL(csum_partial_copy_generic); 87EXPORT_SYMBOL(csum_partial_copy_generic);
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 4336390bcf34..1cb69e8fb0b1 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -62,7 +62,7 @@ static int __initdata dt_root_addr_cells;
62static int __initdata dt_root_size_cells; 62static int __initdata dt_root_size_cells;
63 63
64#ifdef CONFIG_PPC64 64#ifdef CONFIG_PPC64
65static int __initdata iommu_is_off; 65int __initdata iommu_is_off;
66int __initdata iommu_force_on; 66int __initdata iommu_force_on;
67unsigned long tce_alloc_start, tce_alloc_end; 67unsigned long tce_alloc_start, tce_alloc_end;
68#endif 68#endif
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index d66c5e77fcff..078fb5533541 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -636,10 +636,96 @@ static void __init early_cmdline_parse(void)
636 636
637#ifdef CONFIG_PPC_PSERIES 637#ifdef CONFIG_PPC_PSERIES
638/* 638/*
639 * To tell the firmware what our capabilities are, we have to pass 639 * There are two methods for telling firmware what our capabilities are.
640 * it a fake 32-bit ELF header containing a couple of PT_NOTE sections 640 * Newer machines have an "ibm,client-architecture-support" method on the
641 * that contain structures that contain the actual values. 641 * root node. For older machines, we have to call the "process-elf-header"
642 * method in the /packages/elf-loader node, passing it a fake 32-bit
643 * ELF header containing a couple of PT_NOTE sections that contain
644 * structures that contain various information.
642 */ 645 */
646
647/*
648 * New method - extensible architecture description vector.
649 *
650 * Because the description vector contains a mix of byte and word
651 * values, we declare it as an unsigned char array, and use this
652 * macro to put word values in.
653 */
654#define W(x) ((x) >> 24) & 0xff, ((x) >> 16) & 0xff, \
655 ((x) >> 8) & 0xff, (x) & 0xff
656
657/* Option vector bits - generic bits in byte 1 */
658#define OV_IGNORE 0x80 /* ignore this vector */
659#define OV_CESSATION_POLICY 0x40 /* halt if unsupported option present*/
660
661/* Option vector 1: processor architectures supported */
662#define OV1_PPC_2_00 0x80 /* set if we support PowerPC 2.00 */
663#define OV1_PPC_2_01 0x40 /* set if we support PowerPC 2.01 */
664#define OV1_PPC_2_02 0x20 /* set if we support PowerPC 2.02 */
665#define OV1_PPC_2_03 0x10 /* set if we support PowerPC 2.03 */
666#define OV1_PPC_2_04 0x08 /* set if we support PowerPC 2.04 */
667#define OV1_PPC_2_05 0x04 /* set if we support PowerPC 2.05 */
668
669/* Option vector 2: Open Firmware options supported */
670#define OV2_REAL_MODE 0x20 /* set if we want OF in real mode */
671
672/* Option vector 3: processor options supported */
673#define OV3_FP 0x80 /* floating point */
674#define OV3_VMX 0x40 /* VMX/Altivec */
675
676/* Option vector 5: PAPR/OF options supported */
677#define OV5_LPAR 0x80 /* logical partitioning supported */
678#define OV5_SPLPAR 0x40 /* shared-processor LPAR supported */
679/* ibm,dynamic-reconfiguration-memory property supported */
680#define OV5_DRCONF_MEMORY 0x20
681#define OV5_LARGE_PAGES 0x10 /* large pages supported */
682
683/*
684 * The architecture vector has an array of PVR mask/value pairs,
685 * followed by # option vectors - 1, followed by the option vectors.
686 */
687static unsigned char ibm_architecture_vec[] = {
688 W(0xfffe0000), W(0x003a0000), /* POWER5/POWER5+ */
689 W(0xffff0000), W(0x003e0000), /* POWER6 */
690 W(0xfffffffe), W(0x0f000001), /* all 2.04-compliant and earlier */
691 5 - 1, /* 5 option vectors */
692
693 /* option vector 1: processor architectures supported */
694 3 - 1, /* length */
695 0, /* don't ignore, don't halt */
696 OV1_PPC_2_00 | OV1_PPC_2_01 | OV1_PPC_2_02 | OV1_PPC_2_03 |
697 OV1_PPC_2_04 | OV1_PPC_2_05,
698
699 /* option vector 2: Open Firmware options supported */
700 34 - 1, /* length */
701 OV2_REAL_MODE,
702 0, 0,
703 W(0xffffffff), /* real_base */
704 W(0xffffffff), /* real_size */
705 W(0xffffffff), /* virt_base */
706 W(0xffffffff), /* virt_size */
707 W(0xffffffff), /* load_base */
708 W(64), /* 128MB min RMA */
709 W(0xffffffff), /* full client load */
710 0, /* min RMA percentage of total RAM */
711 48, /* max log_2(hash table size) */
712
713 /* option vector 3: processor options supported */
714 3 - 1, /* length */
715 0, /* don't ignore, don't halt */
716 OV3_FP | OV3_VMX,
717
718 /* option vector 4: IBM PAPR implementation */
719 2 - 1, /* length */
720 0, /* don't halt */
721
722 /* option vector 5: PAPR/OF options */
723 3 - 1, /* length */
724 0, /* don't ignore, don't halt */
725 OV5_LPAR | OV5_SPLPAR | OV5_LARGE_PAGES,
726};
727
728/* Old method - ELF header with PT_NOTE sections */
643static struct fake_elf { 729static struct fake_elf {
644 Elf32_Ehdr elfhdr; 730 Elf32_Ehdr elfhdr;
645 Elf32_Phdr phdr[2]; 731 Elf32_Phdr phdr[2];
@@ -728,8 +814,26 @@ static struct fake_elf {
728 814
729static void __init prom_send_capabilities(void) 815static void __init prom_send_capabilities(void)
730{ 816{
731 ihandle elfloader; 817 ihandle elfloader, root;
818 prom_arg_t ret;
819
820 root = call_prom("open", 1, 1, ADDR("/"));
821 if (root != 0) {
822 /* try calling the ibm,client-architecture-support method */
823 if (call_prom_ret("call-method", 3, 2, &ret,
824 ADDR("ibm,client-architecture-support"),
825 ADDR(ibm_architecture_vec)) == 0) {
826 /* the call exists... */
827 if (ret)
828 prom_printf("WARNING: ibm,client-architecture"
829 "-support call FAILED!\n");
830 call_prom("close", 1, 0, root);
831 return;
832 }
833 call_prom("close", 1, 0, root);
834 }
732 835
836 /* no ibm,client-architecture-support call, try the old way */
733 elfloader = call_prom("open", 1, 1, ADDR("/packages/elf-loader")); 837 elfloader = call_prom("open", 1, 1, ADDR("/packages/elf-loader"));
734 if (elfloader == 0) { 838 if (elfloader == 0) {
735 prom_printf("couldn't open /packages/elf-loader\n"); 839 prom_printf("couldn't open /packages/elf-loader\n");
@@ -1528,12 +1632,11 @@ static int __init prom_find_machine_type(void)
1528 * non-IBM designs ! 1632 * non-IBM designs !
1529 * - it has /rtas 1633 * - it has /rtas
1530 */ 1634 */
1531 len = prom_getprop(_prom->root, "model", 1635 len = prom_getprop(_prom->root, "device_type",
1532 compat, sizeof(compat)-1); 1636 compat, sizeof(compat)-1);
1533 if (len <= 0) 1637 if (len <= 0)
1534 return PLATFORM_GENERIC; 1638 return PLATFORM_GENERIC;
1535 compat[len] = 0; 1639 if (strncmp(compat, RELOC("chrp"), 4))
1536 if (strcmp(compat, "chrp"))
1537 return PLATFORM_GENERIC; 1640 return PLATFORM_GENERIC;
1538 1641
1539 /* Default to pSeries. We need to know if we are running LPAR */ 1642 /* Default to pSeries. We need to know if we are running LPAR */
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index bcb83574335b..4a677d1bd4ef 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -538,7 +538,7 @@ void do_syscall_trace_enter(struct pt_regs *regs)
538 do_syscall_trace(); 538 do_syscall_trace();
539 539
540 if (unlikely(current->audit_context)) 540 if (unlikely(current->audit_context))
541 audit_syscall_entry(current, 541 audit_syscall_entry(
542#ifdef CONFIG_PPC32 542#ifdef CONFIG_PPC32
543 AUDIT_ARCH_PPC, 543 AUDIT_ARCH_PPC,
544#else 544#else
@@ -556,8 +556,7 @@ void do_syscall_trace_leave(struct pt_regs *regs)
556#endif 556#endif
557 557
558 if (unlikely(current->audit_context)) 558 if (unlikely(current->audit_context))
559 audit_syscall_exit(current, 559 audit_syscall_exit((regs->ccr&0x1000)?AUDITSC_FAILURE:AUDITSC_SUCCESS,
560 (regs->ccr&0x1000)?AUDITSC_FAILURE:AUDITSC_SUCCESS,
561 regs->result); 560 regs->result);
562 561
563 if ((test_thread_flag(TIF_SYSCALL_TRACE) 562 if ((test_thread_flag(TIF_SYSCALL_TRACE)
diff --git a/arch/powerpc/kernel/rtas-proc.c b/arch/powerpc/kernel/rtas-proc.c
index 456286cf1d14..9c9ad1fa9cce 100644
--- a/arch/powerpc/kernel/rtas-proc.c
+++ b/arch/powerpc/kernel/rtas-proc.c
@@ -258,11 +258,11 @@ static int __init proc_rtas_init(void)
258 struct proc_dir_entry *entry; 258 struct proc_dir_entry *entry;
259 259
260 if (!machine_is(pseries)) 260 if (!machine_is(pseries))
261 return 1; 261 return -ENODEV;
262 262
263 rtas_node = of_find_node_by_name(NULL, "rtas"); 263 rtas_node = of_find_node_by_name(NULL, "rtas");
264 if (rtas_node == NULL) 264 if (rtas_node == NULL)
265 return 1; 265 return -ENODEV;
266 266
267 entry = create_proc_entry("ppc64/rtas/progress", S_IRUGO|S_IWUSR, NULL); 267 entry = create_proc_entry("ppc64/rtas/progress", S_IRUGO|S_IWUSR, NULL);
268 if (entry) 268 if (entry)
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 1d93e73a7003..684ab1d49c65 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -516,3 +516,11 @@ void probe_machine(void)
516 516
517 printk(KERN_INFO "Using %s machine description\n", ppc_md.name); 517 printk(KERN_INFO "Using %s machine description\n", ppc_md.name);
518} 518}
519
520int check_legacy_ioport(unsigned long base_port)
521{
522 if (ppc_md.check_legacy_ioport == NULL)
523 return 0;
524 return ppc_md.check_legacy_ioport(base_port);
525}
526EXPORT_SYMBOL(check_legacy_ioport);
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 13e91c4d70a8..4467c49903b6 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -594,14 +594,6 @@ void ppc64_terminate_msg(unsigned int src, const char *msg)
594 printk("[terminate]%04x %s\n", src, msg); 594 printk("[terminate]%04x %s\n", src, msg);
595} 595}
596 596
597int check_legacy_ioport(unsigned long base_port)
598{
599 if (ppc_md.check_legacy_ioport == NULL)
600 return 0;
601 return ppc_md.check_legacy_ioport(base_port);
602}
603EXPORT_SYMBOL(check_legacy_ioport);
604
605void cpu_die(void) 597void cpu_die(void)
606{ 598{
607 if (ppc_md.cpu_die) 599 if (ppc_md.cpu_die)
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
index 73560ef6f802..5bc2585c8036 100644
--- a/arch/powerpc/kernel/sysfs.c
+++ b/arch/powerpc/kernel/sysfs.c
@@ -279,7 +279,7 @@ static void unregister_cpu_online(unsigned int cpu)
279} 279}
280#endif /* CONFIG_HOTPLUG_CPU */ 280#endif /* CONFIG_HOTPLUG_CPU */
281 281
282static int __devinit sysfs_cpu_notify(struct notifier_block *self, 282static int sysfs_cpu_notify(struct notifier_block *self,
283 unsigned long action, void *hcpu) 283 unsigned long action, void *hcpu)
284{ 284{
285 unsigned int cpu = (unsigned int)(long)hcpu; 285 unsigned int cpu = (unsigned int)(long)hcpu;
@@ -297,7 +297,7 @@ static int __devinit sysfs_cpu_notify(struct notifier_block *self,
297 return NOTIFY_OK; 297 return NOTIFY_OK;
298} 298}
299 299
300static struct notifier_block __devinitdata sysfs_cpu_nb = { 300static struct notifier_block sysfs_cpu_nb = {
301 .notifier_call = sysfs_cpu_notify, 301 .notifier_call = sysfs_cpu_notify,
302}; 302};
303 303
@@ -322,13 +322,31 @@ static void register_nodes(void)
322 } 322 }
323 } 323 }
324} 324}
325
326int sysfs_add_device_to_node(struct sys_device *dev, int nid)
327{
328 struct node *node = &node_devices[nid];
329 return sysfs_create_link(&node->sysdev.kobj, &dev->kobj,
330 kobject_name(&dev->kobj));
331}
332
333void sysfs_remove_device_from_node(struct sys_device *dev, int nid)
334{
335 struct node *node = &node_devices[nid];
336 sysfs_remove_link(&node->sysdev.kobj, kobject_name(&dev->kobj));
337}
338
325#else 339#else
326static void register_nodes(void) 340static void register_nodes(void)
327{ 341{
328 return; 342 return;
329} 343}
344
330#endif 345#endif
331 346
347EXPORT_SYMBOL_GPL(sysfs_add_device_to_node);
348EXPORT_SYMBOL_GPL(sysfs_remove_device_from_node);
349
332/* Only valid if CPU is present. */ 350/* Only valid if CPU is present. */
333static ssize_t show_physical_id(struct sys_device *dev, char *buf) 351static ssize_t show_physical_id(struct sys_device *dev, char *buf)
334{ 352{
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S
index a14c96403840..cf56a1d499ff 100644
--- a/arch/powerpc/kernel/systbl.S
+++ b/arch/powerpc/kernel/systbl.S
@@ -324,3 +324,22 @@ COMPAT_SYS(ppoll)
324SYSCALL(unshare) 324SYSCALL(unshare)
325SYSCALL(splice) 325SYSCALL(splice)
326SYSCALL(tee) 326SYSCALL(tee)
327SYSCALL(vmsplice)
328COMPAT_SYS(openat)
329SYSCALL(mkdirat)
330SYSCALL(mknodat)
331SYSCALL(fchownat)
332COMPAT_SYS(futimesat)
333SYSX(sys_newfstatat, sys_fstatat64, sys_fstatat64)
334SYSCALL(unlinkat)
335SYSCALL(renameat)
336SYSCALL(linkat)
337SYSCALL(symlinkat)
338SYSCALL(readlinkat)
339SYSCALL(fchmodat)
340SYSCALL(faccessat)
341
342/*
343 * please add new calls to arch/powerpc/platforms/cell/spu_callbacks.c
344 * as well when appropriate.
345 */
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c
index 13c655ba2841..971020cf3f7d 100644
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
@@ -202,7 +202,7 @@ static dma_addr_t vio_map_single(struct device *dev, void *vaddr,
202 size_t size, enum dma_data_direction direction) 202 size_t size, enum dma_data_direction direction)
203{ 203{
204 return iommu_map_single(to_vio_dev(dev)->iommu_table, vaddr, size, 204 return iommu_map_single(to_vio_dev(dev)->iommu_table, vaddr, size,
205 direction); 205 ~0ul, direction);
206} 206}
207 207
208static void vio_unmap_single(struct device *dev, dma_addr_t dma_handle, 208static void vio_unmap_single(struct device *dev, dma_addr_t dma_handle,
@@ -216,7 +216,7 @@ static int vio_map_sg(struct device *dev, struct scatterlist *sglist,
216 int nelems, enum dma_data_direction direction) 216 int nelems, enum dma_data_direction direction)
217{ 217{
218 return iommu_map_sg(dev, to_vio_dev(dev)->iommu_table, sglist, 218 return iommu_map_sg(dev, to_vio_dev(dev)->iommu_table, sglist,
219 nelems, direction); 219 nelems, ~0ul, direction);
220} 220}
221 221
222static void vio_unmap_sg(struct device *dev, struct scatterlist *sglist, 222static void vio_unmap_sg(struct device *dev, struct scatterlist *sglist,
@@ -229,7 +229,7 @@ static void *vio_alloc_coherent(struct device *dev, size_t size,
229 dma_addr_t *dma_handle, gfp_t flag) 229 dma_addr_t *dma_handle, gfp_t flag)
230{ 230{
231 return iommu_alloc_coherent(to_vio_dev(dev)->iommu_table, size, 231 return iommu_alloc_coherent(to_vio_dev(dev)->iommu_table, size,
232 dma_handle, flag); 232 dma_handle, ~0ul, flag);
233} 233}
234 234
235static void vio_free_coherent(struct device *dev, size_t size, 235static void vio_free_coherent(struct device *dev, size_t size,
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index 7370f9f33e29..266b8b2ceac9 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c
@@ -30,13 +30,66 @@
30#define NUM_LOW_AREAS (0x100000000UL >> SID_SHIFT) 30#define NUM_LOW_AREAS (0x100000000UL >> SID_SHIFT)
31#define NUM_HIGH_AREAS (PGTABLE_RANGE >> HTLB_AREA_SHIFT) 31#define NUM_HIGH_AREAS (PGTABLE_RANGE >> HTLB_AREA_SHIFT)
32 32
33#ifdef CONFIG_PPC_64K_PAGES
34#define HUGEPTE_INDEX_SIZE (PMD_SHIFT-HPAGE_SHIFT)
35#else
36#define HUGEPTE_INDEX_SIZE (PUD_SHIFT-HPAGE_SHIFT)
37#endif
38#define PTRS_PER_HUGEPTE (1 << HUGEPTE_INDEX_SIZE)
39#define HUGEPTE_TABLE_SIZE (sizeof(pte_t) << HUGEPTE_INDEX_SIZE)
40
41#define HUGEPD_SHIFT (HPAGE_SHIFT + HUGEPTE_INDEX_SIZE)
42#define HUGEPD_SIZE (1UL << HUGEPD_SHIFT)
43#define HUGEPD_MASK (~(HUGEPD_SIZE-1))
44
45#define huge_pgtable_cache (pgtable_cache[HUGEPTE_CACHE_NUM])
46
47/* Flag to mark huge PD pointers. This means pmd_bad() and pud_bad()
48 * will choke on pointers to hugepte tables, which is handy for
49 * catching screwups early. */
50#define HUGEPD_OK 0x1
51
52typedef struct { unsigned long pd; } hugepd_t;
53
54#define hugepd_none(hpd) ((hpd).pd == 0)
55
56static inline pte_t *hugepd_page(hugepd_t hpd)
57{
58 BUG_ON(!(hpd.pd & HUGEPD_OK));
59 return (pte_t *)(hpd.pd & ~HUGEPD_OK);
60}
61
62static inline pte_t *hugepte_offset(hugepd_t *hpdp, unsigned long addr)
63{
64 unsigned long idx = ((addr >> HPAGE_SHIFT) & (PTRS_PER_HUGEPTE-1));
65 pte_t *dir = hugepd_page(*hpdp);
66
67 return dir + idx;
68}
69
70static int __hugepte_alloc(struct mm_struct *mm, hugepd_t *hpdp,
71 unsigned long address)
72{
73 pte_t *new = kmem_cache_alloc(huge_pgtable_cache,
74 GFP_KERNEL|__GFP_REPEAT);
75
76 if (! new)
77 return -ENOMEM;
78
79 spin_lock(&mm->page_table_lock);
80 if (!hugepd_none(*hpdp))
81 kmem_cache_free(huge_pgtable_cache, new);
82 else
83 hpdp->pd = (unsigned long)new | HUGEPD_OK;
84 spin_unlock(&mm->page_table_lock);
85 return 0;
86}
87
33/* Modelled after find_linux_pte() */ 88/* Modelled after find_linux_pte() */
34pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr) 89pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr)
35{ 90{
36 pgd_t *pg; 91 pgd_t *pg;
37 pud_t *pu; 92 pud_t *pu;
38 pmd_t *pm;
39 pte_t *pt;
40 93
41 BUG_ON(! in_hugepage_area(mm->context, addr)); 94 BUG_ON(! in_hugepage_area(mm->context, addr));
42 95
@@ -46,26 +99,14 @@ pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr)
46 if (!pgd_none(*pg)) { 99 if (!pgd_none(*pg)) {
47 pu = pud_offset(pg, addr); 100 pu = pud_offset(pg, addr);
48 if (!pud_none(*pu)) { 101 if (!pud_none(*pu)) {
49 pm = pmd_offset(pu, addr);
50#ifdef CONFIG_PPC_64K_PAGES 102#ifdef CONFIG_PPC_64K_PAGES
51 /* Currently, we use the normal PTE offset within full 103 pmd_t *pm;
52 * size PTE pages, thus our huge PTEs are scattered in 104 pm = pmd_offset(pu, addr);
53 * the PTE page and we do waste some. We may change 105 if (!pmd_none(*pm))
54 * that in the future, but the current mecanism keeps 106 return hugepte_offset((hugepd_t *)pm, addr);
55 * things much simpler 107#else
56 */ 108 return hugepte_offset((hugepd_t *)pu, addr);
57 if (!pmd_none(*pm)) { 109#endif
58 /* Note: pte_offset_* are all equivalent on
59 * ppc64 as we don't have HIGHMEM
60 */
61 pt = pte_offset_kernel(pm, addr);
62 return pt;
63 }
64#else /* CONFIG_PPC_64K_PAGES */
65 /* On 4k pages, we put huge PTEs in the PMD page */
66 pt = (pte_t *)pm;
67 return pt;
68#endif /* CONFIG_PPC_64K_PAGES */
69 } 110 }
70 } 111 }
71 112
@@ -76,8 +117,7 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr)
76{ 117{
77 pgd_t *pg; 118 pgd_t *pg;
78 pud_t *pu; 119 pud_t *pu;
79 pmd_t *pm; 120 hugepd_t *hpdp = NULL;
80 pte_t *pt;
81 121
82 BUG_ON(! in_hugepage_area(mm->context, addr)); 122 BUG_ON(! in_hugepage_area(mm->context, addr));
83 123
@@ -87,23 +127,182 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr)
87 pu = pud_alloc(mm, pg, addr); 127 pu = pud_alloc(mm, pg, addr);
88 128
89 if (pu) { 129 if (pu) {
130#ifdef CONFIG_PPC_64K_PAGES
131 pmd_t *pm;
90 pm = pmd_alloc(mm, pu, addr); 132 pm = pmd_alloc(mm, pu, addr);
91 if (pm) { 133 if (pm)
134 hpdp = (hugepd_t *)pm;
135#else
136 hpdp = (hugepd_t *)pu;
137#endif
138 }
139
140 if (! hpdp)
141 return NULL;
142
143 if (hugepd_none(*hpdp) && __hugepte_alloc(mm, hpdp, addr))
144 return NULL;
145
146 return hugepte_offset(hpdp, addr);
147}
148
149static void free_hugepte_range(struct mmu_gather *tlb, hugepd_t *hpdp)
150{
151 pte_t *hugepte = hugepd_page(*hpdp);
152
153 hpdp->pd = 0;
154 tlb->need_flush = 1;
155 pgtable_free_tlb(tlb, pgtable_free_cache(hugepte, HUGEPTE_CACHE_NUM,
156 HUGEPTE_TABLE_SIZE-1));
157}
158
92#ifdef CONFIG_PPC_64K_PAGES 159#ifdef CONFIG_PPC_64K_PAGES
93 /* See comment in huge_pte_offset. Note that if we ever 160static void hugetlb_free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
94 * want to put the page size in the PMD, we would have 161 unsigned long addr, unsigned long end,
95 * to open code our own pte_alloc* function in order 162 unsigned long floor, unsigned long ceiling)
96 * to populate and set the size atomically 163{
97 */ 164 pmd_t *pmd;
98 pt = pte_alloc_map(mm, pm, addr); 165 unsigned long next;
99#else /* CONFIG_PPC_64K_PAGES */ 166 unsigned long start;
100 pt = (pte_t *)pm; 167
101#endif /* CONFIG_PPC_64K_PAGES */ 168 start = addr;
102 return pt; 169 pmd = pmd_offset(pud, addr);
103 } 170 do {
171 next = pmd_addr_end(addr, end);
172 if (pmd_none(*pmd))
173 continue;
174 free_hugepte_range(tlb, (hugepd_t *)pmd);
175 } while (pmd++, addr = next, addr != end);
176
177 start &= PUD_MASK;
178 if (start < floor)
179 return;
180 if (ceiling) {
181 ceiling &= PUD_MASK;
182 if (!ceiling)
183 return;
104 } 184 }
185 if (end - 1 > ceiling - 1)
186 return;
105 187
106 return NULL; 188 pmd = pmd_offset(pud, start);
189 pud_clear(pud);
190 pmd_free_tlb(tlb, pmd);
191}
192#endif
193
194static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
195 unsigned long addr, unsigned long end,
196 unsigned long floor, unsigned long ceiling)
197{
198 pud_t *pud;
199 unsigned long next;
200 unsigned long start;
201
202 start = addr;
203 pud = pud_offset(pgd, addr);
204 do {
205 next = pud_addr_end(addr, end);
206#ifdef CONFIG_PPC_64K_PAGES
207 if (pud_none_or_clear_bad(pud))
208 continue;
209 hugetlb_free_pmd_range(tlb, pud, addr, next, floor, ceiling);
210#else
211 if (pud_none(*pud))
212 continue;
213 free_hugepte_range(tlb, (hugepd_t *)pud);
214#endif
215 } while (pud++, addr = next, addr != end);
216
217 start &= PGDIR_MASK;
218 if (start < floor)
219 return;
220 if (ceiling) {
221 ceiling &= PGDIR_MASK;
222 if (!ceiling)
223 return;
224 }
225 if (end - 1 > ceiling - 1)
226 return;
227
228 pud = pud_offset(pgd, start);
229 pgd_clear(pgd);
230 pud_free_tlb(tlb, pud);
231}
232
233/*
234 * This function frees user-level page tables of a process.
235 *
236 * Must be called with pagetable lock held.
237 */
238void hugetlb_free_pgd_range(struct mmu_gather **tlb,
239 unsigned long addr, unsigned long end,
240 unsigned long floor, unsigned long ceiling)
241{
242 pgd_t *pgd;
243 unsigned long next;
244 unsigned long start;
245
246 /*
247 * Comments below take from the normal free_pgd_range(). They
248 * apply here too. The tests against HUGEPD_MASK below are
249 * essential, because we *don't* test for this at the bottom
250 * level. Without them we'll attempt to free a hugepte table
251 * when we unmap just part of it, even if there are other
252 * active mappings using it.
253 *
254 * The next few lines have given us lots of grief...
255 *
256 * Why are we testing HUGEPD* at this top level? Because
257 * often there will be no work to do at all, and we'd prefer
258 * not to go all the way down to the bottom just to discover
259 * that.
260 *
261 * Why all these "- 1"s? Because 0 represents both the bottom
262 * of the address space and the top of it (using -1 for the
263 * top wouldn't help much: the masks would do the wrong thing).
264 * The rule is that addr 0 and floor 0 refer to the bottom of
265 * the address space, but end 0 and ceiling 0 refer to the top
266 * Comparisons need to use "end - 1" and "ceiling - 1" (though
267 * that end 0 case should be mythical).
268 *
269 * Wherever addr is brought up or ceiling brought down, we
270 * must be careful to reject "the opposite 0" before it
271 * confuses the subsequent tests. But what about where end is
272 * brought down by HUGEPD_SIZE below? no, end can't go down to
273 * 0 there.
274 *
275 * Whereas we round start (addr) and ceiling down, by different
276 * masks at different levels, in order to test whether a table
277 * now has no other vmas using it, so can be freed, we don't
278 * bother to round floor or end up - the tests don't need that.
279 */
280
281 addr &= HUGEPD_MASK;
282 if (addr < floor) {
283 addr += HUGEPD_SIZE;
284 if (!addr)
285 return;
286 }
287 if (ceiling) {
288 ceiling &= HUGEPD_MASK;
289 if (!ceiling)
290 return;
291 }
292 if (end - 1 > ceiling - 1)
293 end -= HUGEPD_SIZE;
294 if (addr > end - 1)
295 return;
296
297 start = addr;
298 pgd = pgd_offset((*tlb)->mm, addr);
299 do {
300 BUG_ON(! in_hugepage_area((*tlb)->mm->context, addr));
301 next = pgd_addr_end(addr, end);
302 if (pgd_none_or_clear_bad(pgd))
303 continue;
304 hugetlb_free_pud_range(*tlb, pgd, addr, next, floor, ceiling);
305 } while (pgd++, addr = next, addr != end);
107} 306}
108 307
109void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, 308void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
@@ -841,3 +1040,27 @@ repeat:
841 out: 1040 out:
842 return err; 1041 return err;
843} 1042}
1043
1044static void zero_ctor(void *addr, kmem_cache_t *cache, unsigned long flags)
1045{
1046 memset(addr, 0, kmem_cache_size(cache));
1047}
1048
1049static int __init hugetlbpage_init(void)
1050{
1051 if (!cpu_has_feature(CPU_FTR_16M_PAGE))
1052 return -ENODEV;
1053
1054 huge_pgtable_cache = kmem_cache_create("hugepte_cache",
1055 HUGEPTE_TABLE_SIZE,
1056 HUGEPTE_TABLE_SIZE,
1057 SLAB_HWCACHE_ALIGN |
1058 SLAB_MUST_HWCACHE_ALIGN,
1059 zero_ctor, NULL);
1060 if (! huge_pgtable_cache)
1061 panic("hugetlbpage_init(): could not create hugepte cache\n");
1062
1063 return 0;
1064}
1065
1066module_init(hugetlbpage_init);
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c
index babebd15bdc4..9e30f968c184 100644
--- a/arch/powerpc/mm/init_64.c
+++ b/arch/powerpc/mm/init_64.c
@@ -162,7 +162,14 @@ static const char *pgtable_cache_name[ARRAY_SIZE(pgtable_cache_size)] = {
162}; 162};
163#endif /* CONFIG_PPC_64K_PAGES */ 163#endif /* CONFIG_PPC_64K_PAGES */
164 164
165#ifdef CONFIG_HUGETLB_PAGE
166/* Hugepages need one extra cache, initialized in hugetlbpage.c. We
167 * can't put into the tables above, because HPAGE_SHIFT is not compile
168 * time constant. */
169kmem_cache_t *pgtable_cache[ARRAY_SIZE(pgtable_cache_size)+1];
170#else
165kmem_cache_t *pgtable_cache[ARRAY_SIZE(pgtable_cache_size)]; 171kmem_cache_t *pgtable_cache[ARRAY_SIZE(pgtable_cache_size)];
172#endif
166 173
167void pgtable_cache_init(void) 174void pgtable_cache_init(void)
168{ 175{
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 0a335f34974c..092355f37399 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -194,7 +194,7 @@ static int *of_get_associativity(struct device_node *dev)
194/* Returns nid in the range [0..MAX_NUMNODES-1], or -1 if no useful numa 194/* Returns nid in the range [0..MAX_NUMNODES-1], or -1 if no useful numa
195 * info is found. 195 * info is found.
196 */ 196 */
197static int of_node_to_nid(struct device_node *device) 197static int of_node_to_nid_single(struct device_node *device)
198{ 198{
199 int nid = -1; 199 int nid = -1;
200 unsigned int *tmp; 200 unsigned int *tmp;
@@ -216,6 +216,28 @@ out:
216 return nid; 216 return nid;
217} 217}
218 218
219/* Walk the device tree upwards, looking for an associativity id */
220int of_node_to_nid(struct device_node *device)
221{
222 struct device_node *tmp;
223 int nid = -1;
224
225 of_node_get(device);
226 while (device) {
227 nid = of_node_to_nid_single(device);
228 if (nid != -1)
229 break;
230
231 tmp = device;
232 device = of_get_parent(tmp);
233 of_node_put(tmp);
234 }
235 of_node_put(device);
236
237 return nid;
238}
239EXPORT_SYMBOL_GPL(of_node_to_nid);
240
219/* 241/*
220 * In theory, the "ibm,associativity" property may contain multiple 242 * In theory, the "ibm,associativity" property may contain multiple
221 * associativity lists because a resource may be multiply connected 243 * associativity lists because a resource may be multiply connected
@@ -300,7 +322,7 @@ static int __cpuinit numa_setup_cpu(unsigned long lcpu)
300 goto out; 322 goto out;
301 } 323 }
302 324
303 nid = of_node_to_nid(cpu); 325 nid = of_node_to_nid_single(cpu);
304 326
305 if (nid < 0 || !node_online(nid)) 327 if (nid < 0 || !node_online(nid))
306 nid = any_online_node(NODE_MASK_ALL); 328 nid = any_online_node(NODE_MASK_ALL);
@@ -393,7 +415,7 @@ static int __init parse_numa_properties(void)
393 415
394 cpu = find_cpu_node(i); 416 cpu = find_cpu_node(i);
395 BUG_ON(!cpu); 417 BUG_ON(!cpu);
396 nid = of_node_to_nid(cpu); 418 nid = of_node_to_nid_single(cpu);
397 of_node_put(cpu); 419 of_node_put(cpu);
398 420
399 /* 421 /*
@@ -437,7 +459,7 @@ new_range:
437 * have associativity properties. If none, then 459 * have associativity properties. If none, then
438 * everything goes to default_nid. 460 * everything goes to default_nid.
439 */ 461 */
440 nid = of_node_to_nid(memory); 462 nid = of_node_to_nid_single(memory);
441 if (nid < 0) 463 if (nid < 0)
442 nid = default_nid; 464 nid = default_nid;
443 node_set_online(nid); 465 node_set_online(nid);
@@ -776,7 +798,7 @@ int hot_add_scn_to_nid(unsigned long scn_addr)
776ha_new_range: 798ha_new_range:
777 start = read_n_cells(n_mem_addr_cells, &memcell_buf); 799 start = read_n_cells(n_mem_addr_cells, &memcell_buf);
778 size = read_n_cells(n_mem_size_cells, &memcell_buf); 800 size = read_n_cells(n_mem_size_cells, &memcell_buf);
779 nid = of_node_to_nid(memory); 801 nid = of_node_to_nid_single(memory);
780 802
781 /* Domains not present at boot default to 0 */ 803 /* Domains not present at boot default to 0 */
782 if (nid < 0 || !node_online(nid)) 804 if (nid < 0 || !node_online(nid))
diff --git a/arch/powerpc/platforms/cell/Kconfig b/arch/powerpc/platforms/cell/Kconfig
index c2a3db8edb0c..6a02d51086c8 100644
--- a/arch/powerpc/platforms/cell/Kconfig
+++ b/arch/powerpc/platforms/cell/Kconfig
@@ -12,7 +12,8 @@ config SPU_FS
12 12
13config SPUFS_MMAP 13config SPUFS_MMAP
14 bool 14 bool
15 depends on SPU_FS && SPARSEMEM && !PPC_64K_PAGES 15 depends on SPU_FS && SPARSEMEM
16 select MEMORY_HOTPLUG
16 default y 17 default y
17 18
18endmenu 19endmenu
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c
index dac5d0365fde..6574b22b3cf3 100644
--- a/arch/powerpc/platforms/cell/setup.c
+++ b/arch/powerpc/platforms/cell/setup.c
@@ -29,6 +29,8 @@
29#include <linux/seq_file.h> 29#include <linux/seq_file.h>
30#include <linux/root_dev.h> 30#include <linux/root_dev.h>
31#include <linux/console.h> 31#include <linux/console.h>
32#include <linux/mutex.h>
33#include <linux/memory_hotplug.h>
32 34
33#include <asm/mmu.h> 35#include <asm/mmu.h>
34#include <asm/processor.h> 36#include <asm/processor.h>
@@ -46,6 +48,7 @@
46#include <asm/cputable.h> 48#include <asm/cputable.h>
47#include <asm/ppc-pci.h> 49#include <asm/ppc-pci.h>
48#include <asm/irq.h> 50#include <asm/irq.h>
51#include <asm/spu.h>
49 52
50#include "interrupt.h" 53#include "interrupt.h"
51#include "iommu.h" 54#include "iommu.h"
@@ -69,77 +72,6 @@ static void cell_show_cpuinfo(struct seq_file *m)
69 of_node_put(root); 72 of_node_put(root);
70} 73}
71 74
72#ifdef CONFIG_SPARSEMEM
73static int __init find_spu_node_id(struct device_node *spe)
74{
75 unsigned int *id;
76#ifdef CONFIG_NUMA
77 struct device_node *cpu;
78 cpu = spe->parent->parent;
79 id = (unsigned int *)get_property(cpu, "node-id", NULL);
80#else
81 id = NULL;
82#endif
83 return id ? *id : 0;
84}
85
86static void __init cell_spuprop_present(struct device_node *spe,
87 const char *prop, int early)
88{
89 struct address_prop {
90 unsigned long address;
91 unsigned int len;
92 } __attribute__((packed)) *p;
93 int proplen;
94
95 unsigned long start_pfn, end_pfn, pfn;
96 int node_id;
97
98 p = (void*)get_property(spe, prop, &proplen);
99 WARN_ON(proplen != sizeof (*p));
100
101 node_id = find_spu_node_id(spe);
102
103 start_pfn = p->address >> PAGE_SHIFT;
104 end_pfn = (p->address + p->len + PAGE_SIZE - 1) >> PAGE_SHIFT;
105
106 /* We need to call memory_present *before* the call to sparse_init,
107 but we can initialize the page structs only *after* that call.
108 Thus, we're being called twice. */
109 if (early)
110 memory_present(node_id, start_pfn, end_pfn);
111 else {
112 /* As the pages backing SPU LS and I/O are outside the range
113 of regular memory, their page structs were not initialized
114 by free_area_init. Do it here instead. */
115 for (pfn = start_pfn; pfn < end_pfn; pfn++) {
116 struct page *page = pfn_to_page(pfn);
117 set_page_links(page, ZONE_DMA, node_id, pfn);
118 init_page_count(page);
119 reset_page_mapcount(page);
120 SetPageReserved(page);
121 INIT_LIST_HEAD(&page->lru);
122 }
123 }
124}
125
126static void __init cell_spumem_init(int early)
127{
128 struct device_node *node;
129 for (node = of_find_node_by_type(NULL, "spe");
130 node; node = of_find_node_by_type(node, "spe")) {
131 cell_spuprop_present(node, "local-store", early);
132 cell_spuprop_present(node, "problem", early);
133 cell_spuprop_present(node, "priv1", early);
134 cell_spuprop_present(node, "priv2", early);
135 }
136}
137#else
138static void __init cell_spumem_init(int early)
139{
140}
141#endif
142
143static void cell_progress(char *s, unsigned short hex) 75static void cell_progress(char *s, unsigned short hex)
144{ 76{
145 printk("*** %04x : %s\n", hex, s ? s : ""); 77 printk("*** %04x : %s\n", hex, s ? s : "");
@@ -172,8 +104,6 @@ static void __init cell_setup_arch(void)
172#endif 104#endif
173 105
174 mmio_nvram_init(); 106 mmio_nvram_init();
175
176 cell_spumem_init(0);
177} 107}
178 108
179/* 109/*
@@ -189,8 +119,6 @@ static void __init cell_init_early(void)
189 119
190 ppc64_interrupt_controller = IC_CELL_PIC; 120 ppc64_interrupt_controller = IC_CELL_PIC;
191 121
192 cell_spumem_init(1);
193
194 DBG(" <- cell_init_early()\n"); 122 DBG(" <- cell_init_early()\n");
195} 123}
196 124
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index 269dda4fd0b4..ad141fe8d52d 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -306,19 +306,19 @@ spu_request_irqs(struct spu *spu)
306 306
307 snprintf(spu->irq_c0, sizeof (spu->irq_c0), "spe%02d.0", spu->number); 307 snprintf(spu->irq_c0, sizeof (spu->irq_c0), "spe%02d.0", spu->number);
308 ret = request_irq(irq_base + spu->isrc, 308 ret = request_irq(irq_base + spu->isrc,
309 spu_irq_class_0, 0, spu->irq_c0, spu); 309 spu_irq_class_0, SA_INTERRUPT, spu->irq_c0, spu);
310 if (ret) 310 if (ret)
311 goto out; 311 goto out;
312 312
313 snprintf(spu->irq_c1, sizeof (spu->irq_c1), "spe%02d.1", spu->number); 313 snprintf(spu->irq_c1, sizeof (spu->irq_c1), "spe%02d.1", spu->number);
314 ret = request_irq(irq_base + IIC_CLASS_STRIDE + spu->isrc, 314 ret = request_irq(irq_base + IIC_CLASS_STRIDE + spu->isrc,
315 spu_irq_class_1, 0, spu->irq_c1, spu); 315 spu_irq_class_1, SA_INTERRUPT, spu->irq_c1, spu);
316 if (ret) 316 if (ret)
317 goto out1; 317 goto out1;
318 318
319 snprintf(spu->irq_c2, sizeof (spu->irq_c2), "spe%02d.2", spu->number); 319 snprintf(spu->irq_c2, sizeof (spu->irq_c2), "spe%02d.2", spu->number);
320 ret = request_irq(irq_base + 2*IIC_CLASS_STRIDE + spu->isrc, 320 ret = request_irq(irq_base + 2*IIC_CLASS_STRIDE + spu->isrc,
321 spu_irq_class_2, 0, spu->irq_c2, spu); 321 spu_irq_class_2, SA_INTERRUPT, spu->irq_c2, spu);
322 if (ret) 322 if (ret)
323 goto out2; 323 goto out2;
324 goto out; 324 goto out;
@@ -487,10 +487,14 @@ int spu_irq_class_1_bottom(struct spu *spu)
487 ea = spu->dar; 487 ea = spu->dar;
488 dsisr = spu->dsisr; 488 dsisr = spu->dsisr;
489 if (dsisr & (MFC_DSISR_PTE_NOT_FOUND | MFC_DSISR_ACCESS_DENIED)) { 489 if (dsisr & (MFC_DSISR_PTE_NOT_FOUND | MFC_DSISR_ACCESS_DENIED)) {
490 u64 flags;
491
490 access = (_PAGE_PRESENT | _PAGE_USER); 492 access = (_PAGE_PRESENT | _PAGE_USER);
491 access |= (dsisr & MFC_DSISR_ACCESS_PUT) ? _PAGE_RW : 0UL; 493 access |= (dsisr & MFC_DSISR_ACCESS_PUT) ? _PAGE_RW : 0UL;
494 local_irq_save(flags);
492 if (hash_page(ea, access, 0x300) != 0) 495 if (hash_page(ea, access, 0x300) != 0)
493 error |= CLASS1_ENABLE_STORAGE_FAULT_INTR; 496 error |= CLASS1_ENABLE_STORAGE_FAULT_INTR;
497 local_irq_restore(flags);
494 } 498 }
495 if (error & CLASS1_ENABLE_STORAGE_FAULT_INTR) { 499 if (error & CLASS1_ENABLE_STORAGE_FAULT_INTR) {
496 if ((ret = spu_handle_mm_fault(spu)) != 0) 500 if ((ret = spu_handle_mm_fault(spu)) != 0)
@@ -516,8 +520,50 @@ void spu_irq_setaffinity(struct spu *spu, int cpu)
516} 520}
517EXPORT_SYMBOL_GPL(spu_irq_setaffinity); 521EXPORT_SYMBOL_GPL(spu_irq_setaffinity);
518 522
519static void __iomem * __init map_spe_prop(struct device_node *n, 523static int __init find_spu_node_id(struct device_node *spe)
520 const char *name) 524{
525 unsigned int *id;
526 struct device_node *cpu;
527 cpu = spe->parent->parent;
528 id = (unsigned int *)get_property(cpu, "node-id", NULL);
529 return id ? *id : 0;
530}
531
532static int __init cell_spuprop_present(struct spu *spu, struct device_node *spe,
533 const char *prop)
534{
535 static DEFINE_MUTEX(add_spumem_mutex);
536
537 struct address_prop {
538 unsigned long address;
539 unsigned int len;
540 } __attribute__((packed)) *p;
541 int proplen;
542
543 unsigned long start_pfn, nr_pages;
544 struct pglist_data *pgdata;
545 struct zone *zone;
546 int ret;
547
548 p = (void*)get_property(spe, prop, &proplen);
549 WARN_ON(proplen != sizeof (*p));
550
551 start_pfn = p->address >> PAGE_SHIFT;
552 nr_pages = ((unsigned long)p->len + PAGE_SIZE - 1) >> PAGE_SHIFT;
553
554 pgdata = NODE_DATA(spu->nid);
555 zone = pgdata->node_zones;
556
557 /* XXX rethink locking here */
558 mutex_lock(&add_spumem_mutex);
559 ret = __add_pages(zone, start_pfn, nr_pages);
560 mutex_unlock(&add_spumem_mutex);
561
562 return ret;
563}
564
565static void __iomem * __init map_spe_prop(struct spu *spu,
566 struct device_node *n, const char *name)
521{ 567{
522 struct address_prop { 568 struct address_prop {
523 unsigned long address; 569 unsigned long address;
@@ -526,6 +572,8 @@ static void __iomem * __init map_spe_prop(struct device_node *n,
526 572
527 void *p; 573 void *p;
528 int proplen; 574 int proplen;
575 void* ret = NULL;
576 int err = 0;
529 577
530 p = get_property(n, name, &proplen); 578 p = get_property(n, name, &proplen);
531 if (proplen != sizeof (struct address_prop)) 579 if (proplen != sizeof (struct address_prop))
@@ -533,7 +581,14 @@ static void __iomem * __init map_spe_prop(struct device_node *n,
533 581
534 prop = p; 582 prop = p;
535 583
536 return ioremap(prop->address, prop->len); 584 err = cell_spuprop_present(spu, n, name);
585 if (err && (err != -EEXIST))
586 goto out;
587
588 ret = ioremap(prop->address, prop->len);
589
590 out:
591 return ret;
537} 592}
538 593
539static void spu_unmap(struct spu *spu) 594static void spu_unmap(struct spu *spu)
@@ -544,44 +599,45 @@ static void spu_unmap(struct spu *spu)
544 iounmap((u8 __iomem *)spu->local_store); 599 iounmap((u8 __iomem *)spu->local_store);
545} 600}
546 601
547static int __init spu_map_device(struct spu *spu, struct device_node *spe) 602static int __init spu_map_device(struct spu *spu, struct device_node *node)
548{ 603{
549 char *prop; 604 char *prop;
550 int ret; 605 int ret;
551 606
552 ret = -ENODEV; 607 ret = -ENODEV;
553 prop = get_property(spe, "isrc", NULL); 608 prop = get_property(node, "isrc", NULL);
554 if (!prop) 609 if (!prop)
555 goto out; 610 goto out;
556 spu->isrc = *(unsigned int *)prop; 611 spu->isrc = *(unsigned int *)prop;
557 612
558 spu->name = get_property(spe, "name", NULL); 613 spu->name = get_property(node, "name", NULL);
559 if (!spu->name) 614 if (!spu->name)
560 goto out; 615 goto out;
561 616
562 prop = get_property(spe, "local-store", NULL); 617 prop = get_property(node, "local-store", NULL);
563 if (!prop) 618 if (!prop)
564 goto out; 619 goto out;
565 spu->local_store_phys = *(unsigned long *)prop; 620 spu->local_store_phys = *(unsigned long *)prop;
566 621
567 /* we use local store as ram, not io memory */ 622 /* we use local store as ram, not io memory */
568 spu->local_store = (void __force *)map_spe_prop(spe, "local-store"); 623 spu->local_store = (void __force *)
624 map_spe_prop(spu, node, "local-store");
569 if (!spu->local_store) 625 if (!spu->local_store)
570 goto out; 626 goto out;
571 627
572 prop = get_property(spe, "problem", NULL); 628 prop = get_property(node, "problem", NULL);
573 if (!prop) 629 if (!prop)
574 goto out_unmap; 630 goto out_unmap;
575 spu->problem_phys = *(unsigned long *)prop; 631 spu->problem_phys = *(unsigned long *)prop;
576 632
577 spu->problem= map_spe_prop(spe, "problem"); 633 spu->problem= map_spe_prop(spu, node, "problem");
578 if (!spu->problem) 634 if (!spu->problem)
579 goto out_unmap; 635 goto out_unmap;
580 636
581 spu->priv1= map_spe_prop(spe, "priv1"); 637 spu->priv1= map_spe_prop(spu, node, "priv1");
582 /* priv1 is not available on a hypervisor */ 638 /* priv1 is not available on a hypervisor */
583 639
584 spu->priv2= map_spe_prop(spe, "priv2"); 640 spu->priv2= map_spe_prop(spu, node, "priv2");
585 if (!spu->priv2) 641 if (!spu->priv2)
586 goto out_unmap; 642 goto out_unmap;
587 ret = 0; 643 ret = 0;
@@ -593,17 +649,6 @@ out:
593 return ret; 649 return ret;
594} 650}
595 651
596static int __init find_spu_node_id(struct device_node *spe)
597{
598 unsigned int *id;
599 struct device_node *cpu;
600
601 cpu = spe->parent->parent;
602 id = (unsigned int *)get_property(cpu, "node-id", NULL);
603
604 return id ? *id : 0;
605}
606
607static int __init create_spu(struct device_node *spe) 652static int __init create_spu(struct device_node *spe)
608{ 653{
609 struct spu *spu; 654 struct spu *spu;
@@ -620,6 +665,10 @@ static int __init create_spu(struct device_node *spe)
620 goto out_free; 665 goto out_free;
621 666
622 spu->node = find_spu_node_id(spe); 667 spu->node = find_spu_node_id(spe);
668 spu->nid = of_node_to_nid(spe);
669 if (spu->nid == -1)
670 spu->nid = 0;
671
623 spu->stop_code = 0; 672 spu->stop_code = 0;
624 spu->slb_replace = 0; 673 spu->slb_replace = 0;
625 spu->mm = NULL; 674 spu->mm = NULL;
diff --git a/arch/powerpc/platforms/cell/spu_callbacks.c b/arch/powerpc/platforms/cell/spu_callbacks.c
index 6594bec73882..95b36430aa0f 100644
--- a/arch/powerpc/platforms/cell/spu_callbacks.c
+++ b/arch/powerpc/platforms/cell/spu_callbacks.c
@@ -317,17 +317,30 @@ void *spu_syscall_table[] = {
317 [__NR_ppoll] sys_ni_syscall, /* sys_ppoll */ 317 [__NR_ppoll] sys_ni_syscall, /* sys_ppoll */
318 [__NR_unshare] sys_unshare, 318 [__NR_unshare] sys_unshare,
319 [__NR_splice] sys_splice, 319 [__NR_splice] sys_splice,
320 [__NR_tee] sys_tee,
321 [__NR_vmsplice] sys_vmsplice,
322 [__NR_openat] sys_openat,
323 [__NR_mkdirat] sys_mkdirat,
324 [__NR_mknodat] sys_mknodat,
325 [__NR_fchownat] sys_fchownat,
326 [__NR_futimesat] sys_futimesat,
327 [__NR_newfstatat] sys_newfstatat,
328 [__NR_unlinkat] sys_unlinkat,
329 [__NR_renameat] sys_renameat,
330 [__NR_linkat] sys_linkat,
331 [__NR_symlinkat] sys_symlinkat,
332 [__NR_readlinkat] sys_readlinkat,
333 [__NR_fchmodat] sys_fchmodat,
334 [__NR_faccessat] sys_faccessat,
320}; 335};
321 336
322long spu_sys_callback(struct spu_syscall_block *s) 337long spu_sys_callback(struct spu_syscall_block *s)
323{ 338{
324 long (*syscall)(u64 a1, u64 a2, u64 a3, u64 a4, u64 a5, u64 a6); 339 long (*syscall)(u64 a1, u64 a2, u64 a3, u64 a4, u64 a5, u64 a6);
325 340
326 BUILD_BUG_ON(ARRAY_SIZE(spu_syscall_table) != __NR_syscalls);
327
328 syscall = spu_syscall_table[s->nr_ret]; 341 syscall = spu_syscall_table[s->nr_ret];
329 342
330 if (s->nr_ret >= __NR_syscalls) { 343 if (s->nr_ret >= ARRAY_SIZE(spu_syscall_table)) {
331 pr_debug("%s: invalid syscall #%ld", __FUNCTION__, s->nr_ret); 344 pr_debug("%s: invalid syscall #%ld", __FUNCTION__, s->nr_ret);
332 return -ENOSYS; 345 return -ENOSYS;
333 } 346 }
diff --git a/arch/powerpc/platforms/cell/spufs/switch.c b/arch/powerpc/platforms/cell/spufs/switch.c
index 97898d5d34e5..1726bfe38ee0 100644
--- a/arch/powerpc/platforms/cell/spufs/switch.c
+++ b/arch/powerpc/platforms/cell/spufs/switch.c
@@ -1297,7 +1297,7 @@ static inline void setup_decr(struct spu_state *csa, struct spu *spu)
1297 cycles_t resume_time = get_cycles(); 1297 cycles_t resume_time = get_cycles();
1298 cycles_t delta_time = resume_time - csa->suspend_time; 1298 cycles_t delta_time = resume_time - csa->suspend_time;
1299 1299
1300 csa->lscsa->decr.slot[0] = delta_time; 1300 csa->lscsa->decr.slot[0] -= delta_time;
1301 } 1301 }
1302} 1302}
1303 1303
diff --git a/arch/powerpc/platforms/chrp/chrp.h b/arch/powerpc/platforms/chrp/chrp.h
index 63f0aee4c158..996c28744e96 100644
--- a/arch/powerpc/platforms/chrp/chrp.h
+++ b/arch/powerpc/platforms/chrp/chrp.h
@@ -9,3 +9,4 @@ extern long chrp_time_init(void);
9 9
10extern void chrp_find_bridges(void); 10extern void chrp_find_bridges(void);
11extern void chrp_event_scan(unsigned long); 11extern void chrp_event_scan(unsigned long);
12extern void chrp_pcibios_fixup(void);
diff --git a/arch/powerpc/platforms/chrp/pci.c b/arch/powerpc/platforms/chrp/pci.c
index 8ef279ad36ad..ac224876ce59 100644
--- a/arch/powerpc/platforms/chrp/pci.c
+++ b/arch/powerpc/platforms/chrp/pci.c
@@ -23,6 +23,8 @@
23#include <asm/grackle.h> 23#include <asm/grackle.h>
24#include <asm/rtas.h> 24#include <asm/rtas.h>
25 25
26#include "chrp.h"
27
26/* LongTrail */ 28/* LongTrail */
27void __iomem *gg2_pci_config_base; 29void __iomem *gg2_pci_config_base;
28 30
@@ -314,6 +316,6 @@ chrp_find_bridges(void)
314 } 316 }
315 317
316 /* Do not fixup interrupts from OF tree on pegasos */ 318 /* Do not fixup interrupts from OF tree on pegasos */
317 if (is_pegasos == 0) 319 if (is_pegasos)
318 ppc_md.pcibios_fixup = chrp_pcibios_fixup; 320 ppc_md.pcibios_fixup = NULL;
319} 321}
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c
index 23a201718704..18d89f38796b 100644
--- a/arch/powerpc/platforms/chrp/setup.c
+++ b/arch/powerpc/platforms/chrp/setup.c
@@ -440,8 +440,6 @@ void __init chrp_init_IRQ(void)
440 440
441 if (_chrp_type == _CHRP_Pegasos) 441 if (_chrp_type == _CHRP_Pegasos)
442 ppc_md.get_irq = i8259_irq; 442 ppc_md.get_irq = i8259_irq;
443 else
444 ppc_md.get_irq = mpic_get_irq;
445 443
446#if defined(CONFIG_VT) && defined(CONFIG_INPUT_ADBHID) && defined(XMON) 444#if defined(CONFIG_VT) && defined(CONFIG_INPUT_ADBHID) && defined(XMON)
447 /* see if there is a keyboard in the device tree 445 /* see if there is a keyboard in the device tree
@@ -528,26 +526,24 @@ static int __init chrp_probe(void)
528 /* Assume we have an 8259... */ 526 /* Assume we have an 8259... */
529 __irq_offset_value = NUM_ISA_INTERRUPTS; 527 __irq_offset_value = NUM_ISA_INTERRUPTS;
530 528
531 ppc_md.setup_arch = chrp_setup_arch; 529 return 1;
532 ppc_md.show_cpuinfo = chrp_show_cpuinfo;
533
534 ppc_md.init_IRQ = chrp_init_IRQ;
535 ppc_md.init = chrp_init2;
536
537 ppc_md.phys_mem_access_prot = pci_phys_mem_access_prot;
538
539 ppc_md.restart = rtas_restart;
540 ppc_md.power_off = rtas_power_off;
541 ppc_md.halt = rtas_halt;
542
543 ppc_md.time_init = chrp_time_init;
544 ppc_md.calibrate_decr = generic_calibrate_decr;
545
546 /* this may get overridden with rtas routines later... */
547 ppc_md.set_rtc_time = chrp_set_rtc_time;
548 ppc_md.get_rtc_time = chrp_get_rtc_time;
549
550#ifdef CONFIG_SMP
551 smp_ops = &chrp_smp_ops;
552#endif /* CONFIG_SMP */
553} 530}
531
532define_machine(chrp) {
533 .name = "CHRP",
534 .probe = chrp_probe,
535 .setup_arch = chrp_setup_arch,
536 .init = chrp_init2,
537 .show_cpuinfo = chrp_show_cpuinfo,
538 .init_IRQ = chrp_init_IRQ,
539 .get_irq = mpic_get_irq,
540 .pcibios_fixup = chrp_pcibios_fixup,
541 .restart = rtas_restart,
542 .power_off = rtas_power_off,
543 .halt = rtas_halt,
544 .time_init = chrp_time_init,
545 .set_rtc_time = chrp_set_rtc_time,
546 .get_rtc_time = chrp_get_rtc_time,
547 .calibrate_decr = generic_calibrate_decr,
548 .phys_mem_access_prot = pci_phys_mem_access_prot,
549};
diff --git a/arch/powerpc/platforms/iseries/setup.c b/arch/powerpc/platforms/iseries/setup.c
index 6ce8a404ba6b..a6fd9bedb074 100644
--- a/arch/powerpc/platforms/iseries/setup.c
+++ b/arch/powerpc/platforms/iseries/setup.c
@@ -54,6 +54,7 @@
54#include <asm/iseries/hv_lp_event.h> 54#include <asm/iseries/hv_lp_event.h>
55#include <asm/iseries/lpar_map.h> 55#include <asm/iseries/lpar_map.h>
56#include <asm/udbg.h> 56#include <asm/udbg.h>
57#include <asm/irq.h>
57 58
58#include "naca.h" 59#include "naca.h"
59#include "setup.h" 60#include "setup.h"
@@ -684,6 +685,12 @@ static int __init iseries_probe(void)
684 powerpc_firmware_features |= FW_FEATURE_ISERIES; 685 powerpc_firmware_features |= FW_FEATURE_ISERIES;
685 powerpc_firmware_features |= FW_FEATURE_LPAR; 686 powerpc_firmware_features |= FW_FEATURE_LPAR;
686 687
688 /*
689 * The Hypervisor only allows us up to 256 interrupt
690 * sources (the irq number is passed in a u8).
691 */
692 virt_irq_max = 255;
693
687 return 1; 694 return 1;
688} 695}
689 696
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
index e14f9ac55cf4..df2343e1956b 100644
--- a/arch/powerpc/platforms/powermac/low_i2c.c
+++ b/arch/powerpc/platforms/powermac/low_i2c.c
@@ -231,6 +231,14 @@ static u8 kw_i2c_wait_interrupt(struct pmac_i2c_host_kw *host)
231 return isr; 231 return isr;
232} 232}
233 233
234static void kw_i2c_do_stop(struct pmac_i2c_host_kw *host, int result)
235{
236 kw_write_reg(reg_control, KW_I2C_CTL_STOP);
237 host->state = state_stop;
238 host->result = result;
239}
240
241
234static void kw_i2c_handle_interrupt(struct pmac_i2c_host_kw *host, u8 isr) 242static void kw_i2c_handle_interrupt(struct pmac_i2c_host_kw *host, u8 isr)
235{ 243{
236 u8 ack; 244 u8 ack;
@@ -246,42 +254,36 @@ static void kw_i2c_handle_interrupt(struct pmac_i2c_host_kw *host, u8 isr)
246 } 254 }
247 255
248 if (isr == 0) { 256 if (isr == 0) {
257 printk(KERN_WARNING "low_i2c: Timeout in i2c transfer"
258 " on keywest !\n");
249 if (host->state != state_stop) { 259 if (host->state != state_stop) {
250 DBG_LOW("KW: Timeout !\n"); 260 kw_i2c_do_stop(host, -EIO);
251 host->result = -EIO; 261 return;
252 goto stop;
253 }
254 if (host->state == state_stop) {
255 ack = kw_read_reg(reg_status);
256 if (ack & KW_I2C_STAT_BUSY)
257 kw_write_reg(reg_status, 0);
258 host->state = state_idle;
259 kw_write_reg(reg_ier, 0x00);
260 if (!host->polled)
261 complete(&host->complete);
262 } 262 }
263 ack = kw_read_reg(reg_status);
264 if (ack & KW_I2C_STAT_BUSY)
265 kw_write_reg(reg_status, 0);
266 host->state = state_idle;
267 kw_write_reg(reg_ier, 0x00);
268 if (!host->polled)
269 complete(&host->complete);
263 return; 270 return;
264 } 271 }
265 272
266 if (isr & KW_I2C_IRQ_ADDR) { 273 if (isr & KW_I2C_IRQ_ADDR) {
267 ack = kw_read_reg(reg_status); 274 ack = kw_read_reg(reg_status);
268 if (host->state != state_addr) { 275 if (host->state != state_addr) {
269 kw_write_reg(reg_isr, KW_I2C_IRQ_ADDR);
270 WRONG_STATE("KW_I2C_IRQ_ADDR"); 276 WRONG_STATE("KW_I2C_IRQ_ADDR");
271 host->result = -EIO; 277 kw_i2c_do_stop(host, -EIO);
272 goto stop;
273 } 278 }
274 if ((ack & KW_I2C_STAT_LAST_AAK) == 0) { 279 if ((ack & KW_I2C_STAT_LAST_AAK) == 0) {
275 host->result = -ENODEV; 280 host->result = -ENXIO;
276 DBG_LOW("KW: NAK on address\n");
277 host->state = state_stop; 281 host->state = state_stop;
278 return; 282 DBG_LOW("KW: NAK on address\n");
279 } else { 283 } else {
280 if (host->len == 0) { 284 if (host->len == 0)
281 kw_write_reg(reg_isr, KW_I2C_IRQ_ADDR); 285 kw_i2c_do_stop(host, 0);
282 goto stop; 286 else if (host->rw) {
283 }
284 if (host->rw) {
285 host->state = state_read; 287 host->state = state_read;
286 if (host->len > 1) 288 if (host->len > 1)
287 kw_write_reg(reg_control, 289 kw_write_reg(reg_control,
@@ -308,25 +310,19 @@ static void kw_i2c_handle_interrupt(struct pmac_i2c_host_kw *host, u8 isr)
308 ack = kw_read_reg(reg_status); 310 ack = kw_read_reg(reg_status);
309 if ((ack & KW_I2C_STAT_LAST_AAK) == 0) { 311 if ((ack & KW_I2C_STAT_LAST_AAK) == 0) {
310 DBG_LOW("KW: nack on data write\n"); 312 DBG_LOW("KW: nack on data write\n");
311 host->result = -EIO; 313 host->result = -EFBIG;
312 goto stop; 314 host->state = state_stop;
313 } else if (host->len) { 315 } else if (host->len) {
314 kw_write_reg(reg_data, *(host->data++)); 316 kw_write_reg(reg_data, *(host->data++));
315 host->len--; 317 host->len--;
316 } else { 318 } else
317 kw_write_reg(reg_control, KW_I2C_CTL_STOP); 319 kw_i2c_do_stop(host, 0);
318 host->state = state_stop;
319 host->result = 0;
320 }
321 kw_write_reg(reg_isr, KW_I2C_IRQ_DATA);
322 } else { 320 } else {
323 kw_write_reg(reg_isr, KW_I2C_IRQ_DATA);
324 WRONG_STATE("KW_I2C_IRQ_DATA"); 321 WRONG_STATE("KW_I2C_IRQ_DATA");
325 if (host->state != state_stop) { 322 if (host->state != state_stop)
326 host->result = -EIO; 323 kw_i2c_do_stop(host, -EIO);
327 goto stop;
328 }
329 } 324 }
325 kw_write_reg(reg_isr, KW_I2C_IRQ_DATA);
330 } 326 }
331 327
332 if (isr & KW_I2C_IRQ_STOP) { 328 if (isr & KW_I2C_IRQ_STOP) {
@@ -340,14 +336,10 @@ static void kw_i2c_handle_interrupt(struct pmac_i2c_host_kw *host, u8 isr)
340 complete(&host->complete); 336 complete(&host->complete);
341 } 337 }
342 338
339 /* Below should only happen in manual mode which we don't use ... */
343 if (isr & KW_I2C_IRQ_START) 340 if (isr & KW_I2C_IRQ_START)
344 kw_write_reg(reg_isr, KW_I2C_IRQ_START); 341 kw_write_reg(reg_isr, KW_I2C_IRQ_START);
345 342
346 return;
347 stop:
348 kw_write_reg(reg_control, KW_I2C_CTL_STOP);
349 host->state = state_stop;
350 return;
351} 343}
352 344
353/* Interrupt handler */ 345/* Interrupt handler */
@@ -544,11 +536,11 @@ static struct pmac_i2c_host_kw *__init kw_i2c_host_init(struct device_node *np)
544 return NULL; 536 return NULL;
545 } 537 }
546 538
547 /* Make sure IRA is disabled */ 539 /* Make sure IRQ is disabled */
548 kw_write_reg(reg_ier, 0); 540 kw_write_reg(reg_ier, 0);
549 541
550 /* Request chip interrupt */ 542 /* Request chip interrupt */
551 if (request_irq(host->irq, kw_i2c_irq, SA_SHIRQ, "keywest i2c", host)) 543 if (request_irq(host->irq, kw_i2c_irq, 0, "keywest i2c", host))
552 host->irq = NO_IRQ; 544 host->irq = NO_IRQ;
553 545
554 printk(KERN_INFO "KeyWest i2c @0x%08x irq %d %s\n", 546 printk(KERN_INFO "KeyWest i2c @0x%08x irq %d %s\n",
diff --git a/arch/powerpc/platforms/powermac/pci.c b/arch/powerpc/platforms/powermac/pci.c
index f5d8d15d74fa..ea179afea632 100644
--- a/arch/powerpc/platforms/powermac/pci.c
+++ b/arch/powerpc/platforms/powermac/pci.c
@@ -1097,7 +1097,7 @@ pmac_pci_enable_device_hook(struct pci_dev *dev, int initial)
1097 * (iBook second controller) 1097 * (iBook second controller)
1098 */ 1098 */
1099 if (dev->vendor == PCI_VENDOR_ID_APPLE 1099 if (dev->vendor == PCI_VENDOR_ID_APPLE
1100 && (dev->class == ((PCI_CLASS_SERIAL_USB << 8) | 0x10)) 1100 && dev->class == PCI_CLASS_SERIAL_USB_OHCI
1101 && !node) { 1101 && !node) {
1102 printk(KERN_INFO "Apple USB OHCI %s disabled by firmware\n", 1102 printk(KERN_INFO "Apple USB OHCI %s disabled by firmware\n",
1103 pci_name(dev)); 1103 pci_name(dev));
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c
index 780fb27a0099..32eaddfa5470 100644
--- a/arch/powerpc/platforms/pseries/eeh.c
+++ b/arch/powerpc/platforms/pseries/eeh.c
@@ -957,8 +957,10 @@ static void eeh_remove_device(struct pci_dev *dev)
957 pci_addr_cache_remove_device(dev); 957 pci_addr_cache_remove_device(dev);
958 958
959 dn = pci_device_to_OF_node(dev); 959 dn = pci_device_to_OF_node(dev);
960 PCI_DN(dn)->pcidev = NULL; 960 if (PCI_DN(dn)->pcidev) {
961 pci_dev_put (dev); 961 PCI_DN(dn)->pcidev = NULL;
962 pci_dev_put (dev);
963 }
962} 964}
963 965
964void eeh_remove_bus_device(struct pci_dev *dev) 966void eeh_remove_bus_device(struct pci_dev *dev)
diff --git a/arch/powerpc/platforms/pseries/rtasd.c b/arch/powerpc/platforms/pseries/rtasd.c
index fcc4d561a236..e0000ce769e5 100644
--- a/arch/powerpc/platforms/pseries/rtasd.c
+++ b/arch/powerpc/platforms/pseries/rtasd.c
@@ -488,7 +488,7 @@ static int __init rtas_init(void)
488 /* No RTAS */ 488 /* No RTAS */
489 if (rtas_token("event-scan") == RTAS_UNKNOWN_SERVICE) { 489 if (rtas_token("event-scan") == RTAS_UNKNOWN_SERVICE) {
490 printk(KERN_INFO "rtasd: no event-scan on system\n"); 490 printk(KERN_INFO "rtasd: no event-scan on system\n");
491 return 1; 491 return -ENODEV;
492 } 492 }
493 493
494 entry = create_proc_entry("ppc64/rtas/error_log", S_IRUSR, NULL); 494 entry = create_proc_entry("ppc64/rtas/error_log", S_IRUSR, NULL);
diff --git a/arch/powerpc/sysdev/dart_iommu.c b/arch/powerpc/sysdev/dart_iommu.c
index 61d317428610..38087bd6e3cf 100644
--- a/arch/powerpc/sysdev/dart_iommu.c
+++ b/arch/powerpc/sysdev/dart_iommu.c
@@ -49,6 +49,7 @@
49 49
50#include "dart.h" 50#include "dart.h"
51 51
52extern int iommu_is_off;
52extern int iommu_force_on; 53extern int iommu_force_on;
53 54
54/* Physical base address and size of the DART table */ 55/* Physical base address and size of the DART table */
@@ -329,10 +330,17 @@ void iommu_init_early_dart(void)
329 330
330void __init alloc_dart_table(void) 331void __init alloc_dart_table(void)
331{ 332{
332 /* Only reserve DART space if machine has more than 2GB of RAM 333 /* Only reserve DART space if machine has more than 1GB of RAM
333 * or if requested with iommu=on on cmdline. 334 * or if requested with iommu=on on cmdline.
335 *
336 * 1GB of RAM is picked as limit because some default devices
337 * (i.e. Airport Extreme) have 30 bit address range limits.
334 */ 338 */
335 if (lmb_end_of_DRAM() <= 0x80000000ull && !iommu_force_on) 339
340 if (iommu_is_off)
341 return;
342
343 if (!iommu_force_on && lmb_end_of_DRAM() <= 0x40000000ull)
336 return; 344 return;
337 345
338 /* 512 pages (2MB) is max DART tablesize. */ 346 /* 512 pages (2MB) is max DART tablesize. */
diff --git a/arch/ppc/kernel/asm-offsets.c b/arch/ppc/kernel/asm-offsets.c
index 77e4dc780f8c..cc7c4aea9397 100644
--- a/arch/ppc/kernel/asm-offsets.c
+++ b/arch/ppc/kernel/asm-offsets.c
@@ -134,6 +134,7 @@ main(void)
134 DEFINE(TI_TASK, offsetof(struct thread_info, task)); 134 DEFINE(TI_TASK, offsetof(struct thread_info, task));
135 DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain)); 135 DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain));
136 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); 136 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
137 DEFINE(TI_LOCAL_FLAGS, offsetof(struct thread_info, flags));
137 DEFINE(TI_CPU, offsetof(struct thread_info, cpu)); 138 DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
138 DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); 139 DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
139 140
diff --git a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S
index 5891ecbdc703..1adc9145516f 100644
--- a/arch/ppc/kernel/entry.S
+++ b/arch/ppc/kernel/entry.S
@@ -128,29 +128,26 @@ transfer_to_handler:
128 stw r12,4(r11) 128 stw r12,4(r11)
129#endif 129#endif
130 b 3f 130 b 3f
131
1312: /* if from kernel, check interrupted DOZE/NAP mode and 1322: /* if from kernel, check interrupted DOZE/NAP mode and
132 * check for stack overflow 133 * check for stack overflow
133 */ 134 */
135 lwz r9,THREAD_INFO-THREAD(r12)
136 cmplw r1,r9 /* if r1 <= current->thread_info */
137 ble- stack_ovf /* then the kernel stack overflowed */
1385:
134#ifdef CONFIG_6xx 139#ifdef CONFIG_6xx
135 mfspr r11,SPRN_HID0 140 tophys(r9,r9) /* check local flags */
136 mtcr r11 141 lwz r12,TI_LOCAL_FLAGS(r9)
137BEGIN_FTR_SECTION 142 mtcrf 0x01,r12
138 bt- 8,4f /* Check DOZE */ 143 bt- 31-TLF_NAPPING,4f
139END_FTR_SECTION_IFSET(CPU_FTR_CAN_DOZE)
140BEGIN_FTR_SECTION
141 bt- 9,4f /* Check NAP */
142END_FTR_SECTION_IFSET(CPU_FTR_CAN_NAP)
143#endif /* CONFIG_6xx */ 144#endif /* CONFIG_6xx */
144 .globl transfer_to_handler_cont 145 .globl transfer_to_handler_cont
145transfer_to_handler_cont: 146transfer_to_handler_cont:
146 lwz r11,THREAD_INFO-THREAD(r12)
147 cmplw r1,r11 /* if r1 <= current->thread_info */
148 ble- stack_ovf /* then the kernel stack overflowed */
1493: 1473:
150 mflr r9 148 mflr r9
151 lwz r11,0(r9) /* virtual address of handler */ 149 lwz r11,0(r9) /* virtual address of handler */
152 lwz r9,4(r9) /* where to go when done */ 150 lwz r9,4(r9) /* where to go when done */
153 FIX_SRR1(r10,r12)
154 mtspr SPRN_SRR0,r11 151 mtspr SPRN_SRR0,r11
155 mtspr SPRN_SRR1,r10 152 mtspr SPRN_SRR1,r10
156 mtlr r9 153 mtlr r9
@@ -158,7 +155,9 @@ transfer_to_handler_cont:
158 RFI /* jump to handler, enable MMU */ 155 RFI /* jump to handler, enable MMU */
159 156
160#ifdef CONFIG_6xx 157#ifdef CONFIG_6xx
1614: b power_save_6xx_restore 1584: rlwinm r12,r12,0,~_TLF_NAPPING
159 stw r12,TI_LOCAL_FLAGS(r9)
160 b power_save_6xx_restore
162#endif 161#endif
163 162
164/* 163/*
@@ -167,10 +166,10 @@ transfer_to_handler_cont:
167 */ 166 */
168stack_ovf: 167stack_ovf:
169 /* sometimes we use a statically-allocated stack, which is OK. */ 168 /* sometimes we use a statically-allocated stack, which is OK. */
170 lis r11,_end@h 169 lis r12,_end@h
171 ori r11,r11,_end@l 170 ori r12,r12,_end@l
172 cmplw r1,r11 171 cmplw r1,r12
173 ble 3b /* r1 <= &_end is OK */ 172 ble 5b /* r1 <= &_end is OK */
174 SAVE_NVGPRS(r11) 173 SAVE_NVGPRS(r11)
175 addi r3,r1,STACK_FRAME_OVERHEAD 174 addi r3,r1,STACK_FRAME_OVERHEAD
176 lis r1,init_thread_union@ha 175 lis r1,init_thread_union@ha
diff --git a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c
index 865ba74991a9..b250b1b539b6 100644
--- a/arch/ppc/kernel/ppc_ksyms.c
+++ b/arch/ppc/kernel/ppc_ksyms.c
@@ -94,6 +94,7 @@ EXPORT_SYMBOL(strcat);
94EXPORT_SYMBOL(strlen); 94EXPORT_SYMBOL(strlen);
95EXPORT_SYMBOL(strcmp); 95EXPORT_SYMBOL(strcmp);
96EXPORT_SYMBOL(strcasecmp); 96EXPORT_SYMBOL(strcasecmp);
97EXPORT_SYMBOL(strncasecmp);
97EXPORT_SYMBOL(__div64_32); 98EXPORT_SYMBOL(__div64_32);
98 99
99EXPORT_SYMBOL(csum_partial); 100EXPORT_SYMBOL(csum_partial);
diff --git a/arch/ppc/platforms/4xx/ocotea.c b/arch/ppc/platforms/4xx/ocotea.c
index f841972f1fa9..554776d4b8ac 100644
--- a/arch/ppc/platforms/4xx/ocotea.c
+++ b/arch/ppc/platforms/4xx/ocotea.c
@@ -331,7 +331,7 @@ static void __init ocotea_init(void)
331void __init platform_init(unsigned long r3, unsigned long r4, 331void __init platform_init(unsigned long r3, unsigned long r4,
332 unsigned long r5, unsigned long r6, unsigned long r7) 332 unsigned long r5, unsigned long r6, unsigned long r7)
333{ 333{
334 ibm44x_platform_init(r3, r4, r5, r6, r7); 334 ibm440gx_platform_init(r3, r4, r5, r6, r7);
335 335
336 ppc_md.setup_arch = ocotea_setup_arch; 336 ppc_md.setup_arch = ocotea_setup_arch;
337 ppc_md.show_cpuinfo = ocotea_show_cpuinfo; 337 ppc_md.show_cpuinfo = ocotea_show_cpuinfo;
diff --git a/arch/ppc/platforms/mpc8272ads_setup.c b/arch/ppc/platforms/mpc8272ads_setup.c
index bc9b94f77e39..e62b75707f7a 100644
--- a/arch/ppc/platforms/mpc8272ads_setup.c
+++ b/arch/ppc/platforms/mpc8272ads_setup.c
@@ -26,11 +26,35 @@
26#include <asm/irq.h> 26#include <asm/irq.h>
27#include <asm/ppc_sys.h> 27#include <asm/ppc_sys.h>
28#include <asm/ppcboot.h> 28#include <asm/ppcboot.h>
29#include <linux/fs_uart_pd.h>
29 30
30#include "pq2ads_pd.h" 31#include "pq2ads_pd.h"
31 32
32static void init_fcc1_ioports(void); 33static void init_fcc1_ioports(void);
33static void init_fcc2_ioports(void); 34static void init_fcc2_ioports(void);
35static void init_scc1_uart_ioports(void);
36static void init_scc4_uart_ioports(void);
37
38static struct fs_uart_platform_info mpc8272_uart_pdata[] = {
39 [fsid_scc1_uart] = {
40 .init_ioports = init_scc1_uart_ioports,
41 .fs_no = fsid_scc1_uart,
42 .brg = 1,
43 .tx_num_fifo = 4,
44 .tx_buf_size = 32,
45 .rx_num_fifo = 4,
46 .rx_buf_size = 32,
47 },
48 [fsid_scc4_uart] = {
49 .init_ioports = init_scc4_uart_ioports,
50 .fs_no = fsid_scc4_uart,
51 .brg = 4,
52 .tx_num_fifo = 4,
53 .tx_buf_size = 32,
54 .rx_num_fifo = 4,
55 .rx_buf_size = 32,
56 },
57};
34 58
35static struct fs_mii_bus_info mii_bus_info = { 59static struct fs_mii_bus_info mii_bus_info = {
36 .method = fsmii_bitbang, 60 .method = fsmii_bitbang,
@@ -201,6 +225,55 @@ static void __init mpc8272ads_fixup_enet_pdata(struct platform_device *pdev,
201 } 225 }
202} 226}
203 227
228static void mpc8272ads_fixup_uart_pdata(struct platform_device *pdev,
229 int idx)
230{
231 bd_t *bd = (bd_t *) __res;
232 struct fs_uart_platform_info *pinfo;
233 int num = ARRAY_SIZE(mpc8272_uart_pdata);
234 int id = fs_uart_id_scc2fsid(idx);
235
236 /* no need to alter anything if console */
237 if ((id <= num) && (!pdev->dev.platform_data)) {
238 pinfo = &mpc8272_uart_pdata[id];
239 pinfo->uart_clk = bd->bi_intfreq;
240 pdev->dev.platform_data = pinfo;
241 }
242}
243
244static void init_scc1_uart_ioports(void)
245{
246 cpm2_map_t* immap = ioremap(CPM_MAP_ADDR, sizeof(cpm2_map_t));
247
248 /* SCC1 is only on port D */
249 setbits32(&immap->im_ioport.iop_ppard,0x00000003);
250 clrbits32(&immap->im_ioport.iop_psord,0x00000001);
251 setbits32(&immap->im_ioport.iop_psord,0x00000002);
252 clrbits32(&immap->im_ioport.iop_pdird,0x00000001);
253 setbits32(&immap->im_ioport.iop_pdird,0x00000002);
254
255 /* Wire BRG1 to SCC1 */
256 clrbits32(&immap->im_cpmux.cmx_scr,0x00ffffff);
257
258 iounmap(immap);
259}
260
261static void init_scc4_uart_ioports(void)
262{
263 cpm2_map_t* immap = ioremap(CPM_MAP_ADDR, sizeof(cpm2_map_t));
264
265 setbits32(&immap->im_ioport.iop_ppard,0x00000600);
266 clrbits32(&immap->im_ioport.iop_psord,0x00000600);
267 clrbits32(&immap->im_ioport.iop_pdird,0x00000200);
268 setbits32(&immap->im_ioport.iop_pdird,0x00000400);
269
270 /* Wire BRG4 to SCC4 */
271 clrbits32(&immap->im_cpmux.cmx_scr,0x000000ff);
272 setbits32(&immap->im_cpmux.cmx_scr,0x0000001b);
273
274 iounmap(immap);
275}
276
204static int mpc8272ads_platform_notify(struct device *dev) 277static int mpc8272ads_platform_notify(struct device *dev)
205{ 278{
206 static const struct platform_notify_dev_map dev_map[] = { 279 static const struct platform_notify_dev_map dev_map[] = {
@@ -209,6 +282,10 @@ static int mpc8272ads_platform_notify(struct device *dev)
209 .rtn = mpc8272ads_fixup_enet_pdata 282 .rtn = mpc8272ads_fixup_enet_pdata
210 }, 283 },
211 { 284 {
285 .bus_id = "fsl-cpm-scc:uart",
286 .rtn = mpc
287 },
288 {
212 .bus_id = NULL 289 .bus_id = NULL
213 } 290 }
214 }; 291 };
@@ -230,7 +307,44 @@ int __init mpc8272ads_init(void)
230 ppc_sys_device_enable(MPC82xx_CPM_FCC1); 307 ppc_sys_device_enable(MPC82xx_CPM_FCC1);
231 ppc_sys_device_enable(MPC82xx_CPM_FCC2); 308 ppc_sys_device_enable(MPC82xx_CPM_FCC2);
232 309
310 /* to be ready for console, let's attach pdata here */
311#ifdef CONFIG_SERIAL_CPM_SCC1
312 ppc_sys_device_setfunc(MPC82xx_CPM_SCC1, PPC_SYS_FUNC_UART);
313 ppc_sys_device_enable(MPC82xx_CPM_SCC1);
314
315#endif
316
317#ifdef CONFIG_SERIAL_CPM_SCC4
318 ppc_sys_device_setfunc(MPC82xx_CPM_SCC4, PPC_SYS_FUNC_UART);
319 ppc_sys_device_enable(MPC82xx_CPM_SCC4);
320#endif
321
322
233 return 0; 323 return 0;
234} 324}
235 325
326/*
327 To prevent confusion, console selection is gross:
328 by 0 assumed SCC1 and by 1 assumed SCC4
329 */
330struct platform_device* early_uart_get_pdev(int index)
331{
332 bd_t *bd = (bd_t *) __res;
333 struct fs_uart_platform_info *pinfo;
334
335 struct platform_device* pdev = NULL;
336 if(index) { /*assume SCC4 here*/
337 pdev = &ppc_sys_platform_devices[MPC82xx_CPM_SCC4];
338 pinfo = &mpc8272<F12>_uart_pdata[1];
339 } else { /*over SCC1*/
340 pdev = &ppc_sys_platform_devices[MPC82xx_CPM_SCC1];
341 pinfo = &mpc8272_uart_pdata[0];
342 }
343
344 pinfo->uart_clk = bd->bi_intfreq;
345 pdev->dev.platform_data = pinfo;
346 ppc_sys_fixup_mem_resource(pdev, IMAP_ADDR);
347 return NULL;
348}
349
236arch_initcall(mpc8272ads_init); 350arch_initcall(mpc8272ads_init);
diff --git a/arch/ppc/platforms/mpc866ads_setup.c b/arch/ppc/platforms/mpc866ads_setup.c
index ac8fcc68afeb..6ce3b842defe 100644
--- a/arch/ppc/platforms/mpc866ads_setup.c
+++ b/arch/ppc/platforms/mpc866ads_setup.c
@@ -20,6 +20,7 @@
20#include <linux/device.h> 20#include <linux/device.h>
21 21
22#include <linux/fs_enet_pd.h> 22#include <linux/fs_enet_pd.h>
23#include <linux/fs_uart_pd.h>
23#include <linux/mii.h> 24#include <linux/mii.h>
24 25
25#include <asm/delay.h> 26#include <asm/delay.h>
@@ -37,6 +38,11 @@
37 38
38extern unsigned char __res[]; 39extern unsigned char __res[];
39 40
41static void setup_fec1_ioports(void);
42static void setup_scc1_ioports(void);
43static void setup_smc1_ioports(void);
44static void setup_smc2_ioports(void);
45
40static struct fs_mii_bus_info fec_mii_bus_info = { 46static struct fs_mii_bus_info fec_mii_bus_info = {
41 .method = fsmii_fec, 47 .method = fsmii_fec,
42 .id = 0, 48 .id = 0,
@@ -79,6 +85,28 @@ static struct fs_platform_info mpc8xx_scc_pdata = {
79 .phy_irq = -1, 85 .phy_irq = -1,
80 86
81 .bus_info = &scc_mii_bus_info, 87 .bus_info = &scc_mii_bus_info,
88
89};
90
91static struct fs_uart_platform_info mpc866_uart_pdata[] = {
92 [fsid_smc1_uart] = {
93 .brg = 1,
94 .fs_no = fsid_smc1_uart,
95 .init_ioports = setup_smc1_ioports,
96 .tx_num_fifo = 4,
97 .tx_buf_size = 32,
98 .rx_num_fifo = 4,
99 .rx_buf_size = 32,
100 },
101 [fsid_smc2_uart] = {
102 .brg = 2,
103 .fs_no = fsid_smc2_uart,
104 .init_ioports = setup_smc2_ioports,
105 .tx_num_fifo = 4,
106 .tx_buf_size = 32,
107 .rx_num_fifo = 4,
108 .rx_buf_size = 32,
109 },
82}; 110};
83 111
84void __init board_init(void) 112void __init board_init(void)
@@ -92,9 +120,12 @@ void __init board_init(void)
92 printk(KERN_CRIT "Could not remap BCSR1\n"); 120 printk(KERN_CRIT "Could not remap BCSR1\n");
93 return; 121 return;
94 } 122 }
123
95#ifdef CONFIG_SERIAL_CPM_SMC1 124#ifdef CONFIG_SERIAL_CPM_SMC1
96 cp->cp_simode &= ~(0xe0000000 >> 17); /* brg1 */ 125 cp->cp_simode &= ~(0xe0000000 >> 17); /* brg1 */
97 clrbits32(bcsr_io,(0x80000000 >> 7)); 126 clrbits32(bcsr_io,(0x80000000 >> 7));
127 cp->cp_smc[0].smc_smcm |= (SMCM_RX | SMCM_TX);
128 cp->cp_smc[0].smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN);
98#else 129#else
99 setbits32(bcsr_io,(0x80000000 >> 7)); 130 setbits32(bcsr_io,(0x80000000 >> 7));
100 131
@@ -108,6 +139,8 @@ void __init board_init(void)
108 cp->cp_simode &= ~(0xe0000000 >> 1); 139 cp->cp_simode &= ~(0xe0000000 >> 1);
109 cp->cp_simode |= (0x20000000 >> 1); /* brg2 */ 140 cp->cp_simode |= (0x20000000 >> 1); /* brg2 */
110 clrbits32(bcsr_io,(0x80000000 >> 13)); 141 clrbits32(bcsr_io,(0x80000000 >> 13));
142 cp->cp_smc[1].smc_smcm |= (SMCM_RX | SMCM_TX);
143 cp->cp_smc[1].smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN);
111#else 144#else
112 clrbits32(bcsr_io,(0x80000000 >> 13)); 145 clrbits32(bcsr_io,(0x80000000 >> 13));
113 cp->cp_pbpar &= ~(0x00000c00); 146 cp->cp_pbpar &= ~(0x00000c00);
@@ -232,6 +265,74 @@ static void mpc866ads_fixup_scc_enet_pdata(struct platform_device *pdev,
232 mpc866ads_fixup_enet_pdata(pdev, fsid_scc1 + pdev->id - 1); 265 mpc866ads_fixup_enet_pdata(pdev, fsid_scc1 + pdev->id - 1);
233} 266}
234 267
268static void setup_smc1_ioports(void)
269{
270 immap_t *immap = (immap_t *) IMAP_ADDR;
271 unsigned *bcsr_io;
272 unsigned int iobits = 0x000000c0;
273
274 bcsr_io = ioremap(BCSR1, sizeof(unsigned long));
275
276 if (bcsr_io == NULL) {
277 printk(KERN_CRIT "Could not remap BCSR1\n");
278 return;
279 }
280
281 clrbits32(bcsr_io,BCSR1_RS232EN_1);
282 iounmap(bcsr_io);
283
284 setbits32(&immap->im_cpm.cp_pbpar, iobits);
285 clrbits32(&immap->im_cpm.cp_pbdir, iobits);
286 clrbits16(&immap->im_cpm.cp_pbodr, iobits);
287
288}
289
290static void setup_smc2_ioports(void)
291{
292 immap_t *immap = (immap_t *) IMAP_ADDR;
293 unsigned *bcsr_io;
294 unsigned int iobits = 0x00000c00;
295
296 bcsr_io = ioremap(BCSR1, sizeof(unsigned long));
297
298 if (bcsr_io == NULL) {
299 printk(KERN_CRIT "Could not remap BCSR1\n");
300 return;
301 }
302
303 clrbits32(bcsr_io,BCSR1_RS232EN_2);
304
305 iounmap(bcsr_io);
306
307#ifndef CONFIG_SERIAL_CPM_ALT_SMC2
308 setbits32(&immap->im_cpm.cp_pbpar, iobits);
309 clrbits32(&immap->im_cpm.cp_pbdir, iobits);
310 clrbits16(&immap->im_cpm.cp_pbodr, iobits);
311#else
312 setbits16(&immap->im_ioport.iop_papar, iobits);
313 clrbits16(&immap->im_ioport.iop_padir, iobits);
314 clrbits16(&immap->im_ioport.iop_paodr, iobits);
315#endif
316
317}
318
319static void __init mpc866ads_fixup_uart_pdata(struct platform_device *pdev,
320 int idx)
321{
322 bd_t *bd = (bd_t *) __res;
323 struct fs_uart_platform_info *pinfo;
324 int num = ARRAY_SIZE(mpc866_uart_pdata);
325
326 int id = fs_uart_id_smc2fsid(idx);
327
328 /* no need to alter anything if console */
329 if ((id <= num) && (!pdev->dev.platform_data)) {
330 pinfo = &mpc866_uart_pdata[id];
331 pinfo->uart_clk = bd->bi_intfreq;
332 pdev->dev.platform_data = pinfo;
333 }
334}
335
235static int mpc866ads_platform_notify(struct device *dev) 336static int mpc866ads_platform_notify(struct device *dev)
236{ 337{
237 static const struct platform_notify_dev_map dev_map[] = { 338 static const struct platform_notify_dev_map dev_map[] = {
@@ -244,6 +345,10 @@ static int mpc866ads_platform_notify(struct device *dev)
244 .rtn = mpc866ads_fixup_scc_enet_pdata, 345 .rtn = mpc866ads_fixup_scc_enet_pdata,
245 }, 346 },
246 { 347 {
348 .bus_id = "fsl-cpm-smc:uart",
349 .rtn = mpc866ads_fixup_uart_pdata
350 },
351 {
247 .bus_id = NULL 352 .bus_id = NULL
248 } 353 }
249 }; 354 };
@@ -267,7 +372,42 @@ int __init mpc866ads_init(void)
267#endif 372#endif
268 ppc_sys_device_enable(MPC8xx_CPM_FEC1); 373 ppc_sys_device_enable(MPC8xx_CPM_FEC1);
269 374
375/* Since either of the uarts could be used as console, they need to ready */
376#ifdef CONFIG_SERIAL_CPM_SMC1
377 ppc_sys_device_enable(MPC8xx_CPM_SMC1);
378 ppc_sys_device_setfunc(MPC8xx_CPM_SMC1, PPC_SYS_FUNC_UART);
379#endif
380
381#ifdef CONFIG_SERIAL_CPM_SMCer
382 ppc_sys_device_enable(MPC8xx_CPM_SMC2);
383 ppc_sys_device_setfunc(MPC8xx_CPM_SMC2, PPC_SYS_FUNC_UART);
384#endif
385
270 return 0; 386 return 0;
271} 387}
272 388
389/*
390 To prevent confusion, console selection is gross:
391 by 0 assumed SMC1 and by 1 assumed SMC2
392 */
393struct platform_device* early_uart_get_pdev(int index)
394{
395 bd_t *bd = (bd_t *) __res;
396 struct fs_uart_platform_info *pinfo;
397
398 struct platform_device* pdev = NULL;
399 if(index) { /*assume SMC2 here*/
400 pdev = &ppc_sys_platform_devices[MPC8xx_CPM_SMC2];
401 pinfo = &mpc866_uart_pdata[1];
402 } else { /*over SMC1*/
403 pdev = &ppc_sys_platform_devices[MPC8xx_CPM_SMC1];
404 pinfo = &mpc866_uart_pdata[0];
405 }
406
407 pinfo->uart_clk = bd->bi_intfreq;
408 pdev->dev.platform_data = pinfo;
409 ppc_sys_fixup_mem_resource(pdev, IMAP_ADDR);
410 return NULL;
411}
412
273arch_initcall(mpc866ads_init); 413arch_initcall(mpc866ads_init);
diff --git a/arch/ppc/platforms/mpc885ads_setup.c b/arch/ppc/platforms/mpc885ads_setup.c
index 50a99e5f7c68..4b88679cd31c 100644
--- a/arch/ppc/platforms/mpc885ads_setup.c
+++ b/arch/ppc/platforms/mpc885ads_setup.c
@@ -20,6 +20,7 @@
20#include <linux/device.h> 20#include <linux/device.h>
21 21
22#include <linux/fs_enet_pd.h> 22#include <linux/fs_enet_pd.h>
23#include <linux/fs_uart_pd.h>
23#include <linux/mii.h> 24#include <linux/mii.h>
24 25
25#include <asm/delay.h> 26#include <asm/delay.h>
@@ -35,9 +36,32 @@
35#include <asm/ppc_sys.h> 36#include <asm/ppc_sys.h>
36 37
37extern unsigned char __res[]; 38extern unsigned char __res[];
39static void setup_smc1_ioports(void);
40static void setup_smc2_ioports(void);
38 41
39static void __init mpc885ads_scc_phy_init(char); 42static void __init mpc885ads_scc_phy_init(char);
40 43
44static struct fs_uart_platform_info mpc885_uart_pdata[] = {
45 [fsid_smc1_uart] = {
46 .brg = 1,
47 .fs_no = fsid_smc1_uart,
48 .init_ioports = setup_smc1_ioports,
49 .tx_num_fifo = 4,
50 .tx_buf_size = 32,
51 .rx_num_fifo = 4,
52 .rx_buf_size = 32,
53 },
54 [fsid_smc2_uart] = {
55 .brg = 2,
56 .fs_no = fsid_smc2_uart,
57 .init_ioports = setup_smc2_ioports,
58 .tx_num_fifo = 4,
59 .tx_buf_size = 32,
60 .rx_num_fifo = 4,
61 .rx_buf_size = 32,
62 },
63};
64
41static struct fs_mii_bus_info fec_mii_bus_info = { 65static struct fs_mii_bus_info fec_mii_bus_info = {
42 .method = fsmii_fec, 66 .method = fsmii_fec,
43 .id = 0, 67 .id = 0,
@@ -116,6 +140,8 @@ void __init board_init(void)
116#ifdef CONFIG_SERIAL_CPM_SMC1 140#ifdef CONFIG_SERIAL_CPM_SMC1
117 cp->cp_simode &= ~(0xe0000000 >> 17); /* brg1 */ 141 cp->cp_simode &= ~(0xe0000000 >> 17); /* brg1 */
118 clrbits32(bcsr_io, BCSR1_RS232EN_1); 142 clrbits32(bcsr_io, BCSR1_RS232EN_1);
143 cp->cp_smc[0].smc_smcm |= (SMCM_RX | SMCM_TX);
144 cp->cp_smc[0].smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN);
119#else 145#else
120 setbits32(bcsr_io,BCSR1_RS232EN_1); 146 setbits32(bcsr_io,BCSR1_RS232EN_1);
121 cp->cp_smc[0].smc_smcmr = 0; 147 cp->cp_smc[0].smc_smcmr = 0;
@@ -126,6 +152,8 @@ void __init board_init(void)
126 cp->cp_simode &= ~(0xe0000000 >> 1); 152 cp->cp_simode &= ~(0xe0000000 >> 1);
127 cp->cp_simode |= (0x20000000 >> 1); /* brg2 */ 153 cp->cp_simode |= (0x20000000 >> 1); /* brg2 */
128 clrbits32(bcsr_io,BCSR1_RS232EN_2); 154 clrbits32(bcsr_io,BCSR1_RS232EN_2);
155 cp->cp_smc[1].smc_smcm |= (SMCM_RX | SMCM_TX);
156 cp->cp_smc[1].smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN);
129#else 157#else
130 setbits32(bcsr_io,BCSR1_RS232EN_2); 158 setbits32(bcsr_io,BCSR1_RS232EN_2);
131 cp->cp_smc[1].smc_smcmr = 0; 159 cp->cp_smc[1].smc_smcmr = 0;
@@ -343,6 +371,70 @@ static void mpc885ads_scc_phy_init(char phy_addr)
343 out_be32(&fecp->fec_mii_speed, 0); 371 out_be32(&fecp->fec_mii_speed, 0);
344} 372}
345 373
374static void setup_smc1_ioports(void)
375{
376 immap_t *immap = (immap_t *) IMAP_ADDR;
377 unsigned *bcsr_io;
378 unsigned int iobits = 0x000000c0;
379
380 bcsr_io = ioremap(BCSR1, sizeof(unsigned long));
381
382 if (bcsr_io == NULL) {
383 printk(KERN_CRIT "Could not remap BCSR1\n");
384 return;
385 }
386 clrbits32(bcsr_io,BCSR1_RS232EN_1);
387 iounmap(bcsr_io);
388
389 setbits32(&immap->im_cpm.cp_pbpar, iobits);
390 clrbits32(&immap->im_cpm.cp_pbdir, iobits);
391 clrbits16(&immap->im_cpm.cp_pbodr, iobits);
392}
393
394static void setup_smc2_ioports(void)
395{
396 immap_t *immap = (immap_t *) IMAP_ADDR;
397 unsigned *bcsr_io;
398 unsigned int iobits = 0x00000c00;
399
400 bcsr_io = ioremap(BCSR1, sizeof(unsigned long));
401
402 if (bcsr_io == NULL) {
403 printk(KERN_CRIT "Could not remap BCSR1\n");
404 return;
405 }
406 clrbits32(bcsr_io,BCSR1_RS232EN_2);
407 iounmap(bcsr_io);
408
409#ifndef CONFIG_SERIAL_CPM_ALT_SMC2
410 setbits32(&immap->im_cpm.cp_pbpar, iobits);
411 clrbits32(&immap->im_cpm.cp_pbdir, iobits);
412 clrbits16(&immap->im_cpm.cp_pbodr, iobits);
413#else
414 setbits16(&immap->im_ioport.iop_papar, iobits);
415 clrbits16(&immap->im_ioport.iop_padir, iobits);
416 clrbits16(&immap->im_ioport.iop_paodr, iobits);
417#endif
418}
419
420static void __init mpc885ads_fixup_uart_pdata(struct platform_device *pdev,
421 int idx)
422{
423 bd_t *bd = (bd_t *) __res;
424 struct fs_uart_platform_info *pinfo;
425 int num = ARRAY_SIZE(mpc885_uart_pdata);
426
427 int id = fs_uart_id_smc2fsid(idx);
428
429 /* no need to alter anything if console */
430 if ((id <= num) && (!pdev->dev.platform_data)) {
431 pinfo = &mpc885_uart_pdata[id];
432 pinfo->uart_clk = bd->bi_intfreq;
433 pdev->dev.platform_data = pinfo;
434 }
435}
436
437
346static int mpc885ads_platform_notify(struct device *dev) 438static int mpc885ads_platform_notify(struct device *dev)
347{ 439{
348 440
@@ -356,12 +448,17 @@ static int mpc885ads_platform_notify(struct device *dev)
356 .rtn = mpc885ads_fixup_scc_enet_pdata, 448 .rtn = mpc885ads_fixup_scc_enet_pdata,
357 }, 449 },
358 { 450 {
451 .bus_id = "fsl-cpm-smc:uart",
452 .rtn = mpc885ads_fixup_uart_pdata
453 },
454 {
359 .bus_id = NULL 455 .bus_id = NULL
360 } 456 }
361 }; 457 };
362 458
363 platform_notify_map(dev_map,dev); 459 platform_notify_map(dev_map,dev);
364 460
461 return 0;
365} 462}
366 463
367int __init mpc885ads_init(void) 464int __init mpc885ads_init(void)
@@ -383,7 +480,41 @@ int __init mpc885ads_init(void)
383 ppc_sys_device_enable(MPC8xx_CPM_FEC2); 480 ppc_sys_device_enable(MPC8xx_CPM_FEC2);
384#endif 481#endif
385 482
483#ifdef CONFIG_SERIAL_CPM_SMC1
484 ppc_sys_device_enable(MPC8xx_CPM_SMC1);
485 ppc_sys_device_setfunc(MPC8xx_CPM_SMC1, PPC_SYS_FUNC_UART);
486#endif
487
488#ifdef CONFIG_SERIAL_CPM_SMC2
489 ppc_sys_device_enable(MPC8xx_CPM_SMC2);
490 ppc_sys_device_setfunc(MPC8xx_CPM_SMC2, PPC_SYS_FUNC_UART);
491#endif
386 return 0; 492 return 0;
387} 493}
388 494
389arch_initcall(mpc885ads_init); 495arch_initcall(mpc885ads_init);
496
497/*
498 To prevent confusion, console selection is gross:
499 by 0 assumed SMC1 and by 1 assumed SMC2
500 */
501struct platform_device* early_uart_get_pdev(int index)
502{
503 bd_t *bd = (bd_t *) __res;
504 struct fs_uart_platform_info *pinfo;
505
506 struct platform_device* pdev = NULL;
507 if(index) { /*assume SMC2 here*/
508 pdev = &ppc_sys_platform_devices[MPC8xx_CPM_SMC2];
509 pinfo = &mpc885_uart_pdata[1];
510 } else { /*over SMC1*/
511 pdev = &ppc_sys_platform_devices[MPC8xx_CPM_SMC1];
512 pinfo = &mpc885_uart_pdata[0];
513 }
514
515 pinfo->uart_clk = bd->bi_intfreq;
516 pdev->dev.platform_data = pinfo;
517 ppc_sys_fixup_mem_resource(pdev, IMAP_ADDR);
518 return NULL;
519}
520
diff --git a/arch/ppc/platforms/pq2ads.c b/arch/ppc/platforms/pq2ads.c
index 3365fd788a7a..7fc2e02f5246 100644
--- a/arch/ppc/platforms/pq2ads.c
+++ b/arch/ppc/platforms/pq2ads.c
@@ -14,11 +14,40 @@
14 14
15#include <linux/init.h> 15#include <linux/init.h>
16 16
17#include <asm/io.h>
17#include <asm/mpc8260.h> 18#include <asm/mpc8260.h>
19#include <asm/cpm2.h>
20#include <asm/immap_cpm2.h>
18 21
19void __init 22void __init
20m82xx_board_setup(void) 23m82xx_board_setup(void)
21{ 24{
25 cpm2_map_t* immap = ioremap(CPM_MAP_ADDR, sizeof(cpm2_map_t));
26 u32 *bcsr = ioremap(BCSR_ADDR+4, sizeof(u32));
27
22 /* Enable the 2nd UART port */ 28 /* Enable the 2nd UART port */
23 *(volatile uint *)(BCSR_ADDR + 4) &= ~BCSR1_RS232_EN2; 29 clrbits32(bcsr, BCSR1_RS232_EN2);
30
31#ifdef CONFIG_SERIAL_CPM_SCC1
32 clrbits32((u32*)&immap->im_scc[0].scc_sccm, UART_SCCM_TX | UART_SCCM_RX);
33 clrbits32((u32*)&immap->im_scc[0].scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT);
34#endif
35
36#ifdef CONFIG_SERIAL_CPM_SCC2
37 clrbits32((u32*)&immap->im_scc[1].scc_sccm, UART_SCCM_TX | UART_SCCM_RX);
38 clrbits32((u32*)&immap->im_scc[1].scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT);
39#endif
40
41#ifdef CONFIG_SERIAL_CPM_SCC3
42 clrbits32((u32*)&immap->im_scc[2].scc_sccm, UART_SCCM_TX | UART_SCCM_RX);
43 clrbits32((u32*)&immap->im_scc[2].scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT);
44#endif
45
46#ifdef CONFIG_SERIAL_CPM_SCC4
47 clrbits32((u32*)&immap->im_scc[3].scc_sccm, UART_SCCM_TX | UART_SCCM_RX);
48 clrbits32((u32*)&immap->im_scc[3].scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT);
49#endif
50
51 iounmap(bcsr);
52 iounmap(immap);
24} 53}
diff --git a/arch/ppc/syslib/ibm440gx_common.c b/arch/ppc/syslib/ibm440gx_common.c
index a7dd55f1c63e..f6cc16888527 100644
--- a/arch/ppc/syslib/ibm440gx_common.c
+++ b/arch/ppc/syslib/ibm440gx_common.c
@@ -2,7 +2,7 @@
2 * PPC440GX system library 2 * PPC440GX system library
3 * 3 *
4 * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net> 4 * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net>
5 * Copyright (c) 2003, 2004 Zultys Technologies 5 * Copyright (c) 2003 - 2006 Zultys Technologies
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the 8 * under the terms of the GNU General Public License as published by the
@@ -282,3 +282,14 @@ int ibm440gx_show_cpuinfo(struct seq_file *m){
282 return 0; 282 return 0;
283} 283}
284 284
285void __init ibm440gx_platform_init(unsigned long r3, unsigned long r4,
286 unsigned long r5, unsigned long r6,
287 unsigned long r7)
288{
289 /* Erratum 440_43 workaround, disable L1 cache parity checking */
290 if (!strcmp(cur_cpu_spec->cpu_name, "440GX Rev. C") ||
291 !strcmp(cur_cpu_spec->cpu_name, "440GX Rev. F"))
292 mtspr(SPRN_CCR1, mfspr(SPRN_CCR1) | CCR1_DPC);
293
294 ibm44x_platform_init(r3, r4, r5, r6, r7);
295}
diff --git a/arch/ppc/syslib/ibm440gx_common.h b/arch/ppc/syslib/ibm440gx_common.h
index a2ab9fab8e34..a03ec6022e8f 100644
--- a/arch/ppc/syslib/ibm440gx_common.h
+++ b/arch/ppc/syslib/ibm440gx_common.h
@@ -29,6 +29,10 @@
29void ibm440gx_get_clocks(struct ibm44x_clocks*, unsigned int sys_clk, 29void ibm440gx_get_clocks(struct ibm44x_clocks*, unsigned int sys_clk,
30 unsigned int ser_clk) __init; 30 unsigned int ser_clk) __init;
31 31
32/* common 440GX platform init */
33void ibm440gx_platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
34 unsigned long r6, unsigned long r7) __init;
35
32/* Enable L2 cache */ 36/* Enable L2 cache */
33void ibm440gx_l2c_enable(void) __init; 37void ibm440gx_l2c_enable(void) __init;
34 38
diff --git a/arch/ppc/syslib/mpc8xx_devices.c b/arch/ppc/syslib/mpc8xx_devices.c
index bd41ed83beb3..6f536383866e 100644
--- a/arch/ppc/syslib/mpc8xx_devices.c
+++ b/arch/ppc/syslib/mpc8xx_devices.c
@@ -170,12 +170,18 @@ struct platform_device ppc_sys_platform_devices[] = {
170 [MPC8xx_CPM_SMC1] = { 170 [MPC8xx_CPM_SMC1] = {
171 .name = "fsl-cpm-smc", 171 .name = "fsl-cpm-smc",
172 .id = 1, 172 .id = 1,
173 .num_resources = 2, 173 .num_resources = 3,
174 .resource = (struct resource[]) { 174 .resource = (struct resource[]) {
175 { 175 {
176 .name = "regs", 176 .name = "regs",
177 .start = 0xa82, 177 .start = 0xa80,
178 .end = 0xa91, 178 .end = 0xa8f,
179 .flags = IORESOURCE_MEM,
180 },
181 {
182 .name = "pram",
183 .start = 0x3e80,
184 .end = 0x3ebf,
179 .flags = IORESOURCE_MEM, 185 .flags = IORESOURCE_MEM,
180 }, 186 },
181 { 187 {
@@ -189,15 +195,22 @@ struct platform_device ppc_sys_platform_devices[] = {
189 [MPC8xx_CPM_SMC2] = { 195 [MPC8xx_CPM_SMC2] = {
190 .name = "fsl-cpm-smc", 196 .name = "fsl-cpm-smc",
191 .id = 2, 197 .id = 2,
192 .num_resources = 2, 198 .num_resources = 3,
193 .resource = (struct resource[]) { 199 .resource = (struct resource[]) {
194 { 200 {
195 .name = "regs", 201 .name = "regs",
196 .start = 0xa92, 202 .start = 0xa90,
197 .end = 0xaa1, 203 .end = 0xa9f,
198 .flags = IORESOURCE_MEM, 204 .flags = IORESOURCE_MEM,
199 }, 205 },
200 { 206 {
207 .name = "pram",
208 .start = 0x3f80,
209 .end = 0x3fbf,
210 .flags = IORESOURCE_MEM,
211
212 },
213 {
201 .name = "interrupt", 214 .name = "interrupt",
202 .start = MPC8xx_INT_SMC2, 215 .start = MPC8xx_INT_SMC2,
203 .end = MPC8xx_INT_SMC2, 216 .end = MPC8xx_INT_SMC2,
diff --git a/arch/ppc/syslib/ppc_sys.c b/arch/ppc/syslib/ppc_sys.c
index 60c724e11584..2d48018b71d9 100644
--- a/arch/ppc/syslib/ppc_sys.c
+++ b/arch/ppc/syslib/ppc_sys.c
@@ -109,9 +109,11 @@ ppc_sys_fixup_mem_resource(struct platform_device *pdev, phys_addr_t paddr)
109 int i; 109 int i;
110 for (i = 0; i < pdev->num_resources; i++) { 110 for (i = 0; i < pdev->num_resources; i++) {
111 struct resource *r = &pdev->resource[i]; 111 struct resource *r = &pdev->resource[i];
112 if ((r->flags & IORESOURCE_MEM) == IORESOURCE_MEM) { 112 if (((r->flags & IORESOURCE_MEM) == IORESOURCE_MEM) &&
113 ((r->flags & PPC_SYS_IORESOURCE_FIXUPPED) != PPC_SYS_IORESOURCE_FIXUPPED)) {
113 r->start += paddr; 114 r->start += paddr;
114 r->end += paddr; 115 r->end += paddr;
116 r->flags |= PPC_SYS_IORESOURCE_FIXUPPED;
115 } 117 }
116 } 118 }
117} 119}
@@ -156,12 +158,13 @@ void platform_notify_map(const struct platform_notify_dev_map *map,
156 while (map->bus_id != NULL) { 158 while (map->bus_id != NULL) {
157 idx = -1; 159 idx = -1;
158 s = strrchr(dev->bus_id, '.'); 160 s = strrchr(dev->bus_id, '.');
159 if (s != NULL) 161 if (s != NULL) {
160 idx = (int)simple_strtol(s + 1, NULL, 10); 162 idx = (int)simple_strtol(s + 1, NULL, 10);
161 else 163 len = s - dev->bus_id;
164 } else {
162 s = dev->bus_id; 165 s = dev->bus_id;
163 166 len = strlen(dev->bus_id);
164 len = s - dev->bus_id; 167 }
165 168
166 if (!strncmp(dev->bus_id, map->bus_id, len)) { 169 if (!strncmp(dev->bus_id, map->bus_id, len)) {
167 pdev = container_of(dev, struct platform_device, dev); 170 pdev = container_of(dev, struct platform_device, dev);
diff --git a/arch/ppc/syslib/pq2_sys.c b/arch/ppc/syslib/pq2_sys.c
index 75e64f1c144d..433b0fa203e1 100644
--- a/arch/ppc/syslib/pq2_sys.c
+++ b/arch/ppc/syslib/pq2_sys.c
@@ -113,13 +113,13 @@ struct ppc_sys_spec ppc_sys_specs[] = {
113 .ppc_sys_name = "8248", 113 .ppc_sys_name = "8248",
114 .mask = 0x0000ff00, 114 .mask = 0x0000ff00,
115 .value = 0x00000c00, 115 .value = 0x00000c00,
116 .num_devices = 11, 116 .num_devices = 12,
117 .device_list = (enum ppc_sys_devices[]) 117 .device_list = (enum ppc_sys_devices[])
118 { 118 {
119 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1, 119 MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1,
120 MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SMC1, 120 MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4,
121 MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, 121 MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI,
122 MPC82xx_CPM_USB, MPC82xx_SEC1, 122 MPC82xx_CPM_I2C, MPC82xx_CPM_USB, MPC82xx_SEC1,
123 }, 123 },
124 }, 124 },
125 { 125 {
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c
index 54d35c130907..9a22434a580c 100644
--- a/arch/s390/appldata/appldata_base.c
+++ b/arch/s390/appldata/appldata_base.c
@@ -652,7 +652,7 @@ appldata_cpu_notify(struct notifier_block *self,
652 return NOTIFY_OK; 652 return NOTIFY_OK;
653} 653}
654 654
655static struct notifier_block __devinitdata appldata_nb = { 655static struct notifier_block appldata_nb = {
656 .notifier_call = appldata_cpu_notify, 656 .notifier_call = appldata_cpu_notify,
657}; 657};
658 658
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c
index 5291b5f8788d..b4c815d8ef75 100644
--- a/arch/s390/kernel/compat_signal.c
+++ b/arch/s390/kernel/compat_signal.c
@@ -430,7 +430,7 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size)
430 430
431 /* This is the X/Open sanctioned signal stack switching. */ 431 /* This is the X/Open sanctioned signal stack switching. */
432 if (ka->sa.sa_flags & SA_ONSTACK) { 432 if (ka->sa.sa_flags & SA_ONSTACK) {
433 if (! on_sig_stack(sp)) 433 if (! sas_ss_flags(sp))
434 sp = current->sas_ss_sp + current->sas_ss_size; 434 sp = current->sas_ss_sp + current->sas_ss_size;
435 } 435 }
436 436
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index 199da68bd7be..ef5b9c44b86b 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -1608,3 +1608,45 @@ compat_sys_ppoll_wrapper:
1608sys_unshare_wrapper: 1608sys_unshare_wrapper:
1609 llgfr %r2,%r2 # unsigned long 1609 llgfr %r2,%r2 # unsigned long
1610 jg sys_unshare 1610 jg sys_unshare
1611
1612 .globl compat_sys_set_robust_list_wrapper
1613compat_sys_set_robust_list_wrapper:
1614 llgtr %r2,%r2 # struct compat_robust_list_head *
1615 llgfr %r3,%r3 # size_t
1616 jg compat_sys_set_robust_list
1617
1618 .globl compat_sys_get_robust_list_wrapper
1619compat_sys_get_robust_list_wrapper:
1620 lgfr %r2,%r2 # int
1621 llgtr %r3,%r3 # compat_uptr_t_t *
1622 llgtr %r4,%r4 # compat_size_t *
1623 jg compat_sys_get_robust_list
1624
1625 .globl sys_splice_wrapper
1626sys_splice_wrapper:
1627 lgfr %r2,%r2 # int
1628 llgtr %r3,%r3 # loff_t *
1629 lgfr %r4,%r4 # int
1630 llgtr %r5,%r5 # loff_t *
1631 llgfr %r6,%r6 # size_t
1632 llgf %r0,164(%r15) # unsigned int
1633 stg %r0,160(%r15)
1634 jg sys_splice
1635
1636 .globl sys_sync_file_range_wrapper
1637sys_sync_file_range_wrapper:
1638 lgfr %r2,%r2 # int
1639 sllg %r3,%r3,32 # get high word of 64bit loff_t
1640 or %r3,%r4 # get low word of 64bit loff_t
1641 sllg %r4,%r5,32 # get high word of 64bit loff_t
1642 or %r4,%r6 # get low word of 64bit loff_t
1643 llgf %r5,164(%r15) # unsigned int
1644 jg sys_sync_file_range
1645
1646 .globl sys_tee_wrapper
1647sys_tee_wrapper:
1648 lgfr %r2,%r2 # int
1649 lgfr %r3,%r3 # int
1650 llgfr %r4,%r4 # size_t
1651 llgfr %r5,%r5 # unsigned int
1652 jg sys_tee
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
index 37dfe33dab73..8f36504075ed 100644
--- a/arch/s390/kernel/ptrace.c
+++ b/arch/s390/kernel/ptrace.c
@@ -734,7 +734,7 @@ asmlinkage void
734syscall_trace(struct pt_regs *regs, int entryexit) 734syscall_trace(struct pt_regs *regs, int entryexit)
735{ 735{
736 if (unlikely(current->audit_context) && entryexit) 736 if (unlikely(current->audit_context) && entryexit)
737 audit_syscall_exit(current, AUDITSC_RESULT(regs->gprs[2]), regs->gprs[2]); 737 audit_syscall_exit(AUDITSC_RESULT(regs->gprs[2]), regs->gprs[2]);
738 738
739 if (!test_thread_flag(TIF_SYSCALL_TRACE)) 739 if (!test_thread_flag(TIF_SYSCALL_TRACE))
740 goto out; 740 goto out;
@@ -761,8 +761,7 @@ syscall_trace(struct pt_regs *regs, int entryexit)
761 } 761 }
762 out: 762 out:
763 if (unlikely(current->audit_context) && !entryexit) 763 if (unlikely(current->audit_context) && !entryexit)
764 audit_syscall_entry(current, 764 audit_syscall_entry(test_thread_flag(TIF_31BIT)?AUDIT_ARCH_S390:AUDIT_ARCH_S390X,
765 test_thread_flag(TIF_31BIT)?AUDIT_ARCH_S390:AUDIT_ARCH_S390X,
766 regs->gprs[2], regs->orig_gpr2, regs->gprs[3], 765 regs->gprs[2], regs->orig_gpr2, regs->gprs[3],
767 regs->gprs[4], regs->gprs[5]); 766 regs->gprs[4], regs->gprs[5]);
768} 767}
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
index ae1927e48cfb..d48cfc726b68 100644
--- a/arch/s390/kernel/signal.c
+++ b/arch/s390/kernel/signal.c
@@ -358,8 +358,9 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
358 } else { 358 } else {
359 regs->gprs[14] = (unsigned long) 359 regs->gprs[14] = (unsigned long)
360 frame->retcode | PSW_ADDR_AMODE; 360 frame->retcode | PSW_ADDR_AMODE;
361 err |= __put_user(S390_SYSCALL_OPCODE | __NR_rt_sigreturn, 361 if (__put_user(S390_SYSCALL_OPCODE | __NR_rt_sigreturn,
362 (u16 __user *)(frame->retcode)); 362 (u16 __user *)(frame->retcode)))
363 goto give_sigsegv;
363 } 364 }
364 365
365 /* Set up backchain. */ 366 /* Set up backchain. */
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index 2f56654da821..fc2c0767202b 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -312,3 +312,8 @@ SYSCALL(sys_faccessat,sys_faccessat,sys_faccessat_wrapper) /* 300 */
312SYSCALL(sys_pselect6,sys_pselect6,compat_sys_pselect6_wrapper) 312SYSCALL(sys_pselect6,sys_pselect6,compat_sys_pselect6_wrapper)
313SYSCALL(sys_ppoll,sys_ppoll,compat_sys_ppoll_wrapper) 313SYSCALL(sys_ppoll,sys_ppoll,compat_sys_ppoll_wrapper)
314SYSCALL(sys_unshare,sys_unshare,sys_unshare_wrapper) 314SYSCALL(sys_unshare,sys_unshare,sys_unshare_wrapper)
315SYSCALL(sys_set_robust_list,sys_set_robust_list,compat_sys_set_robust_list_wrapper)
316SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list_wrapper)
317SYSCALL(sys_splice,sys_splice,sys_splice_wrapper)
318SYSCALL(sys_sync_file_range,sys_sync_file_range,sys_sync_file_range_wrapper)
319SYSCALL(sys_tee,sys_tee,sys_tee_wrapper)
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index 9289face3027..9f34bb54c051 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -58,9 +58,11 @@ SECTIONS
58 . = ALIGN(4096); 58 . = ALIGN(4096);
59 .data.page_aligned : { *(.data.idt) } 59 .data.page_aligned : { *(.data.idt) }
60 60
61 . = ALIGN(32); 61 . = ALIGN(256);
62 .data.cacheline_aligned : { *(.data.cacheline_aligned) } 62 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
63 63
64 . = ALIGN(256);
65 .data.read_mostly : { *(.data.read_mostly) }
64 _edata = .; /* End of data section */ 66 _edata = .; /* End of data section */
65 67
66 . = ALIGN(8192); /* init_task */ 68 . = ALIGN(8192); /* init_task */
diff --git a/arch/s390/mm/extmem.c b/arch/s390/mm/extmem.c
index a9566bcab682..9b11e3e20903 100644
--- a/arch/s390/mm/extmem.c
+++ b/arch/s390/mm/extmem.c
@@ -192,6 +192,7 @@ query_segment_type (struct dcss_segment *seg)
192 diag_cc = dcss_diag (DCSS_SEGEXT, qin, &dummy, &vmrc); 192 diag_cc = dcss_diag (DCSS_SEGEXT, qin, &dummy, &vmrc);
193 193
194 if (diag_cc > 1) { 194 if (diag_cc > 1) {
195 PRINT_WARN ("segment_type: diag returned error %ld\n", vmrc);
195 rc = dcss_diag_translate_rc (vmrc); 196 rc = dcss_diag_translate_rc (vmrc);
196 goto out_free; 197 goto out_free;
197 } 198 }
@@ -553,7 +554,7 @@ segment_save(char *name)
553 int endpfn = 0; 554 int endpfn = 0;
554 char cmd1[160]; 555 char cmd1[160];
555 char cmd2[80]; 556 char cmd2[80];
556 int i; 557 int i, response;
557 558
558 if (!MACHINE_IS_VM) 559 if (!MACHINE_IS_VM)
559 return; 560 return;
@@ -576,8 +577,20 @@ segment_save(char *name)
576 segtype_string[seg->range[i].start & 0xff]); 577 segtype_string[seg->range[i].start & 0xff]);
577 } 578 }
578 sprintf(cmd2, "SAVESEG %s", name); 579 sprintf(cmd2, "SAVESEG %s", name);
579 cpcmd(cmd1, NULL, 0, NULL); 580 response = 0;
580 cpcmd(cmd2, NULL, 0, NULL); 581 cpcmd(cmd1, NULL, 0, &response);
582 if (response) {
583 PRINT_ERR("segment_save: DEFSEG failed with response code %i\n",
584 response);
585 goto out;
586 }
587 cpcmd(cmd2, NULL, 0, &response);
588 if (response) {
589 PRINT_ERR("segment_save: SAVESEG failed with response code %i\n",
590 response);
591 goto out;
592 }
593out:
581 spin_unlock(&dcss_lock); 594 spin_unlock(&dcss_lock);
582} 595}
583 596
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index 648047a0bce3..43a66f5407f4 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -187,7 +187,7 @@ config HUGETLB_PAGE_SIZE_512K
187 bool "512K" 187 bool "512K"
188 188
189config HUGETLB_PAGE_SIZE_64K 189config HUGETLB_PAGE_SIZE_64K
190 depends on !SPARC64_PAGE_SIZE_4MB && !SPARC64_PAGE_SIZE_512KB && !SPARC64_PAGE_SIZE_64K 190 depends on !SPARC64_PAGE_SIZE_4MB && !SPARC64_PAGE_SIZE_512KB && !SPARC64_PAGE_SIZE_64KB
191 bool "64K" 191 bool "64K"
192 192
193endchoice 193endchoice
diff --git a/arch/sparc64/kernel/kprobes.c b/arch/sparc64/kernel/kprobes.c
index ffc7309e9f22..2e1c824c1cc9 100644
--- a/arch/sparc64/kernel/kprobes.c
+++ b/arch/sparc64/kernel/kprobes.c
@@ -63,7 +63,7 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
63 flushi(p->addr); 63 flushi(p->addr);
64} 64}
65 65
66static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) 66static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)
67{ 67{
68 kcb->prev_kprobe.kp = kprobe_running(); 68 kcb->prev_kprobe.kp = kprobe_running();
69 kcb->prev_kprobe.status = kcb->kprobe_status; 69 kcb->prev_kprobe.status = kcb->kprobe_status;
@@ -71,7 +71,7 @@ static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb)
71 kcb->prev_kprobe.orig_tstate_pil = kcb->kprobe_orig_tstate_pil; 71 kcb->prev_kprobe.orig_tstate_pil = kcb->kprobe_orig_tstate_pil;
72} 72}
73 73
74static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb) 74static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb)
75{ 75{
76 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp; 76 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp;
77 kcb->kprobe_status = kcb->prev_kprobe.status; 77 kcb->kprobe_status = kcb->prev_kprobe.status;
@@ -79,7 +79,7 @@ static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb)
79 kcb->kprobe_orig_tstate_pil = kcb->prev_kprobe.orig_tstate_pil; 79 kcb->kprobe_orig_tstate_pil = kcb->prev_kprobe.orig_tstate_pil;
80} 80}
81 81
82static inline void set_current_kprobe(struct kprobe *p, struct pt_regs *regs, 82static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
83 struct kprobe_ctlblk *kcb) 83 struct kprobe_ctlblk *kcb)
84{ 84{
85 __get_cpu_var(current_kprobe) = p; 85 __get_cpu_var(current_kprobe) = p;
@@ -87,7 +87,7 @@ static inline void set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
87 kcb->kprobe_orig_tstate_pil = (regs->tstate & TSTATE_PIL); 87 kcb->kprobe_orig_tstate_pil = (regs->tstate & TSTATE_PIL);
88} 88}
89 89
90static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs, 90static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs,
91 struct kprobe_ctlblk *kcb) 91 struct kprobe_ctlblk *kcb)
92{ 92{
93 regs->tstate |= TSTATE_PIL; 93 regs->tstate |= TSTATE_PIL;
@@ -273,7 +273,7 @@ static void __kprobes resume_execution(struct kprobe *p,
273 kcb->kprobe_orig_tstate_pil); 273 kcb->kprobe_orig_tstate_pil);
274} 274}
275 275
276static inline int post_kprobe_handler(struct pt_regs *regs) 276static int __kprobes post_kprobe_handler(struct pt_regs *regs)
277{ 277{
278 struct kprobe *cur = kprobe_running(); 278 struct kprobe *cur = kprobe_running();
279 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); 279 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
@@ -300,7 +300,7 @@ out:
300 return 1; 300 return 1;
301} 301}
302 302
303static inline int kprobe_fault_handler(struct pt_regs *regs, int trapnr) 303static int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr)
304{ 304{
305 struct kprobe *cur = kprobe_running(); 305 struct kprobe *cur = kprobe_running();
306 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); 306 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index dfccff29e182..f97ddeb105ac 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -419,6 +419,7 @@ void pcibios_resource_to_bus(struct pci_dev *pdev, struct pci_bus_region *region
419 region->start = res->start - zero_res.start; 419 region->start = res->start - zero_res.start;
420 region->end = res->end - zero_res.start; 420 region->end = res->end - zero_res.start;
421} 421}
422EXPORT_SYMBOL(pcibios_resource_to_bus);
422 423
423void pcibios_bus_to_resource(struct pci_dev *pdev, struct resource *res, 424void pcibios_bus_to_resource(struct pci_dev *pdev, struct resource *res,
424 struct pci_bus_region *region) 425 struct pci_bus_region *region)
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c
index 49e6dedd027d..d31975e6d6f6 100644
--- a/arch/sparc64/kernel/ptrace.c
+++ b/arch/sparc64/kernel/ptrace.c
@@ -653,7 +653,7 @@ asmlinkage void syscall_trace(struct pt_regs *regs, int syscall_exit_p)
653 if (unlikely(tstate & (TSTATE_XCARRY | TSTATE_ICARRY))) 653 if (unlikely(tstate & (TSTATE_XCARRY | TSTATE_ICARRY)))
654 result = AUDITSC_FAILURE; 654 result = AUDITSC_FAILURE;
655 655
656 audit_syscall_exit(current, result, regs->u_regs[UREG_I0]); 656 audit_syscall_exit(result, regs->u_regs[UREG_I0]);
657 } 657 }
658 658
659 if (!(current->ptrace & PT_PTRACED)) 659 if (!(current->ptrace & PT_PTRACED))
@@ -677,8 +677,7 @@ asmlinkage void syscall_trace(struct pt_regs *regs, int syscall_exit_p)
677 677
678out: 678out:
679 if (unlikely(current->audit_context) && !syscall_exit_p) 679 if (unlikely(current->audit_context) && !syscall_exit_p)
680 audit_syscall_entry(current, 680 audit_syscall_entry((test_thread_flag(TIF_32BIT) ?
681 (test_thread_flag(TIF_32BIT) ?
682 AUDIT_ARCH_SPARC : 681 AUDIT_ARCH_SPARC :
683 AUDIT_ARCH_SPARC64), 682 AUDIT_ARCH_SPARC64),
684 regs->u_regs[UREG_G1], 683 regs->u_regs[UREG_G1],
diff --git a/arch/sparc64/mm/tlb.c b/arch/sparc64/mm/tlb.c
index a079cf42505e..3f10fc921b00 100644
--- a/arch/sparc64/mm/tlb.c
+++ b/arch/sparc64/mm/tlb.c
@@ -8,6 +8,7 @@
8#include <linux/percpu.h> 8#include <linux/percpu.h>
9#include <linux/mm.h> 9#include <linux/mm.h>
10#include <linux/swap.h> 10#include <linux/swap.h>
11#include <linux/preempt.h>
11 12
12#include <asm/pgtable.h> 13#include <asm/pgtable.h>
13#include <asm/pgalloc.h> 14#include <asm/pgalloc.h>
@@ -24,6 +25,8 @@ void flush_tlb_pending(void)
24{ 25{
25 struct mmu_gather *mp = &__get_cpu_var(mmu_gathers); 26 struct mmu_gather *mp = &__get_cpu_var(mmu_gathers);
26 27
28 preempt_disable();
29
27 if (mp->tlb_nr) { 30 if (mp->tlb_nr) {
28 flush_tsb_user(mp); 31 flush_tsb_user(mp);
29 32
@@ -38,6 +41,8 @@ void flush_tlb_pending(void)
38 } 41 }
39 mp->tlb_nr = 0; 42 mp->tlb_nr = 0;
40 } 43 }
44
45 preempt_enable();
41} 46}
42 47
43void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t orig) 48void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t orig)
diff --git a/arch/um/Kconfig b/arch/um/Kconfig
index 05fbb20636cb..76e85bbaea55 100644
--- a/arch/um/Kconfig
+++ b/arch/um/Kconfig
@@ -57,20 +57,6 @@ config STATIC_LINK
57 chroot, and you disable CONFIG_MODE_TT, you probably want to say Y 57 chroot, and you disable CONFIG_MODE_TT, you probably want to say Y
58 here. 58 here.
59 59
60config HOST_2G_2G
61 bool "2G/2G host address space split"
62 default n
63 depends on MODE_TT
64 help
65 This is needed when the host on which you run has a 2G/2G memory
66 split, instead of the customary 3G/1G.
67
68 Note that to enable such a host
69 configuration, which makes sense only in some cases, you need special
70 host patches.
71
72 So, if you do not know what to do here, say 'N'.
73
74config KERNEL_HALF_GIGS 60config KERNEL_HALF_GIGS
75 int "Kernel address space size (in .5G units)" 61 int "Kernel address space size (in .5G units)"
76 default "1" 62 default "1"
diff --git a/arch/um/Kconfig.i386 b/arch/um/Kconfig.i386
index 85e6a55b3b59..f6eb72d117b9 100644
--- a/arch/um/Kconfig.i386
+++ b/arch/um/Kconfig.i386
@@ -16,6 +16,19 @@ config SEMAPHORE_SLEEPERS
16 bool 16 bool
17 default y 17 default y
18 18
19config HOST_2G_2G
20 bool "2G/2G host address space split"
21 default n
22 help
23 This is needed when the host on which you run has a 2G/2G memory
24 split, instead of the customary 3G/1G.
25
26 Note that to enable such a host
27 configuration, which makes sense only in some cases, you need special
28 host patches.
29
30 So, if you do not know what to do here, say 'N'.
31
19config TOP_ADDR 32config TOP_ADDR
20 hex 33 hex
21 default 0xc0000000 if !HOST_2G_2G 34 default 0xc0000000 if !HOST_2G_2G
@@ -35,11 +48,13 @@ config 3_LEVEL_PGTABLES
35 48
36config STUB_CODE 49config STUB_CODE
37 hex 50 hex
38 default 0xbfffe000 51 default 0xbfffe000 if !HOST_2G_2G
52 default 0x7fffe000 if HOST_2G_2G
39 53
40config STUB_DATA 54config STUB_DATA
41 hex 55 hex
42 default 0xbffff000 56 default 0xbffff000 if !HOST_2G_2G
57 default 0x7ffff000 if HOST_2G_2G
43 58
44config STUB_START 59config STUB_START
45 hex 60 hex
diff --git a/arch/um/Makefile b/arch/um/Makefile
index a508e7a02891..f6ad832faf13 100644
--- a/arch/um/Makefile
+++ b/arch/um/Makefile
@@ -96,7 +96,8 @@ PHONY += linux
96all: linux 96all: linux
97 97
98linux: vmlinux 98linux: vmlinux
99 ln -f $< $@ 99 @echo ' LINK $@'
100 $(Q)ln -f $< $@
100 101
101define archhelp 102define archhelp
102 echo '* linux - Binary kernel image (./linux) - for backward' 103 echo '* linux - Binary kernel image (./linux) - for backward'
@@ -117,6 +118,10 @@ prepare: $(ARCH_DIR)/include/kern_constants.h
117LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static 118LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
118LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib 119LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib
119 120
121CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) \
122 $(call cc-option, -fno-stack-protector,) \
123 $(call cc-option, -fno-stack-protector-all,)
124
120CPP_MODE-$(CONFIG_MODE_TT) := -DMODE_TT 125CPP_MODE-$(CONFIG_MODE_TT) := -DMODE_TT
121CONFIG_KERNEL_STACK_ORDER ?= 2 126CONFIG_KERNEL_STACK_ORDER ?= 2
122STACK_SIZE := $(shell echo $$[ 4096 * (1 << $(CONFIG_KERNEL_STACK_ORDER)) ] ) 127STACK_SIZE := $(shell echo $$[ 4096 * (1 << $(CONFIG_KERNEL_STACK_ORDER)) ] )
@@ -203,8 +208,8 @@ endef
203$(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h 208$(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h
204 $(call filechk,umlconfig) 209 $(call filechk,umlconfig)
205 210
206$(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c 211$(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s: FORCE
207 $(CC) $(USER_CFLAGS) -S -o $@ $< 212 $(Q)$(MAKE) $(build)=$(ARCH_DIR)/sys-$(SUBARCH) $@
208 213
209define filechk_gen-asm-offsets 214define filechk_gen-asm-offsets
210 (set -e; \ 215 (set -e; \
@@ -219,13 +224,11 @@ define filechk_gen-asm-offsets
219 echo ""; ) 224 echo ""; )
220endef 225endef
221 226
222$(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/user-offsets.s 227$(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s
223 $(call filechk,gen-asm-offsets) 228 $(call filechk,gen-asm-offsets)
224 229
225CLEAN_FILES += $(ARCH_DIR)/user-offsets.s
226
227$(ARCH_DIR)/include/kern_constants.h: $(objtree)/$(ARCH_DIR)/include 230$(ARCH_DIR)/include/kern_constants.h: $(objtree)/$(ARCH_DIR)/include
228 @echo ' SYMLINK $@' 231 @echo ' SYMLINK $@'
229 $(Q) ln -sf ../../../include/asm-um/asm-offsets.h $@ 232 $(Q)ln -sf ../../../include/asm-um/asm-offsets.h $@
230 233
231export SUBARCH USER_CFLAGS OS 234export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS
diff --git a/arch/um/defconfig b/arch/um/defconfig
index 80d30d19d750..402a74dc5026 100644
--- a/arch/um/defconfig
+++ b/arch/um/defconfig
@@ -1,14 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.12-rc6-mm1 3# Linux kernel version: 2.6.17-rc3
4# Tue Jun 14 18:22:21 2005 4# Fri Apr 28 09:31:20 2006
5# 5#
6CONFIG_GENERIC_HARDIRQS=y 6CONFIG_GENERIC_HARDIRQS=y
7CONFIG_UML=y 7CONFIG_UML=y
8CONFIG_MMU=y 8CONFIG_MMU=y
9CONFIG_UID16=y
10CONFIG_RWSEM_GENERIC_SPINLOCK=y
11CONFIG_GENERIC_CALIBRATE_DELAY=y 9CONFIG_GENERIC_CALIBRATE_DELAY=y
10CONFIG_IRQ_RELEASE_METHOD=y
12 11
13# 12#
14# UML-specific options 13# UML-specific options
@@ -16,8 +15,50 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
16# CONFIG_MODE_TT is not set 15# CONFIG_MODE_TT is not set
17# CONFIG_STATIC_LINK is not set 16# CONFIG_STATIC_LINK is not set
18CONFIG_MODE_SKAS=y 17CONFIG_MODE_SKAS=y
18
19#
20# Host processor type and features
21#
22# CONFIG_M386 is not set
23# CONFIG_M486 is not set
24# CONFIG_M586 is not set
25# CONFIG_M586TSC is not set
26# CONFIG_M586MMX is not set
27CONFIG_M686=y
28# CONFIG_MPENTIUMII is not set
29# CONFIG_MPENTIUMIII is not set
30# CONFIG_MPENTIUMM is not set
31# CONFIG_MPENTIUM4 is not set
32# CONFIG_MK6 is not set
33# CONFIG_MK7 is not set
34# CONFIG_MK8 is not set
35# CONFIG_MCRUSOE is not set
36# CONFIG_MEFFICEON is not set
37# CONFIG_MWINCHIPC6 is not set
38# CONFIG_MWINCHIP2 is not set
39# CONFIG_MWINCHIP3D is not set
40# CONFIG_MGEODEGX1 is not set
41# CONFIG_MGEODE_LX is not set
42# CONFIG_MCYRIXIII is not set
43# CONFIG_MVIAC3_2 is not set
44# CONFIG_X86_GENERIC is not set
45CONFIG_X86_CMPXCHG=y
46CONFIG_X86_XADD=y
47CONFIG_X86_L1_CACHE_SHIFT=5
48CONFIG_RWSEM_XCHGADD_ALGORITHM=y
49CONFIG_X86_PPRO_FENCE=y
50CONFIG_X86_WP_WORKS_OK=y
51CONFIG_X86_INVLPG=y
52CONFIG_X86_BSWAP=y
53CONFIG_X86_POPAD_OK=y
54CONFIG_X86_CMPXCHG64=y
55CONFIG_X86_GOOD_APIC=y
56CONFIG_X86_USE_PPRO_CHECKSUM=y
57CONFIG_X86_TSC=y
19CONFIG_UML_X86=y 58CONFIG_UML_X86=y
20# CONFIG_64BIT is not set 59# CONFIG_64BIT is not set
60CONFIG_SEMAPHORE_SLEEPERS=y
61# CONFIG_HOST_2G_2G is not set
21CONFIG_TOP_ADDR=0xc0000000 62CONFIG_TOP_ADDR=0xc0000000
22# CONFIG_3_LEVEL_PGTABLES is not set 63# CONFIG_3_LEVEL_PGTABLES is not set
23CONFIG_STUB_CODE=0xbfffe000 64CONFIG_STUB_CODE=0xbfffe000
@@ -25,22 +66,24 @@ CONFIG_STUB_DATA=0xbffff000
25CONFIG_STUB_START=0xbfffe000 66CONFIG_STUB_START=0xbfffe000
26CONFIG_ARCH_HAS_SC_SIGNALS=y 67CONFIG_ARCH_HAS_SC_SIGNALS=y
27CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA=y 68CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA=y
69CONFIG_GENERIC_HWEIGHT=y
28CONFIG_SELECT_MEMORY_MODEL=y 70CONFIG_SELECT_MEMORY_MODEL=y
29CONFIG_FLATMEM_MANUAL=y 71CONFIG_FLATMEM_MANUAL=y
30# CONFIG_DISCONTIGMEM_MANUAL is not set 72# CONFIG_DISCONTIGMEM_MANUAL is not set
31# CONFIG_SPARSEMEM_MANUAL is not set 73# CONFIG_SPARSEMEM_MANUAL is not set
32CONFIG_FLATMEM=y 74CONFIG_FLATMEM=y
33CONFIG_FLAT_NODE_MEM_MAP=y 75CONFIG_FLAT_NODE_MEM_MAP=y
76# CONFIG_SPARSEMEM_STATIC is not set
77CONFIG_SPLIT_PTLOCK_CPUS=4
34CONFIG_LD_SCRIPT_DYN=y 78CONFIG_LD_SCRIPT_DYN=y
35CONFIG_NET=y 79CONFIG_NET=y
36CONFIG_BINFMT_ELF=y 80CONFIG_BINFMT_ELF=y
37CONFIG_BINFMT_MISC=m 81CONFIG_BINFMT_MISC=m
38# CONFIG_HOSTFS is not set 82# CONFIG_HOSTFS is not set
83# CONFIG_HPPFS is not set
39CONFIG_MCONSOLE=y 84CONFIG_MCONSOLE=y
40# CONFIG_MAGIC_SYSRQ is not set 85# CONFIG_MAGIC_SYSRQ is not set
41# CONFIG_HOST_2G_2G is not set
42CONFIG_NEST_LEVEL=0 86CONFIG_NEST_LEVEL=0
43CONFIG_KERNEL_HALF_GIGS=1
44# CONFIG_HIGHMEM is not set 87# CONFIG_HIGHMEM is not set
45CONFIG_KERNEL_STACK_ORDER=2 88CONFIG_KERNEL_STACK_ORDER=2
46CONFIG_UML_REAL_TIME_CLOCK=y 89CONFIG_UML_REAL_TIME_CLOCK=y
@@ -49,7 +92,6 @@ CONFIG_UML_REAL_TIME_CLOCK=y
49# Code maturity level options 92# Code maturity level options
50# 93#
51CONFIG_EXPERIMENTAL=y 94CONFIG_EXPERIMENTAL=y
52CONFIG_CLEAN_COMPILE=y
53CONFIG_BROKEN_ON_SMP=y 95CONFIG_BROKEN_ON_SMP=y
54CONFIG_INIT_ENV_ARG_LIMIT=32 96CONFIG_INIT_ENV_ARG_LIMIT=32
55 97
@@ -57,6 +99,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
57# General setup 99# General setup
58# 100#
59CONFIG_LOCALVERSION="" 101CONFIG_LOCALVERSION=""
102CONFIG_LOCALVERSION_AUTO=y
60CONFIG_SWAP=y 103CONFIG_SWAP=y
61CONFIG_SYSVIPC=y 104CONFIG_SYSVIPC=y
62CONFIG_POSIX_MQUEUE=y 105CONFIG_POSIX_MQUEUE=y
@@ -64,26 +107,28 @@ CONFIG_BSD_PROCESS_ACCT=y
64# CONFIG_BSD_PROCESS_ACCT_V3 is not set 107# CONFIG_BSD_PROCESS_ACCT_V3 is not set
65CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
66# CONFIG_AUDIT is not set 109# CONFIG_AUDIT is not set
67# CONFIG_HOTPLUG is not set
68CONFIG_KOBJECT_UEVENT=y
69CONFIG_IKCONFIG=y 110CONFIG_IKCONFIG=y
70CONFIG_IKCONFIG_PROC=y 111CONFIG_IKCONFIG_PROC=y
112# CONFIG_RELAY is not set
113CONFIG_INITRAMFS_SOURCE=""
114CONFIG_UID16=y
115CONFIG_CC_OPTIMIZE_FOR_SIZE=y
71# CONFIG_EMBEDDED is not set 116# CONFIG_EMBEDDED is not set
72CONFIG_KALLSYMS=y 117CONFIG_KALLSYMS=y
73# CONFIG_KALLSYMS_ALL is not set 118# CONFIG_KALLSYMS_ALL is not set
74CONFIG_KALLSYMS_EXTRA_PASS=y 119CONFIG_KALLSYMS_EXTRA_PASS=y
120CONFIG_HOTPLUG=y
75CONFIG_PRINTK=y 121CONFIG_PRINTK=y
76CONFIG_BUG=y 122CONFIG_BUG=y
123CONFIG_ELF_CORE=y
77CONFIG_BASE_FULL=y 124CONFIG_BASE_FULL=y
78CONFIG_FUTEX=y 125CONFIG_FUTEX=y
79CONFIG_EPOLL=y 126CONFIG_EPOLL=y
80CONFIG_SHMEM=y 127CONFIG_SHMEM=y
81CONFIG_CC_ALIGN_FUNCTIONS=0 128CONFIG_SLAB=y
82CONFIG_CC_ALIGN_LABELS=0
83CONFIG_CC_ALIGN_LOOPS=0
84CONFIG_CC_ALIGN_JUMPS=0
85# CONFIG_TINY_SHMEM is not set 129# CONFIG_TINY_SHMEM is not set
86CONFIG_BASE_SMALL=0 130CONFIG_BASE_SMALL=0
131# CONFIG_SLOB is not set
87 132
88# 133#
89# Loadable module support 134# Loadable module support
@@ -91,18 +136,43 @@ CONFIG_BASE_SMALL=0
91CONFIG_MODULES=y 136CONFIG_MODULES=y
92CONFIG_MODULE_UNLOAD=y 137CONFIG_MODULE_UNLOAD=y
93# CONFIG_MODULE_FORCE_UNLOAD is not set 138# CONFIG_MODULE_FORCE_UNLOAD is not set
94CONFIG_OBSOLETE_MODPARM=y
95# CONFIG_MODVERSIONS is not set 139# CONFIG_MODVERSIONS is not set
96# CONFIG_MODULE_SRCVERSION_ALL is not set 140# CONFIG_MODULE_SRCVERSION_ALL is not set
97CONFIG_KMOD=y 141CONFIG_KMOD=y
98 142
99# 143#
100# Generic Driver Options 144# Block layer
101# 145#
102CONFIG_STANDALONE=y 146# CONFIG_LBD is not set
103CONFIG_PREVENT_FIRMWARE_BUILD=y 147# CONFIG_BLK_DEV_IO_TRACE is not set
104# CONFIG_FW_LOADER is not set 148# CONFIG_LSF is not set
105# CONFIG_DEBUG_DRIVER is not set 149
150#
151# IO Schedulers
152#
153CONFIG_IOSCHED_NOOP=y
154CONFIG_IOSCHED_AS=y
155CONFIG_IOSCHED_DEADLINE=y
156CONFIG_IOSCHED_CFQ=y
157CONFIG_DEFAULT_AS=y
158# CONFIG_DEFAULT_DEADLINE is not set
159# CONFIG_DEFAULT_CFQ is not set
160# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="anticipatory"
162
163#
164# Block devices
165#
166CONFIG_BLK_DEV_UBD=y
167# CONFIG_BLK_DEV_UBD_SYNC is not set
168CONFIG_BLK_DEV_COW_COMMON=y
169# CONFIG_MMAPPER is not set
170CONFIG_BLK_DEV_LOOP=m
171# CONFIG_BLK_DEV_CRYPTOLOOP is not set
172CONFIG_BLK_DEV_NBD=m
173# CONFIG_BLK_DEV_RAM is not set
174# CONFIG_BLK_DEV_INITRD is not set
175# CONFIG_ATA_OVER_ETH is not set
106 176
107# 177#
108# Character Devices 178# Character Devices
@@ -127,50 +197,23 @@ CONFIG_UML_SOUND=m
127CONFIG_SOUND=m 197CONFIG_SOUND=m
128CONFIG_HOSTAUDIO=m 198CONFIG_HOSTAUDIO=m
129CONFIG_UML_RANDOM=y 199CONFIG_UML_RANDOM=y
130# CONFIG_MMAPPER is not set
131
132#
133# Block devices
134#
135CONFIG_BLK_DEV_UBD=y
136CONFIG_BLK_DEV_UBD_SYNC=y
137CONFIG_BLK_DEV_COW_COMMON=y
138CONFIG_BLK_DEV_LOOP=m
139# CONFIG_BLK_DEV_CRYPTOLOOP is not set
140CONFIG_BLK_DEV_NBD=m
141# CONFIG_BLK_DEV_RAM is not set
142CONFIG_BLK_DEV_RAM_COUNT=16
143CONFIG_INITRAMFS_SOURCE=""
144# CONFIG_LBD is not set
145
146#
147# IO Schedulers
148#
149CONFIG_IOSCHED_NOOP=y
150CONFIG_IOSCHED_AS=y
151CONFIG_IOSCHED_DEADLINE=y
152CONFIG_IOSCHED_CFQ=y
153# CONFIG_ATA_OVER_ETH is not set
154CONFIG_NETDEVICES=y
155 200
156# 201#
157# UML Network Devices 202# Generic Driver Options
158# 203#
159CONFIG_UML_NET=y 204CONFIG_STANDALONE=y
160CONFIG_UML_NET_ETHERTAP=y 205CONFIG_PREVENT_FIRMWARE_BUILD=y
161CONFIG_UML_NET_TUNTAP=y 206# CONFIG_FW_LOADER is not set
162CONFIG_UML_NET_SLIP=y 207# CONFIG_DEBUG_DRIVER is not set
163CONFIG_UML_NET_DAEMON=y
164CONFIG_UML_NET_MCAST=y
165CONFIG_UML_NET_SLIRP=y
166 208
167# 209#
168# Networking support 210# Networking
169# 211#
170 212
171# 213#
172# Networking options 214# Networking options
173# 215#
216# CONFIG_NETDEBUG is not set
174CONFIG_PACKET=y 217CONFIG_PACKET=y
175CONFIG_PACKET_MMAP=y 218CONFIG_PACKET_MMAP=y
176CONFIG_UNIX=y 219CONFIG_UNIX=y
@@ -178,6 +221,7 @@ CONFIG_UNIX=y
178CONFIG_INET=y 221CONFIG_INET=y
179# CONFIG_IP_MULTICAST is not set 222# CONFIG_IP_MULTICAST is not set
180# CONFIG_IP_ADVANCED_ROUTER is not set 223# CONFIG_IP_ADVANCED_ROUTER is not set
224CONFIG_IP_FIB_HASH=y
181# CONFIG_IP_PNP is not set 225# CONFIG_IP_PNP is not set
182# CONFIG_NET_IPIP is not set 226# CONFIG_NET_IPIP is not set
183# CONFIG_NET_IPGRE is not set 227# CONFIG_NET_IPGRE is not set
@@ -186,27 +230,31 @@ CONFIG_INET=y
186# CONFIG_INET_AH is not set 230# CONFIG_INET_AH is not set
187# CONFIG_INET_ESP is not set 231# CONFIG_INET_ESP is not set
188# CONFIG_INET_IPCOMP is not set 232# CONFIG_INET_IPCOMP is not set
233# CONFIG_INET_XFRM_TUNNEL is not set
189# CONFIG_INET_TUNNEL is not set 234# CONFIG_INET_TUNNEL is not set
190CONFIG_IP_TCPDIAG=y 235CONFIG_INET_DIAG=y
191# CONFIG_IP_TCPDIAG_IPV6 is not set 236CONFIG_INET_TCP_DIAG=y
192 237# CONFIG_TCP_CONG_ADVANCED is not set
193#
194# TCP congestion control
195#
196CONFIG_TCP_CONG_BIC=y 238CONFIG_TCP_CONG_BIC=y
197CONFIG_TCP_CONG_WESTWOOD=y
198CONFIG_TCP_CONG_HTCP=y
199# CONFIG_TCP_CONG_HSTCP is not set
200# CONFIG_TCP_CONG_HYBLA is not set
201# CONFIG_TCP_CONG_VEGAS is not set
202# CONFIG_TCP_CONG_SCALABLE is not set
203# CONFIG_IPV6 is not set 239# CONFIG_IPV6 is not set
240# CONFIG_INET6_XFRM_TUNNEL is not set
241# CONFIG_INET6_TUNNEL is not set
204# CONFIG_NETFILTER is not set 242# CONFIG_NETFILTER is not set
205 243
206# 244#
245# DCCP Configuration (EXPERIMENTAL)
246#
247# CONFIG_IP_DCCP is not set
248
249#
207# SCTP Configuration (EXPERIMENTAL) 250# SCTP Configuration (EXPERIMENTAL)
208# 251#
209# CONFIG_IP_SCTP is not set 252# CONFIG_IP_SCTP is not set
253
254#
255# TIPC Configuration (EXPERIMENTAL)
256#
257# CONFIG_TIPC is not set
210# CONFIG_ATM is not set 258# CONFIG_ATM is not set
211# CONFIG_BRIDGE is not set 259# CONFIG_BRIDGE is not set
212# CONFIG_VLAN_8021Q is not set 260# CONFIG_VLAN_8021Q is not set
@@ -224,27 +272,47 @@ CONFIG_TCP_CONG_HTCP=y
224# QoS and/or fair queueing 272# QoS and/or fair queueing
225# 273#
226# CONFIG_NET_SCHED is not set 274# CONFIG_NET_SCHED is not set
227# CONFIG_NET_CLS_ROUTE is not set
228 275
229# 276#
230# Network testing 277# Network testing
231# 278#
232# CONFIG_NET_PKTGEN is not set 279# CONFIG_NET_PKTGEN is not set
233# CONFIG_KGDBOE is not set
234# CONFIG_NETPOLL is not set
235# CONFIG_NETPOLL_RX is not set
236# CONFIG_NETPOLL_TRAP is not set
237# CONFIG_NET_POLL_CONTROLLER is not set
238# CONFIG_HAMRADIO is not set 280# CONFIG_HAMRADIO is not set
239# CONFIG_IRDA is not set 281# CONFIG_IRDA is not set
240# CONFIG_BT is not set 282# CONFIG_BT is not set
241# CONFIG_IEEE80211 is not set 283# CONFIG_IEEE80211 is not set
284
285#
286# UML Network Devices
287#
288CONFIG_UML_NET=y
289CONFIG_UML_NET_ETHERTAP=y
290CONFIG_UML_NET_TUNTAP=y
291CONFIG_UML_NET_SLIP=y
292CONFIG_UML_NET_DAEMON=y
293CONFIG_UML_NET_MCAST=y
294# CONFIG_UML_NET_PCAP is not set
295CONFIG_UML_NET_SLIRP=y
296
297#
298# Network device support
299#
300CONFIG_NETDEVICES=y
242CONFIG_DUMMY=m 301CONFIG_DUMMY=m
243# CONFIG_BONDING is not set 302# CONFIG_BONDING is not set
244# CONFIG_EQUALIZER is not set 303# CONFIG_EQUALIZER is not set
245CONFIG_TUN=m 304CONFIG_TUN=m
246 305
247# 306#
307# PHY device support
308#
309
310#
311# Wireless LAN (non-hamradio)
312#
313# CONFIG_NET_RADIO is not set
314
315#
248# Wan interfaces 316# Wan interfaces
249# 317#
250# CONFIG_WAN is not set 318# CONFIG_WAN is not set
@@ -263,6 +331,13 @@ CONFIG_SLIP=m
263# CONFIG_SLIP_MODE_SLIP6 is not set 331# CONFIG_SLIP_MODE_SLIP6 is not set
264# CONFIG_SHAPER is not set 332# CONFIG_SHAPER is not set
265# CONFIG_NETCONSOLE is not set 333# CONFIG_NETCONSOLE is not set
334# CONFIG_NETPOLL is not set
335# CONFIG_NET_POLL_CONTROLLER is not set
336
337#
338# Connector - unified userspace <-> kernelspace linker
339#
340# CONFIG_CONNECTOR is not set
266 341
267# 342#
268# File systems 343# File systems
@@ -274,17 +349,14 @@ CONFIG_EXT3_FS=y
274# CONFIG_EXT3_FS_XATTR is not set 349# CONFIG_EXT3_FS_XATTR is not set
275CONFIG_JBD=y 350CONFIG_JBD=y
276# CONFIG_JBD_DEBUG is not set 351# CONFIG_JBD_DEBUG is not set
277# CONFIG_REISER4_FS is not set
278CONFIG_REISERFS_FS=y 352CONFIG_REISERFS_FS=y
279# CONFIG_REISERFS_CHECK is not set 353# CONFIG_REISERFS_CHECK is not set
280# CONFIG_REISERFS_PROC_INFO is not set 354# CONFIG_REISERFS_PROC_INFO is not set
281# CONFIG_REISERFS_FS_XATTR is not set 355# CONFIG_REISERFS_FS_XATTR is not set
282# CONFIG_JFS_FS is not set 356# CONFIG_JFS_FS is not set
283 357# CONFIG_FS_POSIX_ACL is not set
284#
285# XFS support
286#
287# CONFIG_XFS_FS is not set 358# CONFIG_XFS_FS is not set
359# CONFIG_OCFS2_FS is not set
288# CONFIG_MINIX_FS is not set 360# CONFIG_MINIX_FS is not set
289# CONFIG_ROMFS_FS is not set 361# CONFIG_ROMFS_FS is not set
290CONFIG_INOTIFY=y 362CONFIG_INOTIFY=y
@@ -295,11 +367,6 @@ CONFIG_QUOTACTL=y
295CONFIG_DNOTIFY=y 367CONFIG_DNOTIFY=y
296CONFIG_AUTOFS_FS=m 368CONFIG_AUTOFS_FS=m
297CONFIG_AUTOFS4_FS=m 369CONFIG_AUTOFS4_FS=m
298
299#
300# Caches
301#
302# CONFIG_FSCACHE is not set
303# CONFIG_FUSE_FS is not set 370# CONFIG_FUSE_FS is not set
304 371
305# 372#
@@ -323,14 +390,10 @@ CONFIG_JOLIET=y
323CONFIG_PROC_FS=y 390CONFIG_PROC_FS=y
324CONFIG_PROC_KCORE=y 391CONFIG_PROC_KCORE=y
325CONFIG_SYSFS=y 392CONFIG_SYSFS=y
326# CONFIG_DEVFS_FS is not set
327# CONFIG_DEVPTS_FS_XATTR is not set
328CONFIG_TMPFS=y 393CONFIG_TMPFS=y
329# CONFIG_TMPFS_XATTR is not set
330# CONFIG_HUGETLB_PAGE is not set 394# CONFIG_HUGETLB_PAGE is not set
331CONFIG_RAMFS=y 395CONFIG_RAMFS=y
332# CONFIG_CONFIGFS_FS is not set 396# CONFIG_CONFIGFS_FS is not set
333# CONFIG_RELAYFS_FS is not set
334 397
335# 398#
336# Miscellaneous filesystems 399# Miscellaneous filesystems
@@ -430,6 +493,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
430# Library routines 493# Library routines
431# 494#
432# CONFIG_CRC_CCITT is not set 495# CONFIG_CRC_CCITT is not set
496# CONFIG_CRC16 is not set
433CONFIG_CRC32=m 497CONFIG_CRC32=m
434# CONFIG_LIBCRC32C is not set 498# CONFIG_LIBCRC32C is not set
435 499
@@ -448,12 +512,18 @@ CONFIG_LOG_BUF_SHIFT=14
448CONFIG_DETECT_SOFTLOCKUP=y 512CONFIG_DETECT_SOFTLOCKUP=y
449# CONFIG_SCHEDSTATS is not set 513# CONFIG_SCHEDSTATS is not set
450CONFIG_DEBUG_SLAB=y 514CONFIG_DEBUG_SLAB=y
515# CONFIG_DEBUG_SLAB_LEAK is not set
516# CONFIG_DEBUG_MUTEXES is not set
451# CONFIG_DEBUG_SPINLOCK is not set 517# CONFIG_DEBUG_SPINLOCK is not set
452# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 518# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
453# CONFIG_DEBUG_KOBJECT is not set 519# CONFIG_DEBUG_KOBJECT is not set
454CONFIG_DEBUG_INFO=y 520CONFIG_DEBUG_INFO=y
455# CONFIG_DEBUG_FS is not set 521# CONFIG_DEBUG_FS is not set
522# CONFIG_DEBUG_VM is not set
456CONFIG_FRAME_POINTER=y 523CONFIG_FRAME_POINTER=y
524# CONFIG_UNWIND_INFO is not set
525CONFIG_FORCED_INLINING=y
526# CONFIG_RCU_TORTURE_TEST is not set
457# CONFIG_GPROF is not set 527# CONFIG_GPROF is not set
458# CONFIG_GCOV is not set 528# CONFIG_GCOV is not set
459# CONFIG_SYSCALL_DEBUG is not set 529# CONFIG_SYSCALL_DEBUG is not set
diff --git a/arch/um/include/longjmp.h b/arch/um/include/longjmp.h
index 018b3819ab0b..8e7053013f7b 100644
--- a/arch/um/include/longjmp.h
+++ b/arch/um/include/longjmp.h
@@ -4,11 +4,11 @@
4#include <setjmp.h> 4#include <setjmp.h>
5#include "os.h" 5#include "os.h"
6 6
7#define UML_SIGLONGJMP(buf, val) do { \ 7#define UML_LONGJMP(buf, val) do { \
8 longjmp(*buf, val); \ 8 longjmp(*buf, val); \
9} while(0) 9} while(0)
10 10
11#define UML_SIGSETJMP(buf, enable) ({ \ 11#define UML_SETJMP(buf, enable) ({ \
12 int n; \ 12 int n; \
13 enable = get_signals(); \ 13 enable = get_signals(); \
14 n = setjmp(*buf); \ 14 n = setjmp(*buf); \
diff --git a/arch/um/include/sysdep-i386/kernel-offsets.h b/arch/um/include/sysdep-i386/kernel-offsets.h
index 82f96c574144..2c13de321f2f 100644
--- a/arch/um/include/sysdep-i386/kernel-offsets.h
+++ b/arch/um/include/sysdep-i386/kernel-offsets.h
@@ -1,6 +1,7 @@
1#include <linux/stddef.h> 1#include <linux/stddef.h>
2#include <linux/sched.h> 2#include <linux/sched.h>
3#include <linux/elf.h> 3#include <linux/elf.h>
4#include <asm/mman.h>
4 5
5#define DEFINE(sym, val) \ 6#define DEFINE(sym, val) \
6 asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 7 asm volatile("\n->" #sym " %0 " #val : : "i" (val))
@@ -16,6 +17,7 @@
16void foo(void) 17void foo(void)
17{ 18{
18 OFFSET(HOST_TASK_DEBUGREGS, task_struct, thread.arch.debugregs); 19 OFFSET(HOST_TASK_DEBUGREGS, task_struct, thread.arch.debugregs);
20 DEFINE(KERNEL_MADV_REMOVE, MADV_REMOVE);
19#ifdef CONFIG_MODE_TT 21#ifdef CONFIG_MODE_TT
20 OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); 22 OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid);
21#endif 23#endif
diff --git a/arch/um/include/sysdep-x86_64/kernel-offsets.h b/arch/um/include/sysdep-x86_64/kernel-offsets.h
index 5ce93abd0b54..939cc475757a 100644
--- a/arch/um/include/sysdep-x86_64/kernel-offsets.h
+++ b/arch/um/include/sysdep-x86_64/kernel-offsets.h
@@ -4,6 +4,7 @@
4#include <linux/time.h> 4#include <linux/time.h>
5#include <linux/elf.h> 5#include <linux/elf.h>
6#include <asm/page.h> 6#include <asm/page.h>
7#include <asm/mman.h>
7 8
8#define DEFINE(sym, val) \ 9#define DEFINE(sym, val) \
9 asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 10 asm volatile("\n->" #sym " %0 " #val : : "i" (val))
@@ -18,6 +19,7 @@
18 19
19void foo(void) 20void foo(void)
20{ 21{
22 DEFINE(KERNEL_MADV_REMOVE, MADV_REMOVE);
21#ifdef CONFIG_MODE_TT 23#ifdef CONFIG_MODE_TT
22 OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); 24 OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid);
23#endif 25#endif
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c
index c39ea3abeda4..2ffda012385e 100644
--- a/arch/um/kernel/irq.c
+++ b/arch/um/kernel/irq.c
@@ -89,16 +89,18 @@ void sigio_handler(int sig, union uml_pt_regs *regs)
89 struct irq_fd *irq_fd; 89 struct irq_fd *irq_fd;
90 int n; 90 int n;
91 91
92 if(smp_sigio_handler()) return; 92 if (smp_sigio_handler())
93 while(1){ 93 return;
94
95 while (1) {
94 n = os_waiting_for_events(active_fds); 96 n = os_waiting_for_events(active_fds);
95 if (n <= 0) { 97 if (n <= 0) {
96 if(n == -EINTR) continue; 98 if(n == -EINTR) continue;
97 else break; 99 else break;
98 } 100 }
99 101
100 for(irq_fd = active_fds; irq_fd != NULL; irq_fd = irq_fd->next){ 102 for (irq_fd = active_fds; irq_fd != NULL; irq_fd = irq_fd->next) {
101 if(irq_fd->current_events != 0){ 103 if (irq_fd->current_events != 0) {
102 irq_fd->current_events = 0; 104 irq_fd->current_events = 0;
103 do_IRQ(irq_fd->irq, regs); 105 do_IRQ(irq_fd->irq, regs);
104 } 106 }
@@ -110,19 +112,17 @@ void sigio_handler(int sig, union uml_pt_regs *regs)
110 112
111static void maybe_sigio_broken(int fd, int type) 113static void maybe_sigio_broken(int fd, int type)
112{ 114{
113 if(os_isatty(fd)){ 115 if (os_isatty(fd)) {
114 if((type == IRQ_WRITE) && !pty_output_sigio){ 116 if ((type == IRQ_WRITE) && !pty_output_sigio) {
115 write_sigio_workaround(); 117 write_sigio_workaround();
116 add_sigio_fd(fd, 0); 118 add_sigio_fd(fd, 0);
117 } 119 } else if ((type == IRQ_READ) && !pty_close_sigio) {
118 else if((type == IRQ_READ) && !pty_close_sigio){
119 write_sigio_workaround(); 120 write_sigio_workaround();
120 add_sigio_fd(fd, 1); 121 add_sigio_fd(fd, 1);
121 } 122 }
122 } 123 }
123} 124}
124 125
125
126int activate_fd(int irq, int fd, int type, void *dev_id) 126int activate_fd(int irq, int fd, int type, void *dev_id)
127{ 127{
128 struct pollfd *tmp_pfd; 128 struct pollfd *tmp_pfd;
@@ -132,16 +132,18 @@ int activate_fd(int irq, int fd, int type, void *dev_id)
132 132
133 pid = os_getpid(); 133 pid = os_getpid();
134 err = os_set_fd_async(fd, pid); 134 err = os_set_fd_async(fd, pid);
135 if(err < 0) 135 if (err < 0)
136 goto out; 136 goto out;
137 137
138 new_fd = um_kmalloc(sizeof(*new_fd)); 138 new_fd = um_kmalloc(sizeof(*new_fd));
139 err = -ENOMEM; 139 err = -ENOMEM;
140 if(new_fd == NULL) 140 if (new_fd == NULL)
141 goto out; 141 goto out;
142 142
143 if(type == IRQ_READ) events = UM_POLLIN | UM_POLLPRI; 143 if (type == IRQ_READ)
144 else events = UM_POLLOUT; 144 events = UM_POLLIN | UM_POLLPRI;
145 else
146 events = UM_POLLOUT;
145 *new_fd = ((struct irq_fd) { .next = NULL, 147 *new_fd = ((struct irq_fd) { .next = NULL,
146 .id = dev_id, 148 .id = dev_id,
147 .fd = fd, 149 .fd = fd,
@@ -165,8 +167,8 @@ int activate_fd(int irq, int fd, int type, void *dev_id)
165 * a semaphore. 167 * a semaphore.
166 */ 168 */
167 flags = irq_lock(); 169 flags = irq_lock();
168 for(irq_fd = active_fds; irq_fd != NULL; irq_fd = irq_fd->next){ 170 for (irq_fd = active_fds; irq_fd != NULL; irq_fd = irq_fd->next) {
169 if((irq_fd->fd == fd) && (irq_fd->type == type)){ 171 if ((irq_fd->fd == fd) && (irq_fd->type == type)) {
170 printk("Registering fd %d twice\n", fd); 172 printk("Registering fd %d twice\n", fd);
171 printk("Irqs : %d, %d\n", irq_fd->irq, irq); 173 printk("Irqs : %d, %d\n", irq_fd->irq, irq);
172 printk("Ids : 0x%p, 0x%p\n", irq_fd->id, dev_id); 174 printk("Ids : 0x%p, 0x%p\n", irq_fd->id, dev_id);
@@ -175,13 +177,13 @@ int activate_fd(int irq, int fd, int type, void *dev_id)
175 } 177 }
176 178
177 /*-------------*/ 179 /*-------------*/
178 if(type == IRQ_WRITE) 180 if (type == IRQ_WRITE)
179 fd = -1; 181 fd = -1;
180 182
181 tmp_pfd = NULL; 183 tmp_pfd = NULL;
182 n = 0; 184 n = 0;
183 185
184 while(1){ 186 while (1) {
185 n = os_create_pollfd(fd, events, tmp_pfd, n); 187 n = os_create_pollfd(fd, events, tmp_pfd, n);
186 if (n == 0) 188 if (n == 0)
187 break; 189 break;
@@ -198,10 +200,8 @@ int activate_fd(int irq, int fd, int type, void *dev_id)
198 * then we free the buffer tmp_fds and try again. 200 * then we free the buffer tmp_fds and try again.
199 */ 201 */
200 irq_unlock(flags); 202 irq_unlock(flags);
201 if (tmp_pfd != NULL) { 203 kfree(tmp_pfd);
202 kfree(tmp_pfd); 204 tmp_pfd = NULL;
203 tmp_pfd = NULL;
204 }
205 205
206 tmp_pfd = um_kmalloc(n); 206 tmp_pfd = um_kmalloc(n);
207 if (tmp_pfd == NULL) 207 if (tmp_pfd == NULL)
@@ -249,7 +249,7 @@ static int same_irq_and_dev(struct irq_fd *irq, void *d)
249{ 249{
250 struct irq_and_dev *data = d; 250 struct irq_and_dev *data = d;
251 251
252 return((irq->irq == data->irq) && (irq->id == data->dev)); 252 return ((irq->irq == data->irq) && (irq->id == data->dev));
253} 253}
254 254
255void free_irq_by_irq_and_dev(unsigned int irq, void *dev) 255void free_irq_by_irq_and_dev(unsigned int irq, void *dev)
@@ -262,7 +262,7 @@ void free_irq_by_irq_and_dev(unsigned int irq, void *dev)
262 262
263static int same_fd(struct irq_fd *irq, void *fd) 263static int same_fd(struct irq_fd *irq, void *fd)
264{ 264{
265 return(irq->fd == *((int *) fd)); 265 return (irq->fd == *((int *)fd));
266} 266}
267 267
268void free_irq_by_fd(int fd) 268void free_irq_by_fd(int fd)
@@ -276,16 +276,17 @@ static struct irq_fd *find_irq_by_fd(int fd, int irqnum, int *index_out)
276 int i = 0; 276 int i = 0;
277 int fdi; 277 int fdi;
278 278
279 for(irq=active_fds; irq != NULL; irq = irq->next){ 279 for (irq = active_fds; irq != NULL; irq = irq->next) {
280 if((irq->fd == fd) && (irq->irq == irqnum)) break; 280 if ((irq->fd == fd) && (irq->irq == irqnum))
281 break;
281 i++; 282 i++;
282 } 283 }
283 if(irq == NULL){ 284 if (irq == NULL) {
284 printk("find_irq_by_fd doesn't have descriptor %d\n", fd); 285 printk("find_irq_by_fd doesn't have descriptor %d\n", fd);
285 goto out; 286 goto out;
286 } 287 }
287 fdi = os_get_pollfd(i); 288 fdi = os_get_pollfd(i);
288 if((fdi != -1) && (fdi != fd)){ 289 if ((fdi != -1) && (fdi != fd)) {
289 printk("find_irq_by_fd - mismatch between active_fds and " 290 printk("find_irq_by_fd - mismatch between active_fds and "
290 "pollfds, fd %d vs %d, need %d\n", irq->fd, 291 "pollfds, fd %d vs %d, need %d\n", irq->fd,
291 fdi, fd); 292 fdi, fd);
@@ -294,7 +295,7 @@ static struct irq_fd *find_irq_by_fd(int fd, int irqnum, int *index_out)
294 } 295 }
295 *index_out = i; 296 *index_out = i;
296 out: 297 out:
297 return(irq); 298 return irq;
298} 299}
299 300
300void reactivate_fd(int fd, int irqnum) 301void reactivate_fd(int fd, int irqnum)
@@ -305,7 +306,7 @@ void reactivate_fd(int fd, int irqnum)
305 306
306 flags = irq_lock(); 307 flags = irq_lock();
307 irq = find_irq_by_fd(fd, irqnum, &i); 308 irq = find_irq_by_fd(fd, irqnum, &i);
308 if(irq == NULL){ 309 if (irq == NULL) {
309 irq_unlock(flags); 310 irq_unlock(flags);
310 return; 311 return;
311 } 312 }
@@ -326,7 +327,7 @@ void deactivate_fd(int fd, int irqnum)
326 327
327 flags = irq_lock(); 328 flags = irq_lock();
328 irq = find_irq_by_fd(fd, irqnum, &i); 329 irq = find_irq_by_fd(fd, irqnum, &i);
329 if(irq == NULL) 330 if (irq == NULL)
330 goto out; 331 goto out;
331 os_set_pollfd(i, -1); 332 os_set_pollfd(i, -1);
332 out: 333 out:
@@ -338,15 +339,15 @@ int deactivate_all_fds(void)
338 struct irq_fd *irq; 339 struct irq_fd *irq;
339 int err; 340 int err;
340 341
341 for(irq=active_fds;irq != NULL;irq = irq->next){ 342 for (irq = active_fds; irq != NULL; irq = irq->next) {
342 err = os_clear_fd_async(irq->fd); 343 err = os_clear_fd_async(irq->fd);
343 if(err) 344 if (err)
344 return(err); 345 return err;
345 } 346 }
346 /* If there is a signal already queued, after unblocking ignore it */ 347 /* If there is a signal already queued, after unblocking ignore it */
347 os_set_ioignore(); 348 os_set_ioignore();
348 349
349 return(0); 350 return 0;
350} 351}
351 352
352void forward_interrupts(int pid) 353void forward_interrupts(int pid)
@@ -356,9 +357,9 @@ void forward_interrupts(int pid)
356 int err; 357 int err;
357 358
358 flags = irq_lock(); 359 flags = irq_lock();
359 for(irq=active_fds;irq != NULL;irq = irq->next){ 360 for (irq = active_fds; irq != NULL; irq = irq->next) {
360 err = os_set_owner(irq->fd, pid); 361 err = os_set_owner(irq->fd, pid);
361 if(err < 0){ 362 if (err < 0) {
362 /* XXX Just remove the irq rather than 363 /* XXX Just remove the irq rather than
363 * print out an infinite stream of these 364 * print out an infinite stream of these
364 */ 365 */
@@ -379,7 +380,7 @@ void forward_interrupts(int pid)
379unsigned int do_IRQ(int irq, union uml_pt_regs *regs) 380unsigned int do_IRQ(int irq, union uml_pt_regs *regs)
380{ 381{
381 irq_enter(); 382 irq_enter();
382 __do_IRQ(irq, (struct pt_regs *) regs); 383 __do_IRQ(irq, (struct pt_regs *)regs);
383 irq_exit(); 384 irq_exit();
384 return 1; 385 return 1;
385} 386}
@@ -392,12 +393,12 @@ int um_request_irq(unsigned int irq, int fd, int type,
392 int err; 393 int err;
393 394
394 err = request_irq(irq, handler, irqflags, devname, dev_id); 395 err = request_irq(irq, handler, irqflags, devname, dev_id);
395 if(err) 396 if (err)
396 return(err); 397 return err;
397 398
398 if(fd != -1) 399 if (fd != -1)
399 err = activate_fd(irq, fd, type, dev_id); 400 err = activate_fd(irq, fd, type, dev_id);
400 return(err); 401 return err;
401} 402}
402EXPORT_SYMBOL(um_request_irq); 403EXPORT_SYMBOL(um_request_irq);
403EXPORT_SYMBOL(reactivate_fd); 404EXPORT_SYMBOL(reactivate_fd);
@@ -409,7 +410,7 @@ unsigned long irq_lock(void)
409 unsigned long flags; 410 unsigned long flags;
410 411
411 spin_lock_irqsave(&irq_spinlock, flags); 412 spin_lock_irqsave(&irq_spinlock, flags);
412 return(flags); 413 return flags;
413} 414}
414 415
415void irq_unlock(unsigned long flags) 416void irq_unlock(unsigned long flags)
@@ -452,7 +453,7 @@ void __init init_IRQ(void)
452 irq_desc[TIMER_IRQ].depth = 1; 453 irq_desc[TIMER_IRQ].depth = 1;
453 irq_desc[TIMER_IRQ].handler = &SIGVTALRM_irq_type; 454 irq_desc[TIMER_IRQ].handler = &SIGVTALRM_irq_type;
454 enable_irq(TIMER_IRQ); 455 enable_irq(TIMER_IRQ);
455 for(i=1;i<NR_IRQS;i++){ 456 for (i = 1; i < NR_IRQS; i++) {
456 irq_desc[i].status = IRQ_DISABLED; 457 irq_desc[i].status = IRQ_DISABLED;
457 irq_desc[i].action = NULL; 458 irq_desc[i].action = NULL;
458 irq_desc[i].depth = 1; 459 irq_desc[i].depth = 1;
@@ -467,7 +468,7 @@ int init_aio_irq(int irq, char *name, irqreturn_t (*handler)(int, void *,
467 int fds[2], err; 468 int fds[2], err;
468 469
469 err = os_pipe(fds, 1, 1); 470 err = os_pipe(fds, 1, 1);
470 if(err){ 471 if (err) {
471 printk("init_aio_irq - os_pipe failed, err = %d\n", -err); 472 printk("init_aio_irq - os_pipe failed, err = %d\n", -err);
472 goto out; 473 goto out;
473 } 474 }
@@ -475,7 +476,7 @@ int init_aio_irq(int irq, char *name, irqreturn_t (*handler)(int, void *,
475 err = um_request_irq(irq, fds[0], IRQ_READ, handler, 476 err = um_request_irq(irq, fds[0], IRQ_READ, handler,
476 SA_INTERRUPT | SA_SAMPLE_RANDOM, name, 477 SA_INTERRUPT | SA_SAMPLE_RANDOM, name,
477 (void *) (long) fds[0]); 478 (void *) (long) fds[0]);
478 if(err){ 479 if (err) {
479 printk("init_aio_irq - : um_request_irq failed, err = %d\n", 480 printk("init_aio_irq - : um_request_irq failed, err = %d\n",
480 err); 481 err);
481 goto out_close; 482 goto out_close;
@@ -488,5 +489,5 @@ int init_aio_irq(int irq, char *name, irqreturn_t (*handler)(int, void *,
488 os_close_file(fds[0]); 489 os_close_file(fds[0]);
489 os_close_file(fds[1]); 490 os_close_file(fds[1]);
490 out: 491 out:
491 return(err); 492 return err;
492} 493}
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c
index 0500800df1c1..fc0f0b085ca7 100644
--- a/arch/um/kernel/physmem.c
+++ b/arch/um/kernel/physmem.c
@@ -407,6 +407,8 @@ unsigned long find_iomem(char *driver, unsigned long *len_out)
407 *len_out = region->size; 407 *len_out = region->size;
408 return(region->virt); 408 return(region->virt);
409 } 409 }
410
411 region = region->next;
410 } 412 }
411 413
412 return(0); 414 return(0);
diff --git a/arch/um/kernel/ptrace.c b/arch/um/kernel/ptrace.c
index 60d2eda995c1..9a77fb3c269d 100644
--- a/arch/um/kernel/ptrace.c
+++ b/arch/um/kernel/ptrace.c
@@ -275,15 +275,13 @@ void syscall_trace(union uml_pt_regs *regs, int entryexit)
275 275
276 if (unlikely(current->audit_context)) { 276 if (unlikely(current->audit_context)) {
277 if (!entryexit) 277 if (!entryexit)
278 audit_syscall_entry(current, 278 audit_syscall_entry(HOST_AUDIT_ARCH,
279 HOST_AUDIT_ARCH,
280 UPT_SYSCALL_NR(regs), 279 UPT_SYSCALL_NR(regs),
281 UPT_SYSCALL_ARG1(regs), 280 UPT_SYSCALL_ARG1(regs),
282 UPT_SYSCALL_ARG2(regs), 281 UPT_SYSCALL_ARG2(regs),
283 UPT_SYSCALL_ARG3(regs), 282 UPT_SYSCALL_ARG3(regs),
284 UPT_SYSCALL_ARG4(regs)); 283 UPT_SYSCALL_ARG4(regs));
285 else audit_syscall_exit(current, 284 else audit_syscall_exit(AUDITSC_RESULT(UPT_SYSCALL_RET(regs)),
286 AUDITSC_RESULT(UPT_SYSCALL_RET(regs)),
287 UPT_SYSCALL_RET(regs)); 285 UPT_SYSCALL_RET(regs));
288 } 286 }
289 287
diff --git a/arch/um/kernel/skas/Makefile b/arch/um/kernel/skas/Makefile
index 57181a920d48..ea3a8e409a6e 100644
--- a/arch/um/kernel/skas/Makefile
+++ b/arch/um/kernel/skas/Makefile
@@ -6,9 +6,11 @@
6obj-y := clone.o exec_kern.o mem.o mmu.o process_kern.o \ 6obj-y := clone.o exec_kern.o mem.o mmu.o process_kern.o \
7 syscall.o tlb.o uaccess.o 7 syscall.o tlb.o uaccess.o
8 8
9USER_OBJS := clone.o 9# clone.o is in the stub, so it can't be built with profiling
10# GCC hardened also auto-enables -fpic, but we need %ebx so it can't work ->
11# disable it
10 12
11include arch/um/scripts/Makefile.rules 13CFLAGS_clone.o := $(CFLAGS_NO_HARDENING)
14UNPROFILE_OBJS := clone.o
12 15
13# clone.o is in the stub, so it can't be built with profiling 16include arch/um/scripts/Makefile.rules
14$(obj)/clone.o : c_flags = -Wp,-MD,$(depfile) $(call unprofile,$(USER_CFLAGS))
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c
index 3bd10deea280..09251338d99e 100644
--- a/arch/um/os-Linux/file.c
+++ b/arch/um/os-Linux/file.c
@@ -171,7 +171,7 @@ int os_sigio_async(int master, int slave)
171 171
172 flags = fcntl(master, F_GETFL); 172 flags = fcntl(master, F_GETFL);
173 if(flags < 0) 173 if(flags < 0)
174 return errno; 174 return -errno;
175 175
176 if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) || 176 if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) ||
177 (fcntl(master, F_SETOWN, os_getpid()) < 0)) 177 (fcntl(master, F_SETOWN, os_getpid()) < 0))
diff --git a/arch/um/os-Linux/irq.c b/arch/um/os-Linux/irq.c
index e599be423da1..3788d4568d33 100644
--- a/arch/um/os-Linux/irq.c
+++ b/arch/um/os-Linux/irq.c
@@ -29,21 +29,21 @@ int os_waiting_for_events(struct irq_fd *active_fds)
29 int i, n, err; 29 int i, n, err;
30 30
31 n = poll(pollfds, pollfds_num, 0); 31 n = poll(pollfds, pollfds_num, 0);
32 if(n < 0){ 32 if (n < 0) {
33 err = -errno; 33 err = -errno;
34 if(errno != EINTR) 34 if (errno != EINTR)
35 printk("sigio_handler: os_waiting_for_events:" 35 printk("sigio_handler: os_waiting_for_events:"
36 " poll returned %d, errno = %d\n", n, errno); 36 " poll returned %d, errno = %d\n", n, errno);
37 return err; 37 return err;
38 } 38 }
39 39
40 if(n == 0) 40 if (n == 0)
41 return 0; 41 return 0;
42 42
43 irq_fd = active_fds; 43 irq_fd = active_fds;
44 44
45 for(i = 0; i < pollfds_num; i++){ 45 for (i = 0; i < pollfds_num; i++) {
46 if(pollfds[i].revents != 0){ 46 if (pollfds[i].revents != 0) {
47 irq_fd->current_events = pollfds[i].revents; 47 irq_fd->current_events = pollfds[i].revents;
48 pollfds[i].fd = -1; 48 pollfds[i].fd = -1;
49 } 49 }
@@ -54,7 +54,7 @@ int os_waiting_for_events(struct irq_fd *active_fds)
54 54
55int os_isatty(int fd) 55int os_isatty(int fd)
56{ 56{
57 return(isatty(fd)); 57 return isatty(fd);
58} 58}
59 59
60int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds) 60int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds)
@@ -65,7 +65,7 @@ int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds)
65 return((pollfds_size + 1) * sizeof(pollfds[0])); 65 return((pollfds_size + 1) * sizeof(pollfds[0]));
66 } 66 }
67 67
68 if(pollfds != NULL){ 68 if (pollfds != NULL) {
69 memcpy(tmp_pfd, pollfds, 69 memcpy(tmp_pfd, pollfds,
70 sizeof(pollfds[0]) * pollfds_size); 70 sizeof(pollfds[0]) * pollfds_size);
71 /* remove old pollfds */ 71 /* remove old pollfds */
@@ -73,18 +73,15 @@ int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds)
73 } 73 }
74 pollfds = tmp_pfd; 74 pollfds = tmp_pfd;
75 pollfds_size++; 75 pollfds_size++;
76 } else { 76 } else
77 /* remove not used tmp_pfd */ 77 kfree(tmp_pfd); /* remove not used tmp_pfd */
78 if (tmp_pfd != NULL)
79 kfree(tmp_pfd);
80 }
81 78
82 pollfds[pollfds_num] = ((struct pollfd) { .fd = fd, 79 pollfds[pollfds_num] = ((struct pollfd) { .fd = fd,
83 .events = events, 80 .events = events,
84 .revents = 0 }); 81 .revents = 0 });
85 pollfds_num++; 82 pollfds_num++;
86 83
87 return(0); 84 return 0;
88} 85}
89 86
90void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg, 87void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg,
@@ -94,11 +91,11 @@ void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg,
94 int i = 0; 91 int i = 0;
95 92
96 prev = &active_fds; 93 prev = &active_fds;
97 while(*prev != NULL){ 94 while (*prev != NULL) {
98 if((*test)(*prev, arg)){ 95 if ((*test)(*prev, arg)) {
99 struct irq_fd *old_fd = *prev; 96 struct irq_fd *old_fd = *prev;
100 if((pollfds[i].fd != -1) && 97 if ((pollfds[i].fd != -1) &&
101 (pollfds[i].fd != (*prev)->fd)){ 98 (pollfds[i].fd != (*prev)->fd)) {
102 printk("os_free_irq_by_cb - mismatch between " 99 printk("os_free_irq_by_cb - mismatch between "
103 "active_fds and pollfds, fd %d vs %d\n", 100 "active_fds and pollfds, fd %d vs %d\n",
104 (*prev)->fd, pollfds[i].fd); 101 (*prev)->fd, pollfds[i].fd);
@@ -110,7 +107,6 @@ void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg,
110 /* This moves the *whole* array after pollfds[i] 107 /* This moves the *whole* array after pollfds[i]
111 * (though it doesn't spot as such)! 108 * (though it doesn't spot as such)!
112 */ 109 */
113
114 memmove(&pollfds[i], &pollfds[i + 1], 110 memmove(&pollfds[i], &pollfds[i + 1],
115 (pollfds_num - i) * sizeof(pollfds[0])); 111 (pollfds_num - i) * sizeof(pollfds[0]));
116 if(*last_irq_ptr2 == &old_fd->next) 112 if(*last_irq_ptr2 == &old_fd->next)
@@ -129,10 +125,9 @@ void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg,
129 return; 125 return;
130} 126}
131 127
132
133int os_get_pollfd(int i) 128int os_get_pollfd(int i)
134{ 129{
135 return(pollfds[i].fd); 130 return pollfds[i].fd;
136} 131}
137 132
138void os_set_pollfd(int i, int fd) 133void os_set_pollfd(int i, int fd)
@@ -151,8 +146,10 @@ void init_irq_signals(int on_sigstack)
151 int flags; 146 int flags;
152 147
153 flags = on_sigstack ? SA_ONSTACK : 0; 148 flags = on_sigstack ? SA_ONSTACK : 0;
154 if(timer_irq_inited) h = (__sighandler_t) alarm_handler; 149 if (timer_irq_inited)
155 else h = boot_timer_handler; 150 h = (__sighandler_t)alarm_handler;
151 else
152 h = boot_timer_handler;
156 153
157 set_handler(SIGVTALRM, h, flags | SA_RESTART, 154 set_handler(SIGVTALRM, h, flags | SA_RESTART,
158 SIGUSR1, SIGIO, SIGWINCH, SIGALRM, -1); 155 SIGUSR1, SIGIO, SIGWINCH, SIGALRM, -1);
diff --git a/arch/um/os-Linux/main.c b/arch/um/os-Linux/main.c
index 2878e89a674f..3a0ac38e978b 100644
--- a/arch/um/os-Linux/main.c
+++ b/arch/um/os-Linux/main.c
@@ -74,6 +74,34 @@ static void last_ditch_exit(int sig)
74 exit(1); 74 exit(1);
75} 75}
76 76
77#define UML_LIB_PATH ":/usr/lib/uml"
78
79static void setup_env_path(void)
80{
81 char *new_path = NULL;
82 char *old_path = NULL;
83 int path_len = 0;
84
85 old_path = getenv("PATH");
86 /* if no PATH variable is set or it has an empty value
87 * just use the default + /usr/lib/uml
88 */
89 if (!old_path || (path_len = strlen(old_path)) == 0) {
90 putenv("PATH=:/bin:/usr/bin/" UML_LIB_PATH);
91 return;
92 }
93
94 /* append /usr/lib/uml to the existing path */
95 path_len += strlen("PATH=" UML_LIB_PATH) + 1;
96 new_path = malloc(path_len);
97 if (!new_path) {
98 perror("coudn't malloc to set a new PATH");
99 return;
100 }
101 snprintf(new_path, path_len, "PATH=%s" UML_LIB_PATH, old_path);
102 putenv(new_path);
103}
104
77extern int uml_exitcode; 105extern int uml_exitcode;
78 106
79extern void scan_elf_aux( char **envp); 107extern void scan_elf_aux( char **envp);
@@ -114,6 +142,8 @@ int main(int argc, char **argv, char **envp)
114 142
115 set_stklim(); 143 set_stklim();
116 144
145 setup_env_path();
146
117 new_argv = malloc((argc + 1) * sizeof(char *)); 147 new_argv = malloc((argc + 1) * sizeof(char *));
118 if(new_argv == NULL){ 148 if(new_argv == NULL){
119 perror("Mallocing argv"); 149 perror("Mallocing argv");
diff --git a/arch/um/os-Linux/mem.c b/arch/um/os-Linux/mem.c
index 71bb90a7606d..c6432e729241 100644
--- a/arch/um/os-Linux/mem.c
+++ b/arch/um/os-Linux/mem.c
@@ -8,6 +8,7 @@
8#include <fcntl.h> 8#include <fcntl.h>
9#include <sys/types.h> 9#include <sys/types.h>
10#include <sys/mman.h> 10#include <sys/mman.h>
11#include <sys/statfs.h>
11#include "kern_util.h" 12#include "kern_util.h"
12#include "user.h" 13#include "user.h"
13#include "user_util.h" 14#include "user_util.h"
@@ -19,6 +20,7 @@
19 20
20#include <sys/param.h> 21#include <sys/param.h>
21 22
23static char *default_tmpdir = "/tmp";
22static char *tempdir = NULL; 24static char *tempdir = NULL;
23 25
24static void __init find_tempdir(void) 26static void __init find_tempdir(void)
@@ -34,7 +36,7 @@ static void __init find_tempdir(void)
34 break; 36 break;
35 } 37 }
36 if((dir == NULL) || (*dir == '\0')) 38 if((dir == NULL) || (*dir == '\0'))
37 dir = "/tmp"; 39 dir = default_tmpdir;
38 40
39 tempdir = malloc(strlen(dir) + 2); 41 tempdir = malloc(strlen(dir) + 2);
40 if(tempdir == NULL){ 42 if(tempdir == NULL){
@@ -46,6 +48,96 @@ static void __init find_tempdir(void)
46 strcat(tempdir, "/"); 48 strcat(tempdir, "/");
47} 49}
48 50
51/* This will return 1, with the first character in buf being the
52 * character following the next instance of c in the file. This will
53 * read the file as needed. If there's an error, -errno is returned;
54 * if the end of the file is reached, 0 is returned.
55 */
56static int next(int fd, char *buf, int size, char c)
57{
58 int n;
59 char *ptr;
60
61 while((ptr = strchr(buf, c)) == NULL){
62 n = read(fd, buf, size - 1);
63 if(n == 0)
64 return 0;
65 else if(n < 0)
66 return -errno;
67
68 buf[n] = '\0';
69 }
70
71 ptr++;
72 memmove(buf, ptr, strlen(ptr) + 1);
73 return 1;
74}
75
76static int checked_tmpdir = 0;
77
78/* Look for a tmpfs mounted at /dev/shm. I couldn't find a cleaner
79 * way to do this than to parse /proc/mounts. statfs will return the
80 * same filesystem magic number and fs id for both /dev and /dev/shm
81 * when they are both tmpfs, so you can't tell if they are different
82 * filesystems. Also, there seems to be no other way of finding the
83 * mount point of a filesystem from within it.
84 *
85 * If a /dev/shm tmpfs entry is found, then we switch to using it.
86 * Otherwise, we stay with the default /tmp.
87 */
88static void which_tmpdir(void)
89{
90 int fd, found;
91 char buf[128] = { '\0' };
92
93 if(checked_tmpdir)
94 return;
95
96 checked_tmpdir = 1;
97
98 printf("Checking for tmpfs mount on /dev/shm...");
99
100 fd = open("/proc/mounts", O_RDONLY);
101 if(fd < 0){
102 printf("failed to open /proc/mounts, errno = %d\n", errno);
103 return;
104 }
105
106 while(1){
107 found = next(fd, buf, sizeof(buf) / sizeof(buf[0]), ' ');
108 if(found != 1)
109 break;
110
111 if(!strncmp(buf, "/dev/shm", strlen("/dev/shm")))
112 goto found;
113
114 found = next(fd, buf, sizeof(buf) / sizeof(buf[0]), '\n');
115 if(found != 1)
116 break;
117 }
118
119err:
120 if(found == 0)
121 printf("nothing mounted on /dev/shm\n");
122 else if(found < 0)
123 printf("read returned errno %d\n", -found);
124
125 return;
126
127found:
128 found = next(fd, buf, sizeof(buf) / sizeof(buf[0]), ' ');
129 if(found != 1)
130 goto err;
131
132 if(strncmp(buf, "tmpfs", strlen("tmpfs"))){
133 printf("not tmpfs\n");
134 return;
135 }
136
137 printf("OK\n");
138 default_tmpdir = "/dev/shm";
139}
140
49/* 141/*
50 * This proc still used in tt-mode 142 * This proc still used in tt-mode
51 * (file: kernel/tt/ptproxy/proxy.c, proc: start_debugger). 143 * (file: kernel/tt/ptproxy/proxy.c, proc: start_debugger).
@@ -56,6 +148,7 @@ int make_tempfile(const char *template, char **out_tempname, int do_unlink)
56 char *tempname; 148 char *tempname;
57 int fd; 149 int fd;
58 150
151 which_tmpdir();
59 tempname = malloc(MAXPATHLEN); 152 tempname = malloc(MAXPATHLEN);
60 153
61 find_tempdir(); 154 find_tempdir();
@@ -137,3 +230,26 @@ int create_mem_file(unsigned long long len)
137 } 230 }
138 return(fd); 231 return(fd);
139} 232}
233
234
235void check_tmpexec(void)
236{
237 void *addr;
238 int err, fd = create_tmp_file(UM_KERN_PAGE_SIZE);
239
240 addr = mmap(NULL, UM_KERN_PAGE_SIZE,
241 PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE, fd, 0);
242 printf("Checking PROT_EXEC mmap in %s...",tempdir);
243 fflush(stdout);
244 if(addr == MAP_FAILED){
245 err = errno;
246 perror("failed");
247 if(err == EPERM)
248 printf("%s must be not mounted noexec\n",tempdir);
249 exit(1);
250 }
251 printf("OK\n");
252 munmap(addr, UM_KERN_PAGE_SIZE);
253
254 close(fd);
255}
diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c
index 8176b0b52047..233be2f4f8cb 100644
--- a/arch/um/os-Linux/process.c
+++ b/arch/um/os-Linux/process.c
@@ -190,7 +190,7 @@ int os_unmap_memory(void *addr, int len)
190} 190}
191 191
192#ifndef MADV_REMOVE 192#ifndef MADV_REMOVE
193#define MADV_REMOVE 0x5 /* remove these pages & resources */ 193#define MADV_REMOVE KERNEL_MADV_REMOVE
194#endif 194#endif
195 195
196int os_drop_memory(void *addr, int length) 196int os_drop_memory(void *addr, int length)
@@ -206,29 +206,36 @@ int os_drop_memory(void *addr, int length)
206int can_drop_memory(void) 206int can_drop_memory(void)
207{ 207{
208 void *addr; 208 void *addr;
209 int fd; 209 int fd, ok = 0;
210 210
211 printk("Checking host MADV_REMOVE support..."); 211 printk("Checking host MADV_REMOVE support...");
212 fd = create_mem_file(UM_KERN_PAGE_SIZE); 212 fd = create_mem_file(UM_KERN_PAGE_SIZE);
213 if(fd < 0){ 213 if(fd < 0){
214 printk("Creating test memory file failed, err = %d\n", -fd); 214 printk("Creating test memory file failed, err = %d\n", -fd);
215 return 0; 215 goto out;
216 } 216 }
217 217
218 addr = mmap64(NULL, UM_KERN_PAGE_SIZE, PROT_READ | PROT_WRITE, 218 addr = mmap64(NULL, UM_KERN_PAGE_SIZE, PROT_READ | PROT_WRITE,
219 MAP_PRIVATE, fd, 0); 219 MAP_SHARED, fd, 0);
220 if(addr == MAP_FAILED){ 220 if(addr == MAP_FAILED){
221 printk("Mapping test memory file failed, err = %d\n", -errno); 221 printk("Mapping test memory file failed, err = %d\n", -errno);
222 return 0; 222 goto out_close;
223 } 223 }
224 224
225 if(madvise(addr, UM_KERN_PAGE_SIZE, MADV_REMOVE) != 0){ 225 if(madvise(addr, UM_KERN_PAGE_SIZE, MADV_REMOVE) != 0){
226 printk("MADV_REMOVE failed, err = %d\n", -errno); 226 printk("MADV_REMOVE failed, err = %d\n", -errno);
227 return 0; 227 goto out_unmap;
228 } 228 }
229 229
230 printk("OK\n"); 230 printk("OK\n");
231 return 1; 231 ok = 1;
232
233out_unmap:
234 munmap(addr, UM_KERN_PAGE_SIZE);
235out_close:
236 close(fd);
237out:
238 return ok;
232} 239}
233 240
234void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int)) 241void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int))
@@ -266,11 +273,11 @@ void init_new_thread_signals(int altstack)
266 273
267int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr) 274int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr)
268{ 275{
269 sigjmp_buf buf; 276 jmp_buf buf;
270 int n, enable; 277 int n, enable;
271 278
272 *jmp_ptr = &buf; 279 *jmp_ptr = &buf;
273 n = UML_SIGSETJMP(&buf, enable); 280 n = UML_SETJMP(&buf, enable);
274 if(n != 0) 281 if(n != 0)
275 return(n); 282 return(n);
276 (*fn)(arg); 283 (*fn)(arg);
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c
index 045ae0037456..bd89c6b99d5d 100644
--- a/arch/um/os-Linux/skas/process.c
+++ b/arch/um/os-Linux/skas/process.c
@@ -344,12 +344,12 @@ int copy_context_skas0(unsigned long new_stack, int pid)
344 err = ptrace_setregs(pid, regs); 344 err = ptrace_setregs(pid, regs);
345 if(err < 0) 345 if(err < 0)
346 panic("copy_context_skas0 : PTRACE_SETREGS failed, " 346 panic("copy_context_skas0 : PTRACE_SETREGS failed, "
347 "pid = %d, errno = %d\n", pid, errno); 347 "pid = %d, errno = %d\n", pid, -err);
348 348
349 err = ptrace_setfpregs(pid, fp_regs); 349 err = ptrace_setfpregs(pid, fp_regs);
350 if(err < 0) 350 if(err < 0)
351 panic("copy_context_skas0 : PTRACE_SETFPREGS failed, " 351 panic("copy_context_skas0 : PTRACE_SETFPREGS failed, "
352 "pid = %d, errno = %d\n", pid, errno); 352 "pid = %d, errno = %d\n", pid, -err);
353 353
354 /* set a well known return code for detection of child write failure */ 354 /* set a well known return code for detection of child write failure */
355 child_data->err = 12345678; 355 child_data->err = 12345678;
@@ -362,7 +362,7 @@ int copy_context_skas0(unsigned long new_stack, int pid)
362 pid = data->err; 362 pid = data->err;
363 if(pid < 0) 363 if(pid < 0)
364 panic("copy_context_skas0 - stub-parent reports error %d\n", 364 panic("copy_context_skas0 - stub-parent reports error %d\n",
365 pid); 365 -pid);
366 366
367 /* Wait, until child has finished too: read child's result from 367 /* Wait, until child has finished too: read child's result from
368 * child's stack and check it. 368 * child's stack and check it.
@@ -434,7 +434,7 @@ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr,
434 void (*handler)(int)) 434 void (*handler)(int))
435{ 435{
436 unsigned long flags; 436 unsigned long flags;
437 sigjmp_buf switch_buf, fork_buf; 437 jmp_buf switch_buf, fork_buf;
438 int enable; 438 int enable;
439 439
440 *switch_buf_ptr = &switch_buf; 440 *switch_buf_ptr = &switch_buf;
@@ -450,7 +450,7 @@ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr,
450 */ 450 */
451 flags = get_signals(); 451 flags = get_signals();
452 block_signals(); 452 block_signals();
453 if(UML_SIGSETJMP(&fork_buf, enable) == 0) 453 if(UML_SETJMP(&fork_buf, enable) == 0)
454 new_thread_proc(stack, handler); 454 new_thread_proc(stack, handler);
455 455
456 remove_sigstack(); 456 remove_sigstack();
@@ -466,35 +466,35 @@ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr,
466 466
467void thread_wait(void *sw, void *fb) 467void thread_wait(void *sw, void *fb)
468{ 468{
469 sigjmp_buf buf, **switch_buf = sw, *fork_buf; 469 jmp_buf buf, **switch_buf = sw, *fork_buf;
470 int enable; 470 int enable;
471 471
472 *switch_buf = &buf; 472 *switch_buf = &buf;
473 fork_buf = fb; 473 fork_buf = fb;
474 if(UML_SIGSETJMP(&buf, enable) == 0) 474 if(UML_SETJMP(&buf, enable) == 0)
475 siglongjmp(*fork_buf, INIT_JMP_REMOVE_SIGSTACK); 475 siglongjmp(*fork_buf, INIT_JMP_REMOVE_SIGSTACK);
476} 476}
477 477
478void switch_threads(void *me, void *next) 478void switch_threads(void *me, void *next)
479{ 479{
480 sigjmp_buf my_buf, **me_ptr = me, *next_buf = next; 480 jmp_buf my_buf, **me_ptr = me, *next_buf = next;
481 int enable; 481 int enable;
482 482
483 *me_ptr = &my_buf; 483 *me_ptr = &my_buf;
484 if(UML_SIGSETJMP(&my_buf, enable) == 0) 484 if(UML_SETJMP(&my_buf, enable) == 0)
485 UML_SIGLONGJMP(next_buf, 1); 485 UML_LONGJMP(next_buf, 1);
486} 486}
487 487
488static sigjmp_buf initial_jmpbuf; 488static jmp_buf initial_jmpbuf;
489 489
490/* XXX Make these percpu */ 490/* XXX Make these percpu */
491static void (*cb_proc)(void *arg); 491static void (*cb_proc)(void *arg);
492static void *cb_arg; 492static void *cb_arg;
493static sigjmp_buf *cb_back; 493static jmp_buf *cb_back;
494 494
495int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr) 495int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr)
496{ 496{
497 sigjmp_buf **switch_buf = switch_buf_ptr; 497 jmp_buf **switch_buf = switch_buf_ptr;
498 int n, enable; 498 int n, enable;
499 499
500 set_handler(SIGWINCH, (__sighandler_t) sig_handler, 500 set_handler(SIGWINCH, (__sighandler_t) sig_handler,
@@ -502,7 +502,7 @@ int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr)
502 SIGVTALRM, -1); 502 SIGVTALRM, -1);
503 503
504 *fork_buf_ptr = &initial_jmpbuf; 504 *fork_buf_ptr = &initial_jmpbuf;
505 n = UML_SIGSETJMP(&initial_jmpbuf, enable); 505 n = UML_SETJMP(&initial_jmpbuf, enable);
506 switch(n){ 506 switch(n){
507 case INIT_JMP_NEW_THREAD: 507 case INIT_JMP_NEW_THREAD:
508 new_thread_proc((void *) stack, new_thread_handler); 508 new_thread_proc((void *) stack, new_thread_handler);
@@ -512,7 +512,7 @@ int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr)
512 break; 512 break;
513 case INIT_JMP_CALLBACK: 513 case INIT_JMP_CALLBACK:
514 (*cb_proc)(cb_arg); 514 (*cb_proc)(cb_arg);
515 UML_SIGLONGJMP(cb_back, 1); 515 UML_LONGJMP(cb_back, 1);
516 break; 516 break;
517 case INIT_JMP_HALT: 517 case INIT_JMP_HALT:
518 kmalloc_ok = 0; 518 kmalloc_ok = 0;
@@ -523,12 +523,12 @@ int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr)
523 default: 523 default:
524 panic("Bad sigsetjmp return in start_idle_thread - %d\n", n); 524 panic("Bad sigsetjmp return in start_idle_thread - %d\n", n);
525 } 525 }
526 UML_SIGLONGJMP(*switch_buf, 1); 526 UML_LONGJMP(*switch_buf, 1);
527} 527}
528 528
529void initial_thread_cb_skas(void (*proc)(void *), void *arg) 529void initial_thread_cb_skas(void (*proc)(void *), void *arg)
530{ 530{
531 sigjmp_buf here; 531 jmp_buf here;
532 int enable; 532 int enable;
533 533
534 cb_proc = proc; 534 cb_proc = proc;
@@ -536,8 +536,8 @@ void initial_thread_cb_skas(void (*proc)(void *), void *arg)
536 cb_back = &here; 536 cb_back = &here;
537 537
538 block_signals(); 538 block_signals();
539 if(UML_SIGSETJMP(&here, enable) == 0) 539 if(UML_SETJMP(&here, enable) == 0)
540 UML_SIGLONGJMP(&initial_jmpbuf, INIT_JMP_CALLBACK); 540 UML_LONGJMP(&initial_jmpbuf, INIT_JMP_CALLBACK);
541 unblock_signals(); 541 unblock_signals();
542 542
543 cb_proc = NULL; 543 cb_proc = NULL;
@@ -548,13 +548,13 @@ void initial_thread_cb_skas(void (*proc)(void *), void *arg)
548void halt_skas(void) 548void halt_skas(void)
549{ 549{
550 block_signals(); 550 block_signals();
551 UML_SIGLONGJMP(&initial_jmpbuf, INIT_JMP_HALT); 551 UML_LONGJMP(&initial_jmpbuf, INIT_JMP_HALT);
552} 552}
553 553
554void reboot_skas(void) 554void reboot_skas(void)
555{ 555{
556 block_signals(); 556 block_signals();
557 UML_SIGLONGJMP(&initial_jmpbuf, INIT_JMP_REBOOT); 557 UML_LONGJMP(&initial_jmpbuf, INIT_JMP_REBOOT);
558} 558}
559 559
560void switch_mm_skas(struct mm_id *mm_idp) 560void switch_mm_skas(struct mm_id *mm_idp)
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c
index 387e26af301a..503148504009 100644
--- a/arch/um/os-Linux/start_up.c
+++ b/arch/um/os-Linux/start_up.c
@@ -296,29 +296,7 @@ static void __init check_ptrace(void)
296 check_sysemu(); 296 check_sysemu();
297} 297}
298 298
299extern int create_tmp_file(unsigned long long len); 299extern void check_tmpexec(void);
300
301static void check_tmpexec(void)
302{
303 void *addr;
304 int err, fd = create_tmp_file(UM_KERN_PAGE_SIZE);
305
306 addr = mmap(NULL, UM_KERN_PAGE_SIZE,
307 PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE, fd, 0);
308 printf("Checking PROT_EXEC mmap in /tmp...");
309 fflush(stdout);
310 if(addr == MAP_FAILED){
311 err = errno;
312 perror("failed");
313 if(err == EPERM)
314 printf("/tmp must be not mounted noexec\n");
315 exit(1);
316 }
317 printf("OK\n");
318 munmap(addr, UM_KERN_PAGE_SIZE);
319
320 close(fd);
321}
322 300
323void os_early_checks(void) 301void os_early_checks(void)
324{ 302{
diff --git a/arch/um/os-Linux/sys-i386/registers.c b/arch/um/os-Linux/sys-i386/registers.c
index 7a6f6b99ceff..516f66dd87e3 100644
--- a/arch/um/os-Linux/sys-i386/registers.c
+++ b/arch/um/os-Linux/sys-i386/registers.c
@@ -104,7 +104,7 @@ void init_registers(int pid)
104 err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs); 104 err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs);
105 if(err) 105 if(err)
106 panic("check_ptrace : PTRACE_GETREGS failed, errno = %d", 106 panic("check_ptrace : PTRACE_GETREGS failed, errno = %d",
107 err); 107 errno);
108 108
109 errno = 0; 109 errno = 0;
110 err = ptrace(PTRACE_GETFPXREGS, pid, 0, exec_fpx_regs); 110 err = ptrace(PTRACE_GETFPXREGS, pid, 0, exec_fpx_regs);
@@ -119,7 +119,7 @@ void init_registers(int pid)
119 err = ptrace(PTRACE_GETFPREGS, pid, 0, exec_fp_regs); 119 err = ptrace(PTRACE_GETFPREGS, pid, 0, exec_fp_regs);
120 if(err) 120 if(err)
121 panic("check_ptrace : PTRACE_GETFPREGS failed, errno = %d", 121 panic("check_ptrace : PTRACE_GETFPREGS failed, errno = %d",
122 err); 122 errno);
123} 123}
124 124
125void get_safe_registers(unsigned long *regs, unsigned long *fp_regs) 125void get_safe_registers(unsigned long *regs, unsigned long *fp_regs)
diff --git a/arch/um/os-Linux/sys-x86_64/registers.c b/arch/um/os-Linux/sys-x86_64/registers.c
index 001941fa1a1e..becd898d9398 100644
--- a/arch/um/os-Linux/sys-x86_64/registers.c
+++ b/arch/um/os-Linux/sys-x86_64/registers.c
@@ -62,12 +62,12 @@ void init_registers(int pid)
62 err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs); 62 err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs);
63 if(err) 63 if(err)
64 panic("check_ptrace : PTRACE_GETREGS failed, errno = %d", 64 panic("check_ptrace : PTRACE_GETREGS failed, errno = %d",
65 err); 65 errno);
66 66
67 err = ptrace(PTRACE_GETFPREGS, pid, 0, exec_fp_regs); 67 err = ptrace(PTRACE_GETFPREGS, pid, 0, exec_fp_regs);
68 if(err) 68 if(err)
69 panic("check_ptrace : PTRACE_GETFPREGS failed, errno = %d", 69 panic("check_ptrace : PTRACE_GETFPREGS failed, errno = %d",
70 err); 70 errno);
71} 71}
72 72
73void get_safe_registers(unsigned long *regs, unsigned long *fp_regs) 73void get_safe_registers(unsigned long *regs, unsigned long *fp_regs)
diff --git a/arch/um/os-Linux/trap.c b/arch/um/os-Linux/trap.c
index a9f6b26f9828..90b29ae9af46 100644
--- a/arch/um/os-Linux/trap.c
+++ b/arch/um/os-Linux/trap.c
@@ -35,7 +35,7 @@ void os_fill_handlinfo(struct kern_handlers h)
35 35
36void do_longjmp(void *b, int val) 36void do_longjmp(void *b, int val)
37{ 37{
38 sigjmp_buf *buf = b; 38 jmp_buf *buf = b;
39 39
40 UML_SIGLONGJMP(buf, val); 40 UML_LONGJMP(buf, val);
41} 41}
diff --git a/arch/um/os-Linux/uaccess.c b/arch/um/os-Linux/uaccess.c
index 166fb66995df..e523719330b2 100644
--- a/arch/um/os-Linux/uaccess.c
+++ b/arch/um/os-Linux/uaccess.c
@@ -16,9 +16,9 @@ unsigned long __do_user_copy(void *to, const void *from, int n,
16 unsigned long *faddrp = (unsigned long *) fault_addr, ret; 16 unsigned long *faddrp = (unsigned long *) fault_addr, ret;
17 int enable; 17 int enable;
18 18
19 sigjmp_buf jbuf; 19 jmp_buf jbuf;
20 *fault_catcher = &jbuf; 20 *fault_catcher = &jbuf;
21 if(UML_SIGSETJMP(&jbuf, enable) == 0){ 21 if(UML_SETJMP(&jbuf, enable) == 0){
22 (*op)(to, from, n); 22 (*op)(to, from, n);
23 ret = 0; 23 ret = 0;
24 *faulted_out = 0; 24 *faulted_out = 0;
diff --git a/arch/um/os-Linux/umid.c b/arch/um/os-Linux/umid.c
index 34bfc1bb9e38..362db059fe30 100644
--- a/arch/um/os-Linux/umid.c
+++ b/arch/um/os-Linux/umid.c
@@ -178,14 +178,14 @@ static void __init create_pid_file(void)
178 fd = open(file, O_RDWR | O_CREAT | O_EXCL, 0644); 178 fd = open(file, O_RDWR | O_CREAT | O_EXCL, 0644);
179 if(fd < 0){ 179 if(fd < 0){
180 printk("Open of machine pid file \"%s\" failed: %s\n", 180 printk("Open of machine pid file \"%s\" failed: %s\n",
181 file, strerror(-fd)); 181 file, strerror(errno));
182 return; 182 return;
183 } 183 }
184 184
185 snprintf(pid, sizeof(pid), "%d\n", getpid()); 185 snprintf(pid, sizeof(pid), "%d\n", getpid());
186 n = write(fd, pid, strlen(pid)); 186 n = write(fd, pid, strlen(pid));
187 if(n != strlen(pid)) 187 if(n != strlen(pid))
188 printk("Write of pid file failed - err = %d\n", -n); 188 printk("Write of pid file failed - err = %d\n", errno);
189 189
190 close(fd); 190 close(fd);
191} 191}
diff --git a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c
index 2598158e1f53..3f33165ada68 100644
--- a/arch/um/os-Linux/user_syms.c
+++ b/arch/um/os-Linux/user_syms.c
@@ -96,6 +96,13 @@ EXPORT_SYMBOL_PROTO(getuid);
96EXPORT_SYMBOL_PROTO(fsync); 96EXPORT_SYMBOL_PROTO(fsync);
97EXPORT_SYMBOL_PROTO(fdatasync); 97EXPORT_SYMBOL_PROTO(fdatasync);
98 98
99/* Export symbols used by GCC for the stack protector. */
100extern void __stack_smash_handler(void *) __attribute__((weak));
101EXPORT_SYMBOL(__stack_smash_handler);
102
103extern long __guard __attribute__((weak));
104EXPORT_SYMBOL(__guard);
105
99/* 106/*
100 * Overrides for Emacs so that we follow Linus's tabbing style. 107 * Overrides for Emacs so that we follow Linus's tabbing style.
101 * Emacs will notice this stuff at the end of the file and automatically 108 * Emacs will notice this stuff at the end of the file and automatically
diff --git a/arch/um/os-Linux/util.c b/arch/um/os-Linux/util.c
index e32065e2fdc8..c47a2a7ce70e 100644
--- a/arch/um/os-Linux/util.c
+++ b/arch/um/os-Linux/util.c
@@ -104,7 +104,7 @@ void setup_hostinfo(void)
104int setjmp_wrapper(void (*proc)(void *, void *), ...) 104int setjmp_wrapper(void (*proc)(void *, void *), ...)
105{ 105{
106 va_list args; 106 va_list args;
107 sigjmp_buf buf; 107 jmp_buf buf;
108 int n; 108 int n;
109 109
110 n = sigsetjmp(buf, 1); 110 n = sigsetjmp(buf, 1);
diff --git a/arch/um/scripts/Makefile.rules b/arch/um/scripts/Makefile.rules
index 5e7a9c310aa5..1347dc6d5218 100644
--- a/arch/um/scripts/Makefile.rules
+++ b/arch/um/scripts/Makefile.rules
@@ -7,11 +7,19 @@ USER_SINGLE_OBJS := \
7USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) 7USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS))
8USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file)) 8USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
9 9
10$(USER_OBJS) $(USER_OBJS:.o=.i) $(USER_OBJS:.o=.s) $(USER_OBJS:.o=.lst): \ 10$(USER_OBJS:.o=.%): \
11 c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) $(CFLAGS_$(notdir $@)) 11 c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) $(CFLAGS_$(*F).o)
12$(USER_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \ 12$(USER_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \
13 -Dunix -D__unix__ -D__$(SUBARCH)__ 13 -Dunix -D__unix__ -D__$(SUBARCH)__
14 14
15# These are like USER_OBJS but filter USER_CFLAGS through unprofile instead of
16# using it directly.
17UNPROFILE_OBJS := $(foreach file,$(UNPROFILE_OBJS),$(obj)/$(file))
18
19$(UNPROFILE_OBJS:.o=.%): \
20 c_flags = -Wp,-MD,$(depfile) $(call unprofile,$(USER_CFLAGS)) $(CFLAGS_$(*F).o)
21$(UNPROFILE_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \
22 -Dunix -D__unix__ -D__$(SUBARCH)__
15 23
16# The stubs and unmap.o can't try to call mcount or update basic block data 24# The stubs and unmap.o can't try to call mcount or update basic block data
17define unprofile 25define unprofile
diff --git a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile
index 98b20b7bba4f..374d61a19439 100644
--- a/arch/um/sys-i386/Makefile
+++ b/arch/um/sys-i386/Makefile
@@ -8,11 +8,16 @@ subarch-obj-y = lib/bitops.o kernel/semaphore.o
8subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem.o 8subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem.o
9subarch-obj-$(CONFIG_MODULES) += kernel/module.o 9subarch-obj-$(CONFIG_MODULES) += kernel/module.o
10 10
11USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o stub_segv.o 11USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o
12 12
13include arch/um/scripts/Makefile.rules 13USER_OBJS += user-offsets.s
14extra-y += user-offsets.s
14 15
15extra-$(CONFIG_MODE_TT) += unmap.o 16extra-$(CONFIG_MODE_TT) += unmap.o
16 17
17$(obj)/stub_segv.o $(obj)/unmap.o: \ 18UNPROFILE_OBJS := stub_segv.o
18 _c_flags = $(call unprofile,$(CFLAGS)) 19CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING)
20
21include arch/um/scripts/Makefile.rules
22
23$(obj)/unmap.%: _c_flags = $(call unprofile,$(CFLAGS))
diff --git a/arch/um/sys-i386/signal.c b/arch/um/sys-i386/signal.c
index 618fd8594643..0709fc6670c2 100644
--- a/arch/um/sys-i386/signal.c
+++ b/arch/um/sys-i386/signal.c
@@ -57,7 +57,7 @@ static int copy_sc_from_user_skas(struct pt_regs *regs,
57 return(0); 57 return(0);
58} 58}
59 59
60int copy_sc_to_user_skas(struct sigcontext *to, struct _fpstate __user *to_fp, 60int copy_sc_to_user_skas(struct sigcontext __user *to, struct _fpstate __user *to_fp,
61 struct pt_regs *regs, unsigned long sp) 61 struct pt_regs *regs, unsigned long sp)
62{ 62{
63 struct sigcontext sc; 63 struct sigcontext sc;
@@ -132,7 +132,7 @@ int copy_sc_from_user_tt(struct sigcontext *to, struct sigcontext __user *from,
132 return(err); 132 return(err);
133} 133}
134 134
135int copy_sc_to_user_tt(struct sigcontext *to, struct _fpstate __user *fp, 135int copy_sc_to_user_tt(struct sigcontext __user *to, struct _fpstate __user *fp,
136 struct sigcontext *from, int fpsize, unsigned long sp) 136 struct sigcontext *from, int fpsize, unsigned long sp)
137{ 137{
138 struct _fpstate __user *to_fp; 138 struct _fpstate __user *to_fp;
@@ -167,7 +167,7 @@ static int copy_sc_from_user(struct pt_regs *to, void __user *from)
167 return(ret); 167 return(ret);
168} 168}
169 169
170static int copy_sc_to_user(struct sigcontext *to, struct _fpstate __user *fp, 170static int copy_sc_to_user(struct sigcontext __user *to, struct _fpstate __user *fp,
171 struct pt_regs *from, unsigned long sp) 171 struct pt_regs *from, unsigned long sp)
172{ 172{
173 return(CHOOSE_MODE(copy_sc_to_user_tt(to, fp, UPT_SC(&from->regs), 173 return(CHOOSE_MODE(copy_sc_to_user_tt(to, fp, UPT_SC(&from->regs),
diff --git a/arch/um/sys-i386/stub_segv.c b/arch/um/sys-i386/stub_segv.c
index a37f672ec964..2355dc19c46c 100644
--- a/arch/um/sys-i386/stub_segv.c
+++ b/arch/um/sys-i386/stub_segv.c
@@ -27,6 +27,6 @@ stub_segv_handler(int sig)
27 * the stack in its original form when we do the sigreturn here, by 27 * the stack in its original form when we do the sigreturn here, by
28 * hand. 28 * hand.
29 */ 29 */
30 __asm__("mov %0,%%esp ; movl %1, %%eax ; " 30 __asm__ __volatile__("mov %0,%%esp ; movl %1, %%eax ; "
31 "int $0x80" : : "a" (sc), "g" (__NR_sigreturn)); 31 "int $0x80" : : "a" (sc), "g" (__NR_sigreturn));
32} 32}
diff --git a/arch/um/sys-x86_64/Makefile b/arch/um/sys-x86_64/Makefile
index b5fc22babddf..c19794d435d6 100644
--- a/arch/um/sys-x86_64/Makefile
+++ b/arch/um/sys-x86_64/Makefile
@@ -16,11 +16,16 @@ subarch-obj-$(CONFIG_MODULES) += kernel/module.o
16 16
17ldt-y = ../sys-i386/ldt.o 17ldt-y = ../sys-i386/ldt.o
18 18
19USER_OBJS := ptrace_user.o sigcontext.o stub_segv.o 19USER_OBJS := ptrace_user.o sigcontext.o
20 20
21include arch/um/scripts/Makefile.rules 21USER_OBJS += user-offsets.s
22extra-y += user-offsets.s
22 23
23extra-$(CONFIG_MODE_TT) += unmap.o 24extra-$(CONFIG_MODE_TT) += unmap.o
24 25
25$(obj)/stub_segv.o $(obj)/unmap.o: \ 26UNPROFILE_OBJS := stub_segv.o
26 _c_flags = $(call unprofile,$(CFLAGS)) 27CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING)
28
29include arch/um/scripts/Makefile.rules
30
31$(obj)/unmap.%: _c_flags = $(call unprofile,$(CFLAGS))
diff --git a/arch/um/sys-x86_64/stub_segv.c b/arch/um/sys-x86_64/stub_segv.c
index a27099533198..1c967026c957 100644
--- a/arch/um/sys-x86_64/stub_segv.c
+++ b/arch/um/sys-x86_64/stub_segv.c
@@ -33,7 +33,7 @@ stub_segv_handler(int sig)
33 struct ucontext *uc; 33 struct ucontext *uc;
34 int pid; 34 int pid;
35 35
36 __asm__("movq %%rdx, %0" : "=g" (uc) :); 36 __asm__ __volatile__("movq %%rdx, %0" : "=g" (uc) :);
37 GET_FAULTINFO_FROM_SC(*((struct faultinfo *) UML_CONFIG_STUB_DATA), 37 GET_FAULTINFO_FROM_SC(*((struct faultinfo *) UML_CONFIG_STUB_DATA),
38 &uc->uc_mcontext); 38 &uc->uc_mcontext);
39 39
@@ -44,8 +44,8 @@ stub_segv_handler(int sig)
44 * the signal frame. So, we use the ucontext pointer, which we know 44 * the signal frame. So, we use the ucontext pointer, which we know
45 * already, to get the signal frame pointer, and add 8 to that. 45 * already, to get the signal frame pointer, and add 8 to that.
46 */ 46 */
47 __asm__("movq %0, %%rsp; movq %1, %%rax ; syscall": : 47 __asm__ __volatile__("movq %0, %%rsp; movq %1, %%rax ; syscall": :
48 "g" ((unsigned long) container_of(uc, struct rt_sigframe, 48 "g" ((unsigned long)
49 uc) + 8), 49 container_of(uc, struct rt_sigframe, uc) + 8),
50 "g" (__NR_rt_sigreturn)); 50 "g" (__NR_rt_sigreturn));
51} 51}
diff --git a/arch/x86_64/defconfig b/arch/x86_64/defconfig
index 3c45ec22b3fe..69db0c0721d1 100644
--- a/arch/x86_64/defconfig
+++ b/arch/x86_64/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-rc1 3# Linux kernel version: 2.6.17-rc1-git11
4# Mon Apr 3 16:11:14 2006 4# Sun Apr 16 07:22:36 2006
5# 5#
6CONFIG_X86_64=y 6CONFIG_X86_64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -57,6 +57,7 @@ CONFIG_FUTEX=y
57CONFIG_EPOLL=y 57CONFIG_EPOLL=y
58CONFIG_SHMEM=y 58CONFIG_SHMEM=y
59CONFIG_SLAB=y 59CONFIG_SLAB=y
60CONFIG_DOUBLEFAULT=y
60# CONFIG_TINY_SHMEM is not set 61# CONFIG_TINY_SHMEM is not set
61CONFIG_BASE_SMALL=0 62CONFIG_BASE_SMALL=0
62# CONFIG_SLOB is not set 63# CONFIG_SLOB is not set
@@ -121,6 +122,7 @@ CONFIG_PREEMPT_VOLUNTARY=y
121CONFIG_PREEMPT_BKL=y 122CONFIG_PREEMPT_BKL=y
122CONFIG_NUMA=y 123CONFIG_NUMA=y
123CONFIG_K8_NUMA=y 124CONFIG_K8_NUMA=y
125CONFIG_NODES_SHIFT=6
124CONFIG_X86_64_ACPI_NUMA=y 126CONFIG_X86_64_ACPI_NUMA=y
125CONFIG_NUMA_EMU=y 127CONFIG_NUMA_EMU=y
126CONFIG_ARCH_DISCONTIGMEM_ENABLE=y 128CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
@@ -544,7 +546,6 @@ CONFIG_SCSI_SATA_INTEL_COMBINED=y
544# CONFIG_SCSI_INIA100 is not set 546# CONFIG_SCSI_INIA100 is not set
545# CONFIG_SCSI_SYM53C8XX_2 is not set 547# CONFIG_SCSI_SYM53C8XX_2 is not set
546# CONFIG_SCSI_IPR is not set 548# CONFIG_SCSI_IPR is not set
547# CONFIG_SCSI_QLOGIC_FC is not set
548# CONFIG_SCSI_QLOGIC_1280 is not set 549# CONFIG_SCSI_QLOGIC_1280 is not set
549# CONFIG_SCSI_QLA_FC is not set 550# CONFIG_SCSI_QLA_FC is not set
550# CONFIG_SCSI_LPFC is not set 551# CONFIG_SCSI_LPFC is not set
@@ -1045,9 +1046,7 @@ CONFIG_USB_HIDINPUT=y
1045# CONFIG_USB_ACECAD is not set 1046# CONFIG_USB_ACECAD is not set
1046# CONFIG_USB_KBTAB is not set 1047# CONFIG_USB_KBTAB is not set
1047# CONFIG_USB_POWERMATE is not set 1048# CONFIG_USB_POWERMATE is not set
1048# CONFIG_USB_MTOUCH is not set 1049# CONFIG_USB_TOUCHSCREEN is not set
1049# CONFIG_USB_ITMTOUCH is not set
1050# CONFIG_USB_EGALAX is not set
1051# CONFIG_USB_YEALINK is not set 1050# CONFIG_USB_YEALINK is not set
1052# CONFIG_USB_XPAD is not set 1051# CONFIG_USB_XPAD is not set
1053# CONFIG_USB_ATI_REMOTE is not set 1052# CONFIG_USB_ATI_REMOTE is not set
@@ -1118,6 +1117,14 @@ CONFIG_USB_MON=y
1118# CONFIG_NEW_LEDS is not set 1117# CONFIG_NEW_LEDS is not set
1119 1118
1120# 1119#
1120# LED drivers
1121#
1122
1123#
1124# LED Triggers
1125#
1126
1127#
1121# InfiniBand support 1128# InfiniBand support
1122# 1129#
1123# CONFIG_INFINIBAND is not set 1130# CONFIG_INFINIBAND is not set
diff --git a/arch/x86_64/ia32/Makefile b/arch/x86_64/ia32/Makefile
index 929e6b0771f8..e9263b4975e0 100644
--- a/arch/x86_64/ia32/Makefile
+++ b/arch/x86_64/ia32/Makefile
@@ -27,5 +27,5 @@ $(obj)/vsyscall-sysenter.so $(obj)/vsyscall-syscall.so: \
27$(obj)/vsyscall-%.so: $(src)/vsyscall.lds $(obj)/vsyscall-%.o FORCE 27$(obj)/vsyscall-%.so: $(src)/vsyscall.lds $(obj)/vsyscall-%.o FORCE
28 $(call if_changed,syscall) 28 $(call if_changed,syscall)
29 29
30AFLAGS_vsyscall-sysenter.o = -m32 30AFLAGS_vsyscall-sysenter.o = -m32 -Wa,-32
31AFLAGS_vsyscall-syscall.o = -m32 31AFLAGS_vsyscall-syscall.o = -m32 -Wa,-32
diff --git a/arch/x86_64/ia32/ia32entry.S b/arch/x86_64/ia32/ia32entry.S
index 5a9802676689..5a92fed2d1d5 100644
--- a/arch/x86_64/ia32/ia32entry.S
+++ b/arch/x86_64/ia32/ia32entry.S
@@ -694,4 +694,6 @@ ia32_sys_call_table:
694 .quad compat_sys_get_robust_list 694 .quad compat_sys_get_robust_list
695 .quad sys_splice 695 .quad sys_splice
696 .quad sys_sync_file_range 696 .quad sys_sync_file_range
697 .quad sys_tee
698 .quad compat_sys_vmsplice
697ia32_syscall_end: 699ia32_syscall_end:
diff --git a/arch/x86_64/kernel/kprobes.c b/arch/x86_64/kernel/kprobes.c
index accbff3fec49..1eaa5dae6174 100644
--- a/arch/x86_64/kernel/kprobes.c
+++ b/arch/x86_64/kernel/kprobes.c
@@ -53,7 +53,7 @@ DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
53/* 53/*
54 * returns non-zero if opcode modifies the interrupt flag. 54 * returns non-zero if opcode modifies the interrupt flag.
55 */ 55 */
56static inline int is_IF_modifier(kprobe_opcode_t *insn) 56static __always_inline int is_IF_modifier(kprobe_opcode_t *insn)
57{ 57{
58 switch (*insn) { 58 switch (*insn) {
59 case 0xfa: /* cli */ 59 case 0xfa: /* cli */
@@ -84,7 +84,7 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
84 * If it does, return the address of the 32-bit displacement word. 84 * If it does, return the address of the 32-bit displacement word.
85 * If not, return null. 85 * If not, return null.
86 */ 86 */
87static inline s32 *is_riprel(u8 *insn) 87static s32 __kprobes *is_riprel(u8 *insn)
88{ 88{
89#define W(row,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,ba,bb,bc,bd,be,bf) \ 89#define W(row,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,ba,bb,bc,bd,be,bf) \
90 (((b0##UL << 0x0)|(b1##UL << 0x1)|(b2##UL << 0x2)|(b3##UL << 0x3) | \ 90 (((b0##UL << 0x0)|(b1##UL << 0x1)|(b2##UL << 0x2)|(b3##UL << 0x3) | \
@@ -229,7 +229,7 @@ void __kprobes arch_remove_kprobe(struct kprobe *p)
229 mutex_unlock(&kprobe_mutex); 229 mutex_unlock(&kprobe_mutex);
230} 230}
231 231
232static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) 232static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)
233{ 233{
234 kcb->prev_kprobe.kp = kprobe_running(); 234 kcb->prev_kprobe.kp = kprobe_running();
235 kcb->prev_kprobe.status = kcb->kprobe_status; 235 kcb->prev_kprobe.status = kcb->kprobe_status;
@@ -237,7 +237,7 @@ static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb)
237 kcb->prev_kprobe.saved_rflags = kcb->kprobe_saved_rflags; 237 kcb->prev_kprobe.saved_rflags = kcb->kprobe_saved_rflags;
238} 238}
239 239
240static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb) 240static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb)
241{ 241{
242 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp; 242 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp;
243 kcb->kprobe_status = kcb->prev_kprobe.status; 243 kcb->kprobe_status = kcb->prev_kprobe.status;
@@ -245,7 +245,7 @@ static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb)
245 kcb->kprobe_saved_rflags = kcb->prev_kprobe.saved_rflags; 245 kcb->kprobe_saved_rflags = kcb->prev_kprobe.saved_rflags;
246} 246}
247 247
248static inline void set_current_kprobe(struct kprobe *p, struct pt_regs *regs, 248static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
249 struct kprobe_ctlblk *kcb) 249 struct kprobe_ctlblk *kcb)
250{ 250{
251 __get_cpu_var(current_kprobe) = p; 251 __get_cpu_var(current_kprobe) = p;
diff --git a/arch/x86_64/kernel/mce.c b/arch/x86_64/kernel/mce.c
index 6f0790e8b6d3..c69fc43cee7b 100644
--- a/arch/x86_64/kernel/mce.c
+++ b/arch/x86_64/kernel/mce.c
@@ -629,7 +629,7 @@ static __cpuinit void mce_remove_device(unsigned int cpu)
629#endif 629#endif
630 630
631/* Get notified when a cpu comes on/off. Be hotplug friendly. */ 631/* Get notified when a cpu comes on/off. Be hotplug friendly. */
632static __cpuinit int 632static int
633mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) 633mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
634{ 634{
635 unsigned int cpu = (unsigned long)hcpu; 635 unsigned int cpu = (unsigned long)hcpu;
diff --git a/arch/x86_64/kernel/mce_amd.c b/arch/x86_64/kernel/mce_amd.c
index d3ad7d81266d..d13b241ad094 100644
--- a/arch/x86_64/kernel/mce_amd.c
+++ b/arch/x86_64/kernel/mce_amd.c
@@ -482,7 +482,7 @@ static void threshold_remove_device(unsigned int cpu)
482#endif 482#endif
483 483
484/* get notified when a cpu comes on/off */ 484/* get notified when a cpu comes on/off */
485static __cpuinit int threshold_cpu_callback(struct notifier_block *nfb, 485static int threshold_cpu_callback(struct notifier_block *nfb,
486 unsigned long action, void *hcpu) 486 unsigned long action, void *hcpu)
487{ 487{
488 /* cpu was unsigned int to begin with */ 488 /* cpu was unsigned int to begin with */
diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c
index a6c01e121266..9d3d76c85ae7 100644
--- a/arch/x86_64/kernel/pci-gart.c
+++ b/arch/x86_64/kernel/pci-gart.c
@@ -112,10 +112,6 @@ static unsigned long alloc_iommu(int size)
112static void free_iommu(unsigned long offset, int size) 112static void free_iommu(unsigned long offset, int size)
113{ 113{
114 unsigned long flags; 114 unsigned long flags;
115 if (size == 1) {
116 clear_bit(offset, iommu_gart_bitmap);
117 return;
118 }
119 spin_lock_irqsave(&iommu_bitmap_lock, flags); 115 spin_lock_irqsave(&iommu_bitmap_lock, flags);
120 __clear_bit_string(iommu_gart_bitmap, offset, size); 116 __clear_bit_string(iommu_gart_bitmap, offset, size);
121 spin_unlock_irqrestore(&iommu_bitmap_lock, flags); 117 spin_unlock_irqrestore(&iommu_bitmap_lock, flags);
diff --git a/arch/x86_64/kernel/process.c b/arch/x86_64/kernel/process.c
index 1c44b53cb15b..fb903e65e079 100644
--- a/arch/x86_64/kernel/process.c
+++ b/arch/x86_64/kernel/process.c
@@ -575,8 +575,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
575 prev->userrsp = read_pda(oldrsp); 575 prev->userrsp = read_pda(oldrsp);
576 write_pda(oldrsp, next->userrsp); 576 write_pda(oldrsp, next->userrsp);
577 write_pda(pcurrent, next_p); 577 write_pda(pcurrent, next_p);
578
578 /* This must be here to ensure both math_state_restore() and 579 /* This must be here to ensure both math_state_restore() and
579 kernel_fpu_begin() work consistently. */ 580 kernel_fpu_begin() work consistently.
581 And the AMD workaround requires it to be after DS reload. */
580 unlazy_fpu(prev_p); 582 unlazy_fpu(prev_p);
581 write_pda(kernelstack, 583 write_pda(kernelstack,
582 task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET); 584 task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET);
diff --git a/arch/x86_64/kernel/ptrace.c b/arch/x86_64/kernel/ptrace.c
index da8e7903d817..2d50024c9f30 100644
--- a/arch/x86_64/kernel/ptrace.c
+++ b/arch/x86_64/kernel/ptrace.c
@@ -600,12 +600,12 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs)
600 600
601 if (unlikely(current->audit_context)) { 601 if (unlikely(current->audit_context)) {
602 if (test_thread_flag(TIF_IA32)) { 602 if (test_thread_flag(TIF_IA32)) {
603 audit_syscall_entry(current, AUDIT_ARCH_I386, 603 audit_syscall_entry(AUDIT_ARCH_I386,
604 regs->orig_rax, 604 regs->orig_rax,
605 regs->rbx, regs->rcx, 605 regs->rbx, regs->rcx,
606 regs->rdx, regs->rsi); 606 regs->rdx, regs->rsi);
607 } else { 607 } else {
608 audit_syscall_entry(current, AUDIT_ARCH_X86_64, 608 audit_syscall_entry(AUDIT_ARCH_X86_64,
609 regs->orig_rax, 609 regs->orig_rax,
610 regs->rdi, regs->rsi, 610 regs->rdi, regs->rsi,
611 regs->rdx, regs->r10); 611 regs->rdx, regs->r10);
@@ -616,7 +616,7 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs)
616asmlinkage void syscall_trace_leave(struct pt_regs *regs) 616asmlinkage void syscall_trace_leave(struct pt_regs *regs)
617{ 617{
618 if (unlikely(current->audit_context)) 618 if (unlikely(current->audit_context))
619 audit_syscall_exit(current, AUDITSC_RESULT(regs->rax), regs->rax); 619 audit_syscall_exit(AUDITSC_RESULT(regs->rax), regs->rax);
620 620
621 if ((test_thread_flag(TIF_SYSCALL_TRACE) 621 if ((test_thread_flag(TIF_SYSCALL_TRACE)
622 || test_thread_flag(TIF_SINGLESTEP)) 622 || test_thread_flag(TIF_SINGLESTEP))
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c
index c50b06765a80..ebc3c33b1c6c 100644
--- a/arch/x86_64/kernel/setup.c
+++ b/arch/x86_64/kernel/setup.c
@@ -930,6 +930,10 @@ static int __init init_amd(struct cpuinfo_x86 *c)
930 if (c->x86 == 15 && ((level >= 0x0f48 && level < 0x0f50) || level >= 0x0f58)) 930 if (c->x86 == 15 && ((level >= 0x0f48 && level < 0x0f50) || level >= 0x0f58))
931 set_bit(X86_FEATURE_REP_GOOD, &c->x86_capability); 931 set_bit(X86_FEATURE_REP_GOOD, &c->x86_capability);
932 932
933 /* Enable workaround for FXSAVE leak */
934 if (c->x86 >= 6)
935 set_bit(X86_FEATURE_FXSAVE_LEAK, &c->x86_capability);
936
933 r = get_model_name(c); 937 r = get_model_name(c);
934 if (!r) { 938 if (!r) {
935 switch (c->x86) { 939 switch (c->x86) {
@@ -1422,3 +1426,22 @@ struct seq_operations cpuinfo_op = {
1422 .show = show_cpuinfo, 1426 .show = show_cpuinfo,
1423}; 1427};
1424 1428
1429#ifdef CONFIG_INPUT_PCSPKR
1430#include <linux/platform_device.h>
1431static __init int add_pcspkr(void)
1432{
1433 struct platform_device *pd;
1434 int ret;
1435
1436 pd = platform_device_alloc("pcspkr", -1);
1437 if (!pd)
1438 return -ENOMEM;
1439
1440 ret = platform_device_add(pd);
1441 if (ret)
1442 platform_device_put(pd);
1443
1444 return ret;
1445}
1446device_initcall(add_pcspkr);
1447#endif
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c
index 6bda322d3caf..2700b1375c1f 100644
--- a/arch/x86_64/kernel/traps.c
+++ b/arch/x86_64/kernel/traps.c
@@ -30,6 +30,7 @@
30#include <linux/moduleparam.h> 30#include <linux/moduleparam.h>
31#include <linux/nmi.h> 31#include <linux/nmi.h>
32#include <linux/kprobes.h> 32#include <linux/kprobes.h>
33#include <linux/kexec.h>
33 34
34#include <asm/system.h> 35#include <asm/system.h>
35#include <asm/uaccess.h> 36#include <asm/uaccess.h>
@@ -433,6 +434,8 @@ void __kprobes __die(const char * str, struct pt_regs * regs, long err)
433 printk(KERN_ALERT "RIP "); 434 printk(KERN_ALERT "RIP ");
434 printk_address(regs->rip); 435 printk_address(regs->rip);
435 printk(" RSP <%016lx>\n", regs->rsp); 436 printk(" RSP <%016lx>\n", regs->rsp);
437 if (kexec_should_crash(current))
438 crash_kexec(regs);
436} 439}
437 440
438void die(const char * str, struct pt_regs * regs, long err) 441void die(const char * str, struct pt_regs * regs, long err)
@@ -455,6 +458,8 @@ void __kprobes die_nmi(char *str, struct pt_regs *regs)
455 */ 458 */
456 printk(str, safe_smp_processor_id()); 459 printk(str, safe_smp_processor_id());
457 show_registers(regs); 460 show_registers(regs);
461 if (kexec_should_crash(current))
462 crash_kexec(regs);
458 if (panic_on_timeout || panic_on_oops) 463 if (panic_on_timeout || panic_on_oops)
459 panic("nmi watchdog"); 464 panic("nmi watchdog");
460 printk("console shuts up ...\n"); 465 printk("console shuts up ...\n");
diff --git a/arch/x86_64/mm/numa.c b/arch/x86_64/mm/numa.c
index cc02573a3271..b2fac14baac0 100644
--- a/arch/x86_64/mm/numa.c
+++ b/arch/x86_64/mm/numa.c
@@ -188,11 +188,13 @@ void __init setup_node_zones(int nodeid)
188 memory. */ 188 memory. */
189 memmapsize = sizeof(struct page) * (end_pfn-start_pfn); 189 memmapsize = sizeof(struct page) * (end_pfn-start_pfn);
190 limit = end_pfn << PAGE_SHIFT; 190 limit = end_pfn << PAGE_SHIFT;
191#ifdef CONFIG_FLAT_NODE_MEM_MAP
191 NODE_DATA(nodeid)->node_mem_map = 192 NODE_DATA(nodeid)->node_mem_map =
192 __alloc_bootmem_core(NODE_DATA(nodeid)->bdata, 193 __alloc_bootmem_core(NODE_DATA(nodeid)->bdata,
193 memmapsize, SMP_CACHE_BYTES, 194 memmapsize, SMP_CACHE_BYTES,
194 round_down(limit - memmapsize, PAGE_SIZE), 195 round_down(limit - memmapsize, PAGE_SIZE),
195 limit); 196 limit);
197#endif
196 198
197 size_zones(zones, holes, start_pfn, end_pfn); 199 size_zones(zones, holes, start_pfn, end_pfn);
198 free_area_init_node(nodeid, NODE_DATA(nodeid), zones, 200 free_area_init_node(nodeid, NODE_DATA(nodeid), zones,